Gaszähler anbinden 2
Posted on Di 27 Februar 2024 in Computer & Electronics
In einem früheren Post hatte ich
mich mit dem Auslesen des Gaszählers via ESPhome befasst und war dabei auf ein
paar Probleme gestoßen: Jedes Mal, wenn ESPhome den Kontakt zum Homessistant
verlor und dann wiederherstellte, wurde der Zählerstand in ESPhome wieder auf
den beim letzen Mal eingegeben Stand zurückgesetzt. In einem follow-up
Post hatte ich
dann schonmal entdeckt, warum das so häufig passiert, aber endgültig gelöst hat
es das auch nicht. Des Übels Wurzel ist, dass der homeassistant
Sensor, den
ich zur Übergabe des Sollwerts verwendet hatte nicht nur dann aktualisiert
wird, wenn man eine neue Zahl eingibt, sondern eben auch beim
(Wieder-)Herstellen des Kontakts. Und so hatte ich eine Weile den Kopf gegen
die Wand gehauen und hoffte auf eine Eingebung und habe verschiedenes
ausprobiert – erfolglos. Letztlich habe ich im
Homeassistant-Forum um Tips gebeten.
Und in der Tat: User Mahko_Mahko
gab den entscheidenden Hinweis: Neben dem
oben erwähnten Home Assistant
Sensor gibt es auch
noch die Möglichkeit, in ESPhome einen Service über die native API
Component zu
definieren! Und das hat mein Problem gelöst.
Also zunächst in der YAML config für ESPhome den Service anlegen:
api:
reboot_timeout: 0s
services:
- service: set_reading
variables:
new_reading: float
then:
lambda: id(count_reading) = int(new_reading * 100);
Und den alten Homeassistant Sensor, sowie den Factory-reset button wieder rausschmeißen und Firmware flashen.
Wenn wir nun den Gaszählerstand manuell korrigieren möchten, gehen wir in
Homeassistant nach Developer tools > Services und geben dann den Namen
unseres services ein (set_reading
) uns schon findet er ihn unter vollem
Namen:
Nur noch den am physischen Gaszähler angezeigten Stand in das Eingabefeld
(new_reading
) tippen und dann Call service drücken – und schon ist das
erledigt.
Die angepasste config findet Ihr hier
Nun werde ich das Ganze mal eine Weile testen. Und falls es wider Erwarten immernoch Probleme macht wird das hier eine Gaszähler-Serie... ;-)