Страница 2 из 3
Re: сцена с окном IPcam для управления воротами
Добавлено: Чт окт 11, 2018 8:44 am
woow
На сцене кнопка 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);
}
}
Re: сцена с окном IPcam для управления воротами
Добавлено: Чт окт 11, 2018 9:26 am
Chainik
Re: сцена с окном IPcam для управления воротами
Добавлено: Пт окт 12, 2018 12:55 pm
woow
Маленькими шагами с вашей помощью иду в перёд, теперь упёрся в таймер.
Сценарий такой:
Нажимаю кнопку на сцене открывается ворота, если темно- зажигается лампа и светит 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" - скопировал чьё то, что это такое и как его создать весь вечер копал, не дорыл...
Re: сцена с окном IPcam для управления воротами
Добавлено: Пт окт 12, 2018 2:37 pm
nick7zmail
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 мин отключения света
}
Re: сцена с окном IPcam для управления воротами
Добавлено: Пт окт 12, 2018 2:48 pm
Chainik
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.
Re: сцена с окном IPcam для управления воротами
Добавлено: Пт окт 12, 2018 10:46 pm
woow
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 этого не умеет.
Re: сцена с окном IPcam для управления воротами
Добавлено: Вт окт 16, 2018 1:15 pm
woow
Чтобы на CSS кнопочка меняла состояние нужно, чтобы статус её менялся 0 или 1, а у меня приходит команда ON и OFF, как сделать (переписать код) на CSS сам автор не знает, тогда остаётся менять свойство, написал такой Метод переводчик, и в свойствах указал чтобы он запускался по изменению статуса свойства, но не работает.
if(gg('lampa.svt')=="ON"){
sg('lampa.status')=="1");
}
else
{
sg('lampa.status')=="0");
}
Re: сцена с окном IPcam для управления воротами
Добавлено: Вт окт 16, 2018 1:20 pm
nick7zmail
Ещё раз
настоятельно рекомендую прочитать мат часть перед написанием сценариев! Ссылку оставлял выше. Могу оставить ещё раз, но вы ведь не прочтете
https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/ . Там описания всех команд даны, и даже есть примеры как их использовать.
Код: Выделить всё
if(gg('lampa.svt')=="ON"){
sg('lampa.status',"1");
}
else
{
sg('lampa.status',"0");
}
Re: сцена с окном IPcam для управления воротами
Добавлено: Вт окт 16, 2018 11:31 pm
woow
Спасибо за терпение отвечать на такие вопросы. Я этот код и нашёл по вашей указке, но не работал и начал экспериментировать глупо конечно. Но всё ровно код не работает, где ошибка не знаю, Объекты/свойства свойство "svt" меняются ON на OFF , но свойство "status" остаётся не низменным 0.
Re: сцена с окном IPcam для управления воротами
Добавлено: Вт окт 16, 2018 11:47 pm
Chainik
Код ув. nick7zmail написал правильный. Но чтобы код исполнялся, мало его написать, что-то его должно запускать. Видимо, у вас ничего этот код не запускает.
Чтобы проверить работоспособность кода, можете поместить его в тестовый сценарий и произвести запуск сценария вручную. Уверен, что код отработает.
Если работоспособность кода подтвердится, можете, например, настроить его запуск по изменению свойства "svt". Для этого поместите код в отдельный метод, а у свойства "svt" сошлитесь за этот метод в "Запускать метод при изменении".