NEWS
Ferraris Zähler mit TCRT5000 und esp8266
-
@Eisbaeeer Gibt es eine einfachere oder bessere Lösung für das Totalisierungsproblem? Also die Erhaltung der Gesamtsumme auch über Restarts hinweg?
Man könnte das Flash des ESP nutzen, aber dann muß man sich auch ums wear levelling kümmern.
Bei meinem selbstgebauten Wasserzähler habe ich ein I2C EEPROM genutzt. Aber das ist für den Anfänger wahrscheinlich keine Option, obwohl es da mittlerweile fertige Breakout-Boards gibt.Edit: Vor dem Einsatz des EEPROMs hatte ich bei Start des Wemos den letzten übertragenen Zählestand von der Zentrale geholt. Damals noch CCU, was schwieriger ist. Aber mit smpleAPI Adapter könnte man das mit ioBroker machen. Vielleicht die Benutzerfreundlichste Lösung. Da müßte der User nur den simpleAPI Adapter installieren, einen Datenpunkt anlegen und dem ESP sagen, wie der Datenpunkt heißt. ESPEasy etc kann das nicht. Aber wenn Du selbst programmierst, könntest Du das so tun.
-
@klassisch sagte in Ferraris Zähler mit TCRT5000 und esp8266:
Gibt es eine einfachere oder bessere Lösung für das Totalisierungsproblem? Also die Erhaltung der Gesamtsumme auch über Restarts hinweg?
Man könnte das Flash des ESP nutzen, aber dann muß man sich auch ums wear levelling kümmern.Ja die gibt es. Bei der Firmware werden alle Werte und Einstellungen im json Format auf den ESP Flash gespeichert und bei einem Neustart oder Stromausfall daraus geladen. Der Zählerstand wird bei jeder KWh erneut gespeichert. Neulich war eh schon der Wunsch, die Daten herunterladen zu können. Uch werde das noch einbauen, dass man die Daten herunterladen und falls man einen ESP Wechsel macht die Einstellungen auch wieder hochladen kann. Der writecycle des Flash Speichers sollte mich überleben. Zumindest die Lebenszeit des Zählers. Und im schlimmsten Fall habe ich die Werte noch zusätzlich im iobroker und auf dem Zählwerk.
Lies mal die README.md auf github, dort stehen alle derzeitigen Features drin.
Grüße Eisbaeeer -
@Eisbaeeer sagte in Ferraris Zähler mit TCRT5000 und esp8266:
@klassisch sagte in Ferraris Zähler mit TCRT5000 und esp8266:
Ja die gibt es. Bei der Firmware werden alle Werte und Einstellungen im json Format auf den ESP Flash gespeichert und bei einem Neustart oder Stromausfall daraus geladen.Also, so in etwa, wie ich das bei meinem Wasserzähler mache. Allerdings speichere ich in ein externes EEPROM, weil ich dem eine höhere Durability zugetraut habe. Mittlerweile gibt es aber diesen netten Artikel , welcher die durability des ESP Referenzdesigns bei min. 100.000 sieht.
Der Zählerstand wird bei jeder KWh erneut gespeichert.
Wenn Du aber nur nach 1kWh abspeicherst, kostet Dich ein Restart Genauigkeit. Über die Praxisrelevanz kann man natürlich diskutieren, denn das kommt selten vor.
Bei 4000kWh sollte das Ding also min. 25 Jahre halten.
Ich speichere bei meinem Wasserzähler etwas häufiger ab. Er sagt mir gerade:Abspeichern Zaehler auf ext EEPROM bei Durchfluss >0 jedoch nicht haufiger als 180 sec es sei denn, die Wassermenge wird groesser als 50 Liter (= maximale Abweichung) Anzahl Schreibzyklen extEEPORM seit Prozessorstart: 37631 Schreibzyklen Anzahl Schreibzyklen extEEPORM 182 Zyklen/Tag => 15 Jahre Lebenserwartung
Das externe EEPROM ist mit typ. 1Mio angegeben bei 25°C.
Verlustloses Abspeichern bei jedem Tick (90ticks/Liter) würde halt ein echtes wear levelling voraussetzen, was mir die Sache nicht wert war.
Wenn Du die Daten zum ioBroker überträgst und dort speicherst, kannst Du sie nach dem Neustart des ESP dort wieder holen und verlierst nichts oder zumindest fast nichts. Braucht halt auch irgendwas auf dem ioBroker und macht es dann halt wieder etwas komplizierter.
Also entweder einfach für den Anwender und das geringe Risiko der Datenabweichung in Kauf nehmen oder von Anfang an etwas mehr in ioBroker Konfiguration investieren und das Risiko ausschalten.Um Dein Gerät für möglichst viele attraktiv zu machen, könntes Du ja beides integrieren? Die Flash-Methode als Default. Und die Fortgeschrittenen können den Datenkanal für die Summe im ioBroker anlegen (falls nicht schon ohnehin erforderlich) und dann Deinen ESP umkonfigurieren, daß er beim Neustart den Wert vom ioBroker holt.
-
@Eisbaeeer
So der TRCT5000 ist heute gekommen. Ich hatte so meine Schwierigkeiten und schreibe mal gerade so runter was mir aufgefallen ist:- die ino Datei in Arduino IDE zu "bekommen" war für mich nicht einfach, da fehl(t)en mir die Grundlagen
- Den Hinweis mit Wifimanager habe ich nicht geschnallt und habe in der ino gesucht um SSID und Passwort einzugeben. Dabei wird ja wenn der ESP geflasht ist ein AP aufgemacht, um über 192.168.4.1 die Einstellungen vorzunehmen.
- Für MQTT nutze ich wg. Sonoff Adapter einen anderen Port, also erst mal diese Einstellung in der ino Datei finden und abändern. Vielleicht eine Idee den Port im Browser mit einstellen zu können?
- Sonderzeichen im Passwort mag der MQTT Adapter anscheinend nicht.
- Was für Einstellungen im MQTT Adapter sollen vorgenommen werden?
- Wenn der ESP vom Strom genommen wird, verliert er die MQTT Einstellungen...
Werte kommen aber in ioBroker nun an, muss den Sensor aber noch am Zähler montieren.
-
@FredF Hi.
Also die Wifi Zugangsdaten trägt man auf der Website ein nachdem man sich auf die 192.168.4.1 verbunden hat. Dann funktioniert auch die Speicherung. Gruß Eisbaeeer -
Hallo zusammen
Neue Version ist online. Anpassung der Entprellzeit und die Firmware kann nun über die Webseite zusätzlich hochgeladen werden. Dazu bitte ab Version 0.3 die URL eures ESP aufrufen mit /update. Mehr Infos findet ihr in der README.md
https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000P.S.: Ich habe schon viele neue Ideen. Wenn ich die Zeit finde, werde ich das implementieren.
Grüße Eisbaeeer -
Hallo,
mit dieser Version zählt er bei hoher Last wesentlich besser, d.H. wenn Waschmaschine und Trockner gleichzeitig lief hatte ich mit der alten Version nur ca. 0,4 KW Verbrauch. Wahrscheinlich weil der Zähler ziemlich schnell dreht (375 U/KW). Beim kurzen Test mit Fön und Wasserkocher waren die Werte jetzt reeller.
-
@Ritter Ja das hatte ich auch festgestellt. Ich hatte über längere Zeit eine Abweichung zwischen Rollenzählwerk und dem Zählerstand auf dem ESP. Das ganze ist aber noch nicht optimal, da das Übermitteln der MQTT Nachricht doch eine Zeit braucht. Ich bin am überlegen, die Impulse per Interrupt abzufangen, damit kein Impuls verloren geht. Ich denke da auch schon an die Smarten Zähler. Habe beim Schwager gesehen, dass der 10Tsd Impulse pro KWh ausgibt. Das schafft das derzeitige Programm nicht. Da muss ich den Programmablauf noch ändern, damit nicht nach jedem Impuls eine MQTT Nachricht gesendet wird bzw. dass man auswählen kann, wann eine MQTT Nachricht versendet wird. Denn bei meinen 75 U/KWh macht das durchaus Sinn.
Gruß Eisbaeeer -
@FredF Das mit dem einstellbaren MQTT Port nehme ich mit in die ToDo auf. Das ist ein guter Hinweis. Ab der Version 0.3 kannst du die Firmware per Browser hochladen. Damit entfällt dann die Installation von der IDE.
Gruß Eisbaeeer -
Hallo zusammen
Ab sofort könnt ihr die Version 0.4 testen. Es gibt ein paar Änderungen. Hier mal der Changelog:## Changelog ### Version 0.4 (Eisbaeeer 20200905) - Bugfix Zähler 3 und 4 (Zählerstand) - Neu: MQTT Server Port konfigurierbar - Neu: MQTT publish Zeit einstellbar (1-9999 Sekunden) - Blinken der internen LED aus kompatibilitätsgründen von anderen Boards entfernt (manche Boards nutzen D4 für die interne LED) (ACHTUNG: mit dieser Version gehen die Zählerdaten verloren! bitte über Browser neu eintragen!) - Neu: Port D4 auf D5 umgezogen! (D4 ist bei manchen Boards die interne LED - Neu: Alle Zählerdaten werden im EEPROM abgespeichert.
Die größte Änderung ist das Speichern der Daten. Die werden nun im EEProm gespeichert. Der Flash mit derzeit 100.000 Zyklen steht dem EEProm mit 1Mio. Zyklen doch sehr nach. Deshalb werden die Zählerdaten jetzt im EEProm abgespreichert. Das bedeutet, dass ihr nach dem Update die Zählerstände neu eingeben müsst (auf der Weboberfläche). Die bisherigen Wifi Daten bleiben erhalten. Somit könnt ihr auch ohne Probleme ein binary update machen (also ab Version 0.3 per Browser das bin File einspielen).
Ihr könnt das bin-File unter "http://<EURE-IP>/update" einspielen. Ihr müsst folgende Werte neu eingeben:-
MQTT Server *
-
MQTT Port * (default 1833)
-
MQTT Publish Time * (Zyklus, bei dem der ESP die Daten an den MQTT sendet)
-
MQTT User (Optional)
-
MQTT Password (Optional)
-
Meßplatz *
-
Zählerstände und die Umdrehungen neu eingeben und abspeichern.
(Alle mit * gekennzeichneten Werte sind Pflichtwerte !)
Ihr findet die neue Version unter: https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000
Grüße Eisbaeeer
-
-
hab das ganze seit heute nachmittag auch im Betrieb.
Erstmal klasse deine Arbeit, Respekt!Momentan kommen mir die Werte sehr spanisch vor (momentan 0,01kw verbrauch)....aber ich werde das erstmal nen Tag beobachten und mich hier dann nochmal melden.
-
@itsmebartman Danke! Ich hatte anfangs auch ab und zu falsche Werte. Das kommt definitiv von der Sensoreinstellung. Vermutlich erkennt er nicht 100%ig jede Umdrehung. Ich hab auch schon Beiträge gelesen, in denen eine Änderung der Schaltung gemacht wurde, um den Sensor empfindlicher zu bekommen. Ich konnte meine ganz gut justieren, hat aber auch ein wenig Zeit benötigt. Jetzt stimmt es auf die KWh genau.
Gruß Eisbaeeer -
@Eisbaeeer
stimmt! hab den Vormittag nun rum getestet. Jetzt scheint es vernünftig zu laufen.
Der Knackpunkt war bei mir nicht unbedingt die Sensoreinstellung, sondern die Positionierung auf der Scheibe vom Zähler.
Wichtig war bei mir, dass die Halterung mit Zähler wirklich 100% plan aufliegt.Habe gerade ein bisschen rumprobiert mit verschiedenen Verbrauchern um den Stromverbrauch zu variieren. Die Werte scheinen mir plausibel.
Ich werde das ganze mal beobachten und mich später nochmal melden.Wie gesagt, großen Dank bis hierhin schon mal!
edit:
kurze Frage...Wird der Zählerstand nur in ganzen Zahlen aktualisiert? Keine Dezimalzahlen? -
@itsmebartman Ja, es werden nur ganze KWh angezeigt. Gruß Eisbaeeer
-
kurzer Nachtrag, es läuft alles ganz hervorragend
schon mal drüber nachgedacht, das ganze für wasser- und gaszähler zu erweitern?
-
@itsmebartman .... gar nicht so weit weg... https://forum.iobroker.net/post/470673
-
@Eisbaeeer ,
ist denn nun OTA implementiert oder nicht?
Auf der Start Seite ist jedenfalls davon nichts zusehen.Mein Nachbau funzt auch schon 2 Tage, mit einem D1 Mini Pro und externer Antenne....
-
@Menne Ja, ist seit Version 0.3 drin.
adding upload of firmware bin files via webpage (http://.../update)
Gruß Eisbaeeer -
@Eisbaeeer super tolles und scheinbar doch so einfach gehalten.
Ich würde gern einen D1 mini nehmen, wie müsste ich den TCRT5000 an den D1 mini anschließen?
Leider konnte ich das nirgens finden. -
@falke69 Hi. Ja soll so einfach wie möglich sein. Alle Infos findest du unter https://github.com/Eisbaeeer/Ferraris_MQTT_Energy_Counter_Meter_TCRT5000/tree/master/source/ferraris_wifimanager_mqtt
Die Sensoren werden an D1 bis D4 angeschlossen. Sollte auf dem Wemos ohne Probleme laufen.
Gruß Eisbaeeer