Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von jp112sdl » 12.07.2017, 22:23

Echt interessant, wie unterschiedlich hier die Wasserzähler-Projekte umgesetzt und dokumentiert wurden.

Ich habe es ähnlich gemacht - mit nem Wemos D1, der die Werte per WLAN an die CCU überträgt und 1 Arduino Mini Pro (demnächst ATtiny85), der die Impulse erfasst.

Auf stall.biz fand ich die initiale Idee, den Zeiger optisch abzugreifen. Der Rest ergab sich dann von selbst.

Ich finds toll, dass manche Leute sich die Zeit nehmen und alles sehr ausführlich dokumentieren.

Danke!

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

AxxlFoley
Beiträge: 12
Registriert: 26.03.2018, 22:36

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von AxxlFoley » 26.03.2018, 22:49

Sehr interessant!

Alle Versuche meinen Wasserzähler auszulesen sind bisher mehr oder weniger gescheitert oder waren auf Dauer unzuverlässig.
Ich habe auch einen SUN EX-26A hier jetzt rumliegen. Ich weiß nur nicht genau wie ich das Teil anschließen soll. Er braucht ja mindestens 12V. Ich wollte das auch mit einem Wemos oder Arduino Uno + Shield betreiben (Ethernet habe ich in Zählernähe). Hast du zufällig einen Schaltplan o.ä. ? Könntest du mal ein Foto machen, wie das bei dir aussieht ? Also Verbindung Wemos zu Sun-Ex26a mit Netzteil und Konverter.

Welches Netzteil nutzt Du ?

Ach Fragen über Fragen.

Danke und Gruß,
Axxlfoley

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von klassisch » 27.03.2018, 08:37

So etwa sieht es aus
WaterMeter-housing--6x4-P1320024.JPG
Schaltplan habe ich nie gezeichnet, sind ja nur ein paar Bauteile straight forward verschaltet.
Ich verwende 2 WeMos, einen zum Zählen und einen zum Auswerten und als Webinterface. Gekoppelt duch eine unidirektionale serielle Schnittstell (uart). So werden sicher Zählassetzer während der WLAN Verbindung vermieden. Ob es in der Praxis auch mit einem geht, habe ich nicht getestet, die WeMos sind billig.
Netzteil ist Pollin Pollin 351843, 15V 1.66A, alle erforderlichen Sicherheitszertifikate, kostengünstig, wenn auch überdimensioniert, geringe Ruheleistung 0.3W oder so. Es geht aber jedes andere gute zwischen 12V und 24V, also z.B. auch altes Notebook Netzteil. Damit kann man en EX-26A diekt versorgen, auch einen Mega2560, nicht aber den WeMos.
Plus vom Netzteil (Innenstift des Steckers) geht an die braune Leitung vom EX-26A , GND, also der Aussenzylinder vom Stecker an die blaue Leitung. Die schwarze Leitung des EX-26A geht an einen WeMos GPIO, in meinem Fall GPIO0, D3

Code: Alles auswählen

#define INPUTPIN_FC 0   // GPIO0, D3  here WeMos has external pull up 10k Ohm. this makes it easy to use sensors with open collector
....
pinMode(INPUTPIN_FC, INPUT_PULLUP); //  GPIO0, D3 -> 10k pull up resistor -> 3V3
attachInterrupt(digitalPinToInterrupt(INPUTPIN_FC), handleInterruptInputCounter, CHANGE);
.
Eine weitere Beschaltung braucht es beim EX-26A mit seinem NPN open collector-Ausgang nicht. Der GPIO wird ja als Pullup konfiguriert, was beim ESP8266 etwa 20kOhm entspricht und der WeMos hat an GPIO0 (D3) nochmals 10kOhm parallel zu den 3.3V eingebaut. Bei einem EX-26A-PN wäre das anders, da wäre ein slocher direkter Anschluß verheerend und es würde eine Zwischenschaltung benötigt, z.B. ein BC337 mit 10kOhm Basisvorwiderstand und 20k Basisparallelwiderstand (geschätzt, nicht gerechnet). Also genau schauen, welcher EX-26A vorliegt, notfalls mit einem Volmter den schwarzen Ausgang messen. Wenn in allen Schaltpositionen keine nennenswerte Spannung gegen GND (blau) anliegt ist alles i.O.

