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) )
- 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.
- 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.
- 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.
- Die “signal_strength” sollte in der discovery Message folgenden Zusath erhalten:
entity_category: diagnosticunddisabled_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

