Verbindung FHEM - MQTT - Home Assistant

Begonnen von sunrise, 16 November 2022, 07:16:27

Vorheriges Thema - Nächstes Thema

sunrise

Hallo zusammen!

Auf meinem RPi 2 läuft FHEM, und am RPi hängt über einen USB-Seriell-Adapter meine Luftwärmepumpe, deren Werte ich in FHEM lesen und setzen kann (mittels ser2net im lokalen Netzwerk). Nun möchte ich die Kommunikation (Lesen & Schreiben) mit meinem Home Assistant (läuft auf einem anderen Gerät) verbinden, auf dem bereits ein MQTT Service läuft (auch für andere Geräte im Haus). Könnt Ihr mir bitte einen Hinweis geben, wie das funktioniert? Ich verstehe nicht, was ich bzgl. MQTT in FHEM einrichten muss.

Herzlichen Dank für Eure Hilfe! :)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

Zu dem Thema gibt es schon gefühlt 1000 Beiträge...

Die verschiedenen Möglichkeiten der Kommunikation von und zu einem entfernten Gerät (HomeAssistant ist eigentlich aus FHEM-Sicht dann auch nichts anderes) hat Rudi hier schön zusammengefasst:
https://forum.fhem.de/index.php/topic,129896.msg1241583.html#msg1241583 und
https://forum.fhem.de/index.php/topic,129896.msg1241617.html#msg1241617
Nur, dass du bei einem entfernten Server halt (sinnvollerweise) MQTT2_CLIENT nehmen solltest, um die Kommunikation mit dem MQTT-Server zu verwalten.

Wegen nur einem Gerät würde ich die raw-Event+notify-Variante nehmen, falls du Interesse an der "Luxusversion" für viele Geräte hast: https://wiki.fhem.de/wiki/MQTT_GENERIC_BRIDGE
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

#2
Danke! Die gefühlten 1000 Beiträge zu dem Thema sind mein Problem, denn ich sehe den Wald vor lauter Bäumen nicht. Benötige ich auf FHEM nun die MQTT-Bridge oder MQTT2? Einen entfernen MQTT Server habe ich ja bereits. Ich nutze FHEM nur für die Heizung und plane auch nichts anderes, d.h. ich benötige keine "Luxus-Variante". ;)

Nochmal zu meinem Verständnis: Ist es das, was ich benötige?
https://wiki.fhem.de/wiki/MQTT_GENERIC_BRIDGE
Ich frage, weil dies im selben Satz mit "raw-Event+notify-Variante" steht. Wenn MQTT_GENERIC_BRIDGE die "Luxus-Variante" ist, was wäre die Alternative? (short & simple, da nur ein Gerät)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

Zitat von: sunrise am 16 November 2022, 14:39:15
Danke! Die gefühlten 1000 Beiträge zu dem Thema sind mein Problem, denn ich sehe den Wald vor lauter Bäumen nicht. Benötige ich auf FHEM nun die MQTT-Bridge oder MQTT2? Einen entfernen MQTT Server habe ich ja bereits. Ich nutze FHEM nur für die Heizung und plane auch nichts anderes, d.h. ich benötige keine "Luxus-Variante". ;)
Wenn du mit MQTT-Bridge das Modul 00_MQTT.pm meinst: das würde ich nicht nehmen, wenn du das Gerät auch (von HA aus) steuern willst...

MQTT_BRIDGE gab es auch mal, aber das ist aus gutem Grund deprecated => nicht verwenden!

Zitat
Nochmal zu meinem Verständnis: Ist es das, was ich benötige?
https://wiki.fhem.de/wiki/MQTT_GENERIC_BRIDGE
Ich frage, weil dies im selben Satz mit "raw-Event+notify-Variante" steht. Wenn MQTT_GENERIC_BRIDGE die "Luxus-Variante" ist, was wäre die Alternative? (short & simple, da nur ein Gerät)
raw-Event+notify ist nicht dasselbe wie MQTT_GENERIC_BRIDGE.

raw-Event+notify geht mit MQTT2_CLIENT, um Anweisungen zu empfangen. Für's senden brauchst du dann noch (ohne MGB) notify (oä.) + publish-Anweisung an das IO (hier: MQTT2_CLIENT).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

