Gaszähler mit Reed-Kontakt und PiFace auslesen

Begonnen von maluk, 01 April 2015, 22:30:23

Vorheriges Thema - Nächstes Thema

maluk

Hallo,

nach einigem Experimentieren lese ich nun seit ca. 2 Monaten den Stand meines Gaszähler stabil über einen Reed-Kontakt aus. Ich nutze hierfür ein PiFace Digital 2, da ich neben dem Gaszähler auch noch mein Garagentor über PiFace steuere.

Den Reed-Kontakt muss man wie hier beschrieben am Gaszähler befestigen: http://monitor4home.com/beispiele/gaszahler-mit-reedkontakt-ausstatten. Die beiden Kabel werden dann an einen Input Pin (bei mir Port 6) und an GND angeschlossen.

Das eigentliche Auslesen des Zählers erfolgt außerhalb Fhem. Zum einen ist die Software-Unterstützung von PiFace für Python deutlich besser als für Perl. Zum anderen erfolgt die Zählung der Impules dann Interrupt-gesteuert unabhängig von der Verfügbarkeit von Fhem, was bei mir sehr positiv für die Stabilität des Gesamtsystems war. Daher ist zunächst eine Installation von Python und der Piface-Library erforderlich, siehe http://piface.github.io/pifacedigitalio/installation.html

Das angehängte Python-Skript piface_gas.py erhöht bei jedem Impuls vom Reed-Kontakt in der Datei /opt/fhem/data/Gaszaehler den Zählerstand um 0,01 m³. Das Verzeichnis data muss auf jeden Fall manuell angelegt werden, die Datei wird vom Skript automatisch erzeugt. Alternativ kann sie auch gleich manuell mit dem korrekten Start-Zählerstand angelegt weden (Beispiel mit Zählerstand 3699,85 m³):

consumption:3699.85
consumptionToday:0.00

Solltet Ihr für den Telnet-Port in Fhem ein Passwort verwenden, müsst Ihr dieses in Zeile 4 hinter dem Port 7072 ergänzen.

Damit der Aufruf von Fhem aus dem Python-Skript funktioniert, muss noch die Datei 99_FileInterfaceUtils.pm in /opt/fhem/FHEM kopiert weden. Außerdem muss noch der Gaszähler in Fhem definiert werden:

define Gaszaehler FileInterfaceUtils GasMeter
attr Gaszaehler stateReading consumptionToday

Das Python-Skript starte ich bei jedem Hochfahren des Raspberry als Daemon über /etc/rc.local gleich mit:

python <pfad>/piface_gas.py &

Neben der Anzeige des Zählerstandes und Tagesverbrauchs in Fhem schreibe ich die consumption-Werte über DbLog noch in eine Datenbank und kann dann sehr schöne Auswertungen über den Gasverbrauch machen.

Grüße
maluk

Nachtrag 05.04.2015: ich hatte ursprünglich eine falsche Datei angehängt (99_GasMeterUtils.pm statt 99_FileInterfaceUtils.pm) und habe das soeben korrigiert.