ein python-skript liest aus dem Volkszähler den aktuellen Hausverbrauch an Strom ab. In Abhängigkeit dessen wird ein Hoymiles Mikrowechselrichter in der Leistungsabgabe limitiert. Dazu wird das Projekt openDTU verwendet. Statt Volkszähler kann das alternativ ein USB-Lesekopf für SML-Protokoll, ein Smartmeter von Fronius oder der Shelly3EM sein.
a dashboard example using influxDB and Grafana the used hardware first success python talks to openDTU paho-mqtt used to talk to openDTU nearly no energy needed from grid same period as above shown in Volkszaehler compensated energy for the additional small studio compensated energy for the pellet stove succesfull compensated all energy needed to produce multiple kWh solar thermal energy
Zuerst installiert ihr euch openDTU auf einem esp32 mit dem RF Modul. Danach habe ich einen RaspberryPi genommen, den MQTT-Broker Mosquitto installiert und ihn in openDTU angegeben. Für Python installiert ihr euch den paho-mqtt-client und requests um auf Volkszähler oder andere Geräte zugreifen zu können. Optional installiert ihr den InfluxDBClient um die Daten an eine Influx-Datenbank weiterzugeben und mit Grafana ein Dashboard visualisieren zu können. Das Python-Skript ruft ihr dann in der Crontab jede Minute auf.
Im python-Skript tragt ihr die Seriennummern des Hoymiles Wechselrichters ein und das Maximum vom Wechselrichter oder vom Modul, je nachdem, was kleiner ist. Passt die URL vom Volkszähler an oder schreibt euch eine eigene Abfrage um an den aktuellen Stromverbrauch zu kommen. Nach dem Eintrag in der Crontab setzt das Python-Skript den Limit des Hoymiles auf den aktuellen Stromverbrauch abzüglich 5 Watt.
- Abfrage aktueller Stromverbrauch
- was liefert das Balkonkraftwerk aktuell AC-seitig ?
- wie war das alte Limit gesetzt ?
- Differenz berechnen Strombezug minus altes Limit
- neues Limit setzen auf altes Limit plus Delta minus 5, es sei denn, der Hausverbrauch ist höher als maximum_wr, dann limit auf Maximum setzen.
- Ausgabe aller Werte in eine Influx-Datenbank Ende des Skripts.
for all your questions use [email protected]
may be i try to have more action than 1 per minute
this was my first experience with mqtt and python. I tried a lot and it would be great if someone could improve that part.
based on https://github.com/tbnobody/OpenDTU which is the wonderful result from a community
MIT Lizenz.
ongoing