Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserzähler - Selfmade

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Wasserzähler - Selfmade

Scheduled Pinned Locked Moved Hardware
wasser wasserzählerhow-to
1.1k Posts 48 Posters 393.4k Views 72 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jomjol

    @mcchickents Hi Julian,
    zu 1) komisch, dass dein Parser immer noch das "N" anzeigt, den eigentlich sollte der Wasserzaehler kein N mehr liefern. Hast du ihn im Browser mal direkt abgefragt und geschaut, was er liefert?
    Du musst natürlich "setPreValue" jedesmal aufrufen, wenn du den Docker neu startest, da der Wert nur in einer Variable ist und bei Neustart leer ist. Alternativ kannst du ihn auch so starten und warten, bis er mal alle Ziffern erkannt hat.

    zu 2) falsche Werte (z.B. Zählerstand kleiner, wie vorher) erkennt der Algo noch nicht. Momentan mache ich das beim Übertrag in die DB in einem anderen Script. Aber gute Idee, könnte man auch dort als Plauscheck implementieren.

    Gruß,
    jomjol

    P.S.: was wäre im Fall eines inkonsiten Auslesewertes die "vernünftige" Rückgabe: 1) Fehlermeldung (z.B. inconsistent value) oder 2) lieber den alten Wert, damit die DB-Abfrage kein Fehlerhandling braucht?

    J Offline
    J Offline
    jomjol
    wrote on last edited by
    #167

    @jomjol habe gerade noch einen Fehler im Algo für den PreValue gefunden (Typumwandlung, falls 0-Übergang). Erklärt zwar deinen Fehler nicht - dennoch neue Version für den Docker hochgeladen.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mcchickents
      wrote on last edited by
      #168

      Werde ich heute Abend ausprobieren.

      Kannst du mir noch Verraten wie du die Daten im Iobroker weiter verarbeitest? Schön wäre ja. Einzelne DB mit den Werten. Ich probiere heute Abend mal das in Blockly zu realisieren.

      Wasserverbrauch_aktuell (letzte 5min)
      Wasserverbrauch_letzte Stunde
      Wasserverbrauch_heute
      Wasserverbrauch_gestern
      Wasserverbrauch_Woche
      Wasserverbrauch_letzte Woche
      Wasserverbrauch_Monat
      Wasserverbrauch_letzter Monat
      Wasserverbrauch_Jahr
      Wasserverbrauch_gesamt

      1 Reply Last reply
      0
      • coyoteC Offline
        coyoteC Offline
        coyote
        Most Active
        wrote on last edited by
        #169

        @jomjol bräuchte jetzt leider auch noch etwas Hilfe.
        Irgendwas stimmt mit dem Bild noch nicht, so brauche ich gar nicht weiter einzurichten.
        Schau mal bitte, das ROI Bild ist komplett verzerrt, aber das SourceImage ist doch eigentlich ok oder nicht? Auflösung 800x600, die config habe ich schon etwas angepasst, habe mir 3 Punkte ausgeschnitten und eingetragen. Punkte sind: m³, PN16 und 30°C

        config.ini

        SourceImage_2019-09-25_20-27-12.jpg Roi.JPG

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mcchickents
          wrote on last edited by
          #170

          Hi das hatte ich auch schon. Start mal den Docker Container neu.

          coyoteC 1 Reply Last reply
          0
          • M mcchickents

            Hi das hatte ich auch schon. Start mal den Docker Container neu.

            coyoteC Offline
            coyoteC Offline
            coyote
            Most Active
            wrote on last edited by
            #171

            @mcchickents das hab ich gestern leider schon mehrmals gemacht. Kann es vllt auch am Winkel liegen? Dass wollte ich nachher mal probieren, da einen anderen Winkel in der Config anzugeben

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mcchickents
              wrote on last edited by
              #172

              Ok nimm mal die 0,001 als Referenz dann wird das Dreieck größer.

              1 Reply Last reply
              0
              • coyoteC Offline
                coyoteC Offline
                coyote
                Most Active
                wrote on last edited by coyote
                #173

                Hab ich gemacht und jetzt nen Winkel von 182 angegeben. Dann kommt folgendes raus.
                Aber wenn ich jetzt mit dem Winkel weiter spiele in Plus oder Minus Richtung wird es eher wieder schlechter.... Sonst noch ne Idee? Die Digitalen und Analogen Werte habe ich noch nicht verändert, sind ja vorerst auch nicht wichtig oder doch? Erst muss ja mal mein Referenzbild passen.
                Roi_182.JPG

                Irgendwie fehlt mir hier noch etwas das Verständnis. Das SourceImage ist doch einwandfrei , wieso ist es dann beim ROI Picture so verdreht? Dachte ich müsste mit dem Winkel nachher nur noch etwas nach rechts oder links drehen um die exakte Position einzustellen.

                J 1 Reply Last reply
                0
                • coyoteC Offline
                  coyoteC Offline
                  coyote
                  Most Active
                  wrote on last edited by
                  #174

                  Mir ist gerade noch was aufgefallen... Mein Bild ist quasi 600x800 nicht wie bei euch 800x600

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    mcchickents
                    wrote on last edited by
                    #175

                    Ich bin leider auch kein Profi wie du vielleicht gemerkt hast :-) poste doch mal deine config Datei.

                    Ps ich habe den Winkel schon immer auf 0

                    coyoteC 1 Reply Last reply
                    0
                    • M mcchickents

                      Ich bin leider auch kein Profi wie du vielleicht gemerkt hast :-) poste doch mal deine config Datei.

                      Ps ich habe den Winkel schon immer auf 0

                      coyoteC Offline
                      coyoteC Offline
                      coyote
                      Most Active
                      wrote on last edited by
                      #176

                      @mcchickents ich denke es liegt vllt doch an der Auflösung, die falsch herum ist. Probiere ich nachher mal. Habe die Kamera jetzt gedreht

                      1 Reply Last reply
                      0
                      • coyoteC coyote

                        Hab ich gemacht und jetzt nen Winkel von 182 angegeben. Dann kommt folgendes raus.
                        Aber wenn ich jetzt mit dem Winkel weiter spiele in Plus oder Minus Richtung wird es eher wieder schlechter.... Sonst noch ne Idee? Die Digitalen und Analogen Werte habe ich noch nicht verändert, sind ja vorerst auch nicht wichtig oder doch? Erst muss ja mal mein Referenzbild passen.
                        Roi_182.JPG

                        Irgendwie fehlt mir hier noch etwas das Verständnis. Das SourceImage ist doch einwandfrei , wieso ist es dann beim ROI Picture so verdreht? Dachte ich müsste mit dem Winkel nachher nur noch etwas nach rechts oder links drehen um die exakte Position einzustellen.

                        J Offline
                        J Offline
                        jomjol
                        wrote on last edited by
                        #177

                        @coyote Hallo coyote,
                        irgendetwas stimmt mit deinen Referenzen noch nicht. Wenn ich mir dein Orginalbild anschaue, dann liegt "PN16" links und "m3" rechts von den 5 Ziffern. Dann müssten auch dort zwei rote Kästchen sein. Die sind aber alle unterhalb. Schau mal, ob die wirklich passen.
                        Das verdrehte Bild kommt daher, dass die Koordinaten der Referenzen nicht passen. Dann wird es stark verzerrt.
                        Der Ablauf der Bildverarbeit läuft wie folgt.

                        1. Aufnehmen des Rohbildes
                        2. Drehen um einen festen Winkel (initial_rotation_angle), um ein aufrechtes Bild zu erhalten. Falls das Bild schon richtig ist, dann den Winkel 0 angeben.
                        3. Suchen der 3 Referenzen. Diese sollten möglichst in einem Dreieck sein und nicht zu nahe beieinander.
                          Das Bild wird dann gedreht und ggf. verzehrt, so dass die Referenzen an den Koordinaten liegen, wie sie im Config-File angegeben wurden.
                        4. Rausschneiden der ROIs und auslesen

                        Dein Orginalbild sieht erstmal ganz gut aus. Ich sehe deutliche Schatten. Wie weit bist du mit der Kamera weg?
                        Bei deinem Zähler könnte die Form der Zeiger ein Problem werden. Die sehen anders aus, wie bei meinem Zähler und vielleicht funktioniert die Bilderkennung nicht optimal. Ggf. müsste man mit Bilder das Neuronale Netz nochmal nachtrainieren. Ist aber erstmal unabhängig vom Ausrichten des Bildes.
                        Hier nochmal eine Step-By-Step Anleitung für die Einrichtung der Config.ini.
                        Alignment_procedure_draft.pdf

                        Ich versuche gerade mittels Bildverarbeitung die Positionen für die Konfiguratin automatisch zu finden, dass ist aber echt tricky und braucht sicher noch einige Zeit.

                        Falls alle Stricke reissen, kannst du mir mal ein Originalbild von deiner Kamera schicken und ich finde etwas Zeit, um dich bei der Config zu unterstützen. Frühestens aber am Wochenende.

                        Beste Grüße,
                        jomjol

                        coyoteC 1 Reply Last reply
                        0
                        • J jomjol

                          @coyote Hallo coyote,
                          irgendetwas stimmt mit deinen Referenzen noch nicht. Wenn ich mir dein Orginalbild anschaue, dann liegt "PN16" links und "m3" rechts von den 5 Ziffern. Dann müssten auch dort zwei rote Kästchen sein. Die sind aber alle unterhalb. Schau mal, ob die wirklich passen.
                          Das verdrehte Bild kommt daher, dass die Koordinaten der Referenzen nicht passen. Dann wird es stark verzerrt.
                          Der Ablauf der Bildverarbeit läuft wie folgt.

                          1. Aufnehmen des Rohbildes
                          2. Drehen um einen festen Winkel (initial_rotation_angle), um ein aufrechtes Bild zu erhalten. Falls das Bild schon richtig ist, dann den Winkel 0 angeben.
                          3. Suchen der 3 Referenzen. Diese sollten möglichst in einem Dreieck sein und nicht zu nahe beieinander.
                            Das Bild wird dann gedreht und ggf. verzehrt, so dass die Referenzen an den Koordinaten liegen, wie sie im Config-File angegeben wurden.
                          4. Rausschneiden der ROIs und auslesen

                          Dein Orginalbild sieht erstmal ganz gut aus. Ich sehe deutliche Schatten. Wie weit bist du mit der Kamera weg?
                          Bei deinem Zähler könnte die Form der Zeiger ein Problem werden. Die sehen anders aus, wie bei meinem Zähler und vielleicht funktioniert die Bilderkennung nicht optimal. Ggf. müsste man mit Bilder das Neuronale Netz nochmal nachtrainieren. Ist aber erstmal unabhängig vom Ausrichten des Bildes.
                          Hier nochmal eine Step-By-Step Anleitung für die Einrichtung der Config.ini.
                          Alignment_procedure_draft.pdf

                          Ich versuche gerade mittels Bildverarbeitung die Positionen für die Konfiguratin automatisch zu finden, dass ist aber echt tricky und braucht sicher noch einige Zeit.

                          Falls alle Stricke reissen, kannst du mir mal ein Originalbild von deiner Kamera schicken und ich finde etwas Zeit, um dich bei der Config zu unterstützen. Frühestens aber am Wochenende.

                          Beste Grüße,
                          jomjol

                          coyoteC Offline
                          coyoteC Offline
                          coyote
                          Most Active
                          wrote on last edited by coyote
                          #178

                          @jomjol und zack, sieht das Ganze gleich viel besser aus ;-)
                          Hab ja jetzt die Kamera gedreht, damit die Auflösung 800x600 passt, alle Referenzen nochmal angepasst und siehe da, klappt.
                          Jetzt muss ich noch den Rest eingestellt bekommen.

                          Ich habe dein Gehäuse ausgedruckt, außer den unteren Teil, den musste ich etwas abändern, heißt ich bin ca. 10mm weiter weg vom Zähler.
                          Ja den Schatten seh ich auch, der ist jetzt nach rechts gewandert durch das Drehen der Kamera. Der blöde weisse Kunststoffring macht das Ganze nicht besser.
                          Roi.JPG

                          1 Reply Last reply
                          0
                          • coyoteC Offline
                            coyoteC Offline
                            coyote
                            Most Active
                            wrote on last edited by
                            #179

                            @jomjol sieht doch gar nicht so schlecht aus mit den Zeigern ;-)

                            Roi.JPG Stand.JPG

                            Die 2 will er irgendwie nicht, entweder gibts ne 7 oder N, hab schon bisschen mit den Koordinaten und Größen gespielt, aber will nicht. Vielleicht hast du da noch nen Tipp.
                            Mit den Zeigern passt doch fast, beim ersten Zeiger hatte ich auch schon ne 6 anstatt ne 5 drin, also wenn es so bleibt kann ich damit leben.

                            Cooles Projekt, vielen Dank dafür:+1:

                            J 1 Reply Last reply
                            0
                            • coyoteC coyote

                              @jomjol sieht doch gar nicht so schlecht aus mit den Zeigern ;-)

                              Roi.JPG Stand.JPG

                              Die 2 will er irgendwie nicht, entweder gibts ne 7 oder N, hab schon bisschen mit den Koordinaten und Größen gespielt, aber will nicht. Vielleicht hast du da noch nen Tipp.
                              Mit den Zeigern passt doch fast, beim ersten Zeiger hatte ich auch schon ne 6 anstatt ne 5 drin, also wenn es so bleibt kann ich damit leben.

                              Cooles Projekt, vielen Dank dafür:+1:

                              J Offline
                              J Offline
                              jomjol
                              wrote on last edited by
                              #180

                              @coyote Deine Ziffern sehen leicht anders aus, wie meine. Vermutlich muss ich die OCR etwas allgemeiner trainieren. Wenn du von jeder Ziffer mal so 3-4 Bilder gesammelt hast, kannst du sie mir schicken.
                              Das Trainieren der Ziffern ist recht einfach, bei den Zeigern wäre es aufwendiger.

                              Freut mich, dass es schonmal soweit klappt!

                              Gruß,
                              jomjol

                              1 Reply Last reply
                              0
                              • J jomjol

                                Um das Thema mit dem "N" in den Griff zu bekommen, habe ich einen Algorithmus implementiert, der nun auch den letzten Wert mit berücksichtigt. Wenn die Ziffern auf einem Zwischenwert stehen, also "N" zurück liefern, dann wird kann der Algo prüfen, ob die Ziffer mit "N" vorher schonmal erkannt wurde und das N durch die gültige Ziffer ersetzten. Es werden auch Zehnerübergänge berücksichtigt. Also z.B.:

                                letzer gültiger Wert: 401.995
                                Rückgabe-Wert: 40N.015

                                Dann wir daraus: 402.015

                                Um das Feature zu nutzen muss bei der Abfrage des Wasserzaehler ein Parameter ergänzt werden:

                                .../wasserzaehler.html?usePreValue

                                Wenn Docker gerade neu gestaret wurde und noch keine Zahl ganz ohne "N" detektiert wurde, funktioniert es natürlich nicht. Dazu gibt es aber die Möglichkeit einen gültigen Zählerwert manuell zu setzen:

                                .../setPreValue.html?value=402.015

                                Das experimentelle Docker Image (jomjol/wasserzaehler:rolling) enthält dieses Feature.

                                Gruß,
                                jomjol

                                M Offline
                                M Offline
                                mcchickents
                                wrote on last edited by
                                #181

                                @jomjol said in Wasserzähler - Selfmade:

                                Um das Thema mit dem "N" in den Griff zu bekommen, habe ich einen Algorithmus implementiert, der nun auch den letzten Wert mit berücksichtigt. Wenn die Ziffern auf einem Zwischenwert stehen, also "N" zurück liefern, dann wird kann der Algo prüfen, ob die Ziffer mit "N" vorher schonmal erkannt wurde und das N durch die gültige Ziffer ersetzten. Es werden auch Zehnerübergänge berücksichtigt. Also z.B.:

                                letzer gültiger Wert: 401.995
                                Rückgabe-Wert: 40N.015

                                Dann wir daraus: 402.015

                                Um das Feature zu nutzen muss bei der Abfrage des Wasserzaehler ein Parameter ergänzt werden:

                                .../wasserzaehler.html?usePreValue

                                Wenn Docker gerade neu gestaret wurde und noch keine Zahl ganz ohne "N" detektiert wurde, funktioniert es natürlich nicht. Dazu gibt es aber die Möglichkeit einen gültigen Zählerwert manuell zu setzen:

                                .../setPreValue.html?value=402.015

                                Das experimentelle Docker Image (jomjol/wasserzaehler:rolling) enthält dieses Feature.

                                Gruß,
                                jomjol

                                Hi habe es nochmal ausprobriert. Egals was ich mache bekomme das N bei 30N.4568 nicht weg. Bist du dir sicher das es in der aktuellen rolling Version drin ist? Habe den Docker auch nochmal neu installiert. Auch im Browser will es nicht funktionieren.

                                Gruß Julian

                                J 1 Reply Last reply
                                0
                                • M mcchickents

                                  @jomjol said in Wasserzähler - Selfmade:

                                  Um das Thema mit dem "N" in den Griff zu bekommen, habe ich einen Algorithmus implementiert, der nun auch den letzten Wert mit berücksichtigt. Wenn die Ziffern auf einem Zwischenwert stehen, also "N" zurück liefern, dann wird kann der Algo prüfen, ob die Ziffer mit "N" vorher schonmal erkannt wurde und das N durch die gültige Ziffer ersetzten. Es werden auch Zehnerübergänge berücksichtigt. Also z.B.:

                                  letzer gültiger Wert: 401.995
                                  Rückgabe-Wert: 40N.015

                                  Dann wir daraus: 402.015

                                  Um das Feature zu nutzen muss bei der Abfrage des Wasserzaehler ein Parameter ergänzt werden:

                                  .../wasserzaehler.html?usePreValue

                                  Wenn Docker gerade neu gestaret wurde und noch keine Zahl ganz ohne "N" detektiert wurde, funktioniert es natürlich nicht. Dazu gibt es aber die Möglichkeit einen gültigen Zählerwert manuell zu setzen:

                                  .../setPreValue.html?value=402.015

                                  Das experimentelle Docker Image (jomjol/wasserzaehler:rolling) enthält dieses Feature.

                                  Gruß,
                                  jomjol

                                  Hi habe es nochmal ausprobriert. Egals was ich mache bekomme das N bei 30N.4568 nicht weg. Bist du dir sicher das es in der aktuellen rolling Version drin ist? Habe den Docker auch nochmal neu installiert. Auch im Browser will es nicht funktionieren.

                                  Gruß Julian

                                  J Offline
                                  J Offline
                                  jomjol
                                  wrote on last edited by
                                  #182

                                  @mcchickents Bekommst du eine Rückmeldung wenn du setPreValue.html?value=... " verwendest?

                                  1 Reply Last reply
                                  0
                                  • M Offline
                                    M Offline
                                    mcchickents
                                    wrote on last edited by
                                    #183

                                    Hi Jomjol,

                                    ja bekomme ich
                                    http://192.168.2.13:3000/setPreValue.html?value=00303.2323
                                    Last value set to: 00303.2323

                                    10 sec später versuche ich das in chrome

                                    http://192.168.2.13:3000/wasserzaehler.html?usePreValue
                                    30N.7251 0030N 7251

                                    und bekomme das zurück.

                                    J 1 Reply Last reply
                                    0
                                    • M mcchickents

                                      Hi Jomjol,

                                      ja bekomme ich
                                      http://192.168.2.13:3000/setPreValue.html?value=00303.2323
                                      Last value set to: 00303.2323

                                      10 sec später versuche ich das in chrome

                                      http://192.168.2.13:3000/wasserzaehler.html?usePreValue
                                      30N.7251 0030N 7251

                                      und bekomme das zurück.

                                      J Offline
                                      J Offline
                                      jomjol
                                      wrote on last edited by
                                      #184

                                      @mcchickents Hi McChickents,
                                      danke für den Hinweis. Fehler lag im Programm. Ich habe in der Implementierung auf "usePrevalue", also mit kleinem "v" getriggert.
                                      Update in "rolling" ist raus, es ist jetzt egal ob due PreValue oder Prevalue schreibst.
                                      Gruß, jomjol

                                      M 1 Reply Last reply
                                      0
                                      • coyoteC Offline
                                        coyoteC Offline
                                        coyote
                                        Most Active
                                        wrote on last edited by
                                        #185

                                        @jomjol wie meinst du das mit den 3-4 Bildern jeder Zahl, heißt in verschiedenen Stellungen der Ziffer?
                                        Ich glaube, ich warte erst mal nächste Woche ab, es könnte sein, dass ich eine neue Uhr bekommen, das muss ich noch klären, da Flecken unten an der Wasseruhr sind und das darf wohl nicht sein und muss ausgetauscht werden.

                                        J 1 Reply Last reply
                                        0
                                        • J jomjol

                                          @mcchickents Hi McChickents,
                                          danke für den Hinweis. Fehler lag im Programm. Ich habe in der Implementierung auf "usePrevalue", also mit kleinem "v" getriggert.
                                          Update in "rolling" ist raus, es ist jetzt egal ob due PreValue oder Prevalue schreibst.
                                          Gruß, jomjol

                                          M Offline
                                          M Offline
                                          mcchickents
                                          wrote on last edited by
                                          #186

                                          @jomjol

                                          neue Version installiert funktioniert einwandfrei. Perfekte Arbeit.

                                          Im Blockly habe ich mal den String in eine Zahl geschrieben.

                                          fc07b6bf-788b-40f8-9658-562b39cd98a1-image.png

                                          Leider wird nur 303 eingetragen die hinteren Zahlen werden abgeschnitte? Liegt das an dem Punkt in der ausgabe?

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          569

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe