Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:solar_inverters:deye

Dies ist eine alte Version des Dokuments!


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.

Diese Wechselrichter haben eine bekannte Sicherheitslücke in der besagten WLAN-Implementierung.
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

  1. über die Cloud-API (Solarman APP) wieder zurück an Volkszähler oder Middle-in-the-Man Datenabgriff
  2. 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
Danach z.B die Internetverbindung des Wechselrichters am Router auf gesperrt setzen.
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
  1. Manuelle erstellen
     nano auslesen.sh 
  2. alternativ git clone
    git clone https://github.com/RaptorSDS/VZ_deye_script.git 
  • darin folgenden Inhalt hinzufügen/editieren
bash | auslesen.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
set -e
 
 
host_pv="192.168.xxxx"
user="admin"
password="admin"
UUID1="768xxxx"
UUID2="d69xxxx"
host_db="192.168.xxx"
TOTAL=""
TOTAL_NUM=""
ACTUAL=""
ACTUAL_NUM=""
 
 
#request value 
ACTUAL=$(/usr/local/bin/mi600 $host_pv $user $password webdata_now_p)
#remove Zero in Front
ACTUAL_NUM=$(($ACTUAL))
 
 
#send database
wget -O - -q "http://"$host_db"/middleware/data/"$UUID1".json?operation=add&value="$ACTUAL_NUM""
 
 
 
#request value TOTAL
TOTAL=$(/usr/local/bin/mi600 $host_pv $user $password webdata_total_e)
#Remove end SPACE-Char
TOTAL_NUM=$(echo $TOTAL | sed 's/[[:space:]]*$//')
 
#check if non ZERO
if [ $TOTAL_NUM != "0.0" ]; then
#Send to DB
  wget -O - -q "http://"$host_db"/middleware/data/"$UUID2".json?operation=add&value="$TOTAL_NUM""
fi
 
 
 
 
#DAY=$(/usr/local/bin/mi600 $host_pv $user $password webdata_today_e)
 
#debug for console
#echo 'Today:'$DAY
#echo 'ACTUAL:'$ACTUAL_NUM
#echo 'TOTAL:'$TOTAL_NUM
Bitte IP Adressen, Wechselrichter Zugangsdaten, UUID an deine Gegebenheiten anpassen. Für den Kanal Leistung kann Auflösung „1“ genommen werden

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.

hardware/channels/solar_inverters/deye.1685276517.txt.gz · Zuletzt geändert: 2023/05/28 14:21 von raptorsds