Verbindung zu HomeAssistant mit MQTT_GENERIC_BRIDGE

Begonnen von edy_80, 25 Oktober 2020, 19:06:36

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: thgorjup am 14 März 2025, 13:53:48Oh, ich habe gerade chatgpt gefragt und habe daraufhin folgendes am demoswitch dummy geändert:

attr demoswitch mqttSubscribe state:stopic={"fhem/demoswitch/set"}

Jetzt funktioniert es. Warum wird denn das vorherige "$base/set" falsch umgesetzt?
Naja, jetzt funtkioniert es aber...
Vielleicht weil da nochmal "fhem" steht?

Kann nicht recht nachvollziehen, warum der Vorschlag nicht übernommen wird, $base für sub und pub unterschiedlich zu setzen...
Server: HP-elitedesk@Debian 13, 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

Rainer82

#271
Hallo, ich habe heute ein Update durchgeführt, danach erscheint ein neues Device, was ist das?

Internals:
   CFGFN     
   CID        0j5eH4le9RPjdts1bLOYse
   DEF        0j5eH4le9RPjdts1bLOYse
   FUUID      68cfabd7-f33f-9f73-d3df-6eb460dec67c3296
   IODev      MQTT2_FHEM_Server
   NAME       0j5eH4le9RPjdts1bLOYse
   NR         776
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 1
   READINGS:
     2025-09-21 09:40:07   IODev           MQTT2_FHEM_Server
     2025-09-21 09:40:07   status          online
     2025-09-21 09:40:27   subscriptions   cloudapp/QBUSMQTTGW/+/state cloudapp/QBUSMQTTGW/config cloudapp/QBUSMQTTGW/state drop_connect/discovery/# dsmr/# fully/deviceInfo/+ homeassistant/alarm_control_panel/+/+/config homeassistant/alarm_control_panel/+/config homeassistant/binary_sensor/+/+/config homeassistant/binary_sensor/+/config homeassistant/button/+/+/config homeassistant/button/+/config homeassistant/camera/+/+/config homeassistant/camera/+/config homeassistant/climate/+/+/config homeassistant/climate/+/config homeassistant/cover/+/+/config homeassistant/cover/+/config homeassistant/device/+/+/config homeassistant/device/+/config homeassistant/device_automation/+/+/config homeassistant/device_automation/+/config homeassistant/device_tracker/+/+/config homeassistant/device_tracker/+/config homeassistant/event/+/+/config homeassistant/event/+/config homeassistant/fan/+/+/config homeassistant/fan/+/config homeassistant/humidifier/+/+/config homeassistant/humidifier/+/config homeassistant/image/+/+/config homeassistant/image/+/config homeassistant/lawn_mower/+/+/config homeassistant/lawn_mower/+/config homeassistant/light/+/+/config homeassistant/light/+/config homeassistant/lock/+/+/config homeassistant/lock/+/config homeassistant/notify/+/+/config homeassistant/notify/+/config homeassistant/number/+/+/config homeassistant/number/+/config homeassistant/scene/+/+/config homeassistant/scene/+/config homeassistant/select/+/+/config homeassistant/select/+/config homeassistant/sensor/+/+/config homeassistant/sensor/+/config homeassistant/siren/+/+/config homeassistant/siren/+/config homeassistant/switch/+/+/config homeassistant/switch/+/config homeassistant/tag/+/+/config homeassistant/tag/+/config homeassistant/text/+/+/config homeassistant/text/+/config homeassistant/update/+/+/config homeassistant/update/+/config homeassistant/vacuum/+/+/config homeassistant/vacuum/+/config homeassistant/valve/+/+/config homeassistant/valve/+/config homeassistant/water_heater/+/+/config homeassistant/water_heater/+/config pglab/discovery/# tasmota/discovery/#
Attributes:
   readingList 0j5eH4le9RPjdts1bLOYse:homeassistant/status:.* status
   room       MQTT2_DEVICE

Rainer82


Beta-User

Da scheint es so etwas wie eine App zu geben, die da automatisch als neuer Client am Server angemeldet wird.

Siehe die subscriptions.
Server: HP-elitedesk@Debian 13, 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

passibe

