Gasverbrauchs-Sensor umgebaut

Ende August habe ich mir ja einen Verbrauchszähler für Erdgas gebastelt der auf einem Reed-Kontakt basiert und einen kleinen ESP32 Microcontroller enthält. Das ganze schien auch zu funktionieren, doch im Langzeittest traten dann einige Probleme auf.

Ich hatte einmal den Fall, dass der Sensor an einem Tag fast 15m³ Gasverbrauch „zählte“, was eigentlich nicht möglich ist. Dafür konnte ich immer wieder beobachten, dass der Reed-Kontakt manche „Nulldurchgänge“ nicht erfassen konnte. Da ich jetzt eine Weile im Urlaub war habe ich mal den echten Zählerstand vom 1. Oktober genommen und anhand des echten Zählerstandes vom 13. Oktober ausgerechnet, wie viele Kubikmeter verbraucht wurden. Dieser Wert war doppelt so hoch, wie der vom Reed-Kontakt ermittete Wert!

Damit war klar, dass die Lösung mit dem Reed-Kontakt bei mir nicht funktionieren will. Ich habe während der Wochen einige Versuche mit der Justieerung des Kontaktes gemacht und dabei auch einige dieser Kontakte verschlissen, denn wenn man zu oft an den Anschlüssen rumbiegt, dann bricht irgendwann das Glasröhrchen. Am Ende hat alles nichts geholfen, der Sensor zählt schlicht falsch.

Also war es Zeit für mich, der Lösung mit Reed-Kontakt adieu zu sagen und eine Lösung mit Hallsensor zu probieren. Dazu habe ich mir einen Schwung OH49E Hallsensoren besorgt. Dieser Senosr hat 3 Anschlüsse, 2 davon für die Versorgungsspannung und einen Output der eine Spannung entsprechend des Magnetfeldes ausgibt. Die Verkabelung kann man im Datenblatt nachschauen. ich habe einfach and die 3 Pins die Adern eines Flachbandkabels gelötet und dann diese mit Schrumpfschlauch gegeneinander isoliert.

Der VCC-Pin wird mit dem 5V Anschluß am Microcontroller verbunden, GND geht zu GND und der Ausgang des Hallsensors geht auf den A0 Analogeingang. Der Hallsensor passt auch gut an die Stelle wo vorher der Reed-Kontakt war, man plaziert ihn am Besten direkt über der LED.

Der Code für den Sensor muss dann in ESP-Home ein wenig angepasst werden, ein Konfigurationsbeispiel gibt es auf GitHub. Mein Code sieht jetzt so aus:

Das Update kann über einfach über WLAN eingespielt werden. Nach der Installtion kann man sich das Logfile ansehen, in dem dann der Wert des Input-Signals ausgebeben wird.

Das wichtige ist, dass man aus diesen Spannungswerten die Schwellen für treshold ermittelt, in meinem Fall wird beim Überschreiten von 0,72 V angenommen, dass gerade der „Nulldurchgang“ in der letzten Stelle erfolgt, werden 0,71 V unterschritten, dann ist der Impuls also wieder auf „release“ und die LED geht aus.

Das Log zeigt das auch perfekt an:


Und kurz darauf wieder:

Dieses Umschalten zum „OFF“-State passiert bei mir dann ungefähr, wenn die letzte Stelle die Ziffer 2 anzeigt.

Das heißt nun, dass dank Hall-Sensor jeder „Nulldurchgang“ der letzten Stelle im Gaszähler erfasst wird. Ich habe mal den Zählerstand von der Intebriebnahme der Version mit Hallsensor notiert und kann bis jetzt keine Abweichung mehr feststellen. Der Wert der mir nun in HomeAssistant angezeigt wird passt exakt zu dem was der Zähler anzeigt, keine Differenz mehr.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert