Может кто поможет с решением. Написан графический клиент под Windows на Python, который подключается к MQTT брокеру контроллера, собирает и обрабатывает топики, отправляет сообщения и т.д, в общем - то обычный MQTT клиент. Необходимо продумать ситуацию когда программа теряет связь с контроллером , чтоб выполнялся скрипт на стороне контроллера, который бы отключал определенное оборудование.
Собственно вопрос, контроллер как либо понимает что к нему подключена программа? Можно ли как то заставить его мониторить состояние подключения?
Добрый день!
Если я правильно вас понял, вам стоит обратить внимание на использование MQTT Last Will and Testament (LWT) — это механизм, позволяющий отслеживать потерю соединения с устройством.
Также можно реализовать периодическую публикацию “heartbeat” — устройство раз в заданный интервал публикует в MQTT своё состояние, и если публикация долго не приходит, это сигнал о проблеме.
И думаю да, это именно тот механизм который мне нужен. Но как применить его на практике? Я так понимаю что я с клиента должен послать брокеру некое сообщение LWT , и он примет определённые действия в случае потери связи с клиентом? Но как тогда завязать это все на WB Rules? Чтоб в случае потери связи канал виртуального устройства (пускай это будет свитч или кнопка) принимал определённое состояние, а далее уже стандартный скрипт который был переводил нужные мне реле (WB) в состояние false.
Добрый день!
Релевантного опыта с LWT, к сожалению, у меня нет.
В качестве альтернативы можно использовать считывание топика meta/error — он позволяет отслеживать ошибки устройств.