Страница 1 из 2
управление циклами
Добавлено: Вт май 23, 2017 12:41 pm
alex32
Добрый день! Связал мегу с МД через брокера. Могу включать и выключать реле через браузер. Реле включается и выключается по срабатыванию датчика через брокера и МД.
Есть мысль замутить управление пеллетной горелкой.
Использую такие команды для управления реле в разделе шаблоны поведения:
callMethod('Реле1.turnOn'); // включаем реле
callMethod('Реле1.turnOff'); // выключаем реле
как можно включать реле на определенное время? например на 1 секунду из 60, т.е. каждую 60-ю секунду. как в МД сделать кнопочки с изменением этого параметра? например реле зажимать на 2 секунды из 60-ти, на 3 и т.д.
Это мне нужно дозировать пеллеты (регулировка мощности горелки).
Re: управление циклами
Добавлено: Вт май 23, 2017 3:01 pm
alex32
$m=date('i',time());
if ($m=="00") {
callMethod('Реле1.turnOn');
}
if ($m=="01") {
callMethod('Реле1.turnOff');
}
может как то так? только не понятно что такое i
Re: управление циклами
Добавлено: Вт май 23, 2017 3:12 pm
Dark_Veter
Может вот так попробывать:
Код: Выделить всё
callMethod('Реле1.turnOn'); // включаем реле
$timeout = 3; // 3 секунды
SetTimeOut("TurnOffRelay","callMethod('Реле1.turnOff');", $timeout); //Запланируем выключить реле через $timeout секунд
Re: управление циклами
Добавлено: Вт май 23, 2017 3:17 pm
alex32
а как автоматически повторить цикл через 57 секунд?
еще нужно как то этот цикл активировать и деактивировать, чтобы активировать другой.
Re: управление циклами
Добавлено: Вт май 23, 2017 3:21 pm
Dark_Veter
ну примерное так же, через SetTimeOut. Можете создать сценарий с выше написанным кодом, и из SetTimeOut вызывать уже его.
Re: управление циклами
Добавлено: Вт май 23, 2017 3:39 pm
alex32
если я сделаю такой сценарий, то реле включится на 3 секунды и все. не догоняю как заново запустить
Re: управление циклами
Добавлено: Вт май 23, 2017 3:50 pm
Dark_Veter
Ну примерно так наверное:
Создаете сценарий с именем (например) relayOnOff, туда пишете код:
Код: Выделить всё
callMethod('Реле1.turnOn'); // включаем реле
$timeout = 3; // 3 секунды
SetTimeOut("TurnOffRelay","callMethod('Реле1.turnOff');", $timeout); //Запланируем выключить реле через $timeout секунд
SetTimeOut("relayOnOff","runScript('relayOnOff');", 60); // Запланируем запуск себя через 60 сек
Т.е. сценарий будет планировать выполнить сам себя через 60 сек.
Можно создать 2 сценария relayOn и relayOff, из первого запланировать запуск второго через 3 сек, а из второго запуск первого через 57 сек.
Re: управление циклами
Добавлено: Вт май 23, 2017 4:13 pm
alex32
Создал переключатель. зацепил запуск сценария. реле начало включаться. как теперь остановить этот сценарий? и как индицировать включен он или нет на этой кнопке или на индикаторе рядом?
Re: управление циклами
Добавлено: Вт май 23, 2017 4:46 pm
Dark_Veter
Чтобы остановить выполните ClearTimeOut("relayOnOff");
Чтобы добавить индикацию можно записывать в какое-нибудь свойство 1 при запуске сценария, и 0 при его остановке.
Re: управление циклами
Добавлено: Вт май 23, 2017 4:52 pm
alex32
спасибо огромное. больше вопросов пока нет. попробую несколько режимов сделать.