Beispiel: MQTT_Bridge mit Rückmeldung

Begonnen von blecher-at, 01 Dezember 2017, 18:47:12

Vorheriges Thema - Nächstes Thema

blecher-at

Usecase: MQTT wird als fhem2fhem-Alternative verwendet um ein remote-gerät (simples beispiel mit einer led) zu steuern.
Hier eine Zusammenfassung meiner Config die ich aus einigen Beiträgen hier im Forum und viel code-reading zusammengestellt habe, vielleicht nützt sie jemandem.

Bis der SLAVE für die publishState on/off zurückmeldet, bleibt der status am master auf set_on/set_off. Erst das reading im rückkanal setzt den status auf on/off.
Damit wird ein ausfall oder schlechte performance des slave sofort in der GUI sichtbar.

MASTER-FHEM:


define ALARM_LED MQTT_DEVICE
attr ALARM_LED IODev MQTT
attr ALARM_LED autoSubscribeReadings SLAVE1/ALARM_LED/+
attr ALARM_LED publishSet on off SLAVE1/ALARM_LED/state/set
attr ALARM_LED eventMap { usr=>{"on"=>"set_on", "off"=>"set_off"} }
attr ALARM_LED stateFormat state


SLAVE-FHEM der eine GPIO-LED steuert:

define ALARM_LED RPI_GPIO 1
attr ALARM_LED direction output
attr ALARM_LED eventMap { dev=>{}, usr=>{"set_on"=>"on", "set_off"=>"off"} }

define MQTT_ALARM_LED MQTT_BRIDGE ALARM_LED
attr MQTT_ALARM_LED IODev MQTT
attr MQTT_ALARM_LED publish-topic-base SLAVE1/ALARM_LED/
attr MQTT_ALARM_LED publishState SLAVE1/ALARM_LED/state
attr MQTT_ALARM_LED subscribeSet SLAVE1/ALARM_LED/state/set