NEWS
Ferraris Zähler mit TCRT5000 und esp8266
-
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
-
@eisbaeeer Danke für den Upload der letzten Version. Klappt jetzt bei mir auch mit dem Compilieren.
Viele Grüße
Karlheinz -
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? -
@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) -
@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!)
-
@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 -
@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. -
@etlam Klar. Pull-requests mach ich schon. Ich entwickle das nur nicht mehr selbst aktiv weiter, da ich keine Ferraris mehr habe.
-
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 -
@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 . . . -
@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?
-
@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. -
@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 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?)
-
@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 -
@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 -
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. -
@bonsai308 ich habe eben die noch fehlenden 0.95er Images bei GitHub hochgeladen. Die kannst Du mal ausprobieren.
Was definitiv hilft: nach dem Flashen erst in die Configuration gehen, dort den Haken bei "Home-Assistant Auto Discovery" wegnehmen und "Save" bestätigen. Der dazu gehörende Teil ist recht umfangreich/langsam und kann damit den Watchdog auslösen.
Man muss schnell sein! Sonst ist schon neu gestartet bevor "save" ausgeführt wurde. -
@etlam die v0.95 funktioniert nun bei mir. Ich habe sie per NodeMCU PyFlasher installiert, WiFi konfiguriert, HomeAssistant Discovery deaktiviert, MQTT konfiguriert, HomeAssistant Discovery aktiviert... alles funktioniert wie erwartet... ich fasse es nie wieder an
-
@eisbaeeer könntest du die nicht aktiven Z2...Z3...Z4... aus dem dashboard rausschmeissen , wenn sie deaktiviert/ oder nicht genutzt werden
ansonsten klasse leistung danke