Home Assistant MQTT (Discovery Message) verbessern

Hallo,

ich habe den Wasserzähler erworben und es stört, dass die Werte in der Discovery-Nachricht für Home Assistant gerundet werden:

{"state_topic":"meters/WASSER_5474632765/state","value_template":"{{ (value_json['current_flow_rate_m3'] | regex_replace(' m3/h', '') | float | round(2) ) }}","unit_of_measurement":"m³/h","device_class":"volume_flow_rate","state_class":"measurement","unique_id":"WASSER_5474632765_current_flow_rate_m3","device":{"identifiers":["WASSER_5474632765"],"manufacturer":"nineti GmbH","model":"wasserleser v1","name":"wasserleser"},"name":"Current Flow Rate (m³/h)"}

siehe

(value_json['current_flow_rate_m3'] | regex_replace(' m3/h', '') | float | round(2) )
  1. Es wäre toll, wenn der ungerundete Wert weitergegeben wird, um insbesondere bei den flow-Werten genauere Angaben zu haben. 0,003 qm/h sind etwas, was ich wissen möchte. Hier würde er aber auf 0,00qm/h verschwinden.
  2. Ebenfalls müsste bei “float” ein “float(0)” stehen soweit ich weiß, da ein default Wert erforderlich ist, falls “current_flow_rate_m3” nicht gepiped werden kann.
  3. Es wäre toll, wenn man der konfigurierte Name (also auch der geänderte) im “name” Feld des Device genutzt werden könnte. spätestens beim zweiten Zähler käme es zu Namensüberschneidungen, die man in HA umständlich anpassen müsste.
  4. Die “signal_strength” sollte in der discovery Message folgenden Zusath erhalten:
    entity_category: diagnostic und disabled_by_default: true, damit sie richtig einsortiert wird, aber erst einmal deaktiviert ist.

Desweiteren kommen in HA folgende Fehler, die die Anzeige der Werte verhindert.

Error 'The unit of measurement `l/h` is not valid together with device class `volume_flow_rate`' when processing MQTT discovery message topic: 'homeassistant/sensor/WASSER_5474632765/current_flow_rate/config', message: '{'state_topic': 'meters/WASSER_5474632765/state', 'value_template': "{{ (value_json['current_flow_rate'] | regex_replace(' l/h', '') | float | round(2) ) }}", 'unit_of_measurement': 'l/h', 'device_class': 'volume_flow_rate', 'state_class': 'measurement', 'unique_id': 'WASSER_5474632765_current_flow_rate', 'device': {'identifiers': ['WASSER_5474632765'], 'manufacturer': 'nineti GmbH', 'model': 'wasserleser v1', 'name': 'wasserleser'}, 'name': 'Current Flow Rate'}'

Die volume_flow_rate muss korrigiert werden. Hier ist ein Minifehler. Es darf nicht “l/h” heißen, sondern muss “L/h” sein.

Error 'The unit of measurement `%` is not valid together with device class `signal_strength`' when processing MQTT discovery message topic: 'homeassistant/sensor/WASSER_5474632765/signal_strength/config', message: '{'state_topic': 'meters/WASSER_5474632765/state', 'value_template': "{{ (value_json['signal_strength'] | regex_replace(' %', '') | float | round(2) ) }}", 'unit_of_measurement': '%', 'device_class': 'signal_strength', 'state_class': 'measurement', 'unique_id': 'WASSER_5474632765_signal_strength', 'device': {'identifiers': ['WASSER_5474632765'], 'manufacturer': 'nineti GmbH', 'model': 'wasserleser v1', 'name': 'wasserleser'}, 'name': 'Signal Strength'}'

signal_strength wird nicht in “%” angegeben sondern in “dBm”. Wenn also der Wert tatsächlich nicht ein dBm-Wert ist, sondern “%”, dann muss der Teil werggelassen werden oder leer bleiben. Denn solange das nicht korrigiert ist, wird das nicht angezeigt.

Hier die Dokumentation Sensor entity | Home Assistant Developer Docs

Ich würde mich freuen, wenn die Änderungen schnell und unkopliziert umgesetzt werden, da sie im Grunde keinen Aufwand bedeuten und auch ein Risiko durch das Update quasi Null ist.

Vielen Dank im Voraus

2 „Gefällt mir“

Hallo,

vielen Dank für deine Nachricht.

Die Änderungen, die du vorgeschlagen hast, sind bereits umgesetzt und werden im nächsten Update verfügbar sein. Die Signalstärke wird übrigens tatsächlich in Prozent (%) angegeben und nicht in dBm.

Wenn du noch weitere Fragen hast, melde dich gerne jederzeit bei uns!

Liebe Grüße aus Stuttgart,
Andy vom Team Stromleser.

Moin. Könnte es sein, dass der gleich Fehler auch bei Gasleser auftritt? Hier die Fehlermeldung dazu: discovery message topic: ‚homeassistant/sensor/GAS_0627289639/wifi_signal/config‘, message: ‚{‚state_topic‘: ‚meters/GAS_0627289639/state‘, ‚value_template‘: "{{ value_json[‚signal_strength‘] | regex_findall_index(‘[-.0-9]+‚) | float(0) }}", ‚unit_of_measurement‘: ‚%‘, ‚device_class‘: ‚signal_strength‘, ‚state_class‘: ‚measurement‘, ‚unique_id‘: ‚GAS_0627289639_wifi_signal‘, ‚device‘: {‚identifiers‘: [‚GAS_0627289639‘], ‚manufacturer‘: ‚nineti GmbH‘, ‚model‘: ‚gasleser v1‘, ‚name‘: ‚gasleser‘}, ‚entity_category‘: ‚diagnostic‘, ‚name‘: ‚Signal Strength‘}‘

Gruß

Hallo,

ich habe eine kurze Frage zum Stand der ”Verbesserungen” der MQTT-Anbindung in Home Assistant. Ich habe heute (23.01.2026) einen neuen Wasserleser in Betrieb genommen und in Home Assistant integriert. Ich sehe allerdings auch nur die beiden Entitäten “Current Flow Rate” und “Total Consumption”. Auch das “Problem” mit der Rundung besteht noch. Verwende ich nicht die aktuelle Version oder wurde das Update noch nicht veröffentlicht?
Vielen Dank.
Freundliche Grüße
Ralf Kentenich

1 „Gefällt mir“

Hey Ralf,

danke dir für die Nachfrage und die genaue Beschreibung
Du hast völlig recht beobachtet: Das Update für die erweiterte MQTT-Anbindung (zusätzliche Entitäten + verbesserte Rundung) ist noch nicht offiziell veröffentlicht. Deshalb siehst du aktuell weiterhin nur „Current Flow Rate“ und „Total Consumption“, und auch das Rundungsthema ist noch unverändert.

Die gute Nachricht:
Ich kann deinen Wasserleser bereits manuell auf die neue Version aktualisieren

Schick mir dafür bitte einfach die Geräte-ID, dann spiele ich dir das Update direkt auf dein Gerät.

Sobald das Update allgemein ausgerollt ist, informiere ich natürlich auch alle anderen Nutzer.

Viele Grüße
Andy

Hallo,

wann wird denn das Firmware-Update offiziell ausgerollt? Gibt es hierzu schon einen konkreten Termin?

Könnte ich das Firmware-Update auch schon vorher haben?

Danke & Gruß,

Sven

Hallo Andy,
ich habe euch die Geräte-ID unseres Wasserleser per Mail schickt.