Wasserzähler in Homematic
Im Homematic Forum und einigen anderen Stellen gibt es den ein oder anderen Ansatz, wie der Wasserverbrauch im Haushalt in Homematic gemessen werden kann. Für alle Linux bzw. Arduinonutzer gibt es andere Lösungen.
Dieser Beitrag richtet sich an all diejenigen, die etwas weniger basteln können oder wollen.
Folgendes wird benötigt:
- Homematic Zählersensor Bausatz
- Zählersensor für GAS
- Wasserzähler mit Impulsausgang ACHTUNG: Es gibt Warmwasser- und Kaltwasserzähler
Nun folgend drei kleine Schritte:
- Zuerst muss das Kabel des Gaszählersensor an dem Ende abgeschnitten werden, an dem der Sensor selbst hängt. Wir brauchen nur das Kabel.
- Anschließend packen wir den Wasserzähler aus. Dort sollten zwei Kabel vorhanden sehen
- Nun werden die Drähte des Wasserzählers wie folgt an das abgeschnittene Kabel angeschlossen
1 Draht an PIN 2 + 4 + 5
1 Draht an PIN 6
+ 110K Widerstand zwischen 3 + 6
Die PIN-Belegung (also welche Farbe, welche Reihenfolge hat) findest du im Datenblatt, welches dem Sensors beiliegt. (Leider habe ich das Datenblatt nicht als Downloaddatei gefunden). Falls das jemand hat, kann er mir das gerne schicken, dann arbeite ich das mit ein.
Danach heißt es nur noch: Den Zählersenosor an die CCU anlernen und den Wasserzähler vom Installateur des Vertrauens einbauen lassen.
Als Einstellung muss die Anzahl der Impulse gewählt werden, die der Hersteller des Wasserzählers angibt. Bei mir waren es
Programm in der CCU erstellen
Um den Wasserverbrauch nun zu verarbeiten, brauchen wir ein neues Programm, welches wie folgt aufgebaut ist.
Im DANN-Bereich kommt das folgende Script rein. Wichtig dabei ist, dass du in der ersten Zeile deine Geräte ID einträgst. Wie du die findest, habe ich in einigen Beiträgen erklärt.
Zusätzlich musst du noch 2 Systemvariablen vom Typ Zahl anlegen. „Wasserkosten“ und „Wasserverbrauch“.
In der Variablen „e“ habe ich meinen Preis je cbm Wasser eingegeben (1.85€). Den Wert kannst du im Script durch einen Wasserpreis ersetzen.
var a = dom.GetObject("BidCos-RF.NEQ123456:1.GAS_ENERGY_COUNTER").Value();
var b = dom.GetObject("Wasserkosten").Value();
integer c = dom.GetObject("Wasserverbrauch").Value();
integer d = c + a;
integer e = d * 1.85;
dom.GetObject("Wasserverbrauch").State(d);
dom.GetObject("Wasserkosten").State(e);
WriteLine(d)
Wenn alles richtig gemacht wurde, ist das Gerät mit den Werten nun in der Zentrale.
Hmm, diese Lösung funktioniert. Aber man sollte vorher abklären, ob der Wasserversorger dem Tausch der Wasseruhr zustimmt.
Und dann würde ich nicht den originalen Gassensor „zerschneiden“ Das geht deutlich preiswerter, wenn man stattdessen ein 6p6p Telefonkabel hernimmt.
@Frank
Da stimmt ich Dir zu. Ich habe meinen Zähler mit Impulskontakt einfach in die Leitung zusätzlich eingebaut. Das Zerschneiden des Gassensors halte ich auch für Verschwendung, ein 6p6p Kabel tut es auch 😉