управление циклами
Модератор: immortal
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
управление циклами
Добрый день! Связал мегу с МД через брокера. Могу включать и выключать реле через браузер. Реле включается и выключается по срабатыванию датчика через брокера и МД.
Есть мысль замутить управление пеллетной горелкой.
Использую такие команды для управления реле в разделе шаблоны поведения:
callMethod('Реле1.turnOn'); // включаем реле
callMethod('Реле1.turnOff'); // выключаем реле
как можно включать реле на определенное время? например на 1 секунду из 60, т.е. каждую 60-ю секунду. как в МД сделать кнопочки с изменением этого параметра? например реле зажимать на 2 секунды из 60-ти, на 3 и т.д.
Это мне нужно дозировать пеллеты (регулировка мощности горелки).
Есть мысль замутить управление пеллетной горелкой.
Использую такие команды для управления реле в разделе шаблоны поведения:
callMethod('Реле1.turnOn'); // включаем реле
callMethod('Реле1.turnOff'); // выключаем реле
как можно включать реле на определенное время? например на 1 секунду из 60, т.е. каждую 60-ю секунду. как в МД сделать кнопочки с изменением этого параметра? например реле зажимать на 2 секунды из 60-ти, на 3 и т.д.
Это мне нужно дозировать пеллеты (регулировка мощности горелки).
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: управление циклами
$m=date('i',time());
if ($m=="00") {
callMethod('Реле1.turnOn');
}
if ($m=="01") {
callMethod('Реле1.turnOff');
}
может как то так? только не понятно что такое i
if ($m=="00") {
callMethod('Реле1.turnOn');
}
if ($m=="01") {
callMethod('Реле1.turnOff');
}
может как то так? только не понятно что такое i
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: управление циклами
Может вот так попробывать:
Код: Выделить всё
callMethod('Реле1.turnOn'); // включаем реле
$timeout = 3; // 3 секунды
SetTimeOut("TurnOffRelay","callMethod('Реле1.turnOff');", $timeout); //Запланируем выключить реле через $timeout секунд
- За это сообщение автора Dark_Veter поблагодарил:
- alex32 (Вт май 23, 2017 3:18 pm)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: управление циклами
а как автоматически повторить цикл через 57 секунд?
еще нужно как то этот цикл активировать и деактивировать, чтобы активировать другой.
еще нужно как то этот цикл активировать и деактивировать, чтобы активировать другой.
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: управление циклами
ну примерное так же, через SetTimeOut. Можете создать сценарий с выше написанным кодом, и из SetTimeOut вызывать уже его.
- За это сообщение автора Dark_Veter поблагодарил:
- alex32 (Вт май 23, 2017 3:47 pm)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: управление циклами
если я сделаю такой сценарий, то реле включится на 3 секунды и все. не догоняю как заново запустить
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: управление циклами
Ну примерно так наверное:
Создаете сценарий с именем (например) relayOnOff, туда пишете код:
Т.е. сценарий будет планировать выполнить сам себя через 60 сек.
Можно создать 2 сценария relayOn и relayOff, из первого запланировать запуск второго через 3 сек, а из второго запуск первого через 57 сек.
Создаете сценарий с именем (например) relayOnOff, туда пишете код:
Код: Выделить всё
callMethod('Реле1.turnOn'); // включаем реле
$timeout = 3; // 3 секунды
SetTimeOut("TurnOffRelay","callMethod('Реле1.turnOff');", $timeout); //Запланируем выключить реле через $timeout секунд
SetTimeOut("relayOnOff","runScript('relayOnOff');", 60); // Запланируем запуск себя через 60 сек
Можно создать 2 сценария relayOn и relayOff, из первого запланировать запуск второго через 3 сек, а из второго запуск первого через 57 сек.
- За это сообщение автора Dark_Veter поблагодарил:
- alex32 (Вт май 23, 2017 3:59 pm)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: управление циклами
Создал переключатель. зацепил запуск сценария. реле начало включаться. как теперь остановить этот сценарий? и как индицировать включен он или нет на этой кнопке или на индикаторе рядом?
-
- Сообщения: 295
- Зарегистрирован: Вт апр 23, 2013 5:16 pm
- Откуда: Брянск
- Благодарил (а): 18 раз
- Поблагодарили: 94 раза
Re: управление циклами
Чтобы остановить выполните ClearTimeOut("relayOnOff");
Чтобы добавить индикацию можно записывать в какое-нибудь свойство 1 при запуске сценария, и 0 при его остановке.
Чтобы добавить индикацию можно записывать в какое-нибудь свойство 1 при запуске сценария, и 0 при его остановке.
- За это сообщение автора Dark_Veter поблагодарил:
- alex32 (Вт май 23, 2017 4:48 pm)
- Рейтинг: 1.16%
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
-
- Сообщения: 29
- Зарегистрирован: Чт мар 30, 2017 4:14 pm
- Благодарил (а): 7 раз
- Поблагодарили: 0
Re: управление циклами
спасибо огромное. больше вопросов пока нет. попробую несколько режимов сделать.