Smarthome // Smarter Wasserzähler mit Reed Kontakt, WeMos Mini und Tasmota

Smarthome // Smarter Wasserzähler mit Reed Kontakt, WeMos Mini und Tasmota

Tasmota

Da unser Wasserzähler im Haus eine Vorbereitung für einen Reed Kontakt hatte, habe ich mich entschlossen ihn in die Hausautomation zu integrieren. Der Wasserzähler ist ein MNK N Zähler von Zenner:

MNK N Zähler Zenner

Der passende Reed Kontakt ist dieser hier, ich habe ihn bei SPEWA bestellt:

Zenner Reed Kontakt

Da in unserem Haus ja KNX in Zusammenspiel mit einem Raspi und ioBroker am Laufen ist, habe ich mich entschlossen den Reed Kontakt über einen WeMos Mini (Nachbau) und Tasmota zu integrieren, und die Daten per MQTT an ioBroker zu senden. Quasi das gleiche Prinzip, wie die Stromzähler über den optischen Ausgang ausgelesen werden.

Am WeMos ist der Reed Kontakt an D1 / GPIO5 und GND angeschlossen:

Anschlussplan Wemos D1 Mini

Folgende Tasmota Config nutze ich:

Tasmota Konfiguration

Der Reed steuert also einen Switch1, der wiederum dann einen „künstlichen“ Zähler auf dem ungenutzten GPIO14 zählt.

Das Ganze wird über folgende Befehle auf der Tasmota Konsole konfiguriert (Danke an diesen Beitrag von Stratos Gkrekidis):

switchmode1 1
counter1 <Anfangszählerwert>
rule1 on switch1#state=0 do Counter1 +1 endon
rule1 5
rule1 1

<Anfangzählerwert> muss natürlich mit dem aktuellen Zählerwert auf dem Wasserzähler übereinstimmen und ggf. bei einem Neustart des WeMos aktualisiert werden (bleibt auch wenn er aus ist gespeichert, aber aktualisiert halt nicht mehr). Hierbei ist folgendes zu beachten:

Der Reed Kontakt wird bei jedem „0“ der dritten Stelle nach dem Komma ausgelöst. Das heißt der Zähler im Tasmota zählt 0,01 m³. Ergo muss zum Beispiel ein Zählerwert von 123,45 m³ in Tasmota als 12345 laufen.

Der Wert läuft dann über die selbsterklärenden MQTT Einstellungen über den Sonoff Adapter in ioBroker:

MQTT Input aus Tasmota in ioBroker

Jetzt muss im ioBroker noch ein bisschen gerechnet werden, um die interessanten Werte zu bekommen. Ich wollte den Wasserverbrauch pro Tag/Woche/Monat in l und den passenden Preis dafür, um es auf dem Hausautomations-UI auszugeben (analog dem Stromverbrauch).

Hierzu habe ich folgende Variablen in ioBroker angelegt:

Variablen für die Berechnung in ioBroker

(nicht wundern, einige Variablen sind aufgrund der Laufzeit noch nicht gefüllt.

Die Berechnung erfolgt mit Javascript und Blocky:

Heuteverbrauch berechnen
Tagesverbrauch berechnen
Wochenverbrauch berechnen
Monatsverbauch berechnen

(Für den Jahresverbrauch war ich aktuell noch zu faul, aber der funktioniert analog dazu)

Alle relevanten Werte werden per SQL Adapter natürlich noch geloggt und können dann entsprechend per Diagrammen ausgewertet werden.

Thats it, bei Fragen gerne in die Kommentare!

Kommentare sind geschlossen.