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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Ferraris Zähler mit TCRT5000 und esp8266

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

      @eisbaeeer
      Kann man Deinen Ferraris_MQTT_Energy_Counter_Meter_TCRT5000 auch OTA in einen bestehenden Wemos D1 mit EspEasy flashen?
      Oder ist initial die Arduino IDE zu nutzen?

      Gruß
      Kai

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

        @w00dst0ck kannst du direkt flashen. Über OT A oder per upload.

        1 Reply Last reply Reply Quote 0
        • w00dst0ck
          w00dst0ck @jmeister79 last edited by w00dst0ck

          @jmeister79 sagte in Ferraris Zähler mit TCRT5000 und esp8266:

          Zur Zeit behauptet er, er könne webserver.h nicht finden

          Konntest Du das Problem mit der webserver.h in der Arduino IDE lösen?
          Komme hier leider auch nicht weiter.. 😞

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

            @w00dst0ck Das wird mit der Arduino IDE nicht funktionieren! Die Webseite, die er nicht findet, wird dynamisch compiliert. Das kann Arduino IDE nicht. Du musst dafür VSCode verwenden damit das compiliert. Gruß Eisbaeeer

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

              @eisbaeeer
              Na dann schaue ich mal, ob ich mit VSCode weiter komme.
              Die Hinweise unter https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000#steps-to-get-running sind dann allerdings veraltet. ✌

              Kann es sein, dass in dem beigefügten \binary\firmware.bin noch nicht auf D5 umgestellt ist? Oder liegt es eher daran, dass das binary für ein anderes Board kompiliert wurde?
              Hab sie zwar OTA aufspielen können, aber im Gegensatz zum bisher verwendeten ESPEasy wurden keine Impulse gezählt.

              Aber was ich schon sehen konnte, gefällt mir sehr gut! 👏

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

                @w00dst0ck Oh sorry. Ja der Part ist veraltet. Wichtig ist auch, nach dem Installieren von VSCode die Schritte vom Framework zu machen. Das ist in der Anleitung vom Framework beschrieben. Das muss zwingend gemacht werden, sonst compiliert er die Webseite nicht. Also nur 1. Und 2 ist nötig!

                https://github.com/maakbaas/esp8266-iot-framework/blob/master/docs/getting-started.md#editing-the-web-interface

                Bei Fragen einfach melden!
                Gruß Eisbaeeer

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

                  @eisbaeeer sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                  Bei Fragen einfach melden!

                  🙄

                  Habs soweit eigentlich hinbekommen und das "npm ci liefert" keine Fehler.
                  Aber beim Kompilieren erhalte ich dann ein paar npm ERR. Das erstellte File firmware.bin hab ich mal geflashed, aber ich bekomme dann keinen Zugriff auf den ESP.

                  Das Log hab ich mal hier gepostet: https://pastebin.com/ikPdYBzm
                  Kannst Du damit was anfangen und mir einen Tipp geben?

                  Danke & Grüße

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

                    @w00dst0ck Hi. Das sieht ja schon gut aus. Bitte prüfe mal, ob du diese 3 Schritte bei dir nachvollziehen kannst. Du musst eigentlich dann nur noch eines tun:

                    1. Wenn du im Projekt bist, die Kommandozeile aufrufen
                      npm-01.png
                    2. npm ci dort eintippen und mit Enter ausführen
                      npm-02.png
                      Das sollte ohne Fehler durchlaufen. Mit diesem Befehl installiert npm im Hintergrund den benötigten Compiler für die Webpage. Wie gesagt wird diese zur Laufzeit compiliert, also erst beim Compilieren aufgrund der dashboard items und config items erstellt.

                    Wenn du dann das Projekt compilierst, sollte in den logs folgender Eintrag angezeigt werden. Das zeigt, dass webpack installiert wurde und die Webseite erstellt werden kann.
                    npm-03.png

                    Ich denke das du 2. noch nicht gemacht hast. Wenn du soweit bist, wirst du kein Arduino IDE mehr benuzten wollen 😉
                    Gruß Eisbaeeer

                    P.S.: Du kannst mir ja dein Projekt mal zukommen lassen. Wichtig ist auch, dass du die Platform richtig einstellst. In der platformio.ini
                    npm-04.png

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

                      @kral84 @Menne
                      Also ich habe jetzt bei mir mal beobachtet und festgestellt, dass die Fehlimpulse "NICHT" im silbernen Bereich auftreten. Es scheint eher so, dass das digitale Signal prellt. Das fällt jetzt umso mehr ins Gewicht, nachdem ich die Zählung auf Interrupts umgestellt habe.
                      In der aktuellen Version habe ich die Entprellung mal auf 80ms gestellt. Mal sehen, ob der Zählerstand jetzt passt. Ich melde mich die nächsten Tage. Falls es klappt, werde ich die aktuelle Version in Github hochladen. Wer mit testen möchte, einfach kurz melden.
                      Grüße Eisbaeeer

                      Also gut 😉 hier die Binary:
                      firmware.bin
                      Vergesst nicht, Eure Zählerstände auf den aktuellen Wert zu setzen.

                      D 1 Reply Last reply Reply Quote 2
                      • w00dst0ck
                        w00dst0ck @Eisbaeeer last edited by

                        @eisbaeeer

                        Direkt im Projekt-Ordner liegt ja keine package.json und somit läuft npm ci dort nicht durch.

                        PS C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000> npm ci
                        npm ERR! code ENOENT
                        npm ERR! syscall open
                        npm ERR! path C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\package.json
                        npm ERR! errno -4058
                        npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\package.json'
                        npm ERR! enoent This is related to npm not being able to find a file.
                        npm ERR! enoent
                        

                        Die Doku des IOT Frameworks hatte ich so verstanden, dass ich npm ci dort in dem Folder ausführen muss.
                        Und hier läuft das auch alles durch.

                        PS C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework> npm ci
                        npm WARN prepare removing existing node_modules/ before installation
                        
                        > cwebp-bin@5.1.0 postinstall C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework\node_modules\cwebp-bin
                        > node lib/install.js
                        
                          √ cwebp pre-build test passed successfully
                        
                        > pngquant-bin@6.0.0 postinstall C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework\node_modules\pngquant-bin
                        > node lib/install.js
                        
                          √ pngquant pre-build test passed successfully
                        
                        > optipng-bin@7.0.0 postinstall C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework\node_modules\optipng-bin
                        > node lib/install.js
                        
                          √ optipng pre-build test passed successfully
                        
                        > mozjpeg@7.1.0 postinstall C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework\node_modules\mozjpeg 
                        > node lib/install.js
                        
                          √ mozjpeg pre-build test passed successfully
                        
                        > gifsicle@5.2.0 postinstall C:\Users\dummyuser\Downloads\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000-master\source\Ferraris_MQTT_Energy_Counter_Meter_TCRT5000\.pio\libdeps\d1_mini_pro\ESP8266 IoT Framework\node_modules\gifsicle
                        > node lib/install.js
                        
                          √ gifsicle pre-build test passed successfully
                        added 1062 packages in 95.478s
                        

                        Die platformio.ini sieht bei mir so aus

                        [env:d1_mini_pro]
                        platform = espressif8266@3.0.0
                        board = d1_mini_pro
                        framework = arduino
                        board_build.f_cpu = 160000000L
                        upload_speed = 921600
                        monitor_speed = 115200
                        lib_deps = 
                        	ArduinoJson
                        	ESP8266 IoT Framework
                        	me-no-dev/ESP Async WebServer @ ^1.2.3
                        	knolleary/PubSubClient @ ^2.8
                        build_flags = -DCONFIG_PATH=configuration.json -DDASHBOARD_PATH=dashboard.json -DREBUILD_HTML
                        extra_scripts = scripts/preBuild.py
                        

                        😖

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

                          @w00dst0ck Schau mal bitte, ob in deinem Projekt die benötigten Libraries enthalten sind.
                          npm-05.png

                          Falls nicht, werde ich die libs auch noch auf Github hochladen. Das hatte ich mir gespart, da diese normalerweise automatisch nachinstalliert werden bzw. über PlatformIO nachinstalliert werden können.
                          Gruß

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

                            @w00dst0ck sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                            @eisbaeeer
                            Na dann schaue ich mal, ob ich mit VSCode weiter komme.
                            Die Hinweise unter https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000#steps-to-get-running sind dann allerdings veraltet. ✌

                            Kann es sein, dass in dem beigefügten \binary\firmware.bin noch nicht auf D5 umgestellt ist? Oder liegt es eher daran, dass das binary für ein anderes Board kompiliert wurde?
                            Hab sie zwar OTA aufspielen können, aber im Gegensatz zum bisher verwendeten ESPEasy wurden keine Impulse gezählt.

                            Aber was ich schon sehen konnte, gefällt mir sehr gut! 👏

                            Mir ist eben noch aufgefallen, dass du hier von D5 sprichst. D5 ist im Code ja auf den Zähler4 gemapped. Also auch im Binary. Du solltest also beim 4. Zähler Impulse bekommen, wenn du D5 nutzt.

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

                              @eisbaeeer sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                              Mir ist eben noch aufgefallen, dass du hier von D5 sprichst. D5 ist im Code ja auf den Zähler4 gemapped. Also auch im Binary. Du solltest also beim 4. Zähler Impulse bekommen, wenn du D5 nutzt.

                              Ich wusste nicht ob das in der binary im Repo auch schon so kompiliert war.
                              Leider hat das bei mir nix gezählt und ich habe daher die Odyssee mit dem Kompilieren gestartet.
                              Aber vielleicht klappt es ja nachher...

                              Ansonsten muss ich halt bei EspEasy bleiben und auf die Benefits Deines Projekts verzichten.

                              1 Reply Last reply Reply Quote 1
                              • w00dst0ck
                                w00dst0ck @Eisbaeeer last edited by

                                @eisbaeeer sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                                @w00dst0ck Schau mal bitte, ob in deinem Projekt die benötigten Libraries enthalten sind.
                                npm-05.png

                                Die libs sind zwar enthalten, aber ich bekomme den Fehler beim Kompilieren nicht weg.
                                Das .bin file aus dem Posting von gestern Abend konnte ich zwar aufspielen, aber im Gegensatz zum EspEasy wird auch hier kein Impuls registriert.

                                Sehe jetzt zwei mögliche Ursachen:

                                • mein Schmitt-trigger
                                • mein Wemos d1 kommt mit Deinem firmware.bin nicht klar, weil leicht andere Plattform

                                Falls Du die Libs noch hochladen könntest wäre das ein Traum.
                                Oder wenn Du die Zeit findest, ggf. ein Compile für den Wemos D1 Pro (8266). Dann könnte man schauen ob der Upload der Libs auch anderen helfen würde.

                                Danke & Gruß

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

                                  @w00dst0ck Mach ich dir. Als Test kannst du mal 3.3V auf den Pin D5 geben, dann sollte ein Impuls registriert werden.

                                  1 Reply Last reply Reply Quote 1
                                  • D
                                    dibide @Eisbaeeer last edited by

                                    @eisbaeeer Ich habe voller Zuversicht gleich gestern das Update gemacht.
                                    Leider zählt er bei mir immer noch zu viel (habe auch weiterhin die sporadischen Verbrauchswerte von 11kwh und mehr).
                                    Wäre es möglich den Entprellungswert im Dashboard als selbst zu definierenden Wert zu integriern? Dann könnte ich damit auch mal testen ab wann die Fehlimpulse nicht mehr auftreten.
                                    LG
                                    dibide

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

                                      @dibide Also ich werde das mal so einbauen, dass man die Entprellung selbst einstellen kann. Und ich bau auch noch einen Graphen für die digitalen Signale mit ein, damit ich mal sehe, wann die Doppelimpulse kommen. In dem Zug baue ich auch gleich mit ein, das analoge Signal auszuwerten.

                                      jmeister79 1 Reply Last reply Reply Quote 1
                                      • jmeister79
                                        jmeister79 @Eisbaeeer last edited by

                                        Hi,
                                        ich geb hier auch mal meinen Senf dazu:
                                        Ich hatte in der der Vergangheit mit dem Normealen ESPeasy Skript Ständig das Problem, dass er zu wenig gezählt hat.

                                        Beim beobachten sah ich dass jeder Rotdurchlauf gezählt wird. Ich habe also endlos an dem Muliplikator für die Ferrarisscheibe rumgedoktort aber das Problem haben ich nicht in den Griff bekommen. Die Diode war perfekt eingestellt also habe ich das als Ursache ausgeschlossen
                                        Ich vermutete, dass es an der WLAN Verbindung lag da ich nur die Differenzen gezählt hatte und kam dann auf dieses Projekt, da es ja Absolutwerte speichert würde ich so meine Verbindungsprobleme umgehen. Leider hab ich das nicht auf meinen NodeMCU bekommen da die bin nicht funktioniert und habe dann aus Frust mal mit ESPeasy im IioBroker den Absolutwert statt der Differenz bei Update erfasst und die Differenz selbst gebildet. (Hier unbedingt den Nulldurchgang beachten) Keine Verbesserung.
                                        Nach einiger Diskussion mit @Menne (Vielen Dank für Deine Zeit) kam mir eine Idee:

                                        Da ich mich nicht eingehend mit dem Projekt befasst habe und einfach damals alles was ich bei @SchimmerMediaHD gesehen Hatte nachgebaut hatte hab ich mich nicht mit den Einstellungen beschäftigt.

                                        Ich erfasse beide Flanken des Rotdurchlaufs um Parität zu wahren und der Entprellwert (debounce) war auf 1000ms. Das ist natürlich viel zu Hoch wenn beispielsweise Die Sauna oder Trockner und Waschmaschine, Tischkreissäge laufen.
                                        Als ich darüber nachdachte wurde mir auch klar, dass die Abweichungen auch keinerlei System folgten, ich hatte tagelang Tabellen erfasst wie weit ich weg bin und da konnte ich keine Regelmäßigkeit errechnen. Also passiert das immer wenn die Scheibe sich schnell dreht. Und mein debounce war zu hoch, hab ihn jetzt mal auf 100ms Gestellt und seit gut 10 Tagen bin ich sehr genau. Der debounce ist hier entscheidend, man muss einen Mittelweg zwischen zu klein und zu groß finden. Ist er zu groß filtert er bei schneller Scheibe den Rotdurchgang raus. Ist er zu klein habt ihr Jitter.

                                        Testen mit einem Starken Verbraucher (Toaster, Wasserkocher, Backofen mit Grillfunktion, Sauna oder TKS)
                                        Zählt zu viel: debounce zu klein.
                                        Zählt zu wenig: debounce zu hoch.

                                        Es spricht so einiges dafür den debounce als Parameter aufzunehmen.

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

                                          @jmeister79 sagte in Ferraris Zähler mit TCRT5000 und esp8266:

                                          Ich erfasse beide Flanken des Rotdurchlaufs um Parität zu wahren

                                          Das würde ich in diesem Fall nicht tun, weil das Tastverhältnis zu unsymmetrisch ist. Das wäre dann angemessen, wenn es wirklich paritätisch wäre, also die Rotmarkierung etwa einen halben Umfang lang. Ist es aber nicht.
                                          Wenn man nur eine Flanke zählt, hat man etwas mehr Spielraum mit der debounce Zeit.

                                          Beim Sternrad meiner Wasseruhren nutze ich zwar auch beide Flanken, achte bei der Einstellung darauf, daß das Tastverhältnis ziemlich symmetrisch ist,

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

                                            Es ist eindeutig so, dass der TCRT5000 prellt. Seit der Umstellung auf Interrupts wird jetzt eben jeder, auch der kürzeste Impuls erfasst. Das bringt natürlich neue Problem mit sich. Mein Sensor prellt eindeutig wie man hier sieht:
                                            6b125180-c6ec-4cea-8db1-d1b6cc56cffd-image.png
                                            Ich bin mir nur nicht sicher, ob man das wirklich softwareseitig in Griff bekommt, oder ob ich an den Sensoren noch Änderungen machen muss. Mal sehen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            824
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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