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.
    • K
      khkissel @viruz last edited by

      @viruz Hab Tasmota auf dem D1 mini installiert. Anbindung des RPR220 an Ground, 5V und D1. Relay_i an GPIO2 und Switch an GPIO5 definiert. Siehe folgende Vorlage:

      {"NAME":"D1_mini_RPR220","GPIO":[1,0,256,1,1,160,0,1,1,1,1,1,1,1],"FLAG":0,"BASE":18}
      

      MQTT mit den entsprechenden Definitionen angeklinkt. Dann noch folgende Einstellungen in der Tasmota-Konsole, damit auch der Zustand des Switches über MQTT weitergereicht wird:

      Backlog Switchmode 1; PowerOnState 0; Setoption0 0; Setoption63 0
      Rule1 on Switch1#state do Publish stat/DVES_00941B/ElektroZaehler %value% endon on Switch1#state do POWER %value% endon 
      Rule1 1
      

      Bin mir aber momentan nicht sicher, ob alle Setoptions benötigt werden. Aber es fuktioniert:

      12:11:09.107 RUL: SWITCH1#STATE performs "Publish stat/DVES_00941B/ElektroZaehler 1"
      12:11:09.113 MQT: stat/DVES_00941B/ElektroZaehler = 1
      12:11:09.124 RUL: SWITCH1#STATE performs "POWER 1"
      12:11:09.130 MQT: stat/DVES_00941B/RESULT = {"POWER":"on"}
      12:11:09.133 MQT: stat/DVES_00941B/POWER = on
      12:11:14.244 RUL: SWITCH1#STATE performs "Publish stat/DVES_00941B/ElektroZaehler 0"
      12:11:14.251 MQT: stat/DVES_00941B/ElektroZaehler = 0
      12:11:14.261 RUL: SWITCH1#STATE performs "POWER 0"
      12:11:14.270 MQT: stat/DVES_00941B/RESULT = {"POWER":"off"}
      12:11:14.275 MQT: stat/DVES_00941B/POWER = off
      

      In FHEM wird jetzt jeder Impuls gezählt. Dazu gibt es im entsprechenden Device die Attribut-Definitionen

      readinglist stat/DVES_00941B/ElektroZaehler:.* StromZaehler
      
      userReadings StromCounter monotonic { ReadingsNum($name, "StromZaehler", 0) },
         StromVerbrauchHeutekWh {sprintf("%.1f",ReadingsNum($name,"StromVerbrauch_Tag",0)/75)},
         StromKostenHeuteEuro {sprintf("%.2f",ReadingsNum($name,"StromVerbrauchHeutekWh",0)*0.208072)}
      

      monotonic bedeutet, das der Zähler StromCounter immer um 1 höchgezählt wird, wenn StromZaehler auf 1 steht.

      So läuft es bei mir seit Tagen mit ganz geringen Abweichungen, die aber daher kommen, dass mein MQ-Broker manchmal über das WLAN nicht erreicht werden kann. Ist aber selten. Da nun alle Impulse in FHEM ankommen,
      kann ich alles andere weiterberechnen und verarbeiten.
      Viele Grüße
      Karlheinz

      1 Reply Last reply Reply Quote 0
      • S
        Slevin last edited by Slevin

        Hallo miteinander,

        ich beschäftige mich erst seit kurzem mit diesem Thema und habe den Beitrag mit großem Interesse verfolgt und würde dieses Projekte gerne nutzen um die Daten meines analogen Stromzählers zu erfassen.
        Bisher habe ich ein Projekt von Github genutzt um die Daten per Mqtt zu erfassen aber nach paar Tagen stimmt der ermittelte Zählerstand nicht mehr.
        Nun möchte ich dieses Projekt testen aber ich scheitere beim erstellen des Frameworks.

        Wenn ich nach der Anleitung, wie auf Github verlinkt, vorgehe bekomme ich beim laden der lib_deps = ESP8266 IoT Framework einen Fehler.
        Er findet dann die libaries nicht bsp. abc.h usw.
        Nehme ich aber zum Beispiel das Github Projekt was ich vorher genutzt habe und schmeiße die Main raus, ersetze sie gegen ein example aus der Framework Anleitung und nehme eine leere Platformio.ini, schreibe dort lib_deps = ESP8266 IoT Framework und zusätzlich me-no-dev/ESP Async WebServer @ ^1.2.3 dann bekomme ich nach dem Build ein Success!?

        Ich habe dies aber noch nicht auf den ESP (Wemos D1 Mini) geladen und geschaut was passiert.

        Bitte verzeiht mir diese Frage aber wie erwähnt ich beschäftige mich erst seit kurzen damit aber:
        Wie geht es weiter nachdem das Framework erstellt ist?

        Bitte entschuldigt vielmals und ich möchte diesen Thread auch nicht mit meiner Frage zumüllen aber vielleicht findet sich ja jemand der mich vielleicht unterstützen würde (per PN?)

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

          @slevin Hi. Warum nimmst du nicht die fertigen Binaries von hier? https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/releases/tag/0.94

          Gruß Lars

          1 Reply Last reply Reply Quote 0
          • S
            Slevin last edited by Slevin

            Oh man...

            Vielen Dank, hat auf anhieb geklappt!
            Wobei ich gerne wissen würde wie es mit Platformio funktioniert...ich werde da noch etwas testen.

            D0 vom TCRT5000 ist mit D5 vom Wemos D1 Mini verbunden liefert aber keine Daten.
            Woran könnte das liegen?

            Gruß Slevin

            E 1 Reply Last reply Reply Quote 0
            • K
              khkissel @Eisbaeeer last edited by

              @eisbaeeer Danke für den Upload der letzten Version. Klappt jetzt bei mir auch mit dem Compilieren.
              Viele Grüße
              Karlheinz

              1 Reply Last reply Reply Quote 0
              • S
                SkeeveKlah last edited by

                Hi,
                ich habe heute meinen SmartMeter bekommen, aber leider kriege ich den PIN erst irgendwann in 2-3 Wochen per Post 😞 Da ich noch einige TCRT5000er in der Ecke liegen habe, wollte ich übergangsweise dann mit diesem Projekt Impulse zählen (5000 per kWh). Beim Ferraris habe ich optisch mit dem "AI on the Edge Device" gearbeitet.
                Ich habe also die 0.94 geladen und geflasht, im Dashboard steht 0.92 und warum auch immer resetet sich die Konfig alle 30-60 Sekunden auf Standard (MQTT und Zähler).
                Kennt das Problem jemand?

                1 Reply Last reply Reply Quote 0
                • E
                  Etlam @Slevin last edited by Etlam

                  @slevin Der Wemos D1 mini hat aufgedruckte Bezeichnungen für die Pins, da musst Du D1 nehmen. Das ist dann intern für den Wemos ein D5 wie in den Pin-Schaubildern angegeben.
                  Also D1 .. D4 wie aufgedruckt und nicht D5 wie überall geschrieben.
                  (Ich habe meinen gestern angeklebt)

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

                    @Eisbaeeer ich habe mir Deinen Code mal angeschaut und eine Frage dazu (kompilieren kann ich noch nicht, das Framework müsste noch installiert werden):

                    In Version 0.92 hast Du als Bugfix die Interrupts für länger laufende Routinen unterbrochen. Die werden auch sonst öfter mal ab- und wieder angeschaltet.
                    Ich meine, dass dadurch Impulse verloren gehen können. Immer dann, wenn ein Interrupt reinkommt und die Interrupts gerade abgeschaltet sind, wird der ja nicht bearbeitet.

                    Kannst Du mal genauer erklären, welche Fehler Du hattest damit das Abschalten notwendig war?
                    "Eigentlich" dürfte das nicht nötig sein.

                    (und Danke für dieses Projekt!)

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

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

                      In Version 0.92 hast Du als Bugfix die Interrupts für länger laufende Routinen unterbrochen. Die werden auch sonst öfter mal ab- und wieder angeschaltet.

                      Hi. Ohne Interrupts verliert man mehr Impulse. Das kommt vor allem von der MQTT Routine. Diese braucht leider etwas lange, bis sie die Werte an den MQTT Server gesendet hat. Die Interrupts werden immer beim senden per MQTT abgeschaltet, sonst sind die aktiviert. Bei dauerhaft aktivierten Interrupts kam es vor, dass der ESP beim Übertragen mit MQTT rebootet hat. Auch das Framework ist da leider etwas anfällig. Falls es einen besseren Weg gibt, gerne einen Pull-request in Github stellen. Ich werde das Projekt jedoch nicht weiterentwickeln, da es bei mir obsolet ist.
                      Grüße Lars

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

                        @eisbaeeer Danke für die Erklärung.
                        Ich denke auch dass es mit Interrupts besser sein sollte. Der Reboot hört sich irgendwie nach einen zuschlagenden Watchdog an. Ist meist kniffelig das zu debuggen.
                        Würdest Du denn PullRequest noch annehmen?
                        Das würde wenn aber noch dauern, da ich nicht viel Zeit zum basteln habe.

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

                          @etlam Klar. Pull-requests mach ich schon. Ich entwickle das nur nicht mehr selbst aktiv weiter, da ich keine Ferraris mehr habe.

                          E 1 Reply Last reply Reply Quote 0
                          • G
                            gavu last edited by

                            Hallo zusammen,

                            ich bräuchte mal eure Unterstützung. Da es mein erstes mal ist, mit Arduino und Sensoren und etc, zu spielen, verstehe ich leider nur Bahnhof. Ich habe mir den letzten .bin heruntergeladen und geflasht. Es hat gebootet, es hat WLAN, ich kann Dinge anpassen, den Sensor habe ich angeschlossen (3V3, GND, A0 und D5).

                            Mein Setup ist:

                            • NodeMCU Lua Amica Module V2 ESP8266
                            • KY-033 Line successor module with TCRT5000
                            • Eclipse Mosquitto

                            Ich sehe ab und zu:

                            Red detected; Waiting for silver
                            Silver detected; waiting for red
                            Red detected; Waiting for silver
                            Silver detected; waiting for red
                            33.61 kW @ 1428ms
                            loops_actual_4 :0 / 75
                            meter_counter_reading_4 :1000 KWh
                            Red detected; Waiting for silver
                            

                            aber dann kommt

                            Attempting MQTT connection...
                            connected
                            subscribed to Ferraris/Messplatz/Zähler1/UKWh/set
                            subscribed to Ferraris/Messplatz/Zähler2/UKWh/set
                            subscribed to Ferraris/Messplatz/Zähler3/UKWh/set
                            subscribed to Ferraris/Messplatz/Zähler4/UKWh/set
                            subscribed to Ferraris/Messplatz/Zähler1/Stand/set
                            subscribed to Ferraris/Messplatz/Zähler2/Stand/set
                            subscribed to Ferraris/Messplatz/Zähler3/Stand/set
                            subscribed to Ferraris/Messplatz/Zähler4/Stand/set
                            
                            --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                            
                            Soft WDT reset
                            
                            >>>stack>>>
                            
                            ctx: sys
                            sp: 3ffffcf0 end: 3fffffb0 offset: 01a0
                            3ffffe90:  00000777 00000000 00000000 40230826
                            3ffffea0:  00000000 00000000 3fff4eb4 402124b0
                            3ffffeb0:  00000000 00000009 3fff5d7c 401013a2
                            3ffffec0:  3ffe8e58 3fffff6c 3fffff6c 00000000
                            3ffffed0:  3fff195c 3fff549c 00000033 40212544
                            3ffffee0:  00000331 3ffe8908 00001abc 4022a9f2
                            3ffffef0:  00000140 3fff50cc 3fff195c 4022aa94
                            3fffff00:  3fffdad0 00000020 3fff50b4 3fff1c68
                            3fffff10:  3fffdad0 00000002 00000001 4022aac0
                            3fffff20:  3fffdad0 00000002 00000001 4020fe8d
                            3fffff30:  00000000 000c000f 00000000 00000000
                            3fffff40:  74616c70 00000000 68574b55 00000000
                            3fffff50:  04000000 6e617453 00000064 05000000
                            3fffff60:  3fff509c 000c000f 80000000 3fff50cc
                            3fffff70:  002c002f 80000000 3fff4f84 0018001f
                            3fffff80:  80000000 00000006 3fff16c0 3fff1c68
                            3fffff90:  3fffdad0 3fff15b4 3fff16c0 40210055
                            3fffffa0:  feefeffe 00000000 3ffe8904 4022ff9a
                            <<<stack<<<
                            
                            --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                            
                             ets Jan  8 2013,rst cause:2, boot mode:(3,6)
                            
                            load 0x4010f000, len 3460, room 16
                            tail 4
                            chksum 0xcc
                            load 0x3fff20b8, len 40, room 4
                            tail 4
                            chksum 0xc9
                            csum 0xc9
                            v000f2f10
                            ~ld
                            

                            und mein MQTT bekommt keine Daten obwohl er sich anmeldet:

                            1673941018: New client connected from 10.42.4.0:15779 as FerrarisClient-Messplatz (p2, c1, k15, u'[redacted]').
                            1673941032: Client FerrarisClient-Messplatz closed its connection.
                            

                            Sorry wenn ich irgendwo irgendwas übersehen habe...

                            P.S. alles liegt noch auf meinem Arbeitstisch und teste es indem ich meine Hand vor dem Sensor vorbei bringe

                            Danke u. Gruss,
                            Andrei

                            E 1 Reply Last reply Reply Quote 0
                            • E
                              Etlam @gavu last edited by

                              @gavu das ist bei einem meiner Testgeräte exakt genauso, das andere geht. Also recht komisch, das es geräteabhängig ist.
                              "Soft WDT reset" bedeutet dass er für irgendwas zu lange braucht und der Watch Dog dann einen Reset macht. Damit ist auch klar, das niemals etwas am MQTT ankommen wird. Ich wollte mir das anschauen wenn ich mal Zeit habe, also eventuell noch dieses Jahr . . .

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                gavu @Etlam last edited by

                                @etlam Danke für die Info, hatte mir auch Hoffnung gemacht dass es doch gehen würde... Ich habe 3 Geräte bestellt, und 3 Sensoren. Keins der Geräte funktioniert... ich warte mal ab, vielleicht wird es bald ein Update geben... Oder kannst du mir einen anderen Board-Typ empfehlen? evtl. einen anderen Hersteller?

                                Codierknecht E 2 Replies Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @gavu last edited by

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

                                  Oder kannst du mir einen anderen Board-Typ empfehlen? evtl. einen anderen Hersteller?

                                  Ich hatte mir seinerzeit 3 Stk. von AZ-Delivery bestellt (AZDelivery NodeMCU Lolin V3 Module ESP8266 ESP-12F) und dazu vom gleichen Hersteller 3x TRCT5000.
                                  Gleich beim ersten Versuchsaufbau hat die Kombi am MQTT-Adapter problemlos funktioniert.
                                  Inzwischen habe ich einen zweiten Controller mit Tasmota geflasht und über den Sonoff-Adapter angebunden. Völlig problemlos.

                                  1 Reply Last reply Reply Quote 0
                                  • E
                                    Etlam @gavu last edited by Etlam

                                    @gavu Auf der Config-Seite gibt es einen Eintrag "Home-Assistant Auto Discovery". Wenn ich den auschalte, hat er weniger MQTT Daten zu schicken und es geht "besser". Du musst allerdings schnell genug klicken und den save Button erwischen, bevor es wieder bootet.
                                    Ich habe gerade mein "nicht funktionierendes" NodeMCU neu aus der PlatformIO geflashed, jetzt geht es auch. Vorher hatte ich es über esptool von der Kommandozeile aus gemacht. Eventuell waren da Parameter falsch? Womit flashst Du?

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

                                      @eisbaeeer wie Du schon gesehen hast, habe ich einfach mal angefangen Bugs auszubauen die hier bei mir noch aufgetreten sind.

                                      Kannst Du selber noch testen? Oder wie machen wir das mit einem neuen Release auf der GitHub Seite? Hier hatten ja auch andere zufällige Re-Boots, denen könnte das ja auch helfen.

                                      Ich würde mit einem Refactoring des Codes weitermachen um langfristig die Interrupts dauerhaft aktiv lassen zu können. Möchtest Du vorab etwas mit mir absprechen, oder soll ich einfach loslegen? (Ich denke dass man hier auch Direktnachrichten schicken kann?)

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

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

                                        Möchtest Du vorab etwas mit mir absprechen, oder soll ich einfach loslegen?

                                        Hi. Ich habe dich in Github berechtigt. Kannst direkt loslegen. Ich selbst kann leider nicht mehr testen, da ich keinen Ferraris mehr habe. Ich werde mir auch keinen reinschrauben 🙂 . Aber es würde mich freuen, wenn das Projekt jemand weiter betreut! Go, go, go!
                                        Gruß Lars

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

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

                                          Womit flashst Du?

                                          Ich nutze den upload direkt aus PlatformIO. Manchmal aber auch einen py-flasher. Je nachdem, ob ich bereits ein fertiges binary habe oder erst compilieren muss.
                                          Gruß Lars

                                          K 1 Reply Last reply Reply Quote 0
                                          • B
                                            bonsai308 last edited by

                                            An alle beteiligten meinen herzlichen Dank!

                                            Leider gehöre ich zur Fraktion "kann nur fertige .bin's auf den ESP schieben",
                                            aber vielleicht kann ich mit Fehlernbildern unterstützen.

                                            Hab auf einen D1 mini pro geflasht (die 0.94er bin).
                                            Auch ich kann die Reboot's bestätigen, genauso wie die nur ab und zu funktionierende MQTT Übertragung. Bei einem erneuten Flash mit vorherigem wipe des kompletten Speichers werden nun keine Werte die im WebIF unter config eingetragen werden übernommen. Auch die MQTT Verbindung zu ioBroker kommt gar nicht mehr zustande.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            875
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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