#4
Also ich verstehe dies hier nicht:
ZitatDas MQTT Gateway wird angelegt mit define 'meinMQTT2Client MQTT2_CLIENT <host>:<port>
https://wiki.fhem.de/wiki/MQTT2_CLIENT

Sind 'host' und 'port' identisch zu IP+Port des Geräts, auf dem FHEM läuft?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

Nein. Das sind die Koordinaten des MQTT-Servers...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

Autsch, klar! :blush:

Und was macht das alleinige Apostroph hier dem define? Ist es überflüssig oder fehlt hinten noch eins?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

Typo im Wiki. Im Zweifel immer in die commandref schauten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

#8
Ok, habe "MyMQTT" mit korrekter IP, Port 8083, username (unter 'attr') und password (mittels 'set') definiert.
Was ist für 'rawEvents' unter 'attr' zu setzen?

Danke für Deine/Eure Geduld! :)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

rawEvents muss dann dahin zeigen, wo du deine Anweisungen hinschicken willst, also den Topic-Zweig.

Würde mal "fhem/set/.*" vorschlagen.

Dann auch gleich "subscriptions" auf diesen Zweig beschränken, allerdings ist da die Syntax etwas anders:attr MyMQTT subscriptions fhem/set/#
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

#10
Zitat von: Beta-User am 17 November 2022, 06:47:18
rawEvents muss dann dahin zeigen, wo du deine Anweisungen hinschicken willst, also den Topic-Zweig.

Würde mal "fhem/set/.*" vorschlagen.

Dann auch gleich "subscriptions" auf diesen Zweig beschränken, allerdings ist da die Syntax etwas anders:attr MyMQTT subscriptions fhem/set/#
Vielen Dank! Ich dachte, nun alles korrekt eingestellt zu haben (siehe Screenshot), aber der Status bleibt auf "disconnected" stehen. Zur Erläuterung: pi4.fritz.box ist mein lokaler RPi 4, auf dem der MQTT Server läuft, während pi.fritz.box (taucht auf dem Screenshot nicht auf) mein lokaler RPi 2 ist, auf dem FHEM (und ser2net) läuft.

Was übersehe ich? Wo ist das MQTT Log bzw. ein Log, wo ich sehen kann, was bzgl. MQTT nicht funktioniert?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Ist es übrigens normal, dass nach einem FHEM Shutdown + Restart alle Einstellungen weg sind, also nicht nur die bzgl. MQTT2, sondern auch bzgl. meiner Wärmepumpe?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

Beta-User

1., dass Screenshots Mist sind, und 2., dass der übliche Port für MQTT 1883 ist....
Gespeichert wird mit save.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

sunrise

#13
Danke, das mit den Ports verwechsle ich ständig (FHEM:8083 vs. MQTT:1883).
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

#14
Prima, nun ist er 'opened'. Kaum macht man's richtig, funktioniert's. ;)

Ah, verstehe, habe den "Copy" Knopf unten gefunden:
define MyMQTT MQTT2_CLIENT pi4.fritz.box:1883
attr MyMQTT rawEvents fhem/set/.*
attr MyMQTT subscriptions fhem/set/#
attr MyMQTT username xxxxx
#   BUF       
#   CFGFN     
#   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
#   ClientsKeepOrder 1
#   DEF        pi4.fritz.box:1883
#   DeviceName pi4.fritz.box:1883
#   FD         11
#   FUUID      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#   NAME       MyMQTT
#   NR         24
#   PARTIAL   
#   STATE      opened
#   TYPE       MQTT2_CLIENT
#   WBCallback
#   clientId   MyMQTT
#   eventCount 12
#   lastMsgTime xxxxxxxxxxx.xxxxx
#   nextOpenDelay 5
#   MatchList:
#     1:MQTT2_DEVICE ^.
#     2:MQTT_GENERIC_BRIDGE ^.
#   READINGS:
#     2022-11-17 19:06:12   state           opened
#
setstate MyMQTT opened
setstate MyMQTT 2022-11-17 19:06:12 state opened

Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2