#274
Home Assistant sendet standardmäßig jedes Mal beim Start/Stop eine Nachricht mit online oder offline an das topic homeassistant/status (birth/last will message).
FHEM hat das gemerkt und dafür mittels autocreate ein Device angelegt.

Die komische client ID 0j5eH4le9RPjdts1bLOYse kommt daher, weil du in den erweiterten MQTT Einstellungen in Home Assistant keine client ID vergeben hast und deshalb die zufallsgenerierte ID genutzt wird. Das kannst du auch ändern (würde ich aber lassen, wenn die client ID sonst noch in irgendwelchen setLists rumschwirrt, nicht, dass es dir da was zerschießt).

Wenn du den Home-Assistant-Status nicht in FHEM haben willst, kannst du das Device also einfach löschen. Damit es nicht wieder auftaucht kannst du entweder
attr MQTT2_FHEM_Server ignoreRegexp homeassistant/statusverwenden (anpassen, falls du aktuell schon ignoreRegexp nutzt!) oder du deaktivierst in Home Assistant die birth/last will messages. Das geht in den MQTT-Einstellungen (Link zur Doku):
ZitatMQTT Birth and Last Will messages can be customized or disabled from the UI. To do this, click on "Configure" in the integration page in the UI, then "Re-configure MQTT" and then "Next".

Rainer82

#275
@passibe

