Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wasserzähler - Version 2 - all-in-device

    This topic has been deleted. Only users with topic management privileges can see it.
    • pfried
      pfried @hike last edited by

      @hike Hallo hike,
      ich hatte dasselbe Problem wie Du, manche Referenzpunkte Bilder schwarz, manche leer, beim Drücken des contrast enhencement ein Absturz des ESP32 und auch beim Referenzbild/Standbild selber brauchte ich mehrere Anläufe um ein Bild zu bekommen. Ich kann auch den Effekt mit dem Standbild bestätigen, war bei mir auch mehrere Male verdreht.

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

        @pfried @hike sagte in Wasserzähler - Version 2 - all-in-device:

        @hike Hallo hike,
        ich hatte dasselbe Problem wie Du, manche Referenzpunkte Bilder schwarz, manche leer, beim Drücken des contrast enhencement ein Absturz des ESP32 und auch beim Referenzbild/Standbild selber brauchte ich mehrere Anläufe um ein Bild zu bekommen. Ich kann auch den Effekt mit dem Standbild bestätigen, war bei mir auch mehrere Male verdreht.

        Beim Erzeugen der Alignmentmarken braucht es eine halbwegs gute Internetverbindung und etwas Geduld. Um die Verarbeitung auf dem Server nachher hinzubekommen, macht die Erzeugung der ESP32 selbst, d.h. wenn du ein Bild ausschneidest, gibt es per html einen Befehl an den ESP32 und der macht dann die Bilderverarbeitung und auch die Kontrasterhöhung lokal und liefert das Ergebnis per html zurück.
        Das ist anders, also beim erzeugen des Refernzbildes. Da findet die Bildberechnung im Browser über Canvas statt. Bei den Referenzbildern scheitert das an dem Kontrast. Ich habe noch keine leichtgewichtige einfache HTML-Funktion gefunden, um es im Browser zu berechnen.

        Auch die schlechte Performance, wenn es verschiedenen Zwischenrouter gibt könnte mit der html-Struktur zusammen hängen. Damit ich mit einem einfachen Server auskomme habe ich eine ineinanderstrukturierte struktur per iframe gebaut.

        Und als dritte Info: wenn ihr die Konfiguratin zufällig gerade macht, während gerade der automatische Bildverarbeitungsflow läuft, dann ist der ESP32 für einige Minuten ziemlich ausgelastet. Auch wenn das Programm per FreeRTOS für Multithread ausgelegt ist, sind natürlich die Ressourcen für den Web-Server in dem Zeitfenster deutlich eingeschränkt. So als Größenordnung: nur die Berechnung des Bildalignment dauert fast 1 Minuten.

        Da ist noch überall Potential - noch genug für mich zu tun :-).

        Danke für euer detaiiertes Feedback.

        H 1 Reply Last reply Reply Quote 0
        • H
          hike @jomjol last edited by hike

          @jomjol
          Vielen Dank für die Erläuterungen.

          Machmal bleibt der Fileserver bei der Übertragung auch hängen, besonders wenn man z.B. die Unterverzeichnisse log/analog, die viele Dateien beinhalten, betrachtet.
          Da bleibt der Server manchmal in einer Schleife hängen und ist nicht mehr erreichbar. Dann hilft nur noch Power out Power on.

          Machmal bleibt er auch im ClassFlowAnalog hängen.

          Ansonsten habe ich jetzt schon eine ganze Reihe brauchbarer Ergebnisse. Digital sind alle Stellen ok, , ebenfalls drei analoge Stellen.
          Super, obwohl mein Bild ziemlich unscharf ist.

          Leider wird die zweite Analog-Anzeige , nicht erkannt.
          Das liegt offensichtlich daran , das meine Wasseruhr dort einen anderen Zeiger hat.

          bc942ba5-fecd-4881-9db0-60bc7ef6fac7-grafik.png

          Deshalb bekomme ich auch Meldungen wie
          620.7591 Negative Rate - Returned old value - read value: 620.7571

          Beste Grüße
          Hike

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

            @hike Du solltest versuchen, dein Bild scharf zu bekommen. Dazu musst du aber das Lacksiegel an der Linse wegkratzen und dann kannst du mit etwas Kraft und einer Zange die Linse drehen und scharf stellen. Hat bei mir bei beiden ESP32CAM funktioniert - aber keine Garantie auf Erfolg - kann auch kaput gehen.

            Für deinen Zeiger2 können wir mal probieren, den auch zu teachen, der sieht aber schon sehr merkwürdig aus.

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

              @WernerS Hi Werner, konnte dein Problem partiell reproduzieren. Bei mir lies sich heute hartnäckig der Flash-Erase nicht mit dem ESP-Tool durchführen. Nachdem ich den Flash über ein py-Tool von PlatformIO gelöscht habe, konnte ich aber die drei Teile mit dem Tool selbst flashen und es lief auch ohne Probleme.

              W 3 Replies Last reply Reply Quote 0
              • W
                WernerS @jomjol last edited by

                @jomjol

                dann lieget es anscheinend am Flashtool. Ich schau mal ob ich ein älteres finde.
                Das py-Tool von PlatformIO kenne ich nicht. Ist das kompliziert zu installieren und durch zuführen?

                1 Reply Last reply Reply Quote 0
                • H
                  hike @jomjol last edited by

                  @jomjol
                  Ich habe das schon früher mal versucht, brauchte danach eine neue.
                  Deshalb bin ich auch sehr angetan , dass die KI die anderen Ziffern erkennt.

                  Das ist eine Wasseruhr von meinen Stadtwerken. Die scheint nicht so selten zu sein.
                  Ich habe mal irgendwo ein ESP8266 Projekt gesehen, da wurde das Spiegelsignal auf dieser Anzeige ausgewertet

                  Im Protokoll sehe ich immer wieder , aber unregelmäßig, Neustarts

                  2020-09-12_20-10-12: task_autodoFlow - next round
                  2020-09-12_20-10-12: FlowControll.doFlow - ClassFlowMakeImage
                  2020-09-12_20-10-17: FlowControll.doFlow - ClassFlowAlignment
                  2020-09-12_20-10-18: Image Load failed:/sdcard/img_tmp/raw.jpg FreeHeapSize before: 3218988 after: 3218896
                  2020-09-12_18-10-58: Startsequence 02
                  2020-09-12_18-10-59: Startsequence 03

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

                    @hike Die Neustarts sind bekannt - da kommt es beim Auslesen des ersten Bilder von der Kamera zu einem Speicherfehler. In der neusten Version Rolling Version fange ich diesen Fehler ab und nehme das Bild bei diesem Fehler nochmal auf. Das reduziert die Fehler deutlich, aber nicht vollständig.

                    H 1 Reply Last reply Reply Quote 0
                    • W
                      WernerS @jomjol last edited by

                      @jomjol
                      Hi jomjol ich habe ne ältere Version gefunden die 3.6.5 aber mit der geht es auch nicht.
                      Wie machen das die anderen hier, die müssten das Problem doch auch haben.

                      J 1 Reply Last reply Reply Quote -1
                      • J
                        jomjol @WernerS last edited by

                        Hallo zusammen,
                        ich habe gerade die aktuelle Rolling in eine Version 2.0.0 gemerged und die Bilder für die Doku mit dem neuen Layout upgedated.
                        Ab jetzt kommen die Updates und Responses etwas langsamer, da mein Urlaub vorbei ist 🙁 .
                        Beste Grüße,
                        jomjol

                        1 Reply Last reply Reply Quote 0
                        • D
                          d0m1n1qu3 last edited by

                          moin
                          so jetzt hab ich mich hier auch angemeldet 🙂

                          änderungs ideen fuer die doku auch via pull request? statt dem windows tool kann man naemlich auch gut das esptool.py nehmen 🙂

                          pull requests gegen rolling oder master?

                          morgen guck ich mit die mqtt geschichte mal an. derzeit sammel ich mit polling. geht echt schon gut.

                          in wie weit hast du vor auch strom oder gas zaehler zu unterstuetzen? wuerde das gern auf alle zaehler machen 😉

                          vg dominique

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

                            @d0m1n1qu3 sagte in Wasserzähler - Version 2 - all-in-device:

                            moin
                            so jetzt hab ich mich hier auch angemeldet 🙂

                            änderungs ideen fuer die doku auch via pull request? statt dem windows tool kann man naemlich auch gut das esptool.py nehmen 🙂

                            pull requests gegen rolling oder master?

                            morgen guck ich mit die mqtt geschichte mal an. derzeit sammel ich mit polling. geht echt schon gut.

                            in wie weit hast du vor auch strom oder gas zaehler zu unterstuetzen? wuerde das gern auf alle zaehler machen 😉

                            vg dominique

                            Super Idee, wenn du eine Doku für esptool.py schreiben kannst. Das ESP-IDF-Tool macht gerade bei mir auch Probleme (Erase geht nicht mehr).

                            Pull request gegen Rolling oder bei größeren Änderungen kann ich auch einen abgetrennten Zweig anlegen.
                            Strom- und Gaszähler gehen auch jetzt schon, du musst nur die analogen Zeiger aus der config.ini schmeißen. Das einzige was noch fehlt, ist die Implementierung einer Kommaverschieben. Das Komma sitzt momentan hart zwischen digital und analog.

                            Gruß,
                            jomjol

                            1 Reply Last reply Reply Quote 0
                            • W
                              WernerS @jomjol last edited by

                              @jomjol Hallo jomjol, also ich habe gestern eine Nachtschicht eingelegt und alles mögliche probiert. Verschiedene Adpater, Baudrate usw. Es geht einfach nicht. Ich verstehe das nicht, das Problem müssen doch mehr haben. Hast du noch eine Idee?

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

                                @WernerS sagte in Wasserzähler - Version 2 - all-in-device:

                                @jomjol Hallo jomjol, also ich habe gestern eine Nachtschicht eingelegt und alles mögliche probiert. Verschiedene Adpater, Baudrate usw. Es geht einfach nicht. Ich verstehe das nicht, das Problem müssen doch mehr haben. Hast du noch eine Idee?

                                Hallo Werner,
                                wenn du eine Python-Installation hast, kannst du auch das esptool.py verwenden. Ich habe es gerade probiert - ging problemlos in Pyhton 3.8 (in Ananconda-Umgebung in Win 10, müsste aber auch mit 3.6 oder 3.7 gehen) mit folgenden Befehlen:

                                Installation des Tools:

                                pip install esptool
                                

                                Erase Flash und dann flashen der neuen Firmwarepip install esptoolpip install esptool

                                esptool erase_flash
                                esptool write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin
                                

                                Vielleicht musst du noch über einen Parameter den COM-Port angeben, war bei mir jetzt nicht notwendig. Bei mir hat der ESP32CAM dann ohne Probleme gebootet.

                                Hoffe damit kommst du weiter!

                                Gruß,
                                jomjol

                                W 1 Reply Last reply Reply Quote 0
                                • H
                                  hike @jomjol last edited by hike

                                  @jomjol

                                  Hallo jomjol ,

                                  ich habe das Problem mit dem zweitem komischen Analogzeiger noch mal genauer untersucht. Ein Vergleich der Bilder ergibt, dass meine Wasseruhr an dieser Stelle defekt sein muss, da sich die Stellung des Zeigers nie ändert.
                                  5ccfbb46-0603-470e-bdd6-47d6edc5f13a-grafik.png
                                  Das führt in Vergleich zu Fehlern wie diesem:
                                  620.2576 Negative Rate - Returned old value - read value: 620.2553
                                  da sich die 5 nicht ändert.
                                  Der vollständige Wert von Analog 1 (2.2) bildet übrigens den richtigen Wert gut ab.
                                  613dd444-9af0-47e0-931e-8c7c9ac9b0e1-grafik.png
                                  Jetzt habe ich aber das auch von anderen beschriebene Problem mit der digitalen 1 , die als 0 erkannt wird.

                                  Beste Grüße
                                  Hike

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

                                    @d0m1n1qu3 sagte in Wasserzähler - Version 2 - all-in-device:

                                    moin
                                    so jetzt hab ich mich hier auch angemeldet 🙂

                                    änderungs ideen fuer die doku auch via pull request? statt dem windows tool kann man naemlich auch gut das esptool.py nehmen 🙂

                                    pull requests gegen rolling oder master?

                                    morgen guck ich mit die mqtt geschichte mal an. derzeit sammel ich mit polling. geht echt schon gut.

                                    in wie weit hast du vor auch strom oder gas zaehler zu unterstuetzen? wuerde das gern auf alle zaehler machen 😉

                                    vg dominique

                                    Bemerkung zur MQTT-Erweiterung: Ich würde empfehlen, es analog zu den anderen Funktionen (MakeImage, Alignment, ... Prostprocessing) abgleitetet von der Basisklasse ClassFlow zu implementieren. Wenn du dann die neue Child-Klasse noch in der Verwaltungsklasse ClassFlowControll in der Funktion CreateClassFlow mit aufnimmst, ist sie automatisch in die Konfiguration über Config.ini einbinden und auch beim automatischen Flow würde sie mit durchlaufen und du kannst je nach Ergebnis der vorherigen Auswertung ein Event triggern.

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

                                      Hallo zusammen,

                                      es gibt jetzt eine neue Option, um das Kommo zu verschieben. Standartmäßig ist es ja zwischen Digital und Analog. Über den Parameter DigitalShift = n in [PostProcessing] kann man das Komma sowohl nach vorne, wie auch nach hinten schieben:
                                      Beispiel:

                                      • DecimalShift = 2 --> Result: 123.456 --> 12345.6
                                      • DecimalShift = -1 --> Result: 123.456 --> 12.3456

                                      Das Verschieben findet direkt beim Zusammenführen von Digitalzahlen und Zeigerzahlen statt, alle nachfolgenden Funktionen funktionieren also auf dem verschobenen Wert (sollte auch für reine Digitalziffern klappen - aber nicht getestet).
                                      Funktion findet ihr in der neusten Rolling.
                                      Gruß,
                                      jomjol

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

                                        @jomjol

                                        Hallo jomjol, es ist zum verrückt werden. Der ESP kann doch nicht kaputt sein? Mit dem Testprogramm in der Arduino IDE zu schreiben funktioniert. Ich habe es eben nochmal versucht. Ich habe WLAN Verbindung und die Kamera geht auch
                                        Ich habe noch ein Linuxsystem auf dem habe ich es mit dem esptool versucht
                                        beim löschen bekomme ich folgendes

                                        test@test-All-Series:~/Dokumente$ esptool erase_flash
                                        esptool.py v2.8
                                        Found 1 serial ports
                                        Serial port /dev/ttyUSB0
                                        Connecting.....
                                        Detecting chip type... ESP32
                                        Chip is ESP32D0WDQ6 (revision 1)
                                        Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
                                        Crystal is 40MHz
                                        MAC: 24:62:ab:ff:c6:ac
                                        Enabling default SPI flash mode...
                                        Erasing flash (this may take a while)...

                                        A fatal error occurred: ESP32 ROM does not support function erase_flash.

                                        und beim schreiben das

                                        test@test-All-Series:~/Dokumente$ esptool write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin
                                        esptool.py v2.8
                                        Found 1 serial ports
                                        Serial port /dev/ttyUSB0
                                        Connecting....
                                        Detecting chip type... ESP32
                                        Chip is ESP32D0WDQ6 (revision 1)
                                        Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
                                        Crystal is 40MHz
                                        MAC: 24:62:ab:ff:c6:ac
                                        Enabling default SPI flash mode...
                                        Configuring flash size...
                                        Auto-detected Flash size: 4MB
                                        Erasing flash...
                                        Took 0.35s to erase flash block
                                        Wrote 26624 bytes at 0x00001000 in 2.9 seconds (73.4 kbit/s)...
                                        Hash of data verified.
                                        Erasing flash...
                                        Took 0.06s to erase flash block
                                        Writing at 0x00008000... (33 %)
                                        A fatal error occurred: Failed to write to target Flash after seq 0 (result was 01073762)

                                        Ist da vielleicht noch wo ein Security Bit gesetzt?

                                        Gruß
                                        Werner

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

                                          @WernerS sagte in Wasserzähler - Version 2 - all-in-device:

                                          ESP32 RO

                                          Hi Werner,
                                          ich habe nirgends ein Security Bit bewußt gesetzt. Ich verwende drei Flash-Methoden: OTA, Espressif-Tool (oder jetzt ESPTool) oder direkt aus der Entwicklungsumgebung PlatformIO. Letzteres dürfte aber meines Wissens auch auf esptool.py zurückgreift. Ich habe zwei ESP32CAM Module hier und beide funktionieren mit beiden Methoden.
                                          Scheint, dass dein ESP32 defekt ist oder eine ungewöhnliche Konfiguration hat.

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

                                            @jomjol @WernerS Habe es nun auch mit zwei ESP32CAM getestet, die ich noch in der Schublade habe, bei Beiden lief das Flash-Erase und der Flash problemlos durch.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            867
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            ai on the edge cnn esp32 hausautomatisierung neuronale netze ov2640 version 2 wasserzähler water gauge water meter
                                            235
                                            3381
                                            1538044
                                            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