Home Assistant -> FHEM (ohne MQTT) ?

Begonnen von rallye, 14 Februar 2022, 09:05:23

Vorheriges Thema - Nächstes Thema

rallye

Guten Morgen !
Ich habe die Verbindung FHEM<->Homeassistant erfolgreich über MQTT-Bridge realisiert. Die Logik ist in FHEM geblieben, das UI ist zwecks WAF in HA. Nun gibt es allerdings in HA einige Dinge, die ich gerne nach FHEM zur weiteren Verarbeitung durchreichen möchte. So z.B. habe ich für die Heizungssteuerung die Anwesenheitserkennung in FHEM über Owntracks realisiert.Allerdings ist Owntracks (zumindest bei mir und meinen Familienmitgliedern) ziemlich unzuverlässig. Einmal geht es, einmal nicht. Nach 2 Tagen Anwesenheit daheim muss man Owntracks manuell anstoßen. Das nervt mich und meine Familie erst recht. Unter HA habe ich festgestellt ist das sehr zuverlässig realisiert. Nun möchte ich gerne die Entity device_tracker.iphone an FHEM weiterreichen um dort die Heizungs- und Lichtlogik zu implementieren.
Kann mir bitte jemand sagen wie das geht ? Mit MQTT wahrscheinlich nur, indem ich einen Dummy erzeuge, den Wert der entsprechenden Entity zuweise und das dann an FHEM in bewährter Weise weiterzureichen. Aus meiner Sicht wenig elegant, daher diese meine Frage.

Danke
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Zitat von: rallye am 14 Februar 2022, 09:05:23
Kann mir bitte jemand sagen wie das geht ? Mit MQTT wahrscheinlich nur, indem ich einen Dummy erzeuge, den Wert der entsprechenden Entity zuweise und das dann an FHEM in bewährter Weise weiterzureichen. Aus meiner Sicht wenig elegant, daher diese meine Frage.
Nun ja, wenn du es ohne MQTT machen willst, bist du im falschen Forenbereich, und wenn du es mit MQTT lösen willst, dann wäre vermutlich ein MQTT2_DEVICE die elegantere Lösung. (Unterstellt, du kannst/willst einfach bestimmte Werte via MQTT von Home Assistant aus publishen).

PS: Falls du es die Anbindung tatsächlich via "MQTT_BRIDGE"-Modul gemacht hast: Das ist deprecated und sollte asap durch eine Lösung mit MQTT_GENERIC_BRIDGE ersetzt werden. Falls es dieses unselige MQTT_DEVICE+notify (mit "schalte was durchgereicht wird") ist: Das ist hochgradig unsicher und sollte ebenfalls nach MQTT_GENERIC_BRIDGE umgebaut werden (oder wenigstens eine Lösung, die nur bestimmte Befehle durchläßt)....
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rallye

Zitat von: Beta-User am 14 Februar 2022, 09:19:16
Falls du es die Anbindung tatsächlich via "MQTT_BRIDGE"-Modul gemacht hast: Das ist deprecated und sollte asap durch eine Lösung mit MQTT_GENERIC_BRIDGE ersetzt werden. Falls es dieses unselige MQTT_DEVICE+notify (mit "schalte was durchgereicht wird") ist: Das ist hochgradig unsicher und sollte ebenfalls nach MQTT_GENERIC_BRIDGE umgebaut werden (oder wenigstens eine Lösung, die nur bestimmte Befehle durchläßt)....
Nein, nein ! Ich hab das schon über MQTT_GENERIC_BRIDGE gemacht. War lediglich schreibfaul. Sorry, kommt nicht mehr vor.

