Ich habe seid kurzem eine Tesla PowerWall 2 und war natürlich daran interessiert, die Werte in mein SmartHome System zu bekommen.
Da es leider nichts Fertiges gibt, musst ich also wieder mit einem Linux Server (oder Raspberry Pi) arbeiten wie ich es schon ein paar mal getan habe -> https://zipabox.de/netatmo-liefert-werte-zur-zipabox/ oder https://zipabox.de/amazon-echo-mit-der-zipato-api/.
Inzwischen nutze ich aber keinen Raspberry Pi mehr, sondern einen virtuellen Server auf meiner Synology Disk Station….dass ist stromsparender und sicherer durch Backups, die erstellt werden können.
Die PowerWall liefert folgende Werte:
– Hausverbrauch
– Stromnetz
– Solar Erzeugung
– Batterienutzung
– Batteriestatus in %
Diese Werte hätte ich gerne im Zipato Universum…dadurch lassen sich später bestimmt noch ein paar schlaue Regeln schreiben.
Auf die Linux Basics werde ich jetzt nicht eingehen, alles was wir brauchen ist das Linux Tool curl und jq. Auf Zipato Seite müssen wir ein virtuelles Meter anlegen.
Das Script um die Werte von der PowerWall abzufragen und hochzuladen seht ihr hier:
#!/bin/bash
# Author: Helmut Esau
# Version 0.1
#Variable Tesla PowerWall 2
IP=(192.168.XXX.XXX)
#Variablen der Zipato Meter
powerwallpercentzipato=’https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXXXXX‘
solarenergyzipato=’https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXXXXX‘
hausverbauchzipato=’https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXXXXX‘
gridzipato=“https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXXXXX‘
powerwallzipato=“https://my.zipato.com/zipato-web/remoting/attribute/set?serial=XXXXXX‘
#Variablen PV Anlage
battery=$(curl -ks https://$IP/api/system_status/soe | jq ‚.percentage‘)
powervalues=$(curl -ks https://$IP/api/meters/aggregates | jq ‚.[] | .instant_power‘)
grid=$( echo $powervalues | cut -d “ “ -f 1 )
powerwall=$( echo $powervalues | cut -d “ “ -f 2 )
house=$(echo $powervalues | cut -d “ “ -f 3 )
solar=$(echo $powervalues | cut -d “ “ -f 4 )
#Zipato Virtual Meter mit Werten füllen
curl -s $powerwallpercentzipato$battery > /dev/null
curl -s $solarenergyzipato$solar > /dev/null
curl -s $hausverbauchzipato$house > /dev/null
curl -s $gridzipato$grid > /dev/null
curl -s $powerwallzipato$powerwall > /dev/null
Das Script wie gewohnt auf eurem Server in eine Datei abspeichern. z.B. powerwallwerte.sh. Den Code einfügen und abspeichern. Danach noch folgenden Befehl ausführen: chmod 777 powerwallwerte.sh
Und damit das ganze automatisch läuft, richtet ihr noch einen CronJob ein:
crontab -e
Dann fügt ihr folgendes ein:
*/1 * * * * /home/helle/Scripte/get_powerwall.sh
In der Weboberfläche sieht das ganze dann so aus
Bei Fragen…fragen 😉