FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: Tobias am 08 April 2026, 13:11:58

Titel: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Tobias am 08 April 2026, 13:11:58
Hi,
ich habe meine Flowercare Sensoren per MQTT via altem MQTT_DEVICE angebunden. Diese möchte ich nun nach MQTT2_DEVICE umbauen. Leider klappt dies nicht. Es werden keine Messages erkannt und dementsprechend keine Readings erzeugt. Ich weiss nicht mehr weiter, hat jemand eine Idee?

alte MQTT_DEVICE Definition
defmod BF_VG_Beet MQTT_DEVICE
attr BF_VG_Beet DbLogExclude transmission-state
attr BF_VG_Beet IODev mqtt
attr BF_VG_Beet readingsWatcher 660,,data
attr BF_VG_Beet room Aussen
attr BF_VG_Beet stateFormat moisture% | Bat: batteryLevel% (active)
attr BF_VG_Beet subscribeReading_data flowercare/c4:7c:8d:64:42:d0
attr BF_VG_Beet userReadings moisture:data:.* {json2nameValue($eventValue)->{moisture}},\
batteryLevel:data:.* {json2nameValue($eventValue)->{battery}},\
fertility:data:.* {json2nameValue($eventValue)->{fertility}}

neue MQTT2_DEVICE Definition
defmod BF_VG_Palette MQTT2_DEVICE
attr BF_VG_Palette DbLogExclude .*
attr BF_VG_Palette DbLogInclude moisture
attr BF_VG_Palette IODev mqtt2
attr BF_VG_Palette event-on-update-reading .*
attr BF_VG_Palette readingList flowercare/c4:7c:8d:64:42:d0:.* { json2nameValue($EVENT, '', { battery => 'batteryLevel' }) }
attr BF_VG_Palette readingsWatcher 660,,DeviceStatus
attr BF_VG_Palette room Aussen
attr BF_VG_Palette stateFormat moisture% | Bat: batteryLevel% (active)

das MQTT payload
{"address":"80:ea:ca:89:61:5e","temperature":15.9,"moisture":41,"brightness":2426,"fertility":228,"host":"PumpControl_Treppe","battery":100}
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: rudolfkoenig am 08 April 2026, 14:21:34
Klingt so, als ob eine MQTT2_CLIENT oder MQTT2_SERVER Instanz fehlen wuerde
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Beta-User am 08 April 2026, 15:10:35
Vielleicht auch mal mit einfachen Punkten statt der Doppelpunkte im Topic/readingList-Eintrag versuchen
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Tobias am 08 April 2026, 15:52:30
Das MQTT2_DEVICE ist definiert.
Das Problem wird wohl sein das die MAC-Adresse incl der Doppelpunkte ein Teil des topics sind.
Gibt es hier einen Trick für die ReadingList Definition?
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: TomLee am 08 April 2026, 15:56:14
Ein automatisch angelegtes Device:

defmod mymqtt_448305727622030 MQTT2_DEVICE mymqtt_448305727622030
attr mymqtt_448305727622030 readingList mymqtt_448305727622030:flowercare/c4_7c_8d_64_42_d0:.* { json2nameValue($EVENT) }
attr mymqtt_448305727622030 room MQTT2_DEVICE

setstate mymqtt_448305727622030 2026-04-08 15:48:32 IODev MQTT2_Server
setstate mymqtt_448305727622030 2026-04-08 15:48:33 address 80:ea:ca:89:61:5e
setstate mymqtt_448305727622030 2026-04-08 15:48:33 battery 100
setstate mymqtt_448305727622030 2026-04-08 15:48:33 brightness 2426
setstate mymqtt_448305727622030 2026-04-08 15:48:33 fertility 228
setstate mymqtt_448305727622030 2026-04-08 15:48:33 host PumpControl_Treppe
setstate mymqtt_448305727622030 2026-04-08 15:48:33 moisture 41
setstate mymqtt_448305727622030 2026-04-08 15:48:33 temperature 15.9

Ein mit jsonMap konfiguriertes Device:

defmod mymqtt_448305727622030 MQTT2_DEVICE mymqtt_448305727622030
attr mymqtt_448305727622030 jsonMap battery:batteryLevel
attr mymqtt_448305727622030 readingList mymqtt_448305727622030:flowercare/c4_7c_8d_64_42_d0:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr mymqtt_448305727622030 room MQTT2_DEVICE

setstate mymqtt_448305727622030 2026-04-08 15:48:32 IODev MQTT2_Server
setstate mymqtt_448305727622030 2026-04-08 15:55:08 address 80:ea:ca:89:61:5e
setstate mymqtt_448305727622030 2026-04-08 15:55:08 batteryLevel 100
setstate mymqtt_448305727622030 2026-04-08 15:55:08 brightness 2426
setstate mymqtt_448305727622030 2026-04-08 15:55:08 fertility 228
setstate mymqtt_448305727622030 2026-04-08 15:55:08 host PumpControl_Treppe
setstate mymqtt_448305727622030 2026-04-08 15:55:08 moisture 41
setstate mymqtt_448305727622030 2026-04-08 15:55:08 temperature 15.9
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Tobias am 08 April 2026, 17:08:38
@tomLee, top, danke. So funktioniert das :)
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Tobias am 08 April 2026, 17:12:21
@tomLee, top, danke. So funktioniert das :)
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: TomLee am 08 April 2026, 18:45:40
Rein aus interesse, welchen Grund hat es das Du das Device von Hand angelegt hast?
Hast Du autocreate ausgeschaltet, das bei Dir kein Device automatisch erstellt wurde?
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: Tobias am 09 April 2026, 09:48:42
ich habe Automatiken generell abgeschaltet da diese i.d.R. nie so anlegen wie ich es gerne hätte ;)
Aber so funktioniert es jetzt :)
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: TomLee am 09 April 2026, 20:12:29
Ich hab mich nicht wirklich tiefer mit beschäftigt.

Doppelpunkte sollen grundsätzlich erlaubt sein in Topics. Ich frage mich nebenbei (aufgrund des Threads) was der Grund ist, weshalb in MQTT2 beim abonnieren die Doppelpunkte durch Unterstriche ersetzt werden müssen...
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: rudolfkoenig am 10 April 2026, 09:37:40
ZitatIch frage mich nebenbei (aufgrund des Threads) was der Grund ist, weshalb in MQTT2 beim abonnieren die Doppelpunkte durch Unterstriche ersetzt werden müssen...

MQTT2_SERVER/MQTT2_CLIENT hat topic und message uerpruenglich mit Doppelpunkt getrennt an die Clients (MQTT2_DEVICE, MQTT_GENERIC_BRIDGE) weitergegeben.
Damit das Problem ohne weitere Koordination geloest werden kann, habe ich : nach _ gewandelt, siehe https://forum.fhem.de/index.php?topic=96608
Kurze Zeit spaeter wurde der Trenner auf Null-Zeichen geaendert, aber die : nach _ Umwandlung nicht wieder ausgebaut.

Null Zeichen kann zwar theoretisch auch im Topic vorkommen, aber es wird mW nicht praktiziert.
Titel: Aw: Migration MQTT_DEVICE -> MQTT2_DEVICE funktioniert nicht
Beitrag von: TomLee am 10 April 2026, 22:19:46
ZitatNull Zeichen kann zwar theoretisch auch im Topic vorkommen, aber es wird mW nicht praktiziert.

Kann mir nicht vorstellen das bisher mehr als zwei User das entsprechende Attribut gesetzt haben.

Warum nicht wieder rückgängig machen und stattdessen eine verbose 3 Meldung bei
Null Zeichen?