FHEM – Wasserzähler auslesen mit Hilfe von MySensors

Wasseruhr mit metallischen Halbmond
Wasseruhr mit metallischen Halbmond (Abb.1)

Wasserzähler die mit einem metallischen Messrad (Halbmond aus Metall) ausgestattet sind (Abb. 1), können mit Hilfe eines induktiven Näherungssensor (Abb. 2) ausgelesen werden. Dabei wird beim Erkennen eines metallischen Objektes ein Reedkontakt im inneren des Sensors geschlossen. Diesen Implus kann man zum Beispiel mit Hilfe von MySenors.org „WaterMeter – Sketch“ ausgewertet werden und nach FHEM übertragen werden. Das setzt noch zusätzliche Hardware voraus, wie den notwendigen Gateway. Weiterhin ist MySensors fester Bestandteil in FHEM.

Bei einem Qn 2,5 (2,5 m3/h) Wasserzähler entspricht ein Impuls 1 Liter. Die Erkennungsrate beträgt nahezu 100 %, wenn der Sensor durch etwas probieren ausgerichtet wurden ist. Dabei sollte der Sensorkopf möglichst den gesammten Halbmond abdecken können.

So ein selbstgebauter Sensor kostet ohne den Anteil der MySensor-Komponeten etwa 12 €. Ein fertiger Sensor zum reinen Erkennen einer Umdrehung der Scheibe würde um die 60 € kosten.

induktiver Näherungssensor
induktiver Näherungssensor (Abb. 2)

Meine Zutaten:
MySensors.org Standardsensorverkabelung und Hardware (Sensornode)
Induktiver Näherungssensor für den Wasserzähler (12V – 36 V) ~ 4 €
12 V Reed Relais ~ 2 €
Step Up für 5 V auf 12 V für Spannungsversorgung für den induktiven Näherungssensor ~ 2 €
– Winkel für Wasserzähler ~ 2 €
– Rohrschelle für Wasserzähler ~ 2 €

Zutaten WaterMeter
Zutaten WaterMeter (Näherungssensor, nano, StepUp, NRF24L01+, Winkel, Rohrschelle, Abzweigdose)

Einfache Montage
Wie oben erwähnt, muss der Sensor exakt positioniert werden. Dafür eignet sich ein Winkel mit variabler Befestigung (Schiene). Der Winkel wir mit Hilfe einer passenden Rohrschelle am Zähler befestigt. Ein Vorteil ist, das die gesamte Montage rückstandslos entfernbar ist.

Elektrischer Anteil
Der Sensor kann erst mit einer Spannung von 12 Volt betrieben werden. Ein Arduino Nano hingegen wird mit 5 Volt versorgt und die Eingänge sind maximal bis 5 Volt tolerant.

Also muss ein Step-Up die Spannung für den Sensor anheben und über ein Reed-Relay (12 Volt) den Sensor vom Arduino isolieren. Das bedeutet, das ein Eingangspin auf Ground geschaltet wird, sobald der Sensor ein Objekt erkannt hat.

Schaltplan Watermeter
Schaltplan Watermeter (schemenhaft)

 

montierter induktiver Näherungssensor
montierter induktiver Näherungssensor

Mein modifizierter Beispiel Sketch für den Wasserzähler liegt auf GitHub (WaterMeterPulseSensor on GitHub).

 

Hier noch zwei Bilder von der Elektronik. 🙂

 

Fertig zusammengebaut
Fertig zusammengebaut

 

Fertig verpackt
Fertig verpackt

22 thoughts on “FHEM – Wasserzähler auslesen mit Hilfe von MySensors

  1. Servus,

    versuche das Ganze gerade zu vertehen. Ich habe zwar (fast) keine Ahnung, aber irgendwas zwischen dem Foto und dem Schema passt meiner Meinnung nach nicht??? (lasse mich natürlich gerne eines Besseren behleren).

    …also wenn ich die Bilder vergleiche, dann müsste doch das Schema so aussehen:
    – Sensor + (rot) müsste NUR an StepUp + gehen (nicht auch noch an ReedRelais +)
    – Sensor out(gelb/grün) müsste im Schema an ReedRelais + gehen (nicht -)
    – Sensor – (schwarz) an – (auf dem Foto an – StepUp) gehen

    oder seh ich das falsch?

    Gruß

  2. Kann mir jemand einen Tipp geben, wo ich einen passenden Winkel bekomme? Die Winkel im Baumarkt haben meist kein Langloch, und die Löcher sind zu klein im Durchmesser…

  3. Hallo zusammen. Ich bin neu hier und finde die Idee, den Wasserzähler per FHEM abzulesen sehr spannend.
    Nun habe ich Homematic und möchte wissen, ob es hier auch geht.
    Ich denke, es wäre möglich, zusätzlich noch einen ESP8266 dranzuhängen, um die Systemvariablen per WLAN zu füllen. CuXD ist bereits installiert und arbeitet.
    Weiter habe ich leider auch keinen „Halbmond“ sondern nur einen Zeiger für die Liter-Anzeige.
    Der ist aus Plastik.
    Ist das so machbar?

  4. Habe alles so verkabelt wie angegeben, an einem GPIO Port meines Rspi 3 angeschlossen un die Geschichte mit FHEM ausgelesen. So weit so gut. Leider musste ich feststellen, das der hier vorgeschlagene Sensor zwar bei größeren metalischen Objekten gut fuktioniert, aber bei dem metallischen Halbmond der Wasseruhr nicht ausschlägt. Ich denke, das Glas der Wasseruhr ist zu dick oder am Halbmond ist nicht genug Metall um den Sensor zu beieindrucken. Kennst du vielleicht empfindlichere Nährungssensoren für Metall?

      1. Wie zuvor beschrieben, der Sensor mit einer Messtiefe von 8mm (LJ18A3-8-Z / BY) hats gebracht. Auch bei geringen Spannungen vollständige Messung. Wahrschinlich würden auch die 5V vom Pi reichen um eine Messung zu bekommen.

        1. Okay das ist doch sehr gut. Kannst Du die Zählerbezeichnung noch posten? Falls auch jemand den gleichen hat, dann sollte er gleich den für 8mm nehmen.

          Danke für Info.

    1. Was man noch machen kann, wenn der Sensor nicht triggert: mit einem kleinen Stückchen Alufolie (fingernagelgroß) den Bereich des metallischen Halbmonds überdecken, der Induktionseffekt der beiden Metallteile addiert sich dann und die Schaltschwelle wird etwas empfindlicher. Ist etwas fummelig, aber funktioniert bei mir jetzt zuverlässig.
      Ich hab mir außerdem das externe Reed-Relais gespart und mit einem hochohmigen Spannungsteiler den 12V Schaltpegel auf 5V gebracht.

  5. Hallo,

    würde die Sache gerne nachbauen, aber da ich kein größeren elektronischen Kenntnisse habe kannst du mir vielleicht weiterhelfen.
    – Beim Nährungssensor: welche der Adern ist was (ich vermute Blau-Sensor, Schwarz-Ground, Braun-Plus) Richtig?
    – Beim Reedrelais: Welche der 4 Pole sind was?
    – Beim Step-Up: Am Eingang liegen 5 V an und er gibt dann am Ausgang die 12 V aus. Richtig?

    Evtl. hast du ja noch ein Foto vom fertig verlötetem.

    Danke!

    1. Hallo,

      beim Näherunsgsensor ist Braun +, Blau = – und Schwarz der Sensor.
      Für das verlinkte Reed-Relais sind die Anschlüsse hier im Specifikationsdokument beschrieben.
      Bei dem verwendeten Step-Up sind 3 Volt – 35 Volt am Eingang möglich. Der Ausgang kann zw. 5 und 35 Volt eingestellt werden. Hier am Besten mit meinem Voltmeter die Spannung einstellen.

      Bilder habe ich im Beitrag ergänzt. 🙂

    1. Hi Jörg,

      hier die FHEM config für das Device inkl. Log und Plot.

      define WaterMeter MYSENSORS_DEVICE 100
      attr WaterMeter IODev MySensorsGateway
      attr WaterMeter fp_EnergieFloorPlan 357,891,3,floorplantext,Wasser
      attr WaterMeter mapReading_flow3 3 flow
      attr WaterMeter mapReading_value13 3 value1
      attr WaterMeter mapReading_volume3 3 volume
      attr WaterMeter mode node
      attr WaterMeter room Energie,Keller
      attr WaterMeter setReading_value13 1
      attr WaterMeter stateFormat volume3 m3, flow3 l/min, water l/h
      attr WaterMeter userReadings water:statVolume3 { SplittedStatisticReading("WaterMeter","statVolume3","Hour")*1000;; },floorplantext { ''.(SplittedStatisticReading("WaterMeter","statVolume3","Hour")*1000).' l/h
      '.(SplittedStatisticReading("WaterMeter","statVolume3","Day")*1000).' l/d
      '.(SplittedStatisticReading("WaterMeter","statVolume3","Month")*1000).' l/m
      '.(SplittedStatisticReading("WaterMeter","statVolume3","Year")*1000).' l/y' }
      attr WaterMeter version 1.4.1

      define FileLog_WaterMeter FileLog ./log/WaterMeter-%Y.log WaterMeter
      attr FileLog_WaterMeter group Keller
      attr FileLog_WaterMeter room Log

      define weblink90_WaterMeter SVG FileLog_WaterMeter:SVG_FileLog_WaterMeter_1:CURRENT
      attr weblink90_WaterMeter fp_EnergieFloorPlan 300,45,0,
      attr weblink90_WaterMeter label "Wasser Min $data{min1}, Max $data{max1}, Last $data{currval1} at ".ts2text($data{currdate1},"all")
      attr weblink90_WaterMeter room Energie,Keller,Plots

  6. Hallo,

    ich habe im FHEM Forum gelesen, das Du auch deinen Ferraris Stromzähler ausliest mit mysensors „abließt“.
    Bei meinem Aufbau (TCRT5000 und Energy Meter Sketch) Leider werden Die Pulse nicht richtig gezählt. Bei einer Umdrehung der Scheibe werden manchmal 2 Pulse gezählt und manchmal nur Einer. Hast Du einen Tip für mich? Hast du den Sketch Original (bis auf die Einstellungen) übernommen?

    Vielen Dank Marco

    1. Hallo Marco,

      ich habe den original Sketch angepasst. Zum einen, weil ich damit auch den Gaszähler auslese und bedingt durch den Ardunio nutze einen Ananlogeingang für den Sensor (Ardunio hat ständig mit USB Ladegerät Interrupts ausgelöst). Damit ich die Fehlimpulse minimieren kann, habe ich eine Messung der Werte am Pin beim erkennen und nicht erkennen der roten Markierung vorgenommen. Damit habe ich dann die obere und untere Grenze festgelegt. Im Sketch habe ich dann die Schwellwerterkennung implementiert. Seitdem habe ich kaum Abweichungen.

      https://github.com/matscher2004/MySensors/tree/master/EnergyMeterPulseSensor

      Gruß,
      Matscher

  7. Hallo Jarnsen,

    kannst Du am Sensor per Serial Console den output loggen? Dort sollte kein st=fail: auftauchen. Wenn nicht schauen wir weiter. Btw. ich habe noch gegen die MySenosrs API 1.4 gebaut. Bei FHEM habe ich auch noch kein Update der MySensors Module vollzogen. Momentan ist die 1.5 die aktuellste. Ich meine im FHEM Forum (http://forum.fhem.de/index.php/topic,26807.0.html) über Probleme was gelesen zu haben.

    Gruß,
    Matscher

  8. Hallo, habe es mit deinem Script nachgebaut aber anstelle Hallsensor nen TCRT5000 IR wie im orginal Projekt. Leider aktualisiert sich der flow und das volumen nicht. Kannst du mir helfen?? Benutze auch FHEM.

    THX Jarnsen

Schreibe einen Kommentar zu Dietrich Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.