Verbindung HA und FHEM

Servus Zusammen,

Mein Name ist Markus und bin neu Hier. Auch was das Thema HA angeht arbeite ich erst seit ein paar Tagen damit. Ich habe eine Laufende FHEM installation mit einigen 433 MHZ komponenten. Da ich Diese weiterhin nutzen will würde ich gerne eine Verbindung von FHEM zu HA aufbauen und die Geräte von FHEM in HA Anzeigen und auch steuern. Kann ir hier jemand helfen?

Danke und Gruß Markus

Moin Markus,

du kannst dazu den MQTT Broker verwenden. Auf HA Seite ist dieser sicherlich schon konfiguriert. Auf FHEM Seite kommt es darauf an, ob du den verwendest.
Ich habe dazu das Modul MQTT2_CLIENT genutzt, um mich mit dem HA MQTT Broker zu verbinden. Dann nutze ich noch das Modul MQTT_GENERIC_BRIDGE, damit ich alle Status von meinen FHEM Geräten zu HA publishen kann.
Anschließend habe ich noch alle Geräte in HA in den configuration.yaml händisch angelegt.

Vielleicht hilft dir das ja ein wenig. Ansonsten kann ich auch mal einen Teil meiner Konfiguration posten.

Grüße
Tobi

Würe Super wenn Du mir ein Beispiel eines Gerätes und die Config von MQTT2_CLIENT und der MQTT_GENERIC_BRIDGE als Screensot schicken könntest… Danke schon mal

Das sollten wir hinbekommen. Also zuerst legst du eine Verbindung zu deinem vorhandenen MQTT Broker an. Kennwort und Benutzername vorher raussuchen und notieren.
Dann gehst du in FHEM und erstellst einen MQTT2_CLIENT. Ich kopiere mal die Raw definition. Hier sind auf jeden Fall die IP Adresse zu deinem HA MQTT Broker und der Benutzername anzupassen.

defmod ha_MQTT2 MQTT2_CLIENT 192.168.yy.xx:1883
attr ha_MQTT2 clientId fhem
attr ha_MQTT2 keepaliveTimeout 60
attr ha_MQTT2 msgAfterConnect -r fhem/connection/status connected
attr ha_MQTT2 msgBeforeDisconnect -r fhem/connection/status disconnected
attr ha_MQTT2 qosMaxQueueLength 100
attr ha_MQTT2 username BENUTZER_HA_MQTT

Anschließend noch mit “set ha_MQTT2 password PASSWORD” noch das Passwort für die Verbindung eingeben. Danach sollte sich FHEM zum HA MQTT Broker verbinden.

Nun wird die Bridge angelegt:

defmod mqttGeneric MQTT_GENERIC_BRIDGE mqtt room=HASS
attr mqttGeneric IODev ha_MQTT2
attr mqttGeneric globalDefaults sub:qos=2 pub:qos=0 retain=1 base={"fhem/$device"}
attr mqttGeneric globalPublish *:topic={"fhem/$device/$reading"}
attr mqttGeneric icon mqtt_bridge_2
attr mqttGeneric stateFormat in: incoming-count out: outgoing-count devices: device-count
attr mqttGeneric verbose 0

Ich habe als Raum HASS gewählt. Hier müssen später alle Geräte rein, die ihren Status mit HA austauschen sollen.

Jetzt kommen wir zu einem Beispielgerät in FHEM (hier ein Lichtschalter mit dem Name Kueche_Lampe). Da das Gerät bei dir ja schon vorhanden sein sollte, musste du nur ein paar (zusätzliche) Attribute hinzufügen.

attr Kueche_Lampe userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr Kueche_Lampe mqttSubscribe state:stopic={"$base/set"}
attr Kueche_Lampe room HASS

Das war der Teil in FHEM. Damit HA nun auch etwas damit anfangen kann, musst du in der configuration.yaml ein mqtt Objekt anlegen. Pro Gerät eins. Damit abonnierst du quasi das, was FHEM in den MQTT Broker schiebt.

Für das Licht oben also z.B.:

mqtt:
  switch:
    - unique_id: Kueche_Lampe
      name: "Kueche_Lampe"
      state_topic: "fhem/Kueche_Lampe/state"
      command_topic: "fhem/Kueche_Lampe/set"
      availability_topic: "fhem/connection/status"
      payload_available: "connected"
      payload_not_available: "disconnected"
      payload_on: "on"
      payload_off: "off"
      state_on: "on"
      state_off: "off"
      optimistic: false
      qos: 0
      retain: false

Das Licht ist hier als Switch angelegt. Würde sicherlich auch als Light gehen.
Einmal die configuration.yaml neu laden und dann solltest du es sowohl in HA als auch in FHEM steuern können.

So, ich hoffe, ich habe nichts vergessen.

Viel Erfolg!

Das hat Supe funktioniert. Vielen Dank dafür!

Das freut mich zu lesen. Sehr gern.

Hallo @TOBl ,

ich hoffe, ich “hijacke” den Threat hier jetzt nicht, aber ich habe eine “Folgefrage”, die m.E.n. thematisch hier am Besten passt:

Für fhem gibt es Support für den “Duofern Stick”, mit dem man Geräte der Firma Rademacher ansteuern kann. Konkret geht es mir um “Rollotrons”, das sind elektrische Gurtwickler.

Grundsätzlich ist das im Openhab Forum beschrieben, allerdings mit “MQTT1”, was nicht mehr zu funktionieren scheint.

Daher bin ich dankbar für Deine Anleitung, mit der ich fhem endlich im MQTT Explorer sehen kann, und auch die Position der Rollläden ansteuern kann.

In fhem werden jedoch noch weitere Attribute angezeigt, die ich auch gerne steuern können würde. Ich habe verstanden, dass ich dazu das “mqttSubscribe” anpassen muss, komme aber als absoluter fhem Neuling damit - trotz Doku und Google - nicht so recht weiter. Ich vermute, es ist eine Kleinigkeit, aber ich bin am Verzweifeln…

Hier mal der aktuelle Stand:

Mit dieser Einstellung und der Erweiterung des mqttSubscribe habe ich auf dem Topic fhem/DUOFERN_610AC8/set/manualMode ein ‘on’ geschrieben, aber keine Reaktion in fhem oder MQTT erhalten.

Hast Du / hat jemand vielleicht einen Tip für mich?

Vielen Dank im Voraus!

Update:
@Tom: never mind :upside_down_face:

Dieser Thread hat mir weitergeholfen.

Es ist einfacher, als ich gedacht hatte.

mqttSubscribe des Shutter_Bedroom muss einfach nur auf *:stopic={"$base/set/$reading"} gesetzt werden…

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

1 „Gefällt mir“