Ich bin gerade dabei, mein System zu Home Assistant umzuziehen. Das hat bisher super geklappt - lediglich einige Devices, die an SIGNALduinos hängen, sind übriggeblieben.
Jetzt will ich deren Daten über MQTT_GENERIC_BRIDGE -> MQTT2_DEVICE an Home Assistant senden.
Hier ein List meiner MQTT_GENERIC_BRIDGE:
Internals:
DEF mqtt room=HASS
FUUID 6aa3cc0e-f33f-c1fa-c094-30a9dded4aeca314
IODev ha_MQTT2
NAME mqttGeneric
NR 377
NTFY_ORDER 70-mqttGeneric
STATE in: 0 out: 60 devices: 1
TYPE MQTT_GENERIC_BRIDGE
devspec room=HASS
eventCount 71
prefix mqtt
READINGS:
2026-09-11 11:38:22 IODev ha_MQTT2
2026-09-11 11:52:30 attrTemplateVersion 20211208_MGB_M2D
2026-09-11 12:02:00 device-count 1
2026-09-11 11:38:22 incoming-count 0
2026-09-11 12:47:35 outgoing-count 60
2026-09-11 12:47:35 transmission-state outgoing publish sent
2026-09-11 11:38:22 updated-reading-count 0
2026-09-11 11:38:22 updated-set-count 0
devices:
:global:
:alias:
:defaults:
pub:base fhem
sub:base fhem/set
:publish:
*:
mode R
topic {"fhem/$device/$reading"}
SD_WS_107_H_0E668A:
:alias:
pub:humidity moisture
sub:humidity moisture
:publish:
batteryVoltage:
last 1789123655.00472
mode R
topic {"$base/$device/$name"}
humidity:
last 1789123445.03259
mode R
topic {"$base/$device/$name"}
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 *
Attributes:
IODev ha_MQTT2
globalDefaults sub:base=fhem/set pub:base=fhem
icon mqtt_bridge_2
room System->Protokolle->MQTT
stateFormat in: incoming-count out: outgoing-count devices: device-count
verbose 0
Ich habe zum Üben mit einem WH51-Bodenfeuchtesensor angefangen - hier ein List:
Internals:
CODE SD_WS_107_H_0E668A
DEF SD_WS_107_H_0E668A
FUUID 698a3365-f33f-c1fa-7a93-be53d9a26abe4a9d
FVERSION 14_SD_WS.pm:v1.1.8-s31449/2026-07-05
LASTInputDev Sduino_3
MSGCNT 2574
NAME SD_WS_107_H_0E668A
NR 355
STATE Bodenfeuchte: 26 %
Sduino_3_DMSG W107#510E668A0E7F1AF8A3FFFFFFDF6D
Sduino_3_MSGCNT 2574
Sduino_3_Protocol_ID 107.1
Sduino_3_RAWMSG MN;D=510E668A0E7F1AF8A3FFFFFFDF6D;R=4;
Sduino_3_RSSI -72
Sduino_3_TIME 2026-09-11 12:41:44
TYPE SD_WS
bitMSG 0101000100001110011001101000101000001110011111110001101011111000101000111111111111111111111111111101111101101101
eventCount 1054
lastMSG 510E668A0E7F1AF8A3FFFFFFDF6D
lastReceive 1789123304.9832
Helper:
DBLOG:
humidity:
myDbLog:
TIME 1789123094.98941
VALUE 26
OLDREADINGS:
READINGS:
2026-09-11 12:41:44 adc 163
2026-09-11 12:41:44 batteryVoltage 1.4
2026-09-11 12:41:44 humidity 26
2026-02-09 20:21:14 model SD_WS_107_H
2026-09-11 12:41:44 state H: 26
2026-02-09 20:21:14 type WH51, DP100, MISOL/1
helper:
_98_statistics Statistik
Attributes:
DbLogInclude humidity
alias Elefantenfuß
comment Batteriewechsel 21.05.2025
event-min-interval .*:300
event-on-change-reading .*
group Pflanzen
icon hue_room_garden
max-deviation-hum 200
mqttAlias humidity=moisture
mqttPublish batteryVoltage|humidity:topic={"$base/$device/$name"}
room HASS,Pflanzen,System->Protokolle->SD_WS
stateFormat Bodenfeuchte: humidity %
userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
Ich möchte nur zwei Readings in HA haben: batteryVoltage und humidity (wird über mqttAlias in moisture umbenannt) und habe das Attribut mqttPublish entsprechend gesetzt (siehe List)
Trotzdem werden alle Readings gesendet - siehe hier das Bildschirmfoto der MQTT-Explorers.
Bildschirmfoto 2026-09-11 um 12.51.36.png
Was mache ich falsch?
P.S.: get mqttGeneric refreshUserAttr habe ich gemacht (obwohl in der CommandRef nicht dokumentiert).
Sieht eigentlich gut aus.
Sind die Daten in deiner Anzeige aktuell? Also werden die unerwünschten readings auch laufend aktualisiert?
Würde mals alles mit retain-flag gepublisht?
Ja, die Topics werden regelmäßig aktualisiert. Ich habe sie auch mal im MQTT-Explorer gelöscht - sie tauchen anschließend wieder auf.
Ich habe nichts händisch mit retain gepublished - die Topics stammen alle von der Bridge.
ich hab's jetzt rausgefunden:
Ich hatte ursprünglich in der Bridge das Attribut globalPublish gesetzt, später aber wieder gelöscht.
Da es keine Möglichkeit gibt, die Bridge neu zu starten, hat sie die ursprüngliche Einstellung anscheinend nicht "vergessen".
Dafür war ein Neustart von FHEM nötig - jetzt funktioniert es.
Die DEF anzufassen wäre evtl. ausreichend gewesen.
(Dieses global publish aus "irgendwelchen Anleitungen" ist wirklich nasty).