Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Deye Wechselrichter
Einleitung
In diesem Artikel geht es um Abfrage und Import von Daten der Wechselrichterreihe SUN300,SUN600,… von Deye und deren Clone (bsp. Bosswerk MI-300 MI600).
Diese haben einen WLAN Controller integriert sowie eine Weboberfläche.
Wer das WLAN nutzt sollte dringend die Firmware auf eine sicheren Stand updaten!
heise.de: Sicherheitslücke in Mikrowechselrichtern von Deye
zinsgreen.de: So aktualisieren Sie Ihren DEYE Mikrowechselrichter
Vielen Dank an DR_NI auf github für sein Abfragescript sowie die Hilfen und Anpassungen.
Lösungen
Zur Einbindung gibt es 2 Möglichkeiten
- über die Cloud-API (Solarman APP) wieder zurück an Volkszähler oder Middle-in-the-Man Datenabgriff
- Abfrage der Daten der Weboberfläche ( Vorteil: kein Internetverbindung nötig ; Nachteil: langsame Aktualsierungsrate ⇒ 2min)
Die zweite Lösung wird im Folgenden beschrieben.
Schritt für Schritt
- Wechselrichter über die Weboberfläche ins Netzwerk einbinden
AP = AP_XXXXXX PW = 12345678 admin/admin
Zusätzlich sollte, wenn möglich, eine feste IP für den Wechselrichter festgelegt werden.
- Abfragescript installieren
git clone https://github.com/dr-ni/mi600.git
- Verzeichnis wechseln
cd mi600
- Installation starten
sudo make install
- Test einer Abfrage (IP-Adresse und Zugangsdaten admin/admin an seinen Wechselrichter anpassen)
mi600 [IP-Wechselrichter] admin admin webdata_today_e
- Sendescript Datei erstellen
nano auslesen.sh
- darin folgenden Inhalt hinzufügen
- bash | auslesen.sh
#!/bin/bash SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # set -e beendet das Script wenn WR nicht erreichbar ist set -e #Dieser Bereich zeigt die Logindaten host_pv="192.xxx.xxx.xxx" user="admin" password="admin" UUID1="7680efc0-xxx-xxxx-xxxx-xxxxxxx" #UUID2="" host_db="192.xxx.xxx.xxx" ACTUAL="" ACTUAL_NUM="" #Dieser Bereich startet die Abfrage #TOTAL=$(/usr/local/bin/mi600 $host_pv $user $password webdata_total_e) #DAY=$(/usr/local/bin/mi600 $host_pv $user $password webdata_today_e) ACTUAL=$(/usr/local/bin/mi600 $host_pv $user $password webdata_now_p) #Entfernung von Leerzeichen ACTUAL_NUM=$(($ACTUAL)) #Senden der Daten An Datenbank wget -O - -q "http://"$host_db"/middleware/data/"$UUID1".json?operation=add&value="$ACTUAL_NUM"" #wget -O - -q "http://"$host_db"/middleware/data/"$UUID2".json?operation=add&value"$DAY"" #Anzeige der Werte in Konsole für Debug #echo 'Today:'$DAY #echo 'ACTUAL:'$ACTUAL_NUM
Dieses Script sendet nur die aktuelle Leistung an die Middleware, bereits vorbereitet ist alternativ/zusätzlich der Tageszählerstand.
Zeilen mit „#“ sind auskommentiert und können bei Bedarf genutzt werden für Debug oder um einen zweiten Kanal hinzuzufügen.
- Datei Speichern und ausführbar machen
chmod +x auslesen.sh
- Datei zu CRON hinzufügen (hier als Beispiel Raspberry Pi mit 5 minuten Intervall)
*/5 * * * * /bin/bash /home/pi/auslesen.sh
Die Weboberfläche hat eine sehr langsame Aktualisierungsrate daher sollte der Cronjob nur alle 3 oder 5 Minuten laufen.