Zitat von: Beta-User am 14 Februar 2022, 09:19:16
Nun ja, wenn du es ohne MQTT machen willst, bist du im falschen Forenbereich, und wenn du es mit MQTT lösen willst, dann wäre vermutlich ein MQTT2_DEVICE die elegantere Lösung.
Es geht mir nicht darum, dass ich es unbedingt ohne MQTT(2) machen will, sondern ich finde die von mir angedachte Lösung via Dummy (also den Wert von der HA-entity an einen Dummy weiterreichen, den ich dan via MQTT(2) an FHEM weiterreiche) als unelegant. Ich bin in HA allerdings derart neu, dass ich keine andere Lösung weiss und bitte eben hier um Unterstützung (mit oder ohne MQTT)
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Zitat von: rallye am 14 Februar 2022, 09:41:03
Es geht mir nicht darum, dass ich es unbedingt ohne MQTT(2) machen will, sondern ich finde die von mir angedachte Lösung via Dummy (also den Wert von der HA-entity an einen Dummy weiterreichen, den ich dan via MQTT(2) an FHEM weiterreiche) als unelegant. Ich bin in HA allerdings derart neu, dass ich keine andere Lösung weiss und bitte eben hier um Unterstützung (mit oder ohne MQTT)
Wenn du eine "entity" in HA hast, müßte es doch möglich sein, deren Werte von HA aus zu publishen (ich kenne diese Lösung nicht näher). Dann kannst du in FHEM ohne weiteren dummy ein MQTT2_DEVICE draus machen. Wie genau der Weg ist, hängt davon ab, ob du einen externen MQTT-Server im Einsatz hast und welches IO-Modul du nutzt, um die (anderen) Daten mit MQTT_GENERIC_BRIDGE abzugreifen, die an FHEM gesendet werden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rallye

Genau dort hakt es bei mir auch. Ich habe ebenfalls keine Ahnung wie ich die "entity" von HA nach FHEM publishe. FHEM-seitig bin auf MQTT2, also dem internen MQTT-Server
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Wie machst du das denn bei anderen Elementen, du hast das doch wegen dem UI...?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rallye

