Идея следующая:
Majoromo каждые 30 сек получает сообщение по mqtt, например "Arduino online" , если сообщение не приходит, то majordomo дёргает gpio raspberry p3, к которому подключено реле и сбрасывает ардуину.
Направите в нужную сторону?

Модератор: immortal
Код: Выделить всё
if ($params['NEW_VALUE'] == 1) //если ардуина откликнулась
{
setTimeOut("timer_1m", "sg('MHCdata.Watch DOG', 0);", 60*1); //ждём 1м и сбрасываем на 0
}
else{
setTimeOut("timer_1m", "sg('MHCdata.Watchdog_status', 1);", 60*1); //если в течении 1 минуты ардуина не ответила, то ставим стасус 1
}
Код: Выделить всё
$status=$this->getProperty("watchdog_status");
if ($status) {
exec ("gpio -1 write 3 0"); //реле включили
setTimeOut("timer_5s", "sg('MHCdata.watchdog_status', 0);", 5); //через 5 сек сбрасываем статус на 0 (вызывается метод, реле выключается
} else {
exec ("gpio -1 write 3 1");//реле выключили
}