Отключение по сценарию.

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

Модератор: immortal

Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Отключение по сценарию.

Сообщение Forth » Вс мар 15, 2020 3:06 pm

Не могу разобраться почему не работает сценарий отключение по времени , прошу оказать консультацию.
Необходимо на даче отключать по определенному периоду кран полива в теплице.
Но почему то функция setTimeOut('15 сек', " setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('15')); у меня ну не как не хочет работать
Хочу при активности кнопки 1 logicAction включать сценарий отключения полива в зависимости от выбранных данных
https://ru.files.fm/u/sfzdvmne
Но по сценарию не отключается, подскажите пожалуйста, что я не так делаю?

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

if (timeIs(getGlobal('Tame_1_Kr_Utro'.'.'.'Tame_On')) && getGlobal('Kr_1_Off'.'.'.'status') == 0 && getGlobal('Kr_1_Utro'.'.'.'status') == 1) 
{
  //if (getGlobal('DenPoliva'.'.'.'status') <= date("d.m.y")) // необходимо доработать
  //{
    if (getGlobal('Kr_1_Utro'.'.'.'status') == 1) 
    {
     setGlobal('Rele_1_K'.'.'.'status', '1');
     if (getGlobal('Kr_1_2min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('60')); //время полива при нажатой 1 кнопки (2мин - 120)
     }
     if (getGlobal('Kr_1_4min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('120')); //время полива при нажатой 2 кнопки (4мин - 240)
     }
     if (getGlobal('Kr_1_6min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('180')); //время полива при нажатой 3 кнопки (6мин - 360)
     }
     if (getGlobal('Kr_1_8min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('240')); //время полива при нажатой 4 кнопки (8мин-480)
     }
     if (getGlobal('Kr_1_5min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('300')); //время полива при нажатой 5 кнопки (5мин - 300)
     }
     if (getGlobal('Kr_1_10min'.'.'.'status') == 1) 
     {
      setTimeOut('Выключить через', "  setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('360')); //время полива при нажатой 6 кнопки (10мин - 600)
     }
      say(time_poliva,2);
    }
}
Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Re: Отключение по сценарию.

Сообщение Forth » Вс мар 15, 2020 4:11 pm

Почему если в методе logicAction ставлю так setGlobal('Rele_1_K'.'.'.'status', '0'); то работает, сразу отключает, а так не работает setTimeOut('Выключить через', " setGlobal('Rele_1_K'.'.'.'status', '0');", (int)('120'));
:cry:
Logrus
Сообщения: 2113
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 317 раз
Поблагодарили: 466 раз

Re: Отключение по сценарию.

Сообщение Logrus » Вс мар 15, 2020 4:17 pm

setTimeOut('off_timer_2_minutes', "setGlobal('Rele_1_K.status', 0);", 120);
За это сообщение автора Logrus поблагодарил:
Forth (Пн мар 16, 2020 5:45 am)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Re: Отключение по сценарию.

Сообщение Forth » Вс мар 15, 2020 5:06 pm

Logrus писал(а):
Вс мар 15, 2020 4:17 pm
setTimeOut('off_timer_2_minutes', "setGlobal('Rele_1_K.status', 0);", 120);
Спасибо не жалко, но не работает :(
В чем же дело?
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Отключение по сценарию.

Сообщение xor » Вс мар 15, 2020 6:29 pm

Forth писал(а):
Вс мар 15, 2020 5:06 pm
Logrus писал(а):
Вс мар 15, 2020 4:17 pm
setTimeOut('off_timer_2_minutes', "setGlobal('Rele_1_K.status', 0);", 120);
Спасибо не жалко, но не работает :(
В чем же дело?
вы спасибо не поставили)
в консоли эта строка выполняется? в х-рее в закладке таймеров появляется?
За это сообщение автора xor поблагодарил:
Forth (Пн мар 16, 2020 5:45 am)
Рейтинг: 1.16%
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Отключение по сценарию.

Сообщение Chainik » Вс мар 15, 2020 6:39 pm

На всякий случай попробуйте вид кавычек поменять.

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

setTimeOut('off_timer_2_minutes','setGlobal("Rele_1_K.status", 0);',120);
За это сообщение автора Chainik поблагодарил:
Forth (Пн мар 16, 2020 5:46 am)
Рейтинг: 1.16%
Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Re: Отключение по сценарию.

Сообщение Forth » Пн мар 16, 2020 5:47 am

Chainik писал(а):
Вс мар 15, 2020 6:39 pm
На всякий случай попробуйте вид кавычек поменять.

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

setTimeOut('off_timer_2_minutes','setGlobal("Rele_1_K.status", 0);',120);
Смена кавычек не помогает :(
Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Re: Отключение по сценарию.

Сообщение Forth » Пн мар 16, 2020 5:59 am

xor писал(а):
Вс мар 15, 2020 6:29 pm
в консоли эта строка выполняется? в х-рее в закладке таймеров появляется?
Я не знаю как открыть консоль, вот найду как консоль открывается и проверю команду.
тут описание есть, а как её открывать информации нет https://kb.mjdm.ru/faq/#toc39
>>в х-рее в закладке таймеров появляется?
И это для меня диковинка, как это найти, где почитать?
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: Отключение по сценарию.

Сообщение Chainik » Пн мар 16, 2020 8:47 am

Forth писал(а):
Пн мар 16, 2020 5:59 am
xor писал(а):
Вс мар 15, 2020 6:29 pm
в консоли эта строка выполняется? в х-рее в закладке таймеров появляется?
Я не знаю как открыть консоль, вот найду как консоль открывается и проверю команду.
тут описание есть, а как её открывать информации нет https://kb.mjdm.ru/faq/#toc39
>>в х-рее в закладке таймеров появляется?
И это для меня диковинка, как это найти, где почитать?
Когда в Панель управления входите, наверху Консоль и X-Ray. В Консоль надо вставить команду и выполнить, а потом в X-Ray надо смотреть на вкладку "Таймеры" (появился там таймер или нет).
За это сообщение автора Chainik поблагодарил:
Forth (Пн мар 16, 2020 8:10 pm)
Рейтинг: 1.16%
Forth
Сообщения: 48
Зарегистрирован: Вс янв 13, 2019 4:37 pm
Благодарил (а): 39 раз
Поблагодарили: 0

Re: Отключение по сценарию.

Сообщение Forth » Пн мар 16, 2020 8:26 pm

Chainik писал(а):
Пн мар 16, 2020 8:47 am
Когда в Панель управления входите, наверху Консоль и X-Ray. В Консоль надо вставить команду и выполнить, а потом в X-Ray надо смотреть на вкладку "Таймеры" (появился там таймер или нет).
Большое спасибо за консультацию.
На закладке Timers обнаружил следующую ошибку.
Прошу дать рекомендацию по её устранению.

Error
Details
http://192.168.2.3/admin.php?pd=cGFuZWw ... =undefined
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
SELECT jobs.* FROM jobs WHERE EXPIRED!=1 AND PROCESSED!=1 AND 1 ORDER BY jobs.RUNTIME

При запуске команды
setTimeOut('off_timer_2_minutes', "setGlobal('Rele_1_K.status', 0);", 12);

Error
Details
http://192.168.2.3/admin.php?pd=pz_&md= ... setTimeOut(%27off_timer_2_minutes%27%2C%20%22setGlobal(%27Rele_1_K.status%27%2C%200)%3B%22%2C%2012)%3B
145: Table '.\db_terminal\jobs' is marked as crashed and should be repaired
DELETE FROM jobs WHERE TITLE = 'off_timer_2_minutes'
Ответить