Wasseruhr anbinden

Begonnen von Edi77, 01 Mai 2017, 03:21:53

Vorheriges Thema - Nächstes Thema

andies

sensus 620? Den habe ich mit HM auslesen müssen, weil ich keinen Strom vor Ort habe. Sonst gibt es mW viele Berichte mit Dioden, musst du einfach googeln.


Gesendet von iPad mit Tapatalk Pro
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Trebor5

Hallo Fhem Gemeinde,

ich habe jetzt alles durchgelesen und bin überrascht das so viele versuchen einen Wasserzähler selbst zu Bauen.

Hier einmal mein Projekt . Vieleicht hilft es dem ein oder anderen der nicht so Bastelfreudig ist.

Ich benutze einen Wasserzähler mit Impulsausgang für 35 Euro und da ich sowieso einen 1 Wire USB mit 2x So Ausgang an meinem Odroid XU4 dran habe, konnte ich den Wasserzähler ohne weiteres anschliessen.
An dem 1Wire habe ich zusätzlich noch 8 Temp. Sensoren für die Heizung dran.

Wasserzähler  :
https://www.amazon.de/Wasserz%C3%A4hler-130mm-Impulsausgang-Liter-Warmwasser/dp/B01M3S1C5Y/ref=pd_sbs_60_3?_encoding=UTF8&pd_rd_i=B01M3S1C5Y&pd_rd_r=adfee27c-0129-11e9-b2e4-3f90368f41c0&pd_rd_w=9Hf97&pd_rd_wg=l49Jc&pf_rd_p=51bcaa00-4765-4e8f-a690-5db3c9ed1b31&pf_rd_r=NJQE6SHRCXY1M93VJJX4&psc=1&refRID=NJQE6SHRCXY1M93VJJX4

1Wire mit 2x S0
https://www.sms-guard.org/downloads/1wire-USB-Master/index.htm

Fhem Anbindung:

define 1WIRE_S0 USBMASTER /dev/ttyUSB0@38400
attr 1WIRE_S0 devStateIcon .*:cul
attr 1WIRE_S0 event-on-change-reading .*
attr 1WIRE_S0 userReadings 1


Nach der Definition in Fhem kann es bis zu 10 min dauern bis der erste 1Wire Sensor Daten sendet, deshalb nicht nervös werden und Fehler suchen . Gedult.

Fhem Darstellung und Plot der Werte
define Wasserverbrauch cloneDummy 1WIRE_S0 B
attr Wasserverbrauch comment Wenn mal wieder zu viele Readings als fehler im hauptlog stehen dann < deletereading Wasserverbrauch B:*.* > in fhem eingeben oder Anstatt B das A eintragen je nachdem wo der Sensor angeschlossen ist.
attr Wasserverbrauch event-on-change-reading .*
attr Wasserverbrauch group Gesamtverbrauch
attr Wasserverbrauch room Wasserverbrauch
attr Wasserverbrauch stateFormat {sprintf("%.0f Liter",ReadingsVal($name,"_state","?")/2)}

#########################################################

define Wasserverbrauch_Gesamt dummy
attr Wasserverbrauch_Gesamt event-on-change-reading .*
attr Wasserverbrauch_Gesamt group Uebersicht
attr Wasserverbrauch_Gesamt room Wasserverbrauch
attr Wasserverbrauch_Gesamt stateFormat {sprintf("%.1f Liter - %.2f €",ReadingsVal("Wasserverbrauch_Gesamt", "Verbrauch",0)/2,ReadingsVal("Wasserverbrauch_Gesamt","Kosten",0)/1000*3.8)}
attr Wasserverbrauch_Gesamt userReadings Verbrauch monotonic {ReadingsVal("Wasserverbrauch_Gesamt","Tagesverbrauch",0)},

define Wasserverbrauch_Jahr dummy
attr Wasserverbrauch_Jahr event-on-change-reading .*
attr Wasserverbrauch_Jahr group Uebersicht
attr Wasserverbrauch_Jahr room Wasserverbrauch
attr Wasserverbrauch_Jahr stateFormat {sprintf("%.1f Liter - %.2f €",ReadingsVal("Wasserverbrauch_Jahr", "Verbrauch",0)/2,ReadingsVal("Wasserverbrauch_Jahr","Kosten",0)/100*3.8)}
attr Wasserverbrauch_Jahr userReadings Verbrauch monotonic {ReadingsVal("Wasserverbrauch_Jahr","Tagesverbrauch",0)},

