Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserzähler - Selfmade

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Wasserzähler - Selfmade

Scheduled Pinned Locked Moved Hardware
wasser wasserzählerhow-to
1.1k Posts 48 Posters 374.1k 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

    @watcherkb Ist das genau der Output von "...&full" oder hast du die erste Reihe einfach nicht ausgeschnitten?

    Normalerweise stehen dort auch die Ziffern in der ersten Reihe und erst dann kommen die Bilder. Wäre ein Hinweis, wo ich suchen könnte. So einen Fehler hat noch keiner berichtet.

    P.S.: ich würde etwas mehr Rand um die Ziffern lassen, dann ist die Bilderkennung etwas stabiler.

    W Offline
    W Offline
    watcherkb
    wrote on last edited by
    #1003

    @jomjol heute gehts wieder obwohl ich nichts verändert habe. Einzig die 6 die gestern als 8 berechnet wurde, ist heute korrekt. Evtl. liegt es dadran? Anbei Screenshot und meine Settings:

    2020-07-01_1445.png

    [Imagesource]
    timeoutloadimage = 30
    #ip durch die ip des esp32 ersetzen!
    urlimagesource = http://192.168.1.209/capture_with_flashlight?quality=25&size=svga
    logimagelocation = ./log/source_image
    #logonlyfalsepictures=false
    
    [ConsistencyCheck]
    enabled = False
    #stores the last value in a file for the case of a restart (e.g. docker container after update)
    readprevaluefromfileatstartup = True
    #maximum time spanning since last startup for use of prevalue from filestorage in minutes
    readprevaluefromfilemaxage = 30
    allownegativerates = true
    #maximum change of new to old value (+ or -)
    maxratevalue = 0.5
    #return in case of error: value = oldvalue or newvalue
    #                         errormessage = return text with problem (seperated by tabstopp) if nothing, then no error message
    #                         readout = real readout without corrections (newvalue)
    errorreturn = errormessage
    
    [AnalogReadOut]
    #if enabled analog counters will be read, if disabled only digital counters will be read.
    enabled = True
    
    [alignment]
    initial_rotation_angle = 180.0
    
    [alignment.ref0]
    image = ./config/ref0.jpg
    pos_x = 51
    pos_y = 125
    
    [alignment.ref1]
    image = ./config/ref1.jpg
    pos_x = 611
    pos_y = 59
    
    [alignment.ref2]
    image = ./config/ref2.jpg
    pos_x = 362
    pos_y = 398
    
    [Digital_Digit]
    names = ziffer1, ziffer2, ziffer3, ziffer4, ziffer5
    modelfile = ./config/neuralnets/Train_CNN_Digital-Readout_Version_6.1.2.tflite
    logimagelocation = ./log/digital_digit
    #lognames=
    
    [Analog_Counter]
    names = zeiger1, zeiger2, zeiger3, zeiger4
    modelfile = ./config/neuralnets/CNN_Analog-Readout_Version-6.2.0.tflite
    logimagelocation=./log/analog_counter
    #lognames=
    
    [Analog_Counter.zeiger1]
    pos_x = 572
    pos_y = 174
    dx = 158
    dy = 158
    
    [Analog_Counter.zeiger2]
    pos_x = 486
    pos_y = 344
    dx = 155
    dy = 155
    
    [Analog_Counter.zeiger3]
    pos_x = 329
    pos_y = 423
    dx = 156
    dy = 156
    
    [Analog_Counter.zeiger4]
    pos_x = 101
    pos_y = 352
    dx = 168
    dy = 168
    
    [Digital_Digit.ziffer1]
    pos_x = 174
    pos_y = 6
    dx = 48
    dy = 86
    
    [Digital_Digit.ziffer2]
    pos_x = 258
    pos_y = 7
    dx = 49
    dy = 88
    
    [Digital_Digit.ziffer3]
    pos_x = 345
    pos_y = 5
    dx = 50
    dy = 89
    
    [Digital_Digit.ziffer4]
    pos_x = 430
    pos_y = 8
    dx = 48
    dy = 85
    
    [Digital_Digit.ziffer5]
    pos_x = 516
    pos_y = 7
    dx = 46
    dy = 83
    
    
    

    CC2538+CC2592 PA-Zigbee-Funkmodul

    1 Reply Last reply
    0
    • E Offline
      E Offline
      el_kassi
      wrote on last edited by
      #1004

      out.zip
      Neuer Schnitt und mehr Ziffern

      J 1 Reply Last reply
      0
      • M michaeljoos

        @jomjol Es hat mir einfach keine Ruhe gelassen und ich wollte wissen, ob ich das mit dem Neural Network auch irgendwie und ohne Vorwissen hinkriege 😁

        Heute habe ich mir Anaconda, Tensorflow, Keras und alles was es benötigt auf meinem Laptop installiert und ein paar Bilder von der Ziffer 3 meines Zählers (die als Ziffer 1 erkannt wurde) im Verzeichnis \ziffer_sortiert_raw\3\ abgelegt.

        1. jupyter notebook gestartet
        2. Image_Preparation.ipynb ausgeführt
        3. Train_CNN_Digital-Readout.ipynb ausgeführt
        4. Neues tflite-File auf den Raspi kopiert
        5. Docker neu gestartet

        Resultat:

        de7c98cc-c296-47ab-84bc-a5eac4d318a6-image.png

        993N.662 00993N 662

        Die 3 wird erkannt 💪 !!

        Und das alles nur dank deiner riesigen Vorarbeit & Dokumentation! Besten Dank nochmals! Ok, ein paar Hürden gab es schon zu überwinden bis alles lief.

        Ich werde dir später trotzdem meine gesammelten Ziffern schicken damit alle profitieren. Kann einfach etwas dauern, da sich mein Wasserverbrauch ziemlich in Grenzen hält.

        Gruss
        Michael

        E Offline
        E Offline
        el_kassi
        wrote on last edited by el_kassi
        #1005

        @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
        Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

        Wenn ich mich auf das Bild von @michaeljoos beziehe:
        Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?
        Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

        In diesem Zusammenhang noch eine Frage:
        Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

        Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

        Resultat:

        de7c98cc-c296-47ab-84bc-a5eac4d318a6-image.png

        J 1 Reply Last reply
        0
        • E el_kassi

          @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
          Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

          Wenn ich mich auf das Bild von @michaeljoos beziehe:
          Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?
          Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

          In diesem Zusammenhang noch eine Frage:
          Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

          Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

          Resultat:

          de7c98cc-c296-47ab-84bc-a5eac4d318a6-image.png

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

          @el_kassi sagte in Wasserzähler - Selfmade:

          @jomjol Ich hab das CNN auch mal bei mir trainieren lassen, um zu sehen, ob es taugt und auch um die Fehlerrate mal zu verringern. Auf meine 16000 SourceImage der letzten Tage angewendet habe ich > 50% NaN in den letzten 4 Ziffern, bzw. tatsächlich in der letzten Ziffer. Daher meine Frage:
          Was darf alles in den NaN Ordner rein zum trainieren und was nicht?

          In NaN sortiere ich eigentlich alles, wo die Ziffer nicht vollständig im Bild zu sehen sind (= ohne Berührung des Randes)

          Wenn ich mich auf das Bild von @michaeljoos beziehe:
          Käme hier die letzte Ziffer in NaN oder in 9 oder sollte man sie für das Trainieren komplett vermeiden? D.h. sollte man nur Bilder, die exakt zwischen 2 Ziffern liegen, in NaN kopieren?

          Definitiv in NaN

          Ich habe die Erfahrung gemacht, dass sehr oft zwischen 6 und 7 als 9 erkannt wird. Der Kringel der 6 und der schräge Balken der 7 sind da anscheinend gewichtiger als die Tatsache, dass beide Teile nicht durchgängig verbunden sind.

          In diesem Zusammenhang noch eine Frage:
          Sollte ich (siehe Bild in einem der vorherigen Posts) die letzte Ziffer (digit8) bei mir kleiner ausschneiden? Beim letzten Rad ist offenbar der sichtbare Bereich größer, so dass ich grundsätzlich immer Teile einer anderen Ziffer sichtbar habe, was dann sehr stark in Richtung NaN oder Fehlinterpretation geht.

          Eigentlich würde ich es nicht kleiner aussschneiden, sondern nur beim Einsortieren das gleiche Kriterium angwenden: ist die Zahl von Interesse vollständig im Bild und berührt den Rand nicht.

          Außerdem habe ich mich noch gefragt, ob man das CNN auf 21 Klassen erweitern könnte und exakt solche Werte, 2.5, 6.5, etc. zulassen kann, wenn man sie erkennt. Habe damit ein bisschen probiert, aber zu wenig Daten dafür. Dies würde ggf. auch die NaN Rate reduzieren.

          Würde ich nicht empfehlen, da

          1. Brauchst du viel mehr Bilder zum Teachen
          2. wo ist dann die Grenze? warum nicht auch 0,25-er Schritte
          3. Die Mechanismen zum Korrigieren von NaN ("usePreValue") funktionieren i.d.R. gut.

          Resultat:

          de7c98cc-c296-47ab-84bc-a5eac4d318a6-image.png

          1 Reply Last reply
          0
          • E el_kassi

            out.zip
            Neuer Schnitt und mehr Ziffern

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

            @el_kassi sagte in Wasserzähler - Selfmade:

            out.zip
            Neuer Schnitt und mehr Ziffern

            Danke für den Input - ist verarbeitet und hochgeladen:

            TfLite v6.2.0: https://github.com/jomjol/neural-network-digital-counter-readout
            wasserzaehler - rolling v7.5.0: https://github.com/jomjol/water-meter-system-complete/tree/rolling

            J 1 Reply Last reply
            0
            • J jomjol

              @el_kassi sagte in Wasserzähler - Selfmade:

              out.zip
              Neuer Schnitt und mehr Ziffern

              Danke für den Input - ist verarbeitet und hochgeladen:

              TfLite v6.2.0: https://github.com/jomjol/neural-network-digital-counter-readout
              wasserzaehler - rolling v7.5.0: https://github.com/jomjol/water-meter-system-complete/tree/rolling

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

              Hallo zusammen,

              es ist schon länger etwas ruhiger hier im Thread. Hoffentlich bedeutet es, dass eure Zähler gut laufen 🙂

              Ich habe in der letzten Zeit an einer neues Version gearbeitet und möchte einen ersten Zwischenstand geben. Es ist mir gelungen, alle Prozesse, also auch die CNN-Image Recognition direkt auf dem ESP32 laufen zu lassen. Damit ist bald hoffentlich kein Docker-Container mehr nötig. Einige Punkte von euren Rückmeldungen habe ich auch schon berücksichtigt.

              z.B. die längere Laufzeit der Auswertung wird durch eine periodische automatische Erkennung gelöst, so dass ich bei Abfrage des Wertes eine schnelle aktuelle Antwort bekomme.

              Damit der Übergang möglichst einfach wird und auch, damit ich die Performance testen kann, habe ich auch die bisherige Funktion des ESP32-CAM als Bildlieferant beibehalten und man kann sowohl den Dockercontainer (Abfrage über /capture_with_flashlight), wie auch das komplette System auf dem ESP32 parallel laufen lassen ohne gegenseitge Beeinflussung.
              Ich hänge noch ziemlich in der Dokumentation und den Source-Code sollte ich auch noch etwas aufräumen, bevor ich ihn ins GitHub hochlade. Das ist mein Projekt für die kommenden Sommerferien 🙂

              Ich poste hier schon mal einen Link zum neuen Repository: https://github.com/jomjol/AI-on-the-edge-device

              Ist noch sehr leer, füllt sich aber bald hoffentlich kontinuierlich. Ich suche noch ein oder zwei Early-Adopter, die meine sehr frühen Versionen vorab testen. Ist aber noch ein früher Stand. Wer will, kann sich gerne per Chat bei mir melden.

              Beste Grüße,
              jomjol

              G pfriedP 2 Replies Last reply
              1
              • J jomjol

                Hallo zusammen,

                es ist schon länger etwas ruhiger hier im Thread. Hoffentlich bedeutet es, dass eure Zähler gut laufen 🙂

                Ich habe in der letzten Zeit an einer neues Version gearbeitet und möchte einen ersten Zwischenstand geben. Es ist mir gelungen, alle Prozesse, also auch die CNN-Image Recognition direkt auf dem ESP32 laufen zu lassen. Damit ist bald hoffentlich kein Docker-Container mehr nötig. Einige Punkte von euren Rückmeldungen habe ich auch schon berücksichtigt.

                z.B. die längere Laufzeit der Auswertung wird durch eine periodische automatische Erkennung gelöst, so dass ich bei Abfrage des Wertes eine schnelle aktuelle Antwort bekomme.

                Damit der Übergang möglichst einfach wird und auch, damit ich die Performance testen kann, habe ich auch die bisherige Funktion des ESP32-CAM als Bildlieferant beibehalten und man kann sowohl den Dockercontainer (Abfrage über /capture_with_flashlight), wie auch das komplette System auf dem ESP32 parallel laufen lassen ohne gegenseitge Beeinflussung.
                Ich hänge noch ziemlich in der Dokumentation und den Source-Code sollte ich auch noch etwas aufräumen, bevor ich ihn ins GitHub hochlade. Das ist mein Projekt für die kommenden Sommerferien 🙂

                Ich poste hier schon mal einen Link zum neuen Repository: https://github.com/jomjol/AI-on-the-edge-device

                Ist noch sehr leer, füllt sich aber bald hoffentlich kontinuierlich. Ich suche noch ein oder zwei Early-Adopter, die meine sehr frühen Versionen vorab testen. Ist aber noch ein früher Stand. Wer will, kann sich gerne per Chat bei mir melden.

                Beste Grüße,
                jomjol

                G Offline
                G Offline
                gerald123
                wrote on last edited by
                #1009

                @jomjol Hallo jomjol,
                Das ist gut zu hören das in Zukunft alles nur noch am ESP32 läuft und direkt vom IoBroker abgefragt werden kann.
                Leider wurde bei mir jetzt ein neuer Wasserzähler eingebaut Type Diehl.
                Gibt es dazu schon eine Möglichkeit das ich ihn auch auslesen kann.20200712_194128.jpg
                20200712_194049.jpg
                Sg. Gerald

                Synology 918+ 4GB; ioBroker auf RPI4; Zigbee; Sonoff

                J 1 Reply Last reply
                0
                • G gerald123

                  @jomjol Hallo jomjol,
                  Das ist gut zu hören das in Zukunft alles nur noch am ESP32 läuft und direkt vom IoBroker abgefragt werden kann.
                  Leider wurde bei mir jetzt ein neuer Wasserzähler eingebaut Type Diehl.
                  Gibt es dazu schon eine Möglichkeit das ich ihn auch auslesen kann.20200712_194128.jpg
                  20200712_194049.jpg
                  Sg. Gerald

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

                  @gerald123 Hallo Gerald,
                  das sollte funktionieren. Inzwischen sind auch erste Ziffern mit weißer Schrift auf schwarzem bzw. rotem Hintergrund geteached. Einzig für das Komma brauchst du noch einen Trick auf der Serverseite. Das kann ich aber auch parametrisierbar gestalten, du bist nicht der erste, der danach fragen.

                  Gruß,
                  jomjol

                  G M 2 Replies Last reply
                  0
                  • J jomjol

                    Hallo zusammen,

                    es ist schon länger etwas ruhiger hier im Thread. Hoffentlich bedeutet es, dass eure Zähler gut laufen 🙂

                    Ich habe in der letzten Zeit an einer neues Version gearbeitet und möchte einen ersten Zwischenstand geben. Es ist mir gelungen, alle Prozesse, also auch die CNN-Image Recognition direkt auf dem ESP32 laufen zu lassen. Damit ist bald hoffentlich kein Docker-Container mehr nötig. Einige Punkte von euren Rückmeldungen habe ich auch schon berücksichtigt.

                    z.B. die längere Laufzeit der Auswertung wird durch eine periodische automatische Erkennung gelöst, so dass ich bei Abfrage des Wertes eine schnelle aktuelle Antwort bekomme.

                    Damit der Übergang möglichst einfach wird und auch, damit ich die Performance testen kann, habe ich auch die bisherige Funktion des ESP32-CAM als Bildlieferant beibehalten und man kann sowohl den Dockercontainer (Abfrage über /capture_with_flashlight), wie auch das komplette System auf dem ESP32 parallel laufen lassen ohne gegenseitge Beeinflussung.
                    Ich hänge noch ziemlich in der Dokumentation und den Source-Code sollte ich auch noch etwas aufräumen, bevor ich ihn ins GitHub hochlade. Das ist mein Projekt für die kommenden Sommerferien 🙂

                    Ich poste hier schon mal einen Link zum neuen Repository: https://github.com/jomjol/AI-on-the-edge-device

                    Ist noch sehr leer, füllt sich aber bald hoffentlich kontinuierlich. Ich suche noch ein oder zwei Early-Adopter, die meine sehr frühen Versionen vorab testen. Ist aber noch ein früher Stand. Wer will, kann sich gerne per Chat bei mir melden.

                    Beste Grüße,
                    jomjol

                    pfriedP Offline
                    pfriedP Offline
                    pfried
                    wrote on last edited by
                    #1011

                    @jomjol Super! Werde ich testen! Von mir ist es deshalb so "ruhig" da die Auswertung nun seit Monaten ohne Probleme läuft, lese aber selbstverständlich noch immer mit. Das Projekt hat mich total begeistert! Vielen Dank nochmals für Deine Mühe und Deine bisherige tolle Arbeit! Liebe Grüße Paul

                    1 Reply Last reply
                    0
                    • J jomjol

                      @gerald123 Hallo Gerald,
                      das sollte funktionieren. Inzwischen sind auch erste Ziffern mit weißer Schrift auf schwarzem bzw. rotem Hintergrund geteached. Einzig für das Komma brauchst du noch einen Trick auf der Serverseite. Das kann ich aber auch parametrisierbar gestalten, du bist nicht der erste, der danach fragen.

                      Gruß,
                      jomjol

                      G Offline
                      G Offline
                      gerald123
                      wrote on last edited by
                      #1012

                      @jomjol Das ist gut zu hören.
                      Einen Adapter für die Kamera gibt es dafür auch schon oder muss ich versuchen diesen selber zu Konstruieren?

                      Synology 918+ 4GB; ioBroker auf RPI4; Zigbee; Sonoff

                      J 1 Reply Last reply
                      0
                      • J jomjol

                        @gerald123 Hallo Gerald,
                        das sollte funktionieren. Inzwischen sind auch erste Ziffern mit weißer Schrift auf schwarzem bzw. rotem Hintergrund geteached. Einzig für das Komma brauchst du noch einen Trick auf der Serverseite. Das kann ich aber auch parametrisierbar gestalten, du bist nicht der erste, der danach fragen.

                        Gruß,
                        jomjol

                        M Offline
                        M Offline
                        michaeljoos
                        wrote on last edited by
                        #1013

                        @jomjol said in Wasserzähler - Selfmade:

                        Einzig für das Komma brauchst du noch einen Trick auf der Serverseite. Das kann ich aber auch parametrisierbar gestalten, du bist nicht der erste, der danach fragen.

                        😉 😄 Genau, ich hab das in openHAB mit einer Java-Transformation gelöst. Wenn du das aber konfigurierbar machen könntest wäre das natürlich fantastisch.

                        Bei mir läuft alles wunderbar. Mein Wasserverbrauch ist einfach so gering, dass ich immer noch am Ziffern sammeln & lernen bin. Sobald ich alles zusammen habe werde ich dir das komplette Paket schicken. Ich liefere dann auch rote Ziffern auf weissem Hintergrund. Habe mir ja unterdessen auch Jupyter, Tensorflow, Keras und all das Zeugs installiert damit ich die neuen Ziffern jeweils selbst anlernen kann und dich nicht immer "belästigen" muss. Das funktioniert tiptop und ich lerne sogar noch was dabei 🙂

                        Gruess
                        Michael

                        1 Reply Last reply
                        0
                        • KnallochseK Do not disturb
                          KnallochseK Do not disturb
                          Knallochse
                          wrote on last edited by
                          #1014

                          @jomjol Auch von mir : Daumen hoch 👍
                          Läuft seit Monaten super stabil und zu meiner vollen Zufriedenheit
                          Ich möchte mich nochmal für deine Entwicklung dieses Projekts bei dir bedanken 👏

                          HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                          1 Reply Last reply
                          0
                          • G gerald123

                            @jomjol Das ist gut zu hören.
                            Einen Adapter für die Kamera gibt es dafür auch schon oder muss ich versuchen diesen selber zu Konstruieren?

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

                            @gerald123 Hallo Gerald, einen Adapter musst du selbst konstruieren. Aber du kannst meinen Adapter verwenden und musst nur den unternen Teil anpassen.

                            G 1 Reply Last reply
                            0
                            • J jomjol

                              @gerald123 Hallo Gerald, einen Adapter musst du selbst konstruieren. Aber du kannst meinen Adapter verwenden und musst nur den unternen Teil anpassen.

                              G Offline
                              G Offline
                              gerald123
                              wrote on last edited by
                              #1016

                              @jomjol danke für die Info und deine tolle Arbeit!
                              Werde mir den Adapter Konstruieren und wenn er soweit ist dann auch hier mal zeigen.
                              Schönen Abend wünsche ich.

                              Synology 918+ 4GB; ioBroker auf RPI4; Zigbee; Sonoff

                              1 Reply Last reply
                              0
                              • R Offline
                                R Offline
                                ramon2krpi3
                                wrote on last edited by
                                #1017

                                Hi @jomjol, I am implementing the project and I am encountering some difficulties. I would appreciate it if you could help me.
                                References.png
                                After generating the config.ini I cannot read any digit. When I see “… / roi.html” I get a distorted image that I show below. I have tried to choose and mix different texts in the image to form the triangle of references. For example I have used the JS2.5-04, x0,0001, 397, ... labels as references, but I can't get the image right. I was also surprised that when I launch “… / roi.html” the red boxes of ref0, ref1 and ref2 do not appear on the picture. Would be there any relationship?

                                Regards,
                                ROI.png
                                The references have been taken after leaving the holder installed and with the same flash lighting that the ESP32 LED provides.

                                The Docker is running on a raspberry pi4 2GB with the following structure:

                                sudo docker run -p 4000:3000 --mount type=bind,source=/home/pi/water-meter-system-complete/code/config,target=/config --mount type=bind,source=/home/pi/water-meter-system-complete/code/log,target=/log jomjol/wasserzaehler:raspi-latest

                                The counter is different from yours, with 8 digits, 5 black on white and 3 red on white.

                                1. Could you help me get the image right with the references?
                                2. Do you think there will be a problem with the type of digits that are slightly different from your project?

                                Regards

                                J 1 Reply Last reply
                                0
                                • R ramon2krpi3

                                  Hi @jomjol, I am implementing the project and I am encountering some difficulties. I would appreciate it if you could help me.
                                  References.png
                                  After generating the config.ini I cannot read any digit. When I see “… / roi.html” I get a distorted image that I show below. I have tried to choose and mix different texts in the image to form the triangle of references. For example I have used the JS2.5-04, x0,0001, 397, ... labels as references, but I can't get the image right. I was also surprised that when I launch “… / roi.html” the red boxes of ref0, ref1 and ref2 do not appear on the picture. Would be there any relationship?

                                  Regards,
                                  ROI.png
                                  The references have been taken after leaving the holder installed and with the same flash lighting that the ESP32 LED provides.

                                  The Docker is running on a raspberry pi4 2GB with the following structure:

                                  sudo docker run -p 4000:3000 --mount type=bind,source=/home/pi/water-meter-system-complete/code/config,target=/config --mount type=bind,source=/home/pi/water-meter-system-complete/code/log,target=/log jomjol/wasserzaehler:raspi-latest

                                  The counter is different from yours, with 8 digits, 5 black on white and 3 red on white.

                                  1. Could you help me get the image right with the references?
                                  2. Do you think there will be a problem with the type of digits that are slightly different from your project?

                                  Regards

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

                                  Hi @ramon2krpi3,

                                  the distorted image shows, that one of the reference is not found. In principle you choose the right one. The image looks a bit unsharp, maybe you could adjust the focus slightly.
                                  You can also use the orginal pictures (without enhance), that will make the algo a bit more sensitive to illumination light, but might get a better recognition, as the autocorrelation will result in higher contrast.

                                  Two topics:

                                  1. You need to get ride of the refection at the digits, this will not work
                                  2. Why is your image off center? It looks like there are even better alignment options on the bottom.

                                  Other topics are look good for the time beeing.

                                  Hope that helps a bit.

                                  Best regards,
                                  jomjol

                                  P.S.: the reference are never shown in the ROI, this is still a to do.

                                  Why is your image of center?

                                  R 1 Reply Last reply
                                  0
                                  • J jomjol

                                    Hi @ramon2krpi3,

                                    the distorted image shows, that one of the reference is not found. In principle you choose the right one. The image looks a bit unsharp, maybe you could adjust the focus slightly.
                                    You can also use the orginal pictures (without enhance), that will make the algo a bit more sensitive to illumination light, but might get a better recognition, as the autocorrelation will result in higher contrast.

                                    Two topics:

                                    1. You need to get ride of the refection at the digits, this will not work
                                    2. Why is your image off center? It looks like there are even better alignment options on the bottom.

                                    Other topics are look good for the time beeing.

                                    Hope that helps a bit.

                                    Best regards,
                                    jomjol

                                    P.S.: the reference are never shown in the ROI, this is still a to do.

                                    Why is your image of center?

                                    R Offline
                                    R Offline
                                    ramon2krpi3
                                    wrote on last edited by
                                    #1019

                                    Hi @jomjol, luckily i just found the solution. Diving over the 1,000 thread post I have found the solution. The problem is that [alignment]
                                    initial_rotation_angle = 92 cannot have a negative angle. The configurator "http://wasserzaehler.ignorelist.com" inserts the value in negative in the "config.ini" and therefore deforms. Just edit the "config.ini" and remove the negative sign

                                    The problem now is the digit recognition. I know I've to solve the reflection, but in the meantime I wanted to test the rest of the digits unaffected by the reflection. The first 5 should work. The third digit, 6, has a strange shape in the upper left corner and does not detect it, it assigns a 0. On the other hand, 9 sometimes detects it as 0 and other times as 6.
                                    Captura de pantalla 2020-08-05 a las 20.30.34.png

                                    how can I get it to detect these digits?

                                    Are they in a format recognizable by your trained system?
                                    I am using the Train_CNN_Digital-Readout_Version_6.0.0.h5

                                    Regards!

                                    J 1 Reply Last reply
                                    0
                                    • R ramon2krpi3

                                      Hi @jomjol, luckily i just found the solution. Diving over the 1,000 thread post I have found the solution. The problem is that [alignment]
                                      initial_rotation_angle = 92 cannot have a negative angle. The configurator "http://wasserzaehler.ignorelist.com" inserts the value in negative in the "config.ini" and therefore deforms. Just edit the "config.ini" and remove the negative sign

                                      The problem now is the digit recognition. I know I've to solve the reflection, but in the meantime I wanted to test the rest of the digits unaffected by the reflection. The first 5 should work. The third digit, 6, has a strange shape in the upper left corner and does not detect it, it assigns a 0. On the other hand, 9 sometimes detects it as 0 and other times as 6.
                                      Captura de pantalla 2020-08-05 a las 20.30.34.png

                                      how can I get it to detect these digits?

                                      Are they in a format recognizable by your trained system?
                                      I am using the Train_CNN_Digital-Readout_Version_6.0.0.h5

                                      Regards!

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

                                      Hi @ramon2krpi3,

                                      first it looks like, you are using the "master" branch of the docker server. I suggest to update to the "rolling" version. Within this a much better trained cnn-file is available (v 6.2.0). Just to know: the format has changed from h5 to tflite.

                                      That should already improve the recognition. If this is not enough, it might be necesarry to train your numbers.

                                      Best regards,
                                      jomjol

                                      R 1 Reply Last reply
                                      0
                                      • J jomjol

                                        Hi @ramon2krpi3,

                                        first it looks like, you are using the "master" branch of the docker server. I suggest to update to the "rolling" version. Within this a much better trained cnn-file is available (v 6.2.0). Just to know: the format has changed from h5 to tflite.

                                        That should already improve the recognition. If this is not enough, it might be necesarry to train your numbers.

                                        Best regards,
                                        jomjol

                                        R Offline
                                        R Offline
                                        ramon2krpi3
                                        wrote on last edited by
                                        #1021

                                        Hi @jomjol, could anybody summarize the step by step migration to rolling version?
                                        Thanks!

                                        R 1 Reply Last reply
                                        0
                                        • R ramon2krpi3

                                          Hi @jomjol, could anybody summarize the step by step migration to rolling version?
                                          Thanks!

                                          R Offline
                                          R Offline
                                          ramon2krpi3
                                          wrote on last edited by
                                          #1022

                                          15242873-7889-4aac-8398-2d7cbc1713bd-image.png @ramon2krpi3 This is how I did:

                                          1. Download the raspi-rolling image: sudo docker pull jomjol/wasserzaehler:raspi-rolling

                                          2. Over my old folders structure I created a new app folder and I copied my old /config & /log folders

                                          3. I downloaded “Train_CNN_Digital-Readout_Version_6.2.0.tflite” and put it in “/home/pi/water-meter-system-complete/code/app/config/neuralnets”

                                          4. I edited “/home/pi/water-meter-system-complete/code/app/config/config.ini” and changed the new Train_CNN tflite

                                          [Digital_Digit]
                                          names = D1, D2, D3, D4, D5, D6, D7, D8
                                          modelfile = ./config/neuralnets/Train_CNN_Digital-Readout_Version_6.2.0.tflite
                                          LogImageLocation=./log/digital_digit

                                          1. I run the docker and it seems do it well:

                                          pi@pi4:~ $ docker run -p 4000:3000 --mount type=bind,source=/home/pi/water-meter-system-complete/code/app/config,target=/app/config --mount type=bind,source=/home/pi/water-meter-system-complete/code/app/log,target=/app/log --memory-swap -1 jomjol/wasserzaehler:raspi-rolling
                                          92.0
                                          Start Init Zaehlerstand
                                          Analog Model Disabled
                                          Digital Model Init Done
                                          Digital Model Init Done
                                          Prevalue loaded from file: 00000690.0000
                                          Wasserzaehler is serving at port 3000

                                          1. When I ask for a reading “http://192.168.1.234:4000/wasserzaehler.html&full” the docker gives me this error:

                                          Exception happened during processing of request from ('192.168.1.231', 59241)
                                          Traceback (most recent call last):
                                          File "/usr/lib/python3.7/socketserver.py", line 316, in _handle_request_noblock
                                          self.process_request(request, client_address)
                                          File "/usr/lib/python3.7/socketserver.py", line 347, in process_request
                                          self.finish_request(request, client_address)
                                          File "/usr/lib/python3.7/socketserver.py", line 360, in finish_request
                                          self.RequestHandlerClass(request, client_address, self)
                                          File "/usr/lib/python3.7/socketserver.py", line 720, in init
                                          self.handle()
                                          File "/usr/lib/python3.7/http/server.py", line 426, in handle
                                          self.handle_one_request()
                                          File "/usr/lib/python3.7/http/server.py", line 414, in handle_one_request
                                          method()
                                          File "./wasseruhr.py", line 37, in do_GET
                                          GlobalError = wasserzaehler.CheckError()
                                          File "/app/lib/ZaehlerstandClass.py", line 102, in CheckError
                                          if self.readAnalogNeedle.GlobalError:
                                          AttributeError: 'Zaehlerstand' object has no attribute 'readAnalogNeedle'

                                          I'm lost. Do I have to modify/install anything else?
                                          I didin't do nothing whit Tensorflow. May I do anything to manage TensoflowLite?

                                          Regards

                                          J 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

                                          724

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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