Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Ferraris Zähler mit TCRT5000 und esp8266

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ferraris Zähler mit TCRT5000 und esp8266

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      so @Eisbaeeer last edited by

      @eisbaeeer Ich nutze vscodium, falls du es genau nachvollziehen willst.

      1 Reply Last reply Reply Quote 0
      • S
        so @Eisbaeeer last edited by

        @eisbaeeer Hier noch mein log vom buid, vielleicht siehst du nochwas. Ich bin mir unsicher, ob da alles okay verlaufen ist. Ist allerdings ohne vorheriges 'clean'.

        so@soso  ~/workspace/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/source/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000   master ● ? ⍟1  pio run
        Processing nodemcuv2 (platform: espressif8266@3.0.0; board: nodemcuv2; framework: arduino)
        --------------------------------------------------------------------------------------------------------------------------------------------------------------------
        Verbose mode can be enabled via `-v, --verbose` option
        CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
        PLATFORM: Espressif 8266 (3.0.0) > NodeMCU 1.0 (ESP-12E Module)
        HARDWARE: ESP8266 160MHz, 80KB RAM, 4MB Flash
        PACKAGES: 
         - framework-arduinoespressif8266 3.30000.210519 (3.0.0) 
         - tool-esptool 1.413.0 (4.13) 
         - tool-esptoolpy 1.30000.201119 (3.0.0) 
         - toolchain-xtensa 2.100200.0 (10.2.0)
        LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
        LDF Modes: Finder ~ chain, Compatibility ~ soft
        Running npm ci...
        npm <command>
        
        Usage:
        
        npm install        install all the dependencies in your project
        npm install <foo>  add the <foo> dependency to your project
        npm test           run this project's tests
        npm run <foo>      run the script named <foo>
        npm <command> -h   quick help on <command>
        npm -l             display usage info for all commands
        npm help <term>    search for help on <term>
        npm help npm       more involved overview
        
        All commands:
        
            access, adduser, audit, bin, bugs, cache, ci, completion,
            config, dedupe, deprecate, diff, dist-tag, docs, doctor,
            edit, exec, explain, explore, find-dupes, fund, get, help,
            hook, init, install, install-ci-test, install-test, link,
            ll, login, logout, ls, org, outdated, owner, pack, ping,
            pkg, prefix, profile, prune, publish, rebuild, repo,
            restart, root, run-script, search, set, set-script,
            shrinkwrap, star, stars, start, stop, team, test, token,
            uninstall, unpublish, unstar, update, version, view, whoami
        
        Specify configs in the ini-formatted file:
            /home/so/.npmrc
        or on the command line via: npm <command> --key=value
        
        More configuration info: npm help config
        Configuration fields: npm help 7 config
        
        npm@8.1.4 /usr/local/lib/node_modules/npm
        Running npx browserslist@latest --update-db...
        
        Entering npm script environment at location:
        /home/so/workspace/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/source/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/.pio/libdeps/nodemcuv2/ESP8266 IoT Framework/scripts
        Type 'exit' or ^D when finished
        
         Running npm run build...
        npm <command>
        
        Usage:
        
        npm install        install all the dependencies in your project
        npm install <foo>  add the <foo> dependency to your project
        npm test           run this project's tests
        npm run <foo>      run the script named <foo>
        npm <command> -h   quick help on <command>
        npm -l             display usage info for all commands
        npm help <term>    search for help on <term>
        npm help npm       more involved overview
        
        All commands:
        
            access, adduser, audit, bin, bugs, cache, ci, completion,
            config, dedupe, deprecate, diff, dist-tag, docs, doctor,
            edit, exec, explain, explore, find-dupes, fund, get, help,
            hook, init, install, install-ci-test, install-test, link,
            ll, login, logout, ls, org, outdated, owner, pack, ping,
            pkg, prefix, profile, prune, publish, rebuild, repo,
            restart, root, run-script, search, set, set-script,
            shrinkwrap, star, stars, start, stop, team, test, token,
            uninstall, unpublish, unstar, update, version, view, whoami
        
        Specify configs in the ini-formatted file:
            /home/so/.npmrc
        or on the command line via: npm <command> --key=value
        
        More configuration info: npm help config
        Configuration fields: npm help 7 config
        
        npm@8.1.4 /usr/local/lib/node_modules/npm
        Found 41 compatible libraries
        Scanning dependencies...
        Dependency Graph
        |-- <ArduinoJson> 6.18.5
        |-- <ESP8266 IoT Framework> 1.9.0
        |   |-- <ArduinoJson> 6.18.5
        |   |-- <ESP8266WiFi> 1.0
        |   |-- <ESP8266HTTPClient> 1.2
        |   |   |-- <ESP8266WiFi> 1.0
        |   |-- <DNSServer> 1.1.0
        |   |   |-- <ESP8266WiFi> 1.0
        |   |-- <EEPROM> 1.0
        |   |-- <LittleFS(esp8266)> 0.1.0
        |   |-- <ESP Async WebServer> 1.2.3
        |   |   |-- <ESPAsyncTCP> 1.2.2
        |   |   |-- <Hash> 1.0
        |   |   |-- <ESP8266WiFi> 1.0
        |   |   |-- <ArduinoJson> 6.18.5
        |-- <ESP Async WebServer> 1.2.3
        |   |-- <ESPAsyncTCP> 1.2.2
        |   |-- <Hash> 1.0
        |   |-- <ESP8266WiFi> 1.0
        |   |-- <ArduinoJson> 6.18.5
        |-- <PubSubClient> 2.8.0
        |-- <LittleFS(esp8266)> 0.1.0
        Building in debug mode
        
        warning: Calling missing SConscript without error is deprecated.
        Transition by adding must_exist=False to SConscript calls.
        Missing SConscript 'scripts/preBuild.py'
        File "/home/so/.platformio/penv/lib/python3.8/site-packages/platformio/builder/main.py", line 188, in <module>
        Retrieving maximum program size .pio/build/nodemcuv2/firmware.elf
        Checking size .pio/build/nodemcuv2/firmware.elf
        Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
        RAM:   [======    ]  55.3% (used 45320 bytes from 81920 bytes)
        Flash: [========= ]  89.3% (used 932264 bytes from 1044464 bytes)
        =================================================================== [SUCCESS] Took 6.66 seconds ===================================================================
        
        Eisbaeeer 1 Reply Last reply Reply Quote 0
        • Eisbaeeer
          Eisbaeeer Developer @so last edited by Eisbaeeer

          @so Dein Log sieht doch erstmal gut aus. Ich sehe keinen Fehler. Was funktioniert nicht?

          S 1 Reply Last reply Reply Quote 0
          • S
            so @Eisbaeeer last edited by

            @eisbaeeer
            34bd1a15-3fc9-4daf-a2de-1ae59de6ca1b-image.png

            Eisbaeeer 2 Replies Last reply Reply Quote 0
            • Eisbaeeer
              Eisbaeeer Developer @so last edited by

              @so ok, da fehlt tatsächlich der Webserver. Da hat das npm ci nicht funktioniert. Ich teste das morgen mal bei mir. Hab bisher nur auf Windows compiliert.

              1 Reply Last reply Reply Quote 0
              • Eisbaeeer
                Eisbaeeer Developer @so last edited by

                @so Also ich habe das gleiche Phänomen. Scheinbar compiliert er die Webseite mit den Configuration und dashboard items nicht. Das "sudo npm ci" läuft bei mir durch. Kannst du diesbezüglich ein issue aufmachen? https://github.com/maakbaas/esp8266-iot-framework/issues
                Gruß Lars

                S 1 Reply Last reply Reply Quote 0
                • S
                  so @Eisbaeeer last edited by

                  @eisbaeeer
                  Okay, hab ein Issue aufgesetzt.

                  1 Reply Last reply Reply Quote 0
                  • C
                    chr2002 last edited by

                    Hallo zusammen,

                    ich habe jetzt echt mal eine Frage : Wie zum Geier funktioniert dieses Ding ? 🙂
                    Ich habe zuerst versucht, das ganze mit der Lichtschranke in Gang zu bekommen. Leider funktioniert das bei meinem Zähler überhaupt nicht und ich werde wohl ohnehin einen Digitalen bekommen.

                    Jetzt habe ich noch einen weiteren Zähler, der hat einen Potenzialfreien S0 Kontakt per Optokoppler. Nun hätte ich versucht, statt des Digital Pins der Lichtschranke das Signal des S0 Kontaktes zu verwenden. Ich Schickte 3,3V zum S0 Eingang vom ESP und gehe vom S0 Ausgang auf den D1 Pin. Aber die Impulse werden nicht erkannt. Auch bringt ein Pulldown nix. Der Pulse Graph macht was er will.
                    Von der Lichtschranke kommt doch auch nur ein 3,3V Signal oder ein 0V per Pulldown (auf der Lichtschranke)

                    Oder liege ich da falsch.

                    Lg Chris

                    Eisbaeeer 1 Reply Last reply Reply Quote 0
                    • Eisbaeeer
                      Eisbaeeer Developer @chr2002 last edited by

                      @chr2002 Hallo Chris. Die Eingänge werden auf Ground gezogen. Versuche mal die Eingänge auf GND zu Brücken, dann solltest du einen Impuls bekommen. Den S0 kannst du mit der Schaltung auch verwenden.
                      Gruß Lars

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        chr2002 @Eisbaeeer last edited by

                        @eisbaeeer Das habe ich auch probiert. Also erst per Pullup gegen 3,3V und GND auf D1.
                        Dann auch mal ohne PullUP. Der Impuls geht mal auf Low, mal nicht. Und manchmal bleibt er auch auf Low, obwohl die Brücke zu gnd raus ist und der 10k Ohm Pullup gegen 3,3V drin ist.

                        1 Reply Last reply Reply Quote 0
                        • C
                          chr2002 last edited by

                          Oder ist da irgendein check drin, der eine Wartezeit zwischen den Impulsen vorraussetzt. Ich wenn ich eine ganze weile Warte, gibts einen Flankenwechsel. Wenn ich zu kurz hintereinander die Brücke gegen GND mache, passiert nichts. Danach geht aber iwie erstmal gar nichts mehr, auch wenn ich viel später wieder die Brücke setze.

                          1 Reply Last reply Reply Quote 0
                          • C
                            chr2002 last edited by

                            Ich bekomme den Graphen nichtmal zuverlässig auf LOW oder High, wenn ich eine Brücke setze. Da wird irgendwas wohl noch mit einbezogen. Hiermit geht also kein S0.

                            Eisbaeeer 1 Reply Last reply Reply Quote 0
                            • Eisbaeeer
                              Eisbaeeer Developer @chr2002 last edited by Eisbaeeer

                              @chr2002 Ähm ja, die Entprellzeit. Stell die mal niedriger, dann sollte das klappen.
                              Screenshot_20211204-152845_Chrome.jpg

                              C 1 Reply Last reply Reply Quote 0
                              • C
                                chr2002 @Eisbaeeer last edited by

                                @eisbaeeer Auch schon probiert 😄 Leider ohne Erfolg. Der Graph macht immernoch was er will.

                                1 Reply Last reply Reply Quote 0
                                • C
                                  chr2002 last edited by chr2002

                                  Ich gebs auf. Hier ist was faul. ESPeasy zählt aber vernünftig. Keine Ahnung, am ESP liegt es nicht. Mit der Lichtschranke kommen auch keine anständigen Impulse zustande. Sehr seltsam. Vllt ist die 0.92 verbuggt ? Kann das sein ?

                                  Ich lasse das sein. Und werde eine anständige Wandlermessung hinter den Zähler packen 😄 Von dort per Modbus weiter.

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    Dan.Master @chr2002 last edited by Dan.Master

                                    @Eisbaeeer
                                    Hallo Lars,
                                    ich bin mal ein bisschen durch deinen Code gegangen.

                                    Ich baue gerade einen Ferraris Zähler mit Analogauswertung via Maxim MAX127 ADC mit 12Bit mit "programmierbarer" Hysterese auf der Basis deines Codes. Ich bin auch bei 80% des Projekts
                                    Grund:
                                    Ich hatte in der Vergangenheit das Problem das sich zwei ESP Wemos D1 nach 3-4 Monaten nicht mehr gemeldet haben. Nach neu flashen ging es immer so ein paar Wochen und später meldete sich der ganz Kram auch nach Neustart nicht.

                                    Wenn ich das ja soweit verstanden habe wir ja quasi in den "EEPROM" geschrieben den der ESP aber nicht hat und das durch den Flash emuliert wird.
                                    Die macht der ja über die beiden JSON "Strukturen" dash und configuration .
                                    Soweit ich das jetzt Überblicke wird bei jedem Impuls und neuem kW und bei der MQTT übertragen daten in den Flash geschrieben.
                                    Somit haben wir ja nach 2-3 Monaten die sicheren Schreibzyklen von (100.000) mal erreicht und haben das Risiko eines Speicherschädigung.
                                    Bei einer Schreibzeit alle 30s wären es 720 Zyklen am Tag. 100.000/720 = 138,8 Tage.
                                    Oder liege ich mit den häufigen Schreibzyklen auf dem falschem Weg?

                                    Ich habe die Quellen bzw die Beschreibung der Libs für des Dashboard.h und configuaration.h leider nicht auf Anhieb gefunden.
                                    Aber vielleicht liebe ich da auf dem Holzweg.

                                    Ich habe den Sinn der ProcInput1-4() Routinen nicht ganz verstanden mit array und modulo. Wozu hast du die mit im Programm?

                                    Gruß
                                    DerDani

                                    Eisbaeeer ? 2 Replies Last reply Reply Quote 0
                                    • Eisbaeeer
                                      Eisbaeeer Developer @Dan.Master last edited by

                                      @dan-master sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                                      @Eisbaeeer
                                      Hallo Lars,
                                      ich bin mal ein bisschen durch deinen Code gegangen.

                                      Wenn ich das ja soweit verstanden habe wir ja quasi in den "EEPROM" geschrieben den der ESP aber nicht hat und das durch den Flash emuliert wird.
                                      Die macht der ja über die beiden JSON "Strukturen" dash und configuration .
                                      Soweit ich das jetzt Überblicke wird bei jedem Impuls und neuem kW und bei der MQTT übertragen daten in den Flash geschrieben.
                                      Somit haben wir ja nach 2-3 Monaten die sicheren Schreibzyklen von (100.000) mal erreicht und haben das Risiko eines Speicherschädigung.
                                      Bei einer Schreibzeit alle 30s wären es 720 Zyklen am Tag. 100.000/720 = 138,8 Tage.
                                      Oder liege ich mit den häufigen Schreibzyklen auf dem falschem Weg?

                                      Ja, das EEPROM wird emuliert und im flash gespeichert. ABER ich speichere nur bei vollen KWh ab. Ich habe dir mal die Stellen markiert:
                                      ecb9574e-ebe2-4f79-8877-b2f7b041f9e6-image.png

                                      Schau mal im Code nach "saveconfig", nur dann wird gespeichert.
                                      Gruß Lars

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @Dan.Master last edited by A Former User

                                        @dan-master sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                                        Grund:
                                        Ich hatte in der Vergangenheit das Problem das sich zwei ESP Wemos D1 nach 3-4 Monaten nicht mehr gemeldet haben. Nach neu flashen ging es immer so ein paar Wochen und später meldete sich der ganz Kram auch nach Neustart nicht.
                                        Gruß
                                        DerDani

                                        Wie macht man das denn?

                                        btw....Ich nutze aber eine eigens compillierte und abgespeckte ESPeasy Version für den Counter.....mit 160 MHz Tacktung

                                        Von 9 D1 Mini und 2 NodeMCU ist mir bis Dato noch keiner abgeraucht.
                                        Alle mit Tasmota und ESPeasy geflasht....einer ist noch im Testmode mit ESPhome.

                                        Irgendwas muss ich wohl falsch machen......😁

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          klassisch Most Active last edited by klassisch

                                          Wemos D1 Mini, Beispiel mit selbstgefrickeltem Programm:

                                          Betriebszeit: 1241 17:01:49 (Tage Std:Min:Sek)
                                          

                                          Man bekommt viele Clones mit unterschiedlicher Qualität.
                                          Also erst mal die Lötvebindungen zwischen Modul und Platine inspizieren und oft einfach alle nachlöten.
                                          Dann IMMER noch einen 1000µF Kondensator parallel zu den 3.3V und meist auch einen parallel zu den 5V. Im Notfall noch einen 10µF Cerco dirakt an die 3.3V am Modul zum Gehäuse.
                                          Dann laufen die jahrelang stabil.
                                          Was manchmal vorkommt: Wenn die Funkverbindung schlecht wird, gibt es bei manchen Programmen Neustarts.
                                          Einen ESP32 habe ich tatsächlich verloren. Der war immer nach einigen Stunden weg.
                                          Ansonsten laufen die 8266 D1 Mini recht rund. Mit selbstgefrickelter SW, ESPEasy, ESPHome, Tasmota.

                                          ? D 2 Replies Last reply Reply Quote 1
                                          • ?
                                            A Former User @klassisch last edited by A Former User

                                            @klassisch , ich bestelle auch immer beim Händler des Vertrauens....hier in DE.
                                            ....auch mein China Mann schickt kostenlosen Ersatz. Das hatte ich mal bei einem CC1001....der schickte mir dann gleich drei Stück nach.
                                            Da habe ich bei ihm eine glückliche Hand gehabt.....

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            873
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            esp8266 ferraris mqtt smartmeter sml tcrt5000
                                            49
                                            485
                                            95386
                                            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