define Wasserverbrauch_Monat dummy
attr Wasserverbrauch_Monat event-on-change-reading .*
attr Wasserverbrauch_Monat group Uebersicht
attr Wasserverbrauch_Monat room Wasserverbrauch
attr Wasserverbrauch_Monat stateFormat {sprintf("%.1f Liter - %.2f €",ReadingsVal("Wasserverbrauch_Monat", "Verbrauch",0)/2,ReadingsVal("Wasserverbrauch_Monat","Verbrauch",0)/1000*3.8)}
attr Wasserverbrauch_Monat userReadings Verbrauch monotonic {ReadingsVal("Wasserverbrauch_Monat","Tagesverbrauch",0)},

define Wasserverbrauch_Tag dummy
attr Wasserverbrauch_Tag event-on-change-reading .*
attr Wasserverbrauch_Tag group Uebersicht
attr Wasserverbrauch_Tag room Wasserverbrauch
attr Wasserverbrauch_Tag stateFormat {sprintf("%.1f Liter - %.2f €",ReadingsVal("Wasserverbrauch_Tag", "Verbrauch",0)/2,ReadingsVal("Wasserverbrauch_Tag","Kosten",0)/1000*3.8)}
attr Wasserverbrauch_Tag userReadings Kosten {ReadingsVal("Wasserverbrauch_Tag","Verbrauch",0)}

define atWasserverbrauch at +*00:01:00 {\
my $a = (ReadingsVal("Wasserverbrauch","B",0));;\
\
fhem("setreading Wasserverbrauch_Tag Verbrauch $a");;\
fhem("setreading Wasserverbrauch_Monat Tagesverbrauch $a");;\
fhem("setreading Wasserverbrauch_Jahr Tagesverbrauch $a");;\
fhem("setreading Wasserverbrauch_Gesamt Tagesverbrauch $a");;\
\
if(($hour==0) && ($min==0)){\
fhem("set Wasserverbrauch_Tag Verbrauch 0")} \
\
if(($hour==0) && ($min==0) && ($mday==1)){\
fhem("setreading Wasserverbrauch_Monat Verbrauch 0")}\
\
if(($hour==0) && ($min==0) && ($yday==1)){\
fhem("setreading Wasserverbrauch_Jahr Verbrauch 0")}\
}

define WasserverbrauchLOG FileLog ./log/WasserverbrauchLOG-%Y-%m.log Wasserverbrauch_Gesamt:.*|Wasserverbrauch_Jahr:.*|Wasserverbrauch_Monat:.*|Wasserverbrauch_Tag:.*
attr WasserverbrauchLOG room Z-LOG

define SVGWasserverbrauch SVG WasserverbrauchLOG:SVG_WasserverbrauchLOG:CURRENT
attr SVGWasserverbrauch fixedrange month
attr SVGWasserverbrauch room Wasserverbrauch


hier noch der Inhalt der Plot Datei die unter /opt/fhem/www/gplot/SVG_WasserverbrauchLOG.gplot speichern.
# Created by FHEM/98_SVG.pm, 2018-12-16 12:22:32
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Wasserverbrauch Tagesansicht'
set ytics
set y2tics
set grid
set ylabel "Liter"
set y2label "Liter"
set yrange [200:1200]
set y2range [200:1200]

#WasserverbrauchLOG 4:Wasserverbrauch_Monat.Verbrauch\x3a::delta-d

plot "<IN>" using 1:2 axes x1y2 title 'Wasserverbrauch' ls l0fill lw 1 with bars



In Fhem, im Plot noch in dem Feld Funktion delta-d eintragen.

Leider gibt es noch einen Fehler und eine Erweiterung mit der ich nicht klarkomme.
Das was mir noch fehlt ist das ich eine Nachricht über Whatsapp bekomme vom täglichen Verbrauch. Da die Werte mit delta-d  zwar richtig im Plot angezeigt werden allerdings diese ja berechnet sind, weis ich nicht wie ich die als Nachricht versenden kann.  Der Tagesverbrauch wird zwar im Plot richtig angezeigt allerdings stimmen die Wasserverbrauchs Tageszahlen nicht.
Wasserverbrauch_Tag 119137.5 Liter - 905.44 € halte ich für utopisch.
Weis aber nicht warum.
Vieleicht weis ja jemand von euch wie es geht.
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

PeMue

Hallo,

ich habe das etwas anders gelöst. Die Wasseruhr ist bei mir an einem GPIO Pin des Raspberry Pi angeschlossen (1 Impuls/Liter).
FHEM Definition:
# water counter over RaspberryPi GPIO 31 (P5-6) and GND (P5-8)
define WZpin RPI_GPIO 31
attr WZpin active_low yes
attr WZpin devStateIcon on:ios-on-blue.png off:ios-off
attr WZpin direction input
attr WZpin interrupt both
attr WZpin pud_resistor up
attr WZpin room 3.2_Wasser
attr WZpin toggletostate yes


Die eigentliche Zählung erfolgt mittels des HourCounter Moduls:
# counter module
define Wasser HourCounter WZpin:on WZpin:off


Dann habe ich mir einen 15-Minuten Wert per at eingerichtet:
# prepare reading for every 15 minutes difference to before
define Wasser15min_at at +*00:15:00 {\
my $last=ReadingsVal("Wasser", "counts15min_last", "0");;;; \
my $act=ReadingsVal("Wasser","countsOverall","0");;;; \
my $val15min=$act-$last;;;; \
fhem "setreading Wasser counts15min $val15min";;;; \
fhem "setreading Wasser counts15min_last $act";;;; \
}

Kurze Erklärung hierzu:
- das letzte Reading (last) wird gespeichert
- nach 15 Minuten wird das aktuelle (act) eingelesen
- die Differenz (val15min) ist der 15 Minuten Wert

Am Ende des Tages wird der Tagesverbrauch ermittelt:
# prepare reading total water volume in every night
define WasserDay_at at *23:59:30 {my $new=ReadingsVal("Wasser","countsPerDay","0");;fhem "setreading Wasser countsPerDay_tot $new";;}

Das Reading kommt aber aus dem HourCounter Modul.

@Trebor5:
Vielleicht kannst Du einfach parallel mal rechnen und schauen, was dabei rauskommt. Das Senden per WhatsApp kannst Du ja auch per at am Ende des Tages machen.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Tommy82

Hi,
ich hänge mich hier mal ran, ich habe eine Wasseruhr wie im Anhang zu sehen, wie kann ich die in Fhem anbinden/auslesen?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

roedert

Hast du den Thread überhaupt gelesen? Da steht doch alles.....

Tommy82

Ja, aber hier gibt es soviele möglichkeiten, da blick ich nicht durch was ich für die Anbindung meiner uhr benötige....
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

andies

einfach wird das nicht, weil du kein silbernes Plättchen hast. Du musst erkennen, wenn sich das Rad dreht. MW geht das mit den IR-Dioden schon, ist aber bastelei. Ich habe das damals bei meinem Gaszähler nicht hinbekommen, jedenfalls nicht mit IR. Mit einer Profidiode ging dann alles ganz schnell. Läuft seit zwei Jahren absolut zuverlässig.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hankyzoolander

Hallo, habe das bei mir wie auf den folgenden Bildern gelöst.
Benutze dazu einen Lichttaster von Sick. Dieser macht einen roten Punkt und wenn dieser reflektiert wird, gibt er ein Signal aus.
Habe den Lichttaster an einem Arduino Nano mit USB Firmata welcher per USB an einem Raspi mit fhem ist.
Habe mir einen passenden Adapter mit dem 3d Drucker ausgedruckt, welcher den Sensor genau auf position hält.
Diese Sensoren gibt es mehr oder weniger günstig bei Ebay. Hatte damals Glück und konnte 2 Stück für 35€ erstehen.
(Den anderen benutze ich um den Stromzähler auszulesen).

Am Wasserzähler gehe ich auf den Zeiger ganz links, der bei meiner Wasseruhr 1 Umdrehung=1 Liter ist. Sobald der Zeiger oben bei 0 vorbeikommt, greift der Sensor.
betateilchen  <--- my personal hero

co010

Hallo hankyzoolander,

Super Projekt , würden Sie die Datei für den 3D-Druck zur Verfügung stellen ?
habe die gleiche Wasseruhr !


Grüße Robert

tpm88

Hallo hankyzoolander,

dito bei mir, gleicher Wasserzähler und habe sogar heute morgen gleich einen Lichttaster günstig bei ebay gefunden... Ich bin gleich noch unverschämter - könntest Du mir evtl - natürlich gegen Erstattung der Unkosten - einen Deckel drucken und schicken??

Schönen 1. Mai & Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

hankyzoolander

So,da ich es gerade nicht blicke wie ich die datei in meinen obigen post bekomme, füge ich sie halt hier dazu.

Bitte mit Stütze drucken wegen den haltekrallen.
Layerhöhe 0.2
Speed: (wie ihr halt so normal druckt)
betateilchen  <--- my personal hero

Prof. Dr. Peter Henning

Ich wundere mich ein wenig. Die Lichttaster von Sick werden bei Conrad nicht unter 140 € angeboten, zusätzlich muss man noch den Deckel drucken.


Kaltwasserzähler mit Impulsausgang gibt es ab 50 €, siehe hier:
https://www.energie-zaehler.com/Wasserzaehler-mit-Impulsausgang-QN-25-m-1-Imp/Liter-MID-geeicht
https://www.amazon.de/Wasserz%C3%A4hler-130mm-Impulsausgang-Liter-Kaltwasser/dp/B01LWR0F54

Ich selbst habe vor 3 Jahren noch fast 100 € gezahlt - rentiert sich trotzdem.

Und der Einbau wurde vom Wassermeister meines Wohnortes kostenfrei erledigt, er war froh, dass er seinen geeichten Zähler (der noch brandneu war) wieder mitnehmen und woanders einbauen konnte...

LG

pah

willib

Wie macht ihr das mit dem Zählertausch? In Hamburg müssen die Kaltwasserzähler nach 6 Jahren getauscht werden. Lasst ihr dann einfach einen neuen einbauen?
Wie ist das mit dem Grundpreis, der enthält ja normalerweise die Zählermiete, ist der mit eigenem Zähler geringer?
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Prof. Dr. Peter Henning

#88
Das habe ich noch offengelassen - ist auch genau so in den SmartHome Hacks nachzulesen  ;)

Die Zähler müssen übrigens nicht getauscht, sondern geeicht werden - das ist ein wesentlicher Unterschied. Das bedeutet nämlich: Wenn der nächste Eichvorgang fällig ist, kann ich den Wassermeister bitten, mir den ausgebauten Zähler auszuhändigen. Und werde ihn dann für ca. 8€ eichen lassen. Wenn der Wassermeister dann für den Einbau des frisch geeichten Zählers eine Rechnung stellen will: Dann kann ich ihm mit der Einsparung durch die Verwendung meines eigenen Zählers kommen...

Eine Verringerung des Grundpreises, weil man einen eigenen Zähler hat? Leute, lasst die Kirche im Dorf - so geizig muss man wirklich nicht sein.
Das würde außerdem der Gemeinde erheblich höhere Verwaltungskosten ausfbürden, die wieder die Allgemeinheit tragen müsste.

Edit: Übrigens kommt in diese Eichpflicht ein wenig Bewegung: http://www.haus-grund.org/2017101_wasserzaehler.html

LG

pah

Damu

Bei uns werden die Wasserzähler periodisch ersetzt durch revidierte Zähler.
Wobei nicht definiert ist wie lange eine dieser Perioden ist.
Wohne 19 Jahre in dem Haus und haben den zweiten Zähler.
Der wurde aber nur durch einen mit Funkübermittlung getauscht.
Das heisst es wurden alle innerhalb von zwei Jahre getauscht.
Sonst hätten wir wohl noch immer den ersten.
Weiss das alte Zähler bei uns immer weniger drehen.
Denke das der Kalk, Sand und anderes den Schaufeln nicht so gut tut.
Der nächste Tausch wird wohl bei leeren Batterien der Funkmoduls erfolgen.
Die Zähler sind von der Firma GWF.
Ist wohl kompliziert bei diesen Mitzuhören.

In welchem Abstand lest ihr den Zähler aus.
Eine Leckerkennung bei Abwesenheit ist dann sicher eine tolle Sache.