Um generisch alle Readings von FHEM an den MQTT-Broker weiterzugeben (z.B. Daten von EnoceanPi), kann diese Minimalkonfiguration verwendet werden:
define lb_mosquitto MQTT loxberry:1883 loxberry <deinMQTTPasswort> define mqttGeneric MQTT_GENERIC_BRIDGE attr mqttGeneric IODev lb_mosquitto attr mqttGeneric globalDefaults sub:qos=2 pub:qos=0 retain=1 attr mqttGeneric globalPublish *:topic={"fhemwohnzimmer/$device/$reading"}
Kurz-Beschreibung:
Zeile 1: lb_mosquitto ist der Name der Verbindung, und loxberry:1883 der Hostname:Port des Brokers am LoxBerry. Dahinter der Benutzer und das Passwort des MQTT-Brokers (siehst du im Plugin unter MQTT-Broker)
Zeile 2: Das GENERIC_BRIDGE Plugin wird definiert
Zeile 3: Der generischen Bridge wird die Verbindung zugeordnet
Zeile 4: Es wird mit retain=1 an den Broker übergeben, d.h. das LoxBerry MQTT Gateway erhält bei einem Neustart die letzten Daten
Zeile 5: Es wird * (alles) an das Topic fhemwohnzimmer/device/reading übergeben.
Im LoxBerry MQTT Gateway folgende Subscription erstellen: fhemwohnzimmer/#
Mit Filter-Attributen in mqttGeneric können die übermittelten Readings eingegrenzt werden (z.B. nur Temperatur), siehe Doku.
Dokumentation des FHEM mqttGeneric Moduls: https://fhem.de/commandref_DE.html#MQTT_GENERIC_BRIDGE
FHEM-Dienststatus per MQTT publishen
Der Status von FHEM selbst kann auf diese Weise an den Broker übergeben werden:
attr lb_mosquitto last-will retain:1 fhemwohnzimmer/connection/status disconnected attr lb_mosquitto on-connect retain:1 {Log3("mqtt",3,"connected to MQTT server");;1} fhemwohnzimmer/connection/status connected attr lb_mosquitto on-disconnect retain:1 {Log3("mqtt",3,"disconnected from MQTT server");;1} fhemwohnzimmer/connection/status disconnected
Man kann 'connected' und 'disconnected' dann mit Conversions in Zahlen übersetzen (z.B. 1 und 0), oder man übergibt statt 'connected' und 'disconnected' direkt die entsprechenden Zahlen.