ich hatte vor ein paar Wochen tatsächlich HA per ContainerManager auf der Synology zu Testzwecken installiert und vergessen :-[

Natürlich habe ich den Versuch gestartet, HA zu deaktivieren und FHEM neu zu starten um zu sehen, ob das Device aus dieser Ecke kommt - und so ist es auch.
Habe das attr gesetzt -> kein devivce mehr, thx

seven24

Hallo, ich habe in meinem fhem noch ganz viele Geräte von Max! die noch sehr gut ihren Dienst tun.
Eine Verbindung fhem zu HA via MQTT für die Switche, und Fenster/Türkontakte habe ich auch hinbekommen.
Woran es bei mir scheitert sind die Heizungsthermostate / Wandthermostate. Es sollen ja keine komplexen Steuerungen via MQTT in HAS gemacht werden, eine simple Temperaturänderung, bzw ein Umschalten von auto auf manuel würde mir schon reichen.
Die config.yaml für ein climate wird aber nicht umgesetzt, sondern nur mit Fehlern "abgewährt" :-\ .
Hat wer ein gutes Beispiel für eine HAS config.ymal die eine Max! Thermostat über MQTT steuert?

DANKE im Voraus. :D

sunrise

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

passibe

#278
Poste doch mal wenigstens deine Versuche + Fehlermeldung und ein List eines solchen Max! Thermostats. Ich kann dir dabei zwar leider nicht helfen, weil ich nie tiefer in das YAML-Geschehen von Home Assistant eingestiegen bin, aber ohne jegliche Infos geht es auch für andere nicht.

Ich verstehe aber das Problem nicht ganz, im anderen Post hast du doch schon einiges an Temperatursteuerung eingebunden und zahlreiche YAML-Definitionen für Home Assistant erstellt (bzw. erstellen lassen)? Aber vielleicht verstehe ich da auch was falsch. nevermind, habe gedacht, beide Posts wären von seven24.

sunrise

Poste die Home Assistant Fehler in ChatGPT - das hat mir schon so oft geholfen.
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

gadget

Zitat von: seven24 am 04 November 2025, 17:57:05Hallo, ich habe in meinem fhem noch ganz viele Geräte von Max! die noch sehr gut ihren Dienst tun.
Eine Verbindung fhem zu HA via MQTT für die Switche, und Fenster/Türkontakte habe ich auch hinbekommen.
Woran es bei mir scheitert sind die Heizungsthermostate / Wandthermostate. Es sollen ja keine komplexen Steuerungen via MQTT in HAS gemacht werden, eine simple Temperaturänderung, bzw ein Umschalten von auto auf manuel würde mir schon reichen.
Die config.yaml für ein climate wird aber nicht umgesetzt, sondern nur mit Fehlern "abgewährt" :-\ .
Hat wer ein gutes Beispiel für eine HAS config.ymal die eine Max! Thermostat über MQTT steuert?



Bitte sehr (falls noch relevant):

Max Thermostat:

defmod MAX_12e010 MAX HeatingThermostat 12e010
attr MAX_12e010 userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long scnModeHandling:NOCHANGE,AUTO,MANUAL scnProcessByDesiChange:0,1 scnShutterList
attr MAX_12e010 IODev CULMAX0
attr MAX_12e010 actCycle 3:00
attr MAX_12e010 alias Heizkörper Bad
attr MAX_12e010 event-min-interval haaction:1800,hadesiredTemperature:1800,hamode:1800,temperature:1800,battery:1800,desiredTemperature:600
attr MAX_12e010 event-on-change-reading haaction,hadesiredTemperature,hamode,temperature,battery,valveposition,state,mode,desiredTemperature
attr MAX_12e010 event-on-update-reading haaction,hadesiredTemperature,hamode,temperature,battery,valveposition,state,mode,desiredTemperature
attr MAX_12e010 eventMap { usr=>{ '^on'=>'desiredTemperature auto', '^off'=>'desiredTemperature off', '^heat'=>'desiredTemperature auto', '^auto'=>'desiredTemperature auto'},  fw=>{'^on'=>'on', '^off'=>'off', '^heat'=>'heat', '^auto'=>'auto'}}
attr MAX_12e010 group Heizkörper
attr MAX_12e010 icon sani_heating
attr MAX_12e010 model HeatingThermostat
attr MAX_12e010 mqttPublish battery|haaction|hadesiredTemperature|hamode|temperature|battery:topic={"$base/$name"}
attr MAX_12e010 mqttSubscribe desiredTemperature:stopic={"$base/desiredTemperature/set"} state:stopic={"$base/hamode/set"}
attr MAX_12e010 room Bad,HASS,MAX
attr MAX_12e010 scanTemp 1
attr MAX_12e010 scnModeHandling NOCHANGE
attr MAX_12e010 scnProcessByDesiChange 1
attr MAX_12e010 stateFormat T: temperature°C D: desiredTemperature°C V: valveposition% M: mode
attr MAX_12e010 userReadings haaction {if(ReadingsVal($name,"valveposition","") eq "0") {return 'off'} else {return 'heating'}},\
hamode {if(ReadingsVal($name,"state","") eq "off") {return 'off'} elsif (ReadingsVal($name,"mode","") eq "auto") {return 'auto'} else {return 'heat'}},\
hadesiredTemperature {return (ReadingsNum($name,"desiredTemperature",0,1))}
attr MAX_12e010 webCmd on:off:auto:desiredTemperature


Gegenstück in HA mqtt.yaml

##############################
climate:
##############################
  - name: "Bad"
    availability_topic: "fhem/connection/status"
    payload_available: "connected"
    payload_not_available: "disconnected"
    action_topic: "fhem/MAX_12e010/haaction"
    precision: 0.5
    min_temp: 5.0
    max_temp: 30.0
    temperature_unit: C
    temperature_state_topic: "fhem/MAX_12e010/hadesiredTemperature"
    temperature_command_topic: "fhem/MAX_12e010/desiredTemperature/set"
    mode_state_topic: "fhem/MAX_12e010/hamode"
    modes:
      - "off"
      - "heat"
      - "auto"
    mode_command_topic: "fhem/MAX_12e010/hamode/set"
    ### current_temperature_topic: "fhem/MAX_12e010/temperature"
    ### Zigbee Sensor für Ist-Temperatur statt Sensor im Thermostat
    current_temperature_topic: "zigbee2mqtt/TH_Bad"
    current_temperature_template: "{{ value_json.temperature }}"

prenzela

Hallo , mein Smarthome hat noch viele EnOcean Geräte. Die sollen auch bleiben. Ich habe jetzt schon diverse Schalter und Sensoren nach über MQTT an HA anbinden können. Es scheitert aktuell noch an den Rollos. Das sind Becker N01 bzw Eltako FAM60 EnOcean Antriebe. Zumindest die Becker Antriebe lassen sich z.B. in das Piotek Enocean Gateway nicht einlernen (spricht kein Reman) somit müsste FHEM wegen EnOcean stehen bleiben. Wenn die MQTT Anbindung sauber läuft, hat man eben mehrere Syteme nebeneinander. FHEM ist auch nicht zu verachten und läuft äußerst stabil. FTUI3 ist auch schick. Man kann / muss aber nicht HA...

Zwei Probleme habe ich noch.

- Die Stati der Rollos sind nach HA Reboot teilweise weg (die Prozentzahl der Öffnung steht nach da, Mushroom Symbol ist grau), Das retain kann ich au beiden Seiten setzen. Erfolglos. HAb ich da eine Fehler drin ?

- und das wichtigere Die Fahrbefehle klappen nicht->  auf / ab / stop / position

Grundlegend kommt in FHEM was an. Irgendwie fehlt aber die Richtige "Übersetzung". ein FHEM Befehl "set R_OG_WZ_R ab" bzw closes funktioniert.

Client:
define mqtt2ha MQTT2_CLIENT 192.168.178.53:1883
attr mqtt2ha clientId fhem
attr mqtt2ha clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr mqtt2ha keepaliveTimeout 60
attr mqtt2ha msgAfterConnect -r fhem/connection/status connected
attr mqtt2ha msgBeforeDisconnect -r fhem/connection/status disconnected
attr mqtt2ha qosMaxQueueLength 100
attr mqtt2ha room MQTT
attr mqtt2ha subscriptions setByTheProgram
attr mqtt2ha username mqttuser
attr mqtt2ha verbose 5
#   BUF       
#   Clients    :MQTT_GENERIC_BRIDGE:MQTT2_DEVICE:
#   ClientsKeepOrder 1
#   DEF        192.168.178.53:1883
#   DeviceName 192.168.178.53:1883
#   FD         61
#   FUUID      696cd4f2-f33f-c6d8-b9e2-ffb6996915a6dd69
#   NAME       mqtt2ha
#   NR         242
#   PARTIAL   
#   STATE      opened
#   TYPE       MQTT2_CLIENT
#   WBCallback
#   clientId   fhem
#   eventCount 140
#   lastMsgTime 1768999349.7718
#   nextOpenDelay 10
#   nrConnects 80
#   qosCnt     13073
#   qosMaxQueueLength 100
#   MatchList:
#     1:MQTT_GENERIC_BRIDGE ^.
#     2:MQTT2_DEVICE ^.
#   READINGS:
#     2026-01-18 17:30:50   lastPublish     homeassistant/cover/r_eg_n_k/config:{"name": "FHEM R_EG_N_K", "unique_id": "eno_r_eg_n_k", "device_class": "blind", "command_topic": "homeassistant/cover/r_eg_n_k/set", "state_topic": "homeassistant/cover/r_eg_n_k/state", "position_topic": "homeassistant/cover/r_eg_n_k/position", "set_position_topic": "homeassistant/cover/r_eg_n_k/set_position", "payload_open": "OPEN", "payload_close": "CLOSE", "payload_stop": "STOP", "state_open": "open", "state_closed": "closed", "position_open": 0, "position_close
#     2026-01-21 12:16:29   state           opened
#   qosQueue:
#
setstate mqtt2ha opened
setstate mqtt2ha 2026-01-18 17:30:50 lastPublish homeassistant/cover/r_eg_n_k/config:{"name": "FHEM R_EG_N_K", "unique_id": "eno_r_eg_n_k", "device_class": "blind", "command_topic": "homeassistant/cover/r_eg_n_k/set", "state_topic": "homeassistant/cover/r_eg_n_k/state", "position_topic": "homeassistant/cover/r_eg_n_k/position", "set_position_topic": "homeassistant/cover/r_eg_n_k/set_position", "payload_open": "OPEN", "payload_close": "CLOSE", "payload_stop": "STOP", "state_open": "open", "state_closed": "closed", "position_open": 0, "position_close
setstate mqtt2ha 2026-01-21 12:16:29 state opened

MGB
define mqttGeneric MQTT_GENERIC_BRIDGE mqtt room=HASS
attr mqttGeneric IODev mqtt2ha
attr mqttGeneric globalDefaults sub:base=fhem/set pub:base=fhem
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
#   CFGFN     
#   DEF        mqtt room=HASS
#   FUUID      696d68a8-f33f-c6d8-3096-fb3331e23c06e56a
#   IODev      mqtt2ha
#   NAME       mqttGeneric
#   NR         306
#   NTFY_ORDER 70-mqttGeneric
#   STATE      in: 220 out: 13920 devices: 8
#   TYPE       MQTT_GENERIC_BRIDGE
#   devspec    room=HASS
#   eventCount 13958
#   prefix     mqtt
#   READINGS:
#     2026-01-19 00:12:29   IODev           mqtt2ha
#     2026-01-21 12:16:29   device-count    8
#     2026-01-21 13:05:37   incoming-count  220
#     2026-01-21 13:44:58   outgoing-count  13920
#     2026-01-21 13:44:58   transmission-state outgoing publish sent
#     2026-01-19 00:12:29   updated-reading-count 0
#     2026-01-21 12:59:23   updated-set-count 206
#   devices:
#     :global:
#       :alias:
#       :defaults:
#         pub:base   fhem
#         sub:base   fhem/set
#       :publish:
#         *:
#           mode       R
#           topic      {"fhem/$device/$reading"}
#     E_WS1:
#       :alias:
#       :publish:
#         *:
#           mode       R
#           topic      {"fhem/$device/$reading"}
#     EnO_0517C8E6:
#       :alias:
#       :publish:
#         *:
#           retain     1
#         state:
#           last       1768934651.59857
#           mode       R
#           topic      {"$base/$device/state"}
#       :subscribe:
#         HASH(0x557549130ff0)
#     R_EG_N_K:
#       :alias:
#       :publish:
#         *:
#           mode       R
#           retain     1
#           topic      {"$base/$device/$name"}
#       :subscribe:
#         HASH(0x557549b8b128)
#     R_OG_WZ_L:
#       :alias:
#       :publish:
#         *:
#           retain     1
#       :subscribe:
#         HASH(0x557549818690)
#     R_OG_WZ_R:
#       :alias:
#       :publish:
#         *:
#           retain     1
#       :subscribe:
#         HASH(0x5575498b85a0)
#     S_NodOn_AU_Fassade_0599066B:
#       :alias:
#       :publish:
#         *:
#           retain     1
#         state:
#           last       1768992618.83512
#           mode       R
#           topic      {"$base/$device/channel0"}
#       :subscribe:
#         HASH(0x55754a159d98)
#     S_NodOn_AU_Vorhaus_0504BBBB:
#       :alias:
#       :publish:
#         *:
#           retain     1
#         channel0:
#           last       1768935748.04478
#           mode       R
#           topic      {"$base/$device/$name"}
#         channel1:
#           last       1768949940.02451
#           mode       R
#           topic      {"$base/$device/$name"}
#       :subscribe:
#         HASH(0x55754a736b00)
#     demoswitch:
#       :alias:
#       :publish:
#       :subscribe:
#         HASH(0x55754989a6a0)
#   globalDeviceExcludes:
#   globalReadingExcludes:
#   globalTypeExcludes:
#     pub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#     sub:
#       FHEMWEB    *
#       Global     *
#       MQTT       transmission-state
#       MQTT_BRIDGE transmission-state
#       MQTT_DEVICE transmission-state
#       MQTT_GENERIC_BRIDGE *
#       telnet     *
#   subscribe:
#
setstate mqttGeneric in: 220 out: 13920 devices: 8
setstate mqttGeneric 2026-01-19 00:12:29 IODev mqtt2ha
setstate mqttGeneric 2026-01-21 12:16:29 device-count 8
setstate mqttGeneric 2026-01-21 13:05:37 incoming-count 220
setstate mqttGeneric 2026-01-21 13:44:58 outgoing-count 13920
setstate mqttGeneric 2026-01-21 13:44:58 transmission-state outgoing publish sent
setstate mqttGeneric 2026-01-19 00:12:29 updated-reading-count 0
setstate mqttGeneric 2026-01-21 12:59:23 updated-set-count 206

Rollo
define R_OG_WZ_R EnOcean 0410F546
attr R_OG_WZ_R userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr R_OG_WZ_R IODev TCM_ESP3_0
attr R_OG_WZ_R cmdIcon auf:black_up stop:remotecontrol/black_btn_STOP ab:black_down
attr R_OG_WZ_R comMode confirm
attr R_OG_WZ_R comment Eltako FAM60
attr R_OG_WZ_R creator autocreate
attr R_OG_WZ_R eep A5-3F-7F
attr R_OG_WZ_R eventMap /position 0:auf/position 100:ab/
attr R_OG_WZ_R group Rollos
attr R_OG_WZ_R manufID 00D
attr R_OG_WZ_R model Eltako_FRM60
attr R_OG_WZ_R mqttPublish state:fhem/R_OG_WZ_R/state position:fhem/R_OG_WZ_R/position endPosition:fhem/R_OG_WZ_R/endPosition *:retain=1
attr R_OG_WZ_R mqttSubscribe set:stopic={"$base/$device"}
attr R_OG_WZ_R room EnOcean,HASS,MQTT,OG_Wohnen
attr R_OG_WZ_R sensorMode pushbutton
attr R_OG_WZ_R subDef FFDF5385
attr R_OG_WZ_R subType manufProfile
attr R_OG_WZ_R teachMethod confirm
attr R_OG_WZ_R webCmd auf:stop:ab:position
#   DEF        0410F546
#   FUUID      6635131a-f33f-9f11-74a2-ff93caf94f50d32f
#   IODev      TCM_ESP3_0
#   LASTInputDev TCM_ESP3_0
#   MSGCNT     42
#   NAME       R_OG_WZ_R
#   NR         116
#   NTFY_ORDER 50-R_OG_WZ_R
#   STATE      79
#   TCM_ESP3_0_DestinationID FFFFFFFF
#   TCM_ESP3_0_MSGCNT 42
#   TCM_ESP3_0_PacketType 1
#   TCM_ESP3_0_RSSI -45
#   TCM_ESP3_0_ReceivingQuality excellent
#   TCM_ESP3_0_RepeatingCounter 1
#   TCM_ESP3_0_SubTelNum 10
#   TCM_ESP3_0_TIME 2026-01-21 13:01:23
#   TYPE       EnOcean
#   eventCount 80
#   READINGS:
#     2026-01-18 13:50:57   IODev           TCM_ESP3_0
#     2024-05-03 18:38:52   block           unlock
#     2026-01-21 13:01:23   endPosition     not_reached
#     2026-01-21 13:01:23   position        79
#     2026-01-21 13:01:23   state           79
#     2024-05-03 18:38:50   teach           4BS teach-in accepted EEP: A5-3F-7F Manufacturer: Eltako
#   helper:
#
setstate R_OG_WZ_R 79
setstate R_OG_WZ_R 2026-01-18 13:50:57 IODev TCM_ESP3_0
setstate R_OG_WZ_R 2024-05-03 18:38:52 block unlock
setstate R_OG_WZ_R 2026-01-21 13:01:23 endPosition not_reached
setstate R_OG_WZ_R 2026-01-21 13:01:23 position 79
setstate R_OG_WZ_R 2026-01-21 13:01:23 state 79
setstate R_OG_WZ_R 2024-05-03 18:38:50 teach 4BS teach-in accepted EEP: A5-3F-7F Manufacturer: Eltako



2026.01.21 13:49:00 5: mqtt2ha: dispatch autocreate=no\000fhem\000fhem/set/R_OG_WZ_R\000ab
2026.01.21 13:49:03 4: mqtt2ha received PUBLISH
2026.01.21 13:49:03 5: mqtt2ha: received PUBLISH (0)(18)fhem/set/R_OG_WZ_Rstop
2026.01.21 13:49:03 5: mqtt2ha: dispatch autocreate=no\000fhem\000fhem/set/R_OG_WZ_R\000stop

Position ist noch ganz schief. Da müsste ja "set R_OG_WZ_R position 31" erzeugt werden. Wie und wo ändert man das ? 


2026.01.21 13:50:22 5: mqtt2ha: received PUBLISH (0)(18)fhem/set/R_OG_WZ_R31
2026.01.21 13:50:22 5: mqtt2ha: dispatch autocreate=no\000fhem\000fhem/set/R_OG_WZ_R\00031



und noch das HA Device. Welche Parameter sind denn da u.U. überflüssig und können raus ?

    - name: "R_OG_WZ_R_N"
      unique_id: r_og_wz_r
      command_topic: "fhem/set/R_OG_WZ_R"
      state_topic: "fhem/R_OG_WZ_R/state"
      set_position_topic: "fhem/set/R_OG_WZ_R"
      set_position_template: "position {{ position }}"
      position_topic: "fhem/R_OG_WZ_R/position"
      position_open: 100
      position_closed: 0
      payload_open: "auf"
      payload_close: "ab"
      payload_stop: "stop"
      optimistic: false
      state_open: "open"
      state_closed: "closed"
      state_opening: "auf"
      state_closing: "ab"
      state_stopped: "stop"
      qos: 1
      retain: false


Danke für Eure Unterstützung.

gadget

#282
Das hier funktioniert bei mir mit einem Eltako FSB71 auf der fhem-Seite seit Jahren problemlos
Wirklich hilfreich zum Debuggen ist es den mqtt explorer auf dem PC mitlaufen zu lassen (oder als Add-ON mit HACS zu installieren).
mqttpublish verwende ich nicht, ich lass die Bridge einfach alle readings des device übertragen, schaue mir mit dem mqtt explorer an was herauskommt und vergleiche das dann mit der Doku des passenden generischen mqtt-Device (hier: mqtt cover) in home assistant und was da erwartet wird. Wenn das 1:1 nicht zusammenpasst -> zusätzliches userreading auf der fhem Seite und dann dieses verwenden in der mqtt.yaml.

defmod FSB71_Kinderzimmer EnOcean 01234567
attr FSB71_Kinderzimmer userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr FSB71_Kinderzimmer IODev TCM_ESP3_0
attr FSB71_Kinderzimmer alias Rollo Kinderzimmer
attr FSB71_Kinderzimmer angleMax 80
attr FSB71_Kinderzimmer angleMin 0
attr FSB71_Kinderzimmer angleTime 1
attr FSB71_Kinderzimmer comMode confirm
attr FSB71_Kinderzimmer devStateIcon 0:fts_shutter_1w_0:closes \d:fts_shutter_1w_10 1\d:fts_shutter_1w_10 2\d:fts_shutter_1w_20 3\d:fts_shutter_1w_30 4\d:fts_shutter_1w_40 5\d:fts_shutter_1w_50 6\d:fts_shutter_1w_60 7\d:fts_shutter_1w_70 8\d:fts_shutter_1w_80 9\d:fts_shutter_1w_90 100:fts_shutter_1w_100:opens
attr FSB71_Kinderzimmer eep A5-3F-7F
attr FSB71_Kinderzimmer group Rollo
attr FSB71_Kinderzimmer manufID 00D
attr FSB71_Kinderzimmer model Eltako_FSB_ACK
attr FSB71_Kinderzimmer mqttSubscribe state:stopic={"$base/set"} position:stopic={"$base/setposition"}
attr FSB71_Kinderzimmer room Kinderzimmer,Rollo
attr FSB71_Kinderzimmer shutTime 35
attr FSB71_Kinderzimmer shutTimeCloses 45
attr FSB71_Kinderzimmer stateFormat position
attr FSB71_Kinderzimmer subDef FFB4D305
attr FSB71_Kinderzimmer subType manufProfile
attr FSB71_Kinderzimmer userReadings hastate {if(ReadingsVal($name,"state","") ne "stop") {return (ReadingsVal($name,"state",""))}}
attr FSB71_Kinderzimmer webCmd opens:stop:closes

in der mqtt.yaml:

- cover
  - name: "Rollo Kinderzimmer"
    command_topic: "fhem/FSB71_Kinderzimmer/set"
    set_position_topic: "fhem/FSB71_Kinderzimmer/setposition"
    position_topic: "fhem/FSB71_Kinderzimmer/position"
    position_open: 0
    position_closed: 100
    retain: false
    qos: 1
    payload_open: "opens"
    payload_close: "closes"
    payload_stop: "stop"
    availability_topic: "fhem/connection/status"
    payload_available: "connected"
    payload_not_available: "disconnected"
    device_class: shutter