Code Beschreibung
Sjirka83 opened this issue · 4 comments
Hallo Lars,
tolles Projekt, dass endlich mal die analoge Schnittstelle des Sensors nutzt und da drauf die Impulse des Stromzählers ausließt.
Mit der digitalen Ausgabe hatte ich genau die gleichen Probleme, dass der Schwellwert einfach nicht zu finden war.
Deine Lösung ist wohl der perfekte Weg, wenn man den alten Zähler gerne auslesen möchte. Super Umsetzung!!!
Da ich aber absolut neu in Sachen Arduino und der Microcontrollertechnik bin, habe ich etwas Schwierigkeiten den Code für meine Bedürfnisse anzupassen bzw. alle Abschnitte korrekt zu verstehen.
- Ich kann den Gesamtverbrauch mit http:///setCounter?set=18231.1 nicht anpassen. Dieser schlägt immer fehl. Muss ich hier noch etwas anderes beachten?
- Kann ich per http Befehl den Schwellwert anpassen, so dass ich diesen noch etwas "nachjustieren" kann?
- Wie oft wird der EEPROM mit dem aktuellen Wert aktualisiert? Wenn ich das System neustarte, wird der EEPROM beschrieben, doch passiert es auch automatisch zwischendurch?!
- Kannst du den Code auch ohne Anbindung von MQTT etc. bereitstellen? Die Ausgabe aller Werte einfach nur als JSON erweitern, so dass diese per http abgefragt werden können? Ich habe zwar die Ausgabe bereits realisiert, doch im "Code" einfach nach meinem "Wissen" hinzugefügt. Das geht bestimmt noch besser. :-)
Auch wenn das Projekt schon etwas her ist, würde ich mich sehr freuen, wenn du mir eine Rückmeldung zu den Fragen geben kannst.
Viele Grüße
Ich muss leider zugeben, dass ich schon eine ganze Weile eine neuere Version bei mir (als Sensor für Home Assistant) in Betrieb habe, es aber bisher irgendwie versäumt hatte, diese auch hier mal (dokumentiert) hochzuladen.
zu 1) Die Doku zu diesem Befehl im Code war fehlerhaft, hab's nun ins README aufgenommen.
zu 2) Ich habe einen passenden Befehl (setThreshold) implementiert (siehe README).
zu 3) Counter, CounterOffset und ImpulseThreshold werden alle 60 Min. gespeichert (früher 120 Min.).
zu 4) Ist nun beides auch möglich: ENABLE_MQTT auskommentieren bzw. /readings für den RESTful Aufruf nutzen.
Bitte testen. Über ein Feedback würde ich mich freuen...
Grüße
Lars
Hallo,
vielen vielen Dank für die ausführlichen Infos. Ich werde testen und berichten. :-)
Ich habe den Zähler jetzt ein paar Tage bereits laufen lassen. Der Zähler läuft einwandfrei und nach ein wenig justieren, wirklich sehr genau.... BIS der Durchlauferhitzer anspringt. Dann liegen 21 KW Drehstrom an und die Scheibe rennt! Leider mit den jetzigen Einstellungen zu schnell um die rote Makierung noch zu erkennen. Wenn ich den Code richtig verstehe, muss der Pegel für die Erkennung des silbernen Bereiches erst eine gewisse Zeit gehalten werden, bis der rote Bereich "neu" gezählt werden darf?!? Oder würde es schon reichen die "Debouncezeit" niedriger zu stellen. Wie könnte das denn erfolgen?!
Im ESPEASY habe ich den Sensor einmal als "Switch" konfiguriert um zu schauen, ob ich die sehr schnellen Impulse zählen könnte. So wird nur der Zustand 1 und 0 im Wechsel gezählt, was dazu führt das der Zähler sehr genau, unabhängig der Zeit für eine Runde und sehr schnell reagiert. Problem ist hier nur wieder die Einstellung des Sensors dann direkt an der Scheibe selbst. Aufgrund des Digitalen Ausgangs, kann nur der Potentiometer zur Einstellungen genommen werden, doch dieser gleicht eher dem Glaskugellesen.
Gerne würde ich an der anlogen Variante noch ein wenig "rumfeilen", da sie an sich wunderbar läuft und für alle weiteren Auswertungen sehr komfortabel ist. Würde aus deiner Erfahrung die Einstellung der Debouncetime hier noch etwas bringen um eine ganz langsam drehende Scheibe, so wie die sehr schnelle Bewegung zählen zu können?
Viele Grüße
So schnell dreht sich bei uns die Schreibe glücklicherweise nie.
Und, hat die Anpassung von IMPULSE_DEBOUNCE_SEC bzw. READINGS_INTERVAL_MS den gewünschten Erfolg gebracht?