Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Wasserzähler - Selfmade

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wasserzähler - Selfmade

    This topic has been deleted. Only users with topic management privileges can see it.
    • coyote
      coyote Most Active @mcchickents last edited by

      @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 Reply Quote 0
      • J
        jomjol @coyote last edited by

        @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

        coyote 1 Reply Last reply Reply Quote 0
        • coyote
          coyote Most Active @jomjol last edited by coyote

          @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 Reply Quote 0
          • coyote
            coyote Most Active last edited by

            @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👍

            J 1 Reply Last reply Reply Quote 0
            • J
              jomjol @coyote last edited by

              @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 Reply Quote 0
              • M
                mcchickents @jomjol last edited by

                @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 Reply Quote 0
                • J
                  jomjol @mcchickents last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • M
                    mcchickents last edited by

                    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 Reply Quote 0
                    • J
                      jomjol @mcchickents last edited by

                      @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 Reply Quote 0
                      • coyote
                        coyote Most Active last edited by

                        @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 Reply Quote 0
                        • M
                          mcchickents @jomjol last edited by

                          @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 Reply Quote 0
                          • J
                            jomjol @coyote last edited by

                            @coyote deine Ziffern sehen von der Geometrie anders aus wie auf meinem Zähler. Wenn du mir also von jeder Ziffer 1, 2, ... 9 und 0 die ausgeschnittenen Bilder aus dem log-Verzeichnis "\log\digital_digit" schickst, dann kann ich die Ziffernerkennung damit trainieren. Ich brauche halt 3-4 Bilder von jeder Ziffer.

                            1 Reply Last reply Reply Quote 0
                            • M
                              mcchickents last edited by

                              Guten abend zusammen,

                              das Blockly für die Auswertung läuft^^
                              falls Interesse besteht einfach melden.

                              d388943f-dd87-46c5-9fc6-50fd39944eb6-image.png

                              J Mikewolf pfried 3 Replies Last reply Reply Quote 0
                              • J
                                jomjol @mcchickents last edited by

                                @mcchickents Ich könnte dir auch eine Version erstellen, die direkt nur eine Zahl zurück gibt - dann musst du den String nicht zerlegen. Würde das helfen?

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  mcchickents @jomjol last edited by

                                  @jomjol

                                  Hi ja kannst du wenn du mal Zeit hast machen, das zerlegen funktioniert bis jetzt aber ganz gut.
                                  Was mir echt sehr gut gefallen würde ist das die Zahlen auf Plausibilität geprüft werden. So wir wir das oben schonmal angefangen haben^^. Für mich wäre am besten er würde dann lieber die gleiche Zahl nochmal ausgeben. statt einen Wert der viel zu groß ist. (In 15 Sekunden können keine 100 Liter durlaufen^^.

                                  Gruß Julian

                                  Mikewolf J 2 Replies Last reply Reply Quote 0
                                  • Mikewolf
                                    Mikewolf @mcchickents last edited by

                                    hallo , so habe esp32-cam geflasht ok, meldet sich und mach auch bilder soweit ok!

                                    habe nur probleme mit dem "server", egal ob python oder java funkt nicht .....
                                    seit4days
                                    habe jetzt in der Synology den Dockercontainer(rolling) ok, mount /log und /config angelegt,
                                    nur wie bekomme ich den Server dazu das er sich die config von /config holt???
                                    das config im dockercontainer kann ich ja leider nicht bearbeiten da es in der bash weder vi noch nano gibt
                                    und ich auch nix nachinstallieren kann ??

                                    wäre für jede hilfe dankbar !!
                                    Mit freundlichen Grüßen
                                    mikewolf

                                    PS Super Projekt !!
                                    Merci dafür !

                                    J W 2 Replies Last reply Reply Quote 0
                                    • J
                                      jomjol @mcchickents last edited by

                                      @mcchickents Hi Mikewolf,
                                      du musst dir von GitHub einmal die Dateien und Verzeichnisstruktur in dein gemountetes Verzeichnis für /log und /config kopieren: https://github.com/jomjol/water-meter-system-complete/tree/master/code
                                      Dann kannst du dort die Config.ini anpassen und die Log-Bilder anschauen.

                                      Du bist nicht der erste, der mit der Installation von Python etc. auf einem Linux Server Probleme hat. Aufgrund der Keras/Tensorflow/OpenCV Bibliotheken ist die Installation recht empfindlich auf kleinere Änderungen oder Versionsupdates. Daher auch die Lösung über Docker - auch wenn es mit 1.9 GByte recht groß ist.

                                      Freut mich, dass du es probierst. Halt mich gerne auf dem Laufenden über deinen Fortschritt oder ggf. Probleme. Kleinigkeiten kann ich i.d.R. recht schnell anpassen. Ich brauche etwas "Beta"-Tester Erfahrung. Denn selbst ist man schnell recht "betriebsblind".

                                      Beste Grüße,
                                      jomjol

                                      1 Reply Last reply Reply Quote 0
                                      • Mikewolf
                                        Mikewolf last edited by

                                        Hallo Danke soweit funktionierts mal !! Danke Halterung is im Druck ,
                                        wird morgen monitiert und dann gehts an die Einstellungen 😕

                                        Frage wäre ein Umbau für Gaszähler möglich (hier gibts nur Zahlen Fotos morgen ) ???
                                        Wäre ne optimale Lösung um kompl. Energie (wasser,Gas, Strom) um Vorhandenen Zähler
                                        mit subzähler abzugleichen und genaue kontrolle der Abrechnung (WAF )

                                        Danke nochmals für das Projekt und die Hilfe !!
                                        Mit freundlichen Grüßen
                                        mikewolf

                                        J 1 Reply Last reply Reply Quote 0
                                        • J
                                          jomjol @Mikewolf last edited by

                                          @Mikewolf Ja, Zähler nur mit Ziffern ist auch möglich, dann einfach in der Config.ini keine Analogen zähler angeben. Ist aber ungetestet, wenn es also ein Problem gibt, bitte einfach kurze Info.

                                          1 Reply Last reply Reply Quote 0
                                          • J
                                            jomjol @Mikewolf last edited by

                                            @Mikewolf Hi Mikewolf,
                                            ich habe dein Problem mit den leeren /config und /log zum Anlass genommen und eine Default Config hinterlegt. Wenn du jetzt das Programm startest, prüft es ob in /config und /log die notwendigen Dateien drin liegen. Falls nein, dann kopiert er sie von einem internen config_default und legt die notwendige Verzeichnissstruktur auch an.
                                            Version ist in die "rolling" Version auf Docker hochgeladen.
                                            Gruß,
                                            jomjol

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            748
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to wasser wasserzähler
                                            48
                                            1089
                                            322585
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo