Lösung: Heizstab über ESP32 mit ESPEasy und Kemo M240 #15303
skymaster64
started this conversation in
Lösungen
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hallo
Ich möchte hier mal meine Lösung für die Ansteuerung eines Heizstab über einenen ESP32 mit ESPEasy vorstellen.
Im Prinzip funktioniert es jetzt.
Es war allerdings eine Suche von vielen Stunden nötig um sich die speziellen Config-Detail zusammenzusuchen.
Leider sind in der evcc-Doku viele Stellen nur Bruchstückhaft beschrieben. Von funktionsfähigen Bruchstücken oder gar lauffähigen Beispielen ganz zu schweigen.
So bleibt nur die stundenlange Suche hier in den Diskussionen, wo auch vielen Beispiele nur unzureichend übernommen werden konnten, Kommentare teilweise falsch oder irreführend sind (und so falsch von anderen übernommen werden)
Auf Grund der (erfreulichen!) Weiterentwicklung von evcc sind nicht wenige Parameter aus älteren Beiträgen inzwischen veraltet, erzeugen Warnungen oder verhindern gar den Start.
Eine gepflegte Rubrik mit funktionsfähigen Beispielen würde vielen Usern sicher helfen.
Nicht jeder hat einen ausreichenden IT-Hintergrund (ich habe über 40 Jahre IT- und Elektronik-Erfahrung).
Nun genug des Meckerns, deshalb auch die Darstellung.
Meine restlichen Fragen am Ende.
Aufgabe/Zielstellung:
Komponennten:
Autonome Regelung per ESPeasy-Script, Daten des Überschuss kommen per MQTT vom Volkszähler
Evcc soll wie gesagt die Freigabe (über ein entsprechendes Freigabe-Flag) setzten.
Hier meine evcc.yaml.
Fragen:
Bei der Tasmota-Steckdose funktioniert es problemlos. Sobald Überschuss vorhanden ist geht sie auf EIN und damit auf „warten auf Ladung“.
Ergänzung: Offenbar wird er am nächsten Tage neu gestartet.
Speziell die Übergabe/Abfrage vom/zum ESP war sehr schwierig zu finden, da praktisch fast überhaupt nicht dokumentiert. Solche Sachen wie {.enable} oder ${maxcurrent} sind nicht dokumentiert und konnte ich nur durch Zufall in einem anderen Beitrag finden. Welche weiteren Strings existieren ... keine Anhnung.
Den ersten Versuch rein mit MQTT musste ich aufgeben weil ich nicht rausgefunden habe wie ich eine Umwandung von true/false in1/0 wie in der http-uri …,{{if .enable}}1{{else}}0{{end}} machen kann, bzw. so eine Umwandlung von "Strom >0" in "C".
In vielen Beispielen steht im Kommentar „# set charger enabled state (true/false or 0/1)“, was definitiv falsch ist, es kommt eben kein 0/1.
Auch die Dekodierung des json ist eine Sache für sich. Es gibt zwar den Link auf die Hilfsseite, aber ohne das dazugehörige json hilft der Beispielausdruck nicht weiter.
Bei mir kommt auf diese Abfrage im ESPEasy:
http://192.168.xx.yy/json?view=sensorupdate&tasknr=12
diese json-Antwort:
Das muss man in https://jqplay.org/ unter „Output“ einfügen und dann kann man unter „Query“ einen Ausdruck mit trial&error suchen, der das gewünschte Feld selektiert.
Für die „Speicher_Soll“-Temperatur z.B.
„.TaskValues[2] | select(.Value ) | .Value“
(Zähler fängt bei 0 an)Zum ESPEasy ist nicht so viel zu sagen, da dass ein extra Bauprojekt ist und nur von jemanden nachgebaut werden kann der über entsprechende Fähigkieten incl. Netz-Strom verfügt.
Das Teil besteht aus einem ESP32-NodeMCU-Board, Netzteil, LCD-Display, dem erwähnten Kemo M240 incl. 2 Netzfiltern, Sicherungen usw.
Das Schöne am ESPEasy ist die Konfiguration diverser Sensoren, Aktoren usw. per Webinterface. Außerdem ist eine Skriptsprache (Rules) enthalten, die auf diverse Events reagiert und Aktionen ausführen kann.
So sieht das z.B. für die autonome Regelung aus:
Das funktioniert rechts gut und sieht dann im Verbrauch so aus:
![grafik](https://private-user-images.githubusercontent.com/165052278/356256243-ac1c20db-8c7b-4f93-bfd6-89b4a18e366c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDQ1NzksIm5iZiI6MTczOTM0NDI3OSwicGF0aCI6Ii8xNjUwNTIyNzgvMzU2MjU2MjQzLWFjMWMyMGRiLThjN2ItNGY5My1iZmQ2LTg5YjRhMThlMzY2Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNzExMTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lYTMyY2MzNGM0ZjMwMTE5ZTgxMTVkM2Y2Y2VkMTRhYzczZjZkOTMyNGQzNGNlMjFlYTEyZTM3ZWEwMzYwNjE2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YpIUcYX_E_EBJLqHBGFMzDK9IfNdQLoeTry-W8XDdoU)
Dass die "Warmwasserheizung" so zackig aussieht liegt daran, dass ich das mit einem S0-Zähler für die Darstellung messe.
Man sieht aber auch, das er gut den verfügbaren Überschuss folgt (ich lassen absichtlich eine Mindesteinspeisung weil der Fronius-Gen24 nicht der schnellste in der Regelung ist. Um 12:15 Uhr ist die Zieltemperatur erreicht, da kommen also keine Impulse am S0 mehr.
Für das ESPEasy gibt es auch noch ein minimales Bedienfrontend mit Tasten und Schiebereglern (fetch.html.gz)
![grafik](https://private-user-images.githubusercontent.com/165052278/356258603-d23383fe-8a55-48ed-af94-e8e654478fb7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDQ1NzksIm5iZiI6MTczOTM0NDI3OSwicGF0aCI6Ii8xNjUwNTIyNzgvMzU2MjU4NjAzLWQyMzM4M2ZlLThhNTUtNDhlZC1hZjk0LWU4ZTY1NDQ3OGZiNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMlQwNzExMTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lM2Y2NmE5ODNjYmQ3ODMwZmJjY2YxZjE1ODRlYmYyOTdlYTVmZWQ4MDhkMTkxMjkyZjBmNjg3ZDZkODg1YjhhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.rcTj_Xi0eG7FpCCJnTEClL9OueDPXbq-LhJwty93uXc)
Der ESP32 macht also noch eine Steuerung der Umwälzpumpe und hat weitere Sensoren.
Beta Was this translation helpful? Give feedback.
All reactions