Bisher habe ich lediglich Daten/Informationen von FHEM nach HA geschickt (und für Homematic Schalter via Mqtt wie in https://forum.fhem.de/index.php/topic,115279.msg1095521.html#msg1095521 beschrieben. Shellies & Zigbee sprechen native MQTT und deshalb habe ich sie direkt (ohne Logik) angebunden.
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Na ja, anscheinend muss man da für jede "entity" was in einer "configuration.yaml" anlegen. Wird vermutlich auch bei dem Ding, das du übertragen willst nicht anders sein. Wie das genau geht (welcher Type, wie die Payloads ermitteln/vercoden usw.), sollte in der Doku von HA zu finden sein. Von "außen" betrachtet verhält sich da FHEM mit einiger Sicherheit auch nicht anders wie z.B. NodeRed oder sonst irgendwas... Es empfängt einfach die Daten, für den Versand mußt du selbst sorgen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rallye

... und genau das "was", was man für jede entity in der configuration.yaml eintragen muss würde mich interessieren. In der HA-Doku habe ich nichts gefunden und dachte eben, dass hier im Forum schon jemand so etwas gemacht hat und mir behilflich sein kann.
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

Beta-User

Nun ja, vielleicht hast du Glück und jemand "wissendes" kann die Frage hier an diesem m.E. ungewöhnlichen Ort beantworten. M.E. ist es zielführender, wenn du dich für eine solche Frage an das passende Forum wendest (=HA in diesem Fall) und dort (vermutlich) auch gleich zeigst, wie der "Ist"-Stand ist.

Ansonsten ist mir übrigens auch neu, dass Owntracks in FHEM ein Problem haben sollte... (soweit mir bekannt, nutzt das z.B. Otto123 seit längerem und ohne Stress).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rallye

Zitat von: Beta-User am 14 Februar 2022, 14:12:07
Ansonsten ist mir übrigens auch neu, dass Owntracks in FHEM ein Problem haben sollte... (soweit mir bekannt, nutzt das z.B. Otto123 seit längerem und ohne Stress).
off-topic: Die Verwendung von OT durch Otto ist mir bekannt. Wenn man sich täglich "bewegt" macht Owntracks auch keine Probleme. Nur wenn man (in Covid-Zeiten) öfter mal länger daheim bleibt gibt's (zumindest bei uns) Probleme. Ich hab mic diesbezüglich auch schon an das TO-Development gewandt...
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

hexenmeister

Falls Du noch keine Lösung zum Senden der Werte aus HA per MQTT gefunden haben solltest...
Das Zauberwort heißt mqtt_statestream.
s. https://www.home-assistant.io/integrations/mqtt_statestream/

Du musst auch nicht jeden Wert einzeln konfigurieren (aber du kannst), es geht auch gruppenweise (pro domain), es gibt include, exclude,.. Man findet für jeden Anwendungsfall eine Lösung.

Ich habe so den Zustand meines Staubsaugerroboters zurückgeschleift, da seine ANbindung nun mal am besten in HA funktioniert hat.
So sende ich die Werte für dieses ein Entity:
mqtt_statestream:
  base_topic: hass/entity
  publish_attributes: true
  publish_timestamps: true
  include:
    entities:
      - vacuum.viomi_vacuum_v8
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rallye

@hexenmeister: Danke für den guten Tip. Ich habe versucht mich da einzulesen, aber ...

Ich schaffe es die Werte meiner Sensoren von FHEM nach HA zu bringen. Dafür habe ich z.B. folgendes:
HA-seitig:
  - platform: mqtt
    name: Gartenbeleuchtung
    command_topic: "fhem/Licht.Garten/set"
    state_topic: "fhem/Licht.Garten/state"
    payload_on: "on"
    payload_off: "off"
    state_on: "on"
    state_off: "off"
    availability_topic: "fhem/connection/status"
    payload_available: "connected"
    payload_not_available: "disconnected"

und FHEM-seitig:
defmod Licht.Garten CUL_HM 61E1ED
attr Licht.Garten userattr garden garden_map haus haus_map mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long structexclude
attr Licht.Garten .mId 0004
attr Licht.Garten IOgrp VCCU
attr Licht.Garten alias Gartenbeleuchtung
attr Licht.Garten autoReadReg 4_reqStatus
attr Licht.Garten devStateIcon on:light_outdoor@yellow off:light_outdoor
attr Licht.Garten expert defReg,rawReg
attr Licht.Garten firmware 2.8
attr Licht.Garten group Garten
attr Licht.Garten icon icoLichtBaum
attr Licht.Garten model HM-LC-SW1-FM
attr Licht.Garten mqttSubscribe state:stopic={"$base/set"}
attr Licht.Garten peerIDs 00000000
attr Licht.Garten room HASS,HomeBridge
attr Licht.Garten serialNr OEQ1551364
attr Licht.Garten subType switch
attr Licht.Garten webCmd on:off

und
defmod ha_MQTT2 MQTT2_CLIENT 192.168.57.30:1885
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 room MQTT
attr ha_MQTT2 username mosquitto

sowie
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 room MQTT
attr mqttGeneric stateFormat in: incoming-count out: outgoing-count devices: device-count
attr mqttGeneric verbose 0


Wie müsste ich dein Sample bei mir adaptieren und was müsste ich FHEM-seitig noch einfügen ?
Sorry, aber ich bin an dieser Ecke noch ziemlich "blank".

Danke
RaspiPi v4, HM-LGW, 6x HM-TC-IT-WM-W-EU, 11x HM-CC-RT-DN, 1x HUE Bridge, 4x HUE-RC, 5x HUE White&Color, 15xHUE White, 3xHM-LC-SW1-FM, 1xHM-LC-SW2-FM, 1x ConBeeII, 15x Shelly1, 5xShellyplug, Aquara: 2x Temp-Sensor, 1x Vibrationssensor, 2x Lichtsensor, 19x Tür/Fenstersensor

hexenmeister

Sorry für die späte Antwort, ist mir irgendwie untergegangen. Ich hoffe, Du hast eine Lösung bereits gefunden.
Ansonsten...
Um alles von HASS zu versenden sollte ausreichen:
mqtt_statestream:
  base_topic: <hier_topic_angeben>
  publish_attributes: true
  publish_timestamps: true

Vorsicht! Kann viel sein!

Und dann die entsprechende Topics in FHEM zu subscriben. Das ginge mit MQTT2_DEVICE (https://wiki.fhem.de/wiki/MQTT2_DEVICE) oder auch mit MQTT_GENERIC_BRIDGE (https://fhem.de/commandref.html#MQTT_GENERIC_BRIDGE).
Z.B.
defmod TEST dummy
attr TEST mqttSubscribe state:topic=<hier_topic_angeben>

Ggf. (je nach Format) auch noch aus dem JSON dekodieren.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy