Ich habe mir einen Wasserzähler mit einem Pulse-Counter (YF-B5) und einem NodeMCU mit EPS-Home “gebastelt”
hier der Code (die relevanten Teile)
sensor:
- platform: pulse_counter
pin: D2
update_interval: 1s
unit_of_measurement: 'L/min'
name: 'Water Meter Flow'
device_class: water
filters:
- multiply: 0.0028
total:
unit_of_measurement: 'L'
name: 'Water Meter L'
state_class: total_increasing
accuracy_decimals: 1
device_class: water
filters:
- multiply: 0.0028
der Mulitplikator (0.0028) ist in Ordnung so, habe den Sensor “kalibriert”.
Es wird der Durchfluss angezeigt und auch die Liter (Gesamt), welche auch im Energie Dashboard eingebaut sind.
Die Gesamt Liter Anzeige wird allerdings bei einem Reset oder Stromausfall auf 0 gesetzt, was der Statistik und somit dem Energie Dashboard aber nicht schaden dürfte, soweit ich das gesehen habe, werden die Werte dort kumuliert und richtig angezeigt, stimmt dass, das es nichts macht, wenn der Wert bei einem Rest auf 0 fällt ?
Ich hätte aber gerne eine Anzeige (Entität) der Gesamtmenge welche auch einen Reset “überlebt”. Ich habe mir überlegt, das mit globals: zu machen ist das eine Möglichkeit ? Leider kenne ich mich damit überhaupt nicht aus, kann mir vielleicht jemand dabei helfen ?
Das wäre mein Ansatz gewesen:
globals:
- id: total_water_consumed
type: float
restore_value: yes
initial_value: '0.0'
Das sollte den Wert speichern ?
Dann noch einen TEXT-Sensor, welcher das ganze als Entität ausgeben kann:
text_sensor:
- platform: template
name: "Total Water Consumed"
lambda: |-
return {id(total_water_consumed)};
Da bin ich mir mit der “Formatierung” nicht ganz sicher und an welche Stelle das im Code gehört.
Zusätzlich wird man das ganze wahrscheinlich auch noch an irgendeiner Stelle zuweisen müssen, ich nehme an im sensor: Block ?
total:
unit_of_measurement: 'L'
name: 'Water Meter Total'
accuracy_decimals: 1
device_class: water
filters:
- multiply: 0.0028
state_class: total_increasing
lambda: |-
id(total_water_consumed) += x;
return id(total_water_consumed);
Ich habe keine Ahnung ob mein Ansatz hier richtig ist, ich wäre sehr Dankbar, wenn sich das jemand ansehen könnte, der sich da auch auskennt
Ich habe versucht das so einzubauen, habe aber immer Fehler beim Compilieren bekommen, wahrscheinlich fehlt noch etwas, oder ist falsch formatiert (Einrückungen)
Liebe Grüße aus Wien
Andreas