Einleitung
Das Arbeitszimmer im Keller ist in den kühlen Monaten immer etwas zu kalt, daher wird hier mit einem Heizstrahler nachgeholfen, um auf die gewünschte Temperatur zu kommen.
Das Arbeitszimmer ist ab ~ 15:30 belebt, daher wollen wir versuchen eine smarte Steckdose in Abhängigkeit unserer PV-Anlage anzusteuern.
Damit würden wir den überschüssig erzeugten Strom für unsere Zwecke sinnvoll nutzen.
Wechselrichter API aktivieren
Bei unserem Wechselrichter aktivieren wir die API, damit können wir direkt die Werte der PV-Anlage abfragen.
Mit dem Befehl curl können wir uns die aktuellen Daten abfragen:
curl -s http://192.168.178.55/solar_api/v1/GetMeterRealtimeData.cgi
Beispiel:
{ "Body" : { "Data" : { "0" : { "Current_AC_Phase_1" : -3.8660000000000001, "Current_AC_Phase_2" : -2.1379999999999999, "Current_AC_Phase_3" : -4.2060000000000004, "Current_AC_Sum" : -10.210000000000001, "Details" : { "Manufacturer" : "Fronius", "Model" : "Smart Meter TS 65A-3", "Serial" : "xxxxxxxx" }, "Enable" : 1, "EnergyReactive_VArAC_Sum_Consumed" : 188611.0, "EnergyReactive_VArAC_Sum_Produced" : 530230.0, "EnergyReal_WAC_Minus_Absolute" : 3700203.0, "EnergyReal_WAC_Plus_Absolute" : 1199078.0, "EnergyReal_WAC_Sum_Consumed" : 1199078.0, "EnergyReal_WAC_Sum_Produced" : 3700203.0, "Frequency_Phase_Average" : 50.0, "Meter_Location_Current" : 0.0, "PowerApparent_S_Phase_1" : 902.5, "PowerApparent_S_Phase_2" : 478.80000000000001, "PowerApparent_S_Phase_3" : 998.70000000000005, "PowerApparent_S_Sum" : 2380.1999999999998, "PowerFactor_Phase_1" : -0.98799999999999999, "PowerFactor_Phase_2" : 0.91900000000000004, "PowerFactor_Phase_3" : 0.999, "PowerFactor_Sum" : 0.99299999999999999, "PowerReactive_Q_Phase_1" : -81.5, "PowerReactive_Q_Phase_2" : 108.90000000000001, "PowerReactive_Q_Phase_3" : 1.7, "PowerReactive_Q_Sum" : 29.100000000000001, "PowerReal_P_Phase_1" : -898.79999999999995, "PowerReal_P_Phase_2" : -466.30000000000001, "PowerReal_P_Phase_3" : -998.70000000000005, "PowerReal_P_Sum" : -2363.9000000000001, "TimeStamp" : 1730285906, "Visible" : 1, "Voltage_AC_PhaseToPhase_12" : 411.0, "Voltage_AC_PhaseToPhase_23" : 406.69999999999999, "Voltage_AC_PhaseToPhase_31" : 411.5, "Voltage_AC_Phase_1" : 235.30000000000001, "Voltage_AC_Phase_2" : 237.0, "Voltage_AC_Phase_3" : 237.5 }}}
Der für uns interessante Wert ist PowerReal_P_sum. Dieser zeigt uns die erzeugte/bezogene Leistung in Wh an:
- Bei negativen Werten speisen wir ins Netz ein
- Bei positiven Werten beziehen wir vom Netz
Somit können wir damit Stopp-/Startwerte festlegen
Welche smarte Steckdose wollen wir?
Für unseren Zweck benötigen wir eigentlich nur eine Steckdose, die wir über unser WLAN per Http Ein-/Ausschalten können.
Eine App für die Steuerung brauchen wir nicht, ebenso wenig eine Steuerung außerhalb unseres Heimnetzes.
Daher fiel die Wahl auf eine Steckdose, die bereits die Open-Source-Software Tasmota installiert hat.
- Diese bietet all unsere Erfordernisse und sogar Timer Programme
- Sollte nicht genügend Strom für das automatische Einschalten erzeugt werden, können wir die Steckdose trotzdem bequem über die Web GUI oder per Timer ein-/ausschalten.
Tasmota Steckdose einstecken und einrichten
Ist die smarte Steckdose eingesteckt, können wir uns mit dem WLAN der Tasmota Steckdose verbinden:
Wir bekommen IP 192.168.4.2 per dhcp zugewiesen:
Im Browser verbinden wir uns auf die IP 192.168.4.1, dann wählen wir unser WLAN aus, mit dem wir die Steckdose verbinden wollen:
Mit Save bestätigen wir die Eingaben und wenn alles funktioniert, können wir die Steckdose unter der neuen IP ansurfen.
Die Oberfläche zeigt uns die wichtigsten Informationen und auch weiterführende Menüs:
Als erstes führen wir ein Firmware Upgrade durch – Version 13.0.0 ist installiert, aktuell gibt es bereits Version 13.4.0.
Verfügbare Versionen können wir uns im github anschauen:
https://github.com/arendst/Tasmota/releases
Sollte eine ältere Version installiert sein, können wir uns den Upgrade Flow anschauen, ob wir hier Zwischenschritte machen müssen:
https://tasmota.github.io/docs/Upgrading/#gz-binaries
Bei uns ist das allerdings nicht der Fall, wir können einfach ein OTA-Update machen:
Tasmota Steckdose kalibrieren
Am Besten mit einem Energiekostenmessgerät, wo wir Volt, Ampere und Watt ablesen können.
Als Verbraucher eignet sich unser Heizgerät, besser keinen PC oder ähnliches.
Genaueres können wir in der guten Doku nachlesen:
https://tasmota.github.io/docs/Power-Monitoring-Calibration/#calibration-procedure
Zum Kalibrieren starten wir im Hauptmenü die Console, wo wir jetzt unsere abgelesenen Werte eingeben:
- Spannung setzen mit VoltageSet [spannung]
Bei uns: 227 Volt, also “VoltageSet 227” und mit Enter bestätigen.
- Stromstärke setzen mit CurrentSet [milliampere]
Bei uns: 5,690A, also „CurrentSet 5690“ und mit Enter bestätigen.
- Leistung setzen mit PowerSet [power]
Bei uns: 1292, also „PowerSet 1292“ und mit Enter bestätigen.
Unsere Steckdose ist somit kalibriert und sollte verlässliche Werte liefern.
Tasmota Zeit einstellen
Überprüfen können wir die Zeit in der Console mit dem Befehl time.
NTPServer einrichten
Die aktuellen Zeitserver können wir uns mit dem Befehl ntpserver anzeigen lassen.
Ändern können wir die verwendeten Zeitserver mit den Befehlen:
- NtpServer1 at.pool.ntp.org, mit Enter bestätigen.
- NtpServer2 2.at.pool.ntp.org, mit Enter bestätigen.
- NtpServer3 3.at.pool.ntp.org, mit Enter bestätigen.
Mit dem Befehl time 0 aktivieren wir das Synchronisieren vom ntpserver.
Timezone setzen
Die Zeitzone setzen wir, falls wir z.B. irgendwann mit Timern arbeiten wollen.
Eine Übersicht über die Zeitzonen/Befehle gibt es unter:
https://tasmota.github.io/docs/Timezone-Table/
Für uns sind die Befehle von „Europe/Vienna“ relevant (wegen Sommer-/Winterzeit):
Europe/Vienna | Backlog0 Timezone 99; TimeStd 0,0,10,1,3,60; TimeDst 0,0,3,1,2,120 |
Die Befehle kopieren wir, fügen sie in der Console ein und bestätigen mit Enter.
Shell Skripte
Wir werden uns ein Skript basteln das folgendes können soll:
- Daten vom Wechselrichter abfragen
- Wiederholtes Abfragen vom Wechselrichter falls nicht erreichbar
- Tasmota Steckdose ein-/ausschalten, je nach Start-/Stoppwerten, die wir definiert haben
- Wiederholtes Abfragen/Setzen des Steckdosenstatus falls nicht erreichbar
- Loggen der Tätigkeiten
- Zusätzlich werden wir noch ein eigenes Skript für das finale Ausschalten machen
Und so sehen unsere Skripte aus, die Start-/Stoppwerte werden wir noch ergänzen, wenn wir mehr Erfahrungswerte haben.
inverter_tasmota_arbeitszimmer_off.sh
inverter_tasmota_arbeitszimmer.sh
Cronjobs für unsere Skripts
Unsere Skripts lassen wir von September bis April laufen:
- ab 14h alle 5 Minuten das Skript zum Starten/Stoppen ausführen
*/5 14 * 9-12,1-4 * /home/pi/inverter_tasmota_arbeitszimmer.sh > /dev/null 2>&1 - um 15:00 und 15:05 das finale Ausschalten mit dem Skript
0,5 15 * 9-12,1-4 * /home/pi/inverter_tasmota_arbeitszimmer_off.sh > /dev/null 2>&1
Fazit
Wir haben mit einfachen Mitteln unsere smarte Steckdose noch smarter gemacht, können unseren Heizlüfter jetzt automatisch ein-/ausschalten lassen.
Dadurch, dass wir Logeinträge schreiben, können wir kontrollieren, was wann wie passiert, und durch unsere Loop Werte eventuelle Netzwerkprobleme mitprotokollieren.
Zudem können wir so unsere Start-/Stoppwerte kontrollieren, um diese noch anzupassen sollte es in den Wintermonaten notwendig sein.
Log Beispiele:
Timestamp;IP Inverter;PowerReal_P_Sum;IP Tasmota;Tasmota Power State;Start Value;Stop Value;Message;Loop T;Loop I 2024-10-30 14:00;192.168.178.55;-1800;192.168.178.61;OFF;-1600;50;Tasmota, turn it ON;0;0 2024-10-30 14:05;192.168.178.55;-492;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:10;192.168.178.55;-163;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:15;192.168.178.55;-105;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:20;192.168.178.55;-117;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:25;192.168.178.55;-10;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:30;192.168.178.55;-0;192.168.178.61;ON;-1600;50;Tasmota, don't change Power State (LEAVE);0;0 2024-10-30 14:35;192.168.178.55;79;192.168.178.61;ON;-1600;50;Tasmota, turn it OFF;0;0