Den WeMos versorge ich mit einem DC DC Wandler, den man mit "buck mini 97.5%" bei ebay und ali für ca. 0,50EUR findet.
Buck-converter-MP2315-adjustable-front-B.jpg
Auf der Rückseite das umrandete durchkratzen und die beiden Pads bei 5V brücken.
Buck-Converter-MP2315-1-back-b2-6x4.JPG
Mit dem mache ich aus den 15V die 5V für die WeMos. Man kann aucher auch ein 5V Netzteil nehmen, wie z.B. Pollin 351837 .
Befestigung Mittels Kabelschelle, CU-Draht und Justage ist ja oben beschrieben.
Vor der ganzen Elektrik würde ich erst mal schauen, ob der EX-26 mit Deiner Wasseruhr klarkommt. Der hat eingebaute LEDs und zeigt seine Zustände an. Wenn Du noch kein passendes Netzteil hast, kannst Du auch testweise 2 Stck 9V Blockbatterien in Reihe schalten und den EX-26A versorgen. Bitte aber die schwarze Leitung isolieren, damit es nicht zum versehentlichen Kurzschluss kommt. Der EX-26A hat auch eine Einstellmöglichkeit, deren Verwendung in irgendeiner Anleitung erläutert ist. Habe das nicht wirklich gebraucht. Bei mir läuft der EX-26A stabil, präzise und ohne "Schaltflattern".
Viel Erfolg.

AxxlFoley
Beiträge: 12
Registriert: 26.03.2018, 22:36

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von AxxlFoley » 06.04.2018, 22:13

Erstmal vielen Dank für die ausführliche Antwort. Ich bin jetzt ein Stückchen weiter und kann sagen, dass mein SunEx 26A schonmal funktioniert. Ich bin leider noch ziemlicher Anfänger im Mikrocontroller Business, aber ich Stück für Stück werde ich hoffentlich zum Ziel kommen.

- Habe mir das Netzteil besorgt und mit einem Hohlstecker Adapter an den SunEx 26A angeschlossen.

- Bin damit in den Keller zu meinem Zähler und habe den SunEx auf den Literzeiger positioniert. Habe mir kurzfristig unter Protest die PlayDo Knete meines 3 jährigen Sohnes geborgt und den Sensor behelfsweise fixiert.
zähler_knete.jpg
- Wasser mal laufen lassen und ja es scheint sich was zu tun, wenn der "Liter"-Zeiger vorbeikommt ändern sich kurz die LEDs. Ich denke mal, das ist ein gutes Zeichen.

Nun würde mich natürlich interessieren wie ich genau das Signal zählen kann. Habe auch 2 WeMos hier rumliegen und wie gesagt am Zähler noch einen Arduino Uno mit Ethernet Shield der die Basis meiner bisherigen Versuche war. Ich hatte in der Vergangenheit diese Lösung nachgebaut. Hatte auch einigermaßen funktioniert, aber nach paar Tagen /Wochen, hatten sich die Schwellwerte immer verändert, so dass diese Lösung nicht so richtig zuverlässig war und irgendwann nicht mehr gezählt hat. Damals ging das ja an einen Analogen Pin. Mit dem SunEx muss ich ja jetzt an einen Digital-In vermute ich.

Bin mir auch nicht Sicher ob ich da jetzt noch irgendwelche Widerstände dazwischen hängen muss, wenn ich das an den Adruino Uno hänge. Ich kann mir ja auch vorstellen das mit 2 Wemos umzusetzen. Mein Ziel wäre das pro Liter eine MQTT Message verschickt wird. Beim Arudino Uno habe ich das mit dem PubSubClient umgesetzt. Kann mir auch vorstellen, dass an meine CCU2(Raspberrymatic) irgendwie zu senden.

- Wäre es dir möglich dein Code für den WeMos in Gänze zur Verfügung zu stellen ?
- Kannst du nochmal genauer auf die Verbindung der WeMos eigehen ? Was hängen da noch alles für Sachen an deinen WeMos ?
- Wie hasst du das schwarze Kabel an den WeMos GPIO0 (D3) gebracht ? Verlötet ? Gesteckt ? Die Kabel sind wirklich recht zierlich bei dem Sun-Ex 26A

Danke!

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von klassisch » 07.04.2018, 03:34

Prima, wieder ein Stückchen weiter. Meine ersten Versuche waren auch mit so einer Pampe, in meinem Fall Installationskitt.
Die Abfrage des Literzählers ist ja eigentlich viel zu leicht und ein Kinderspiel. Mit dem EX-26A müßtest Du eigentlich auch das Sternrad abtasten können. Erst dann wird es meiner Meinung nach so richtig interessant. Meine Wasseruhr bringt pro Liter dann etwa 90 Impulse.
Die Verschaltung habe ich <DORT> beschrieben.
Generell werden bei mir alle Verbindungen innerhalb des Gehäuses gelötet. Auf die Steckerleisten verzichte ich in der Regel. Den billigen Steckern Dupont traue ich keine Langzeitstabiität zu und direktes Löten baut auch kleiner. Wenn Löten nicht so Deins ist, kannst Du es sicher auch anders machen.
Die Verbindungen, die nach aussen gehen (Versorgung und der EX26A) werden mit Wasgo Klemmen aus der Reihe 221 angeschlossen (Beschaffungsbeispiel) und sind damit lösbar aber dennoch sehr zuverlässig verbunden. Für dieses eine Projekt würde ein Zehnerpack 221-413 für 3 EUR reichen. Die Käbelchen von den Wagos an den WeMos A sind bei mir am WeMos bzw. dem DC-DC-Wandler eingelötet. Wie die verschaltet sind und wie es sich mit den Pullups verhält, steht oben beschrieben. Viel Text, ich weiss.
Wie man im obigen Bild sehen kann, verwende ich 2 WeMoos D1-Mini. Die beiden Sketches kann ich Dir bei Bedarf zuschicken. Ob sie viel helfen, weiss ich nicht, denn sie sind schnell gestrickt aus einem Temperatursensorsketch abgeleitet und hinteher nicht aufgeräumt.
Ausserdem können sie kein MQTT, sondern senden die aubereiteten Daten an die Homematic über CUxD-
Die Auswertung ist meiner Meinung nach deutlich leistungsfähiger aber auch komplitzierter. Bisher habe ich MQTT noch auf keinem WeMos integriert und weiss auch nicht wie das geht. Wenn Du so einen Ansatz in Verbindung mit dem Literzähler (statt Sternrad) wählst, kannst Du wohl Dein bisheriges Programm weiterverwenden. Vielleicht sogar mt dem bisherigen Analogeingang (+Pullup-Widerstand), obwohl es auch ein Digitaleingang tut und der dann den Pull-Up Widerstand einspart.
Alternativ kannst Du evtl einen Sonoff TH10 mit Tasmota umbauen. Den Temperatursensoreingang als Tastereingang umkonfigurieren und dann bei jedem "Tastendruck"= Zählerimpuls eine MQTT Boschaft absetzen. Oder das ganze über einen WeMos mit dem schönen Framework ESPeasy betreiben, welches auch MQTT kann. Alternativen gibt es dann viele - solange Dir die Literimpulse reichen.

Bei meiner schnellzählenden 2-WeMos Lösung: Der erste WeMos hat eine einstellbare Zeitbasis mit einer default gating time von 10 Sekunden. Die 10 Sekunden haben sich bewährt. Er zählt alle Impulsflanken innerhalb dieser 10 Sekunden und übermittelt sie dann über eine unidirektionale serielle Schnittstelle an den zweiten WeMos.
Dazu verwende ich die HW-Serial, mit der auch geflasht wird. Das macht ggf. das spätere Flashen über die Serielle etwas schwieriger (normalerweise wird aber über OTA geflasht). Falls man aus irgendwelchen Gründen doch mal über die serial flashen muß, muss die Leitung zwischen den beiden WeMos wieder aufgetrennt werden -> Wago-Klemme.
Wenn man den ersten WeMos mit dem nichtgraphischen, häßlichen, rein tetxuellen Web-Interface eingestellt hat, spricht man ihn praktisch nicht mehr über WiFi an, damit er sich voll auf seine real-time Zählerei konzentrieren kann und leine Impulse verpasst, weil eir gerade schwtzt und wifi Pakete austauscht.
Der zweie WeMos bekommt also alle 10 Seknden Werte und verarbeitet sie weiter. Er berechnet z.B. den Zählerstand. Wenn seit der letzten Datenübertragung eine einstellbare Zeit (600Sekunden) verstrichen ist, wird Literzahl an die CCU übertragen. zusätzlich wird bei jedem neuen Zählimpuls der Wert verschickt, jedoch nicht häufiger als 30 Sekunden.
Damit der Zähler bei einem Restart des (zweiten) WeMos nicht wieder bei 0 startet, habe ich einen Mechanismus implementiert,mit dem er sich beim Start den letzten Wert von der CCU holt. Hat gunt funktioniert.
Da ich aber etwas "spielen" wollte, habe ich dann einen I2C EEPROM noch draufgelötet und speicher dort die Werte zwischen. Ob der erste Mechanismus, der auch ein Antwort-Skript auf der CCU benötigt, noch fumktioniert, weiss ich nicht. Nicht mehr getestet.
Der zweite WeMos macht auch die interessanten Histogramme, überwacht etliche Parameter und schickt Warnmails bei Grenzwertverletzung.
Finde ich ganz praktisch.
Wenn Du aber eh nur den Literzeiger überwachen möchtest, kannst Du den Aufwand wahrscheinlich auf einen Microcontroller reduzieren. Da entstehen so wenige Impulse, daß der WeMos wohl problemlos parallel zählen und WLAN machen kann. Aber dann passen meine Sketche gar nicht mehr.

AxxlFoley
Beiträge: 12
Registriert: 26.03.2018, 22:36

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von AxxlFoley » 07.04.2018, 22:47

Schon wieder so eine ausführliche Antwort ! Danke !
Fürs Erste würde mich eine zuverlässige Abfrage des Liter-Zeigers schon glücklich machen.

Den Buck Converter habe ich mir bei aliexpress bestellt.Es dauert nun halt ein bisschen bis er da ist. Ich habe mich entschieden das Ganze mit einem WeMos umzusetzen. Bei meinem Wasserdruck, wenn alle Schleusen offen sind, fließt hier maximal alle 5-6 Sekunden ein Liter durch die Leitung. Ich denke das sollte der WeMos packen und den Liter Impuls per MQTT zu meinem Broker senden.

Du scheinst, dies ja per Interrupt umgesetzt zu haben. Da bin ich leider nicht so firm, bin aber motiviert mich da reinzufuchsen.
Wo machst du diesen Befehl :

Code: Alles auswählen

attachInterrupt(digitalPinToInterrupt(INPUTPIN_FC), handleInterruptInputCounter, CHANGE);
im void setup() oder im loop() ?
Würde mich freuen, wenn du mir deinen Skretch zukommen lassen könntest. Ich denke ich kann trotzdem wertvolle Dinge für mich da rausbekommen um meinem Ziel näher zu kommen.

Danke !

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von klassisch » 08.04.2018, 05:27

Du hast ne PN.
Bei einem Impuls pro 6 Sekunden brauchst Du Interrupts nicht wirklich, da geht es auch noch mit Polling, also Abfrage des State in der loop().
Zur Verwendung des Interrupt habe ich mir die verschiedenen Anleitungen im Internet gesucht und umgesetzt. Wie beim Rest auch, deshalb ist auch alles so zusammengestückelt. Läuft aber bei mir stabil.
Der BME280 Temp-Feuchtessensor-Sketch, von dem der Watermeter abgeleitet ist, läuft bei einem Exemplar jetzt schon 372 Tage ununterbrochen. Die anderen wurden zwischendurch mal upgedatet oder jemand hat die Stromversorgung unterbrochen.
Also ziemlich gefrickelt aber läuft stabil. Aufräumen lohnt sich für mich nicht wirklich, ist ja nicht für den "Massenmarkt".

dondaik
Beiträge: 12929
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von dondaik » 08.04.2018, 08:02

an die 300 tage komme ich auch, doch leider werde ich dies abbrechen müssen da der UV sensor wohl sein leben ausgehaucht hat... er steht konstant bei 43 .
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von klassisch » 08.04.2018, 08:40

Meiner lebt noch und korreliert sehr gut (zu gut?) mit der Helligkeit:
UV-brightness-20180608.JPG
Stellt sich die Frage was wichtiger ist: UV Daten (mit denen ich persönlich nichts wirklich mache) oder die Freude über eine große uptime?

dondaik
Beiträge: 12929
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

Re: Wasserzähler erfassen - hochauflösend - Leckagekontrolle

Beitrag von dondaik » 08.04.2018, 08:56

letzteres !! deshalb hängt er ja noch an der wand und sendet mir die terrassendaten :-)
einen schönen sonntag.
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“