сцена с окном IPcam для управления воротами

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: сцена с окном IPcam для управления воротами

Сообщение woow » Чт окт 11, 2018 8:44 am

На сцене кнопка CSS, описаны два состояния её button1- вкл / button2- выкл.
Как на CSS описать условие чтобы отображалось состояние при изменении состояния свойства 0 или 1.
На основе примера дописал условие if/else для того чтобы понять мой вопрос/идею как я понимаю должно быть, но не нашёл примера

Код: Выделить всё

/*цвет и анимация свечения кнопки вкл*/
if(('status')==1){
button1 
  {
    background-color: #777be0;
    background: -webkit-linear-gradient(#0d448c, #126be0);
    background: linear-gradient(#0d448c, #777be0);
    -webkit-animation: pulsate 1s linear infinite;
    animation: pulsate 05.s linear infinite;
  }
/* цвет кнопки выкл*/
else{
button2 
   {
     background-color: #555;
     background: -webkit-linear-gradient(#888, #555);
     background: linear-gradient(#888, #555);
   }
}
Raspberry Pi 3B+
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: сцена с окном IPcam для управления воротами

Сообщение Chainik » Чт окт 11, 2018 9:26 am

Надо использовать код наподбие этого (https://www.youtube.com/watch?v=Ll2mXLq8xv4).
(Взято из темы viewtopic.php?f=6&t=5711).
За это сообщение автора Chainik поблагодарил:
woow (Пт окт 12, 2018 12:51 pm)
Рейтинг: 1.16%
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: сцена с окном IPcam для управления воротами

Сообщение woow » Пт окт 12, 2018 12:55 pm

Маленькими шагами с вашей помощью иду в перёд, теперь упёрся в таймер.
Сценарий такой:
Нажимаю кнопку на сцене открывается ворота, если темно- зажигается лампа и светит 15 мин и гаснет, если не темно- лампа не светит.
И как тут с логикой и синтаксисом

getURL("http://192.168.1.173/control?cmd=Pulse,13,1,5000"); // команда открытия ворот
clearTimeOut("lightOffTimer");
if (getGlobal('lampa.sens')<30){ //sens- это свойство датчика освещённости если освещённость ниже 30lx
getURL("http://192.168.1.172/cm?cmnd=Power%20On"); //команда для включении лампочки
if(getGlobal('lampa.status')=="ON"){ // если лампа включена её status ON
SetTimeOut("lightOffTimer","getURL('http://192.168.1.172/cm?cmnd=Power%20Off');",15*1); // запускаем таймер таймер 15 мин отключения света
}
}

"lightOffTimer" - скопировал чьё то, что это такое и как его создать весь вечер копал, не дорыл...
Raspberry Pi 3B+
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: сцена с окном IPcam для управления воротами

Сообщение nick7zmail » Пт окт 12, 2018 2:37 pm

woow писал(а):
Пт окт 12, 2018 12:55 pm
Маленькими шагами с вашей помощью иду в перёд, теперь упёрся в таймер.
Сценарий такой:
Нажимаю кнопку на сцене открывается ворота, если темно- зажигается лампа и светит 15 мин и гаснет, если не темно- лампа не светит.
И как тут с логикой и синтаксисом

getURL("http://192.168.1.173/control?cmd=Pulse,13,1,5000"); // команда открытия ворот
clearTimeOut("lightOffTimer");
if (getGlobal('lampa.sens')<30){ //sens- это свойство датчика освещённости если освещённость ниже 30lx
getURL("http://192.168.1.172/cm?cmnd=Power%20On"); //команда для включении лампочки
if(getGlobal('lampa.status')=="ON"){ // если лампа включена её status ON
SetTimeOut("lightOffTimer","getURL('http://192.168.1.172/cm?cmnd=Power%20Off');",15*1); // запускаем таймер таймер 15 мин отключения света
}
}

"lightOffTimer" - скопировал чьё то, что это такое и как его создать весь вечер копал, не дорыл...
Вы бы хоть чуть чуть матчасть глянули.
1) Проверьте включают/выключают ли лампу ссылки http://192.168.1.172/cm?cmnd=Power%20Off, если их вписать в строке браузера
2) SetTimeOut и создаёт таймер lightOffTimer
https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/
Синтаксис
SetTimeOut('title','commands', $timeout);
title - заголовок таймера (по нему можно прервать таймер к примеру)
commands - выполняемая команда
$timeout - время в секундах, так что как минимум 15*60.
3) Зачем проверять статус лампы, если вы только что её включили? Мне кажется можно без условия if(getGlobal('lampa.status')=="ON") таймер запускать.
Итого

Код: Выделить всё

getURL("http://192.168.1.173/control?cmd=Pulse,13,1,5000"); // команда открытия ворот
if (getGlobal('lampa.sens')<30){                         //sens- это свойство датчика освещённости если освещённость ниже 30lx
getURL("http://192.168.1.172/cm?cmnd=Power%20On");          //команда для включении лампочки
SetTimeOut("lightOffTimer","getURL('http://192.168.1.172/cm?cmnd=Power%20Off');",15*60); // запускаем таймер таймер 15 мин отключения света
}
За это сообщение автора nick7zmail поблагодарил:
woow (Пт окт 12, 2018 9:45 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: сцена с окном IPcam для управления воротами

Сообщение Chainik » Пт окт 12, 2018 2:48 pm

woow писал(а):
Пт окт 12, 2018 12:55 pm
Маленькими шагами с вашей помощью иду в перёд, теперь упёрся в таймер.
Сценарий такой:
Нажимаю кнопку на сцене открывается ворота, если темно- зажигается лампа и светит 15 мин и гаснет, если не темно- лампа не светит.
И как тут с логикой и синтаксисом
С логикой, вроде все в порядке, правда, ничего не говорится о том, что будет происходить для закрытия ворот. Тут взят вариант для работы "в одну сторону" (только для открытия ворот).
С синтаксисом, на первый взгляд, тоже порядок, кроме продолжительности таймера. Для 15 минут должно быть так (поскольку таймер задается в секундах):

Код: Выделить всё

SetTimeOut("lightOffTimer","getURL('http://192.168.1.172/cm?cmnd=Power%20Off');",15*60);
Еще можете попробовать заменить getURL на file_get_contents. Это может положительно сказаться на скорости выполнения кода.
woow писал(а):
Пт окт 12, 2018 12:55 pm
"lightOffTimer" - скопировал чьё то, что это такое и как его создать весь вечер копал, не дорыл...
"lightOffTimer" - это имя таймера (которое может быть любым, главное, чтобы не совпадало с именами других таймеров). Т.к. при запуске таймера с именем, совпадающем с именем уже запущенного таймера, этот ранее запущенный таймер "убивается" и начинает выполняться новый таймер. Что-то отдельно создавать не надо; таймер вы создаете командой SetTimeOut.
За это сообщение автора Chainik поблагодарил:
woow (Пт окт 12, 2018 9:47 pm)
Рейтинг: 1.16%
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: сцена с окном IPcam для управления воротами

Сообщение woow » Пт окт 12, 2018 10:46 pm

Chainik писал(а):
Пт окт 12, 2018 2:48 pm
... ничего не говорится о том, что будет происходить для закрытия ворот. Тут взят вариант для работы "в одну сторону" (только для открытия ворот).
поскольку после команды открытия ворот, заезд на территорию, а потом сразу закрываю ворота, идёт такая же команда и отсчёт таймера, то есть свет будет загорается и при закрывании. Есть доп кнопка вкл. и откл.
Chainik писал(а):
Пт окт 12, 2018 2:48 pm
С синтаксисом, на первый взгляд, тоже порядок, кроме продолжительности таймера. Для 15 минут должно быть так (поскольку таймер задается в секундах)...
время хотел выставить в секундах для теста, чтобы не ждать 15 мин.
про таймера, в EspEasy http://192.168.1.173/control?cmd=Pulse,13,1,5000 командной Pulse можно играться, а вот Tasmota как-то не понял, так выбрал МД таймер. в прошивке Tasmota есть фишка работы Sonoff RF пультом, Espeasy этого не умеет.
Raspberry Pi 3B+
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: сцена с окном IPcam для управления воротами

Сообщение woow » Вт окт 16, 2018 1:15 pm

Чтобы на CSS кнопочка меняла состояние нужно, чтобы статус её менялся 0 или 1, а у меня приходит команда ON и OFF, как сделать (переписать код) на CSS сам автор не знает, тогда остаётся менять свойство, написал такой Метод переводчик, и в свойствах указал чтобы он запускался по изменению статуса свойства, но не работает.
if(gg('lampa.svt')=="ON"){
sg('lampa.status')=="1");
}
else
{
sg('lampa.status')=="0");
}
Raspberry Pi 3B+
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: сцена с окном IPcam для управления воротами

Сообщение nick7zmail » Вт окт 16, 2018 1:20 pm

Ещё раз настоятельно рекомендую прочитать мат часть перед написанием сценариев! Ссылку оставлял выше. Могу оставить ещё раз, но вы ведь не прочтете https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/ . Там описания всех команд даны, и даже есть примеры как их использовать.

Код: Выделить всё

if(gg('lampa.svt')=="ON"){
sg('lampa.status',"1");
}
else
{
sg('lampa.status',"0");
}
За это сообщение автора nick7zmail поблагодарил:
woow (Вт окт 16, 2018 11:21 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: сцена с окном IPcam для управления воротами

Сообщение woow » Вт окт 16, 2018 11:31 pm

Спасибо за терпение отвечать на такие вопросы. Я этот код и нашёл по вашей указке, но не работал и начал экспериментировать глупо конечно. Но всё ровно код не работает, где ошибка не знаю, Объекты/свойства свойство "svt" меняются ON на OFF , но свойство "status" остаётся не низменным 0.
Raspberry Pi 3B+
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: сцена с окном IPcam для управления воротами

Сообщение Chainik » Вт окт 16, 2018 11:47 pm

Код ув. nick7zmail написал правильный. Но чтобы код исполнялся, мало его написать, что-то его должно запускать. Видимо, у вас ничего этот код не запускает.
Чтобы проверить работоспособность кода, можете поместить его в тестовый сценарий и произвести запуск сценария вручную. Уверен, что код отработает.
Если работоспособность кода подтвердится, можете, например, настроить его запуск по изменению свойства "svt". Для этого поместите код в отдельный метод, а у свойства "svt" сошлитесь за этот метод в "Запускать метод при изменении".
Ответить