NEWS
Ferraris Zähler mit TCRT5000 und esp8266
-
@jmeister79 es kann sein das die bin nicht mit deinem esp kompatible ist.... Compiliere es dir selber dann klappts... Oder investiere 5€ und kaufe dir einen wemos d1 mini da kappts oder einen esp8266 nodemcu 3 lolin...
-
@kral84 Danke für die Antwort.
Selbst Kompilieren war auch meine erste Idee aber ich wandere von Problem zu Problem. Irgendwie bin ich zu doof die richtigen Bibliotheken zu finden.
Zur Zeit behauptet er, er könne webserver.h nicht finden.sketch_sep28b:82:10: fatal error: webServer.h: No such file or directory Mehrere Bibliotheken wurden für "WiFiManager.h" gefunden 82 | #include "webServer.h" Benutzt: C:\Users\nilsv\Documents\Arduino\libraries\WiFiManager | ^~~~~~~~~~~~~ Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\WiFiManager compilation terminated. exit status 1 webServer.h: No such file or directory
Arduino ist auch echt lange her, das letzte mal, dass ichd as benutzt habw ar noch als ich Wii Fernbedienungen in Quadrcopter gelötet hab.
LG
Nils -
@jmeister79 @jmeister79 Hallo Nils. Ich verwende auch kein ARDUINO IDE mehr. Als Compiler wird hier VS-Code mit dem Plugin PlatformIO verwendet. Mit Arduino IDE wirst du die sourcen nicht compilieren können. Mir fehlt gerade mal wieder die Zeit. Aber das Projekt geht auf jeden Fall weiter. Gruß
-
NodeMCU ist NodeMCU und sollte auch darauf laufen....auch mit der *.bin wird es weiterhin zu Verbindungsabbrüchen kommen, die bewirkt keine Wunder....das wäre erstmal zu prüfen und zu beseitigen. Entweder eine externe Antenne anlöten, vorher die Leiterschleife durchtrennen (Infos gibt es im Netz zuhauf), oder wie ich und verwende ein D1 Mini Pro mit 4GB. Der hat eine Buchse. Daran sitzt eine Wlan-Magnetfußantenne. (siehe Bilder von mir hier im Thread) Auch dort muss die interne Antenne abgeschaltet werden. 0 Ω Brücke entfernen und eine neue setzen.
-
@menne Naja aber wenn er intern den Wert hält habe ich ja im ioBroker die richtigen Werte. Und mir ngehen keine Inkremente flöten so wie jetzt.
LG
Nils -
@jmeister79 , Ok wie du willst....ich nutze eh ESPeasy....weil die Funktionen die ich brauche leider mit der Software nicht möglich sind....ich zähle noch Gas und Wasser. Zudem müsste noch MQTT Import und eine OLED Steuerung integriert sein.
-
@menne erstmal muss mir das reichen. DAs liegt an meiner Fritz, die Shellys Zicken auch regelmäßig.
Ich habe Nachbarn mit einem sehr starken WLAN das interveniert.Kannst Du mir evtl. kurz helfen wie ich das mit ESPeasy zu laufen kriegen? Ist der AP denn der den ihr auch habt?Wenn die Bin nicht funktioniert müsste ich ja neu kompilieren.
LG
Nils -
@jmeister79 , eins vorweg. Nimm nicht die letzte ESPeasy Version. Die spinnt....da wurden wieder so viele Fehler im Pulscounter eingebaut, das ich wieder zurück zur Mai Version bin. Die zählt zuverlässig. Das mache ich alles über OTA.
Wenn es um was neues geht, loge ich mich grundsätzlich mit einem Tablet unter 192.168.1.4 ein. Da dort die Zugangsdaten gespeichert sind, geht das Ratz Fatz. Dann bestätige ich nochmal, es wird rebootet und ist dann in der Fritte.
Man kann das alles umgehen, wenn man selbst compiliert und die Zugangsdaten zuvor in die Config eingibt und AP abschaltet. Es steht auch in der Config erkärt, was zu beachten ist, wenn mit Arduino IDE compiliert wird. -
@menne Hi, ja das ist ja nun der jetzige Stand,
da bekomme ich imemr nur Inkremente und keine Absolutwerte. DEshalb suche ich ja n Code, der den Absoluten Zählerwert im NodeMCU speichert.Hatte gehofft einfach das bin File zu benutzen und Happy zu sein.
@Eisbaeeer Hast Du n Guide für Visual Studio für nodemcu?
-
@jmeister79 , das ist Quatsch. Der Counter zählt weiter. Da kann iobroker aus oder kein MQTT connected sein. Was machst du denn da? Man muss auch via Script anweisen was nach einem connect zu machen ist....die Ticks Unterschiede ermitteln.
-
// Stromzähler 1 on({id: 'mqtt.0.Zählerschrank.Stromzähler1.Total', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("mqtt.0.Zählerschrank.Stromzähler1.Total").val > getState("mqtt.0.Zählerschrank.Stromzähler1.Variable1Total").val) { setStateDelayed("mqtt.0.Zählerschrank.Stromzähler1.Variable2Total"/*Variable2Total*/, (getState("mqtt.0.Zählerschrank.Stromzähler1.Total").val - getState("mqtt.0.Zählerschrank.Stromzähler1.Variable1Total").val), 500, false); setState("0_userdata.0.Zählerschrank.Stromzähler1.Aktueller Monat"/*Aktueller Monat*/, formatDate(new Date(), "OO", "de")); timeout3 = setTimeout(async function () { setState("0_userdata.0.Zählerschrank.Stromzähler1.Variable"/*Variable*/, (getState("0_userdata.0.Zählerschrank.Stromzähler1.Variable").val + getState("mqtt.0.Zählerschrank.Stromzähler1.Variable2Total").val)); timeout4 = setTimeout(async function () { setState("0_userdata.0.Zählerschrank.Stromzähler1.Zähler"/*Zähler*/, (getState("0_userdata.0.Zählerschrank.Stromzähler1.Zählerstand").val + Math.round((getState("0_userdata.0.Zählerschrank.Stromzähler1.Variable").val / 75)*100)/100)); timeout = setTimeout(async function () { setState("mqtt.0.Zählerschrank.Stromzähler1.Variable2Total"/*Variable2Total*/, 0); }, 7000); }, 2000); }, 2000); }
Das ist nur ein Beispiel für dich....da ist auch noch die Nachkommastelle und für dich eine nicht relevante Monatsfuniktion mit drin.
-
@menne Ja, klassischer Inkrementen Zähler, ich hatte zunächst mit der Count Variable gearbeitet und nicht das Inkrement wie Du im ioBroker durch Subtraktion gebildet. Die gehen dir dann flöten sobald Du mal keinen Kontakt hast.
Habe dann angefangen die Inkremente selebr zu Bilden aber theoretisch ist das auch keine Lösung, da der Absolutwert ja regelmäßig vollläuft und wieder bei Null anfängt.LG
Nils -
@jmeister79 , bei mir geht nichts flöten....mein System läuft seit Februar....und schon genügend die SSD ausgelesen, das dauert ca. eine halbe Stunde. Die Ticks werden nach dem Hochfahren wieder säuberlich hinzugefügt. Ich habe das nicht so gern, das ewig auf dem Eprom rumgerödelt wird....
Die 2. Zeitmessung ist in der neusten ESPeasy Version nötig.....und muss via Script angestossen werden, weil sich die Zeit sofort wieder Nullt. Also jetzt ignorieren....sonst gibt es keinen aktuellen Verbrauch mehr.
-
@menne hast du denn mal total im iobroker aufgezeichnet?
Bei mir gibt das n Sägezahn. Man sollte meinen, dass der immer bis zu einem bestimmten Wert läuft und dann auf 0 fällt. Leider tut er das total willkürlich..
Jedes Mal beim Nulldurchgang hätte ich ja Müllwerte, da das Inkrement dann riesig wäre, darum hatte ich mir gedacht dort dann auf das Inkrement auszuweichen aber das ist keine richtige Lösung.
Deshalb möchte ich ja gerne dieses Programm nutzen das @Eisbaeeer geschrieben hat. Das würde die Verbindung als Schwachstelle beseitigen. -
@jmeister79 , ich gehe eher davon aus, das du den Sensor nicht richtig positioniert hast..
Lies dir mal die Wiki über den Pulsecounter (ESPeasy) durch mit der Einstellung High oder Low....
Wenn die nicht 100% stimmt.....gehen dir Ticks verloren. Es geht zwar die LED Aus/Ein aber es findet keine Registrierung statt. Weil der Flag nicht stimmt.....
Ich habe schon Stunden im Keller verbracht, auch mit einer Kamera überwacht. Jetzt habe ich noch eine Abweichung von - 0,3 Kwh in der Woche....heute habe ich nochmal die Sensorposition geändert und zusätzlich mit Klebeband fixiert. Die Klebe Pads sind wohl nicht das ware....
Das Problem besteht aber nur bei dem Zähler, der auch mal gefordert wird. Der andere läuft extrem Stabil bei einer täglichen Last von ca. 41 - 47 Watt....7/24 -
Redet Ihr jetzt über Lösungen per ESPAesy?
Solche habe ich mehrfach implementiert und mit ESPHome (ioBroker Adapter verfügbar) geht das auch, vermutlich auch mit Tasmota. Mit ESPHome kann man noch 20kHz Impulse zählen mit einem ESP8266.
Habe dort was dazu geschrieben. -
@klassisch , hat das auch MQTT Import und eine OLED SSD1306/SH1106 Ansteuerung? Sonst ist das für mich unrelevant.
-
@menne Dieses Display scheint es auch für ESPHome und ESPEasy zu geben. Habe es aber weder da noch dort verwendet. Sowohl mein S0 Zähler als auch meine Wasserzähler kann man nach wie vor auch noch analog ablesen.
-
@klassisch , Merci.
Werde die Tage mein Zähler noch beobachten, dann werde ich mich mal in ESPHome einarbeiten..... -
[OT]
@menne sagte in Ferraris Zähler mit TCRT5000 und esp8266:dann werde ich mich mal in ESPHome einarbeiten.....
Es gibt einen ESPHome Adapter von @Dutchman. Wenn Dein ioBroker auf eine Linux Maschine läuft, instaliert der anscheinend alles automatisch. Ich habe Windows und da mußte ich esphome manuell installieren. Kein Thema, wenn man die passende python Version aktiv hat. Unter Windows gibt es allerdings das "Dashboard" nicht. Geht aber auch so. Konfiguriert wird in einer Sprache namens yaml, die das gleiche kann wie json, nur halt (unnötig) anders ist. Dann wird nur das Erforderliche auf den ESP geflasht. Dadurch erreicht man dann schlankere codes und höhere Arbeitsgeschwindigkeiten. Und zahlt mit einer reduzierten Konfiguriertbarkeit über den ESP Webserver.