iobroker + arduino + MQTT

nazemnow
Offline
Зарегистрирован: 12.01.2017

Добрый вечер!
Ситуация следующая:

Есть Расберри пи, на которой Raspbian + ioBroker + Mosquitto
Есть Ардуины, на которых стоят выключатели, сенсоры и блоки реле.

Идея - управлять всем этим добром по MQTT. 
Сами по себе публикации и подписки работают, но после перезагрузки Ардуины она выставляет все gpio в дефолтные значения.

Задача - после перезагрузки Ардуины получить актуальные состояния от iobroker/последние публикации по определенным топикам (или даже не знаю как выразиться правильно).

Была попытка реализации следующая: при включении Ардуины публикуется значение, скрипт на сервере при этом публикует (повторяет) актуальные состояния

setState('mqtt.0.kitchen.ledwork', getState('mqtt.0.kitchen.ledwork').val, true);

Но такой "колхоз" не прокатывает - дуина (или москито) реагирует только на изменение значения.

Вопрос - как можно реализовать подобное? Возможно кто-то придумал более простой / логичный / правильный способ.
 

maksmkv
Offline
Зарегистрирован: 07.04.2013

Сам только  начал работать  с mosquitto и  MQTT - тоже много вопросов,  а  именно  потеря mosquitto  arduino 

nazemnow
Offline
Зарегистрирован: 12.01.2017

Я воспользовался логикой с примера mqtt_basic с самой библиотеки.
При потере связи - реконнект.

Уже недели 2 все работает отлично. 

maksmkv
Offline
Зарегистрирован: 07.04.2013

А не подскажите  тогда,  как праивльно  управлять  на самой majordomo реле, если  код 

mosquitto_pub -t home/MQTTto433/ -m 1315156 

 

в mosquitto отправляешь - и реле щелкает,  а  как такое  добавить  в  сам majordomo?