ich habe Probleme mit einem Utility Meter, dass ich für die Auswertung von einem Watermeter verwende. Da mein Wasserzähler keine Schnittstelle zum Auslesen hat, habe ich das AI-on-the-edge-device Projekt umgesetzt. Dort kommen per MQTT Zählerstände in m³ rein. Der Zählerstand wird im Sensor sensor.watermeter_value abgelegt.
Ich habe drei Utility Meter zur Aufzeichnung von den täglichen, monatlichen und jährlichen Verbräuchen in YAML definiert,
Den täglichen Verbrauch möchte ich in Litern aufzeichnen. Deshalb habe ich mir einen Sensor definiert, der den Watermeter-Wert einfach mit dem Faktor 1000 multipliziert.
Prinzipiell funktioniert das Aufzeichnen und es werden vernünftige Werte angezeigt.
Sobald jedoch ein Neustart (Home Assistant neu starten) stattfindet gibt es Probleme; und zwar nur mit dem Utility Meter für den täglichen Verbrauch. Nach dem Restart zeigt es zunächst korrekt den letzten Wert vor dem Restart an. Sobald aber der erste Wert vom Zähler reinkommt springt der Utility Meter Wert auf sehr große Werte. Die anderen beiden Zählerstände arbeiten korrekt.
Auffällig ist, dass der neue Zählerstand aus folgenden zwei Parts besteht
6814170 bleibt Konstant
55 war der letzte Zählerwert
Ich habe keine Ahnung woran das liegt. Hat jemand von Euch eine Idee?
Ich lernte gestern, daß Verbrauchszähler im Energyboard ein Problem beim Wechsel von “unavailable” haben und unsinnig hohe Werte anzeigen können. Vielleicht hilft das "availability: “{{ has_value(‘watermeter_value_in_l’) }}” hier auch.
Danke für Dein Feedback.
Wenn ich die configuration variable “availability” verwende, bekomme ich eine Fehlermeldung:
‘availability’ is an invalid option for ‘utility_meter’, check: utility_meter->watermeter_daily_consumption_test->availability
Im der aktuellen Utility Meter Integration gibt es einen Parameter always_available. Ich habe den auf true gesetzt. Er wird in der Doku folgendermaßen beschrieben:
If activated, the sensor will always be available with the last totalized value, even if the source entity is unavailable or unknown.
- sensor:
- name: "Watermeter value in L"
unique_id: 0eb6c75a-894d-4eb6-a742-952e2f75bb40
icon: mdi:water
unit_of_measurement: "L"
state: >
{% if has_value('sensor.watermeter_value') %}
{{states('sensor.watermeter_value')|float(0)*1000}}
{% endif %}
Ich habe den Template Sensor noch mal überarbeitet. Wenn der Wert von sensor.watermeter_value’ nicht definiert ist, gibt es keinen Rückgabewert. Den Parameter always_available habe ich weiterhin gesetzt gelassen.
Ich teste aber auch noch mal Deine Lösung. Ich bin mir aber nicht so sicher, ob die Rückgabe von “0” problemlos läuft, da ich ja meinen Wasserzähler mit dem absoluten Zählerstand füttere.
Deine Lösung funktioniert leider nicht. Vermutlich darf das Utility Meter wirklich keinen 0 Wert sehen. Ich vermute, dass der Status-Vergleich nicht richtig funktioniert hat und das Script dann im Else-Zweig gelandet ist.