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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Wasserzähler - Selfmade

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

      Hallo,

      habe das Projekt gestern auch umgesetzt. Hat alles wunderbar auf anhieb funktioniert.
      Ich habe als einziges im ESP32-Code noch eine feste IP vergeben. Das mache ich bei allen IOT-Geräten, damit ich, falls ich mal den Router wechsele nicht von vorne Anfangen muss.

      Als Abfrage habe ich das Java-Skript verwendet.

      Hier noch ein Tipp für grafana:

      SELECT
      floor(n.ts/1000) as time_sec,
      convert(n.val,DECIMAL(10,4)) as value,
      "Wasser" as metric
      FROM ts_string n
      WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 2372 and n.id
      ORDER BY n.ts ASC
      

      Die ID ist natürlich anzupassen. (Ich speichere in mysql)

      Hier mein Docker-Aufruf:

      docker run -d --restart unless-stopped -p 3300:3000 --mount type=bind,source=/var/docker/wasser,target=/config --mount type=bind,source=/var/docker/log,target=/log jomjol/wasserzaehler:latest
      

      Hier habe ich den Port von 3000 auf 3300 umgesetzt (3000 nutzt grafana).
      Mit -d läuft es als Service und mit --restart unless-stopped wird es auch nach Rechner Neustart wieder gestartet.

      Also vielen Dank an euch für die super Arbeit.

      1 Reply Last reply Reply Quote 1
      • E
        ecki945 last edited by

        @pfried Der Aufruf mit deinem Parametern erzeugt die gleiche Fehlermeldung:

        
        root@Test:/home/stephan# sudo docker run -p 3000:3000 --mount type=bind,source=/jomjolconfig,target=/config --mount type=bind,source=/jomjollog,target=/log --memory-swap -1 jomjol/wasserzaehler:latest
        Unable to find image 'jomjol/wasserzaehler:latest' locally
        latest: Pulling from jomjol/wasserzaehler
        16ea0e8c8879: Pull complete
        50024b0106d5: Pull complete
        ff95660c6937: Pull complete
        9c7d0e5c0bc2: Pull complete
        29c4fb388fdf: Pull complete
        8659dae93050: Pull complete
        c8208a94eb32: Pull complete
        465b26a31c40: Pull complete
        84af071ddf6f: Extracting [==================================================>]  1.871MB/1.871MB
        72674e39b52a: Download complete
        257c064c14b2: Download complete
        13079f9eaad3: Download complete
        da4020cd652a: Download complete
        967ef883685d: Download complete
        e064e3ebdc71: Download complete
        docker: failed to register layer: ApplyLayer exit status 1 stdout:  stderr: write /usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py: no space left on device.
        
        

        Da ich ja Docker in einem lxc Container laufen lassen will, vermute ich hier Zugriffprobleme.

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

          @ecki945 Der Download verabschiedet sich mit "no space left on device" darum meinte ich, dass Du zuerst das Image mit: sudo docker pull jomjol/wasserzaehler:latest ........ runterladest und extrahierst.....

          1 Reply Last reply Reply Quote 0
          • E
            ecki945 last edited by ecki945

            Guten Morgen
            @pfried du hattest recht. Habe habe mal Testweise den Speicherplatz des Containers von 8 GB auf 20GB erweitert. Nun klappt der Dowload über docker pull jomjol/wasserzaehler: latest des Containers.

            Bin dabei etwas erschrocken. Kann es sein, dass der Download des Containers ca 13 GB groß ist????

            Der Aufruf klappt nun.

            stephan@Test:~$ docker run -p 3000:3000 --mount type=bind,source=/jomjolconfig,target=/config --mount type=bind,source=/jomjollog,target=/log --memory-swap -1 jomjol/wasserzaehler:latest
            2020-01-01 07:27:52.798622: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
            
            
            
            J 1 Reply Last reply Reply Quote 0
            • J
              jomjol @ecki945 last edited by

              @ecki945 Der Container ist 590MB groß. Leider hat Tensorflow noch ein intrinsisches Speicherleck, daher wächst der Speicherbedarf mit der Zeit bei einigen Systemen an. Problem ist bei der Raspberry-Variante aber anscheinend größer.

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

                Hallo zusammen,
                ich überlege als nächste Erweiterung ein Tool zu schreiben, was bei der Erstellung der Config.ini unterstützt. Dies ist eine Hürde, da die manuelle Bearbeitung einer Textdatei für viele User eine erhebliche Hürde darstellt.
                Wenn das in einer WYSIWYG-Web Anwendung möglich wäre, die entweder die Config.ini oder idealerweise sogar einen customized Docker Container ausspuckt, könnte ich mit dem Projekt noch viel mehr User erreichen.
                Hat jemand Erfahrung damit und Lust das gemeinsam zu machen? Ich überlege gerade mit welchem Framework man so etwas aufsetzt und in welchem Tool ich es entwicklen würde.
                Wer Lust / Zeit / Know-How hat, gerne bei mir melden 🙂
                Beste Grüße,
                jomjol

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

                  @jomjol Prosit Neujahr!
                  Habe eine Bitte: kannst Du mir vielleicht mit einem Script am Raspberry Debian aushelfen, welches den Docker Container regelmäßig stoppt und wieder startet, um das Speicherleak zu umgehen.... Vielen Dank im Voraus!

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

                    @pfried Hallo Paul,
                    ich würde den Befehl "docker restart CONTAINTERNAME" als cron-job alle xx Stunden einfügen. Hilft dir das?

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

                      @jomjol Sicher danke, bitte sag mir noch wo ich den Befehl einfügen soll. Als Script im IOBroker?
                      Bei mir muss es also lauten: sudo docker restart 0cb549..... Correct? Wenn ich als Containername jomjol/wasserzaehler:raspi-rolling eingebe bekommen ich die Fehlermeldung: No such container .....

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

                        @pfried Ich kann es bei mir gerade nicht ausprobieren - Remote kein Zugriff auf den Raspi. Aber ich würde den Befehl erstmal in der Konsole probieren (so wie du es schon gemacht hast) und dann mit dem passenden Timining in die /etc/crontab einfügen. Eine Übersicht findest du hier:
                        http://raspberry.tips/raspberrypi-einsteiger/cronjob-auf-dem-raspberry-pi-einrichten
                        Gruß,
                        jomjol

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

                          @jomjol Danke für den Tipp! Ich lerne jeden Tag dazu 😊 .... mittels Cron habe ich jetzt den Reset hinbekommen.

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

                            @pfried Schickst du mir den Cron-Eintrag, dann füge ich es der Raspi-Anleitung hinzu.
                            Hat der interne Restart bei dir nicht funktioniert?

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

                              Hallo,

                              anbei nochmal ein Tipp für die Visualisierung in Grafana:

                              Bildschirmfoto 2020-01-02 um 14.09.09.png

                              Ich habe den Verbrauch und den aktuellen Verbrauch pro Stunde in ein Diagramm gepackt:

                              SELECT
                              floor(n.ts/1000) as time_sec,
                              (max(n.val)-min(n.val))*1000 as value,
                              "Wasser/h" as metric
                              FROM ts_string n
                              WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 2372 and n.id
                              group by date_format(from_unixtime(ts/1000),"%Y-%m-%d-%H") ORDER BY n.ts ASC
                              

                              Ja, das ist nicht 100% genau (also es wird nicht der Wert um exakt der vollen Stunde genommen, sondern der nächst größere, aber für mich reicht es)

                              pfried 1 Reply Last reply Reply Quote 2
                              • sissiwup
                                sissiwup @jomjol last edited by

                                @jomjol sagte in Wasserzähler - Selfmade:

                                Hallo zusammen,
                                ich überlege als nächste Erweiterung ein Tool zu schreiben, was bei der Erstellung der Config.ini unterstützt. Dies ist eine Hürde, da die manuelle Bearbeitung einer Textdatei für viele User eine erhebliche Hürde darstellt.
                                Wenn das in einer WYSIWYG-Web Anwendung möglich wäre, die entweder die Config.ini oder idealerweise sogar einen customized Docker Container ausspuckt, könnte ich mit dem Projekt noch viel mehr User erreichen.
                                Hat jemand Erfahrung damit und Lust das gemeinsam zu machen? Ich überlege gerade mit welchem Framework man so etwas aufsetzt und in welchem Tool ich es entwicklen würde.
                                Wer Lust / Zeit / Know-How hat, gerne bei mir melden 🙂
                                Beste Grüße,
                                jomjol

                                Hallo,
                                gute Idee, das hat mir am Anfang auch am meisten Probleme gemacht.
                                Noch besser wäre es, wenn man die Komplette Erkennung auf den ESP32 machen könnte. Es gibt doch Lösungen mit Gesichtserkennung, meinst du so etwas geht hier auch?

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

                                  @jomjol Der interne Restart hat nicht funktioniert, Ich habe in Crontab nun folgendes hinzugefügt:

                                  "* */6 * * * root /root/scripts/FILENAME.sh"

                                  Also restart alle 6 Stunden. Zeile aber ohne die Anführungszeichen 😊
                                  Inhalt von FILENAME.sh:

                                  #!/bin/bash
                                  docker restart 3d83......

                                  Hier tritt das Problem zu Tage, dass man die ContainerID angeben muss, mit dem ContainerName habe ich es nicht geschafft.....
                                  Die ContainerID habe ich mir mit:

                                  sudo docker container ls

                                  ausgelesen. Nicht gerade eine nachhaltige Lösung, aber bis zur Behebung des Speicherleaks eine gangbare. Den Docker Container habe ich mit der Option -d für Service und --restart unless-stopped wie von @sissiwup beschrieben gestartet.

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

                                    @sissiwup Hallo, vielleicht könntest Du bitte ein Dokument erstellen wie man mit Grafana die Visualisierung machen kann. Da ich, und wie ich mitbekommen habe andere auch Anfänger sind, wäre eine Doku vom Scratch sehr hilfreich....

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

                                      @pfried sagte in Wasserzähler - Selfmade:

                                      @sissiwup Hallo, vielleicht könntest Du bitte ein Dokument erstellen wie man mit Grafana die Visualisierung machen kann. Da ich, und wie ich mitbekommen habe andere auch Anfänger sind, wäre eine Doku vom Scratch sehr hilfreich....

                                      Hallo pfried,

                                      diese Doku habe ich bereits erstellt für grafana und iobroker.
                                      Such einfach mal nach meinen Posts und grafana. Hier deshalb nur die Erweiterung für dieses tolle Projekt.

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

                                        @sissiwup Wow, coole Sache! Wo nehme ich nur die Zeit dafür her ... 😊

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

                                          @pfried sagte in Wasserzähler - Selfmade:

                                          @jomjol Der interne Restart hat nicht funktioniert, Ich habe in Crontab nun folgendes hinzugefügt:

                                          "* */6 * * * root /root/scripts/FILENAME.sh"

                                          Also restart alle 6 Stunden. Zeile aber ohne die Anführungszeichen 😊
                                          Inhalt von FILENAME.sh:

                                          #!/bin/bash
                                          docker restart 3d83......

                                          Hier tritt das Problem zu Tage, dass man die ContainerID angeben muss, mit dem ContainerName habe ich es nicht geschafft.....
                                          Den ContainerName habe ich mir mit:

                                          sudo docker container ls

                                          ausgelesen. Nicht gerade eine nachhaltige Lösung, aber bis zur Behebung des Speicherleaks eine gangbare. Den Docker Container habe ich mit der Option -d für Service und --restart unless-stopped wie von @sissiwup beschrieben gestartet.

                                          Hallo,
                                          wenn du nicht die ID verwenden möchtest, gib den Kind einen Namen:

                                          docker run -d --name wasser --restart unless-stopped -p 3300:3000 --mount type=bind,source=/var/docker/wasser,target=/config --mount type=bind,source=/var/docker/wasser,target=/log jomjol/wasserzaehler:latest
                                          
                                          --name meinnamedescontainers
                                          

                                          Meiner ist z.B. wasser

                                          Der contab Eintrag (/etc/crontab) ist bei mir dann:

                                          30    5	* * *   root    /usr/bin/docker restart wasser
                                          

                                          oder für alle 6h:

                                          30    */6	* * *   root    /usr/bin/docker restart wasser
                                          
                                          pfried 1 Reply Last reply Reply Quote 1
                                          • pfried
                                            pfried @sissiwup last edited by

                                            @sissiwup Man lernt niemals aus, danke!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            682
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to wasser wasserzähler
                                            48
                                            1089
                                            263399
                                            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