hardware:channels:solar_inverters:deye
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| hardware:channels:solar_inverters:deye [2023/02/12 16:14] – angelegt raptorsds | hardware:channels:solar_inverters:deye [2023/07/30 11:35] (aktuell) – duplicates erhöht raptorsds | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| + | ==== Einleitung | ||
| + | In diesem Artikel geht es um Abfrage und Import von Daten der Wechselrichterreihe SUN300, | ||
| - | In diesem Bereich geht es um die Einbindung der Wechselrichterreihe SUN300, | + | Diese haben einen WLAN Controller integriert sowie eine Weboberfläche. |
| - | Diese haben einen WLAN Controller intergriert sowie eine Weboberfläche | + | <note important> |
| + | Wer das WLAN nutzt sollte dringend die Firmware auf eine sicheren Stand updaten!\\ | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | <note tip>Die Sicherheitslücke sind ab der version 1.53 geschlossen diese wird auch automatisch Verteilt\\ | ||
| + | Die Neuste Version ist 1.57 in dieser soll der "no Web-Interface" | ||
| - | ====== Einbindung ====== | + | Vielen Dank an [[https:// |
| + | ==== Lösungen ==== | ||
| Zur Einbindung gibt es 2 Möglichkeiten | Zur Einbindung gibt es 2 Möglichkeiten | ||
| - | 1. Einbindung | + | - über die Cloud-API (Solarman APP) wieder zurück an Volkszähler |
| + | - Abfrage der Daten der Weboberfläche ( Vorteil: kein Internetverbindung nötig ; Nachteil: langsame Aktualsierungsrate => 2min) | ||
| - | //nicht Thema dieser Seite// | + | Die zweite Lösung wird im Folgenden beschrieben. |
| - | 2. Einbindung der Daten der Weboberfläche ( Vorteil: kein Internetverbindung nötig ; Nachteil: langsame Aktualsierungsrate => 2min) | ||
| + | ==== Schritt für Schritt ==== | ||
| - | ===== START ===== | + | ==== Vorbereitung |
| + | |||
| + | * Wechselrichter über die Weboberfläche ins Netzwerk einbinden | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | <note tip> | ||
| + | Zusätzlich sollte, wenn möglich, eine feste IP für den Wechselrichter festgelegt werden.</ | ||
| + | |||
| + | * Abfragescript installieren | ||
| - | 1. Wechselrichter über die Weboberfläache ins Netzwerk einbinden , danach z.B die Internetverbindung über die Fritzbox auf gesperrt setzen zusätzlich sollte wenn möglich z.B eine feste IP für den Wechselrichter festgelegt werden | ||
| - | |||
| - | 2. Abfragescript von Github laden | ||
| git clone https:// | git clone https:// | ||
| - | Verzeichniss wechsel | + | |
| + | * Verzeichnis wechseln | ||
| cd mi600 | cd mi600 | ||
| - | Installation starten | + | |
| - | make install | + | * Installation starten |
| + | |||
| + | sudo make install | ||
| + | |||
| + | * Test einer Abfrage (IP-Adresse und Zugangsdaten admin/admin an seinen Wechselrichter anpassen) | ||
| + | |||
| + | mi600 IP-Wechselrichter Nutzer Passwort webdata_today_e | ||
| + | |||
| + | |||
| + | |||
| + | ==== Möglichkeit 1 CRON ==== | ||
| + | |||
| + | * Sendescript Datei erstellen | ||
| + | - Manuelle erstellen < | ||
| + | - alternativ git clone < | ||
| - | + | * darin folgenden Inhalt hinzufügen/ | |
| + | |||
| + | <code base bash | auslesen.sh> | ||
| + | # | ||
| + | PATH=/ | ||
| + | |||
| + | set -e | ||
| + | |||
| + | |||
| + | |||
| + | host_pv=" | ||
| + | user=" | ||
| + | password=" | ||
| + | UUID1=" | ||
| + | UUID2=" | ||
| + | UUID3="" | ||
| + | host_db=" | ||
| + | TOTAL="" | ||
| + | TOTAL_NUM="" | ||
| + | DAY="" | ||
| + | DAY_NUM="" | ||
| + | ACTUAL="" | ||
| + | ACTUAL_NUM="" | ||
| + | |||
| + | |||
| + | #request value | ||
| + | ACTUAL=$(/ | ||
| + | #remove Zero in Front | ||
| + | ACTUAL_NUM=$(($ACTUAL)) | ||
| + | |||
| + | |||
| + | #send database | ||
| + | wget -O - -q " | ||
| + | |||
| + | |||
| + | |||
| + | #request value TOTAL | ||
| + | TOTAL=$(/ | ||
| + | |||
| + | #Remove end SPACE-Char | ||
| + | TOTAL_NUM=$(echo $TOTAL | sed ' | ||
| + | |||
| + | #check if non ZERO | ||
| + | if [ $TOTAL_NUM != " | ||
| + | #Send to DB | ||
| + | wget -O - -q " | ||
| + | fi | ||
| + | |||
| + | |||
| + | #DAY ENERGY | ||
| + | # | ||
| + | # | ||
| + | #wget -O - -q " | ||
| + | |||
| + | #debug for console | ||
| + | #echo ' | ||
| + | #echo ' | ||
| + | #echo ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | Für den Kanal Leistung kann Auflösung " | ||
| + | |||
| + | Dieses Script sendet nur die aktuelle Leistung an die Middleware, bereits vorbereitet ist alternativ/ | ||
| + | Zeilen mit "#" | ||
| + | |||
| + | * Datei Speichern und ausführbar machen | ||
| + | |||
| + | chmod +x auslesen.sh | ||
| + | |||
| + | * Datei zu CRON hinzufügen (hier als Beispiel Raspberry Pi mit 5 minuten Intervall) | ||
| + | |||
| + | < | ||
| + | |||
| + | Die Weboberfläche hat eine sehr langsame Aktualisierungsrate daher sollte der Cronjob nur alle 3 oder 5 Minuten laufen. | ||
| + | |||
| + | |||
| + | ==== Möglichkeit 2 VZlogger mit Exec ==== | ||
| + | |||
| + | Nachteile Vzlogger darf nicht als root laufen --> umstellung vzlogger siehe [[software: | ||
| + | |||
| + | |||
| + | * Sendescript Datei erstellen | ||
| + | - Manuelle erstellen < | ||
| + | - alternativ git clone < | ||
| + | |||
| + | |||
| + | |||
| + | * darin folgenden Inhalt hinzufügen/ | ||
| + | |||
| + | <code base bash | deye_read_exec.sh.sh> | ||
| + | |||
| + | # | ||
| + | PATH=/ | ||
| + | |||
| + | #set -e / set -u stop scripts if something is wrong | ||
| + | set -e | ||
| + | set -u | ||
| + | |||
| + | # Script: deye_read_exec.sh | ||
| + | # Author: Tobias Baumann aka RaptorSDS | ||
| + | # License: MIT | ||
| + | # with help of OpenAI GPT-3.5 and VZlogger Group | ||
| + | # idee by script for KOSTAL_Pico JSON VZlogger exec | ||
| + | |||
| + | # Function to display script usage | ||
| + | usage() { | ||
| + | echo " | ||
| + | exit 1 | ||
| + | } | ||
| + | |||
| + | # Validate required arguments | ||
| + | if [ " | ||
| + | usage | ||
| + | fi | ||
| + | |||
| + | # Extract hostname | ||
| + | HOSTNAME=" | ||
| + | shift | ||
| + | |||
| + | # Extract readings | ||
| + | READINGS=" | ||
| + | |||
| + | user=" | ||
| + | password=" | ||
| + | |||
| + | # Request values based on input readings | ||
| + | for READING in $READINGS; do | ||
| + | if [ " | ||
| + | ACTUAL=$(/ | ||
| + | #Remove end SPACE-Char | ||
| + | ACTUAL_NUM=$(($ACTUAL)) | ||
| + | OUTPUT=" | ||
| + | printf "%s = %s\n" " | ||
| + | elif [ " | ||
| + | TOTAL=$(/ | ||
| + | ##Remove end SPACE-Char | ||
| + | TOTAL_NUM=$(echo " | ||
| + | OUTPUT=" | ||
| + | if [ $TOTAL_NUM == " | ||
| + | printf "%s = %s\n" " | ||
| + | else | ||
| + | printf "%s = %s\n" " | ||
| + | fi | ||
| + | elif [ " | ||
| + | DAY=$(/ | ||
| + | ##Remove end SPACE-Char | ||
| + | DAY_NUM=$(echo " | ||
| + | OUTPUT=" | ||
| + | printf "%s = %s\n" " | ||
| + | else | ||
| + | echo " | ||
| + | fi | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Bitte Zugangsdaten, | ||
| + | </ | ||
| + | < | ||
| + | Der Script hat folgende Config | ||
| + | </ | ||
| + | |||
| + | |||
| + | * speichern und ausführbar machen | ||
| + | < | ||
| + | |||
| + | |||
| + | * man kann nun zb nach /etc/deye/ kopiernen oder ander gut erkennbare Orte | ||
| + | |||
| + | |||
| + | * Kanal Erstellen im Fronend | ||
| + | |||
| + | |||
| + | * vzlogger.conf editieren oder erstellen mit folgendem Inhalt | ||
| + | |||
| + | |||
| + | < | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | <note important> | ||
| + | * vzlogger neu starten | ||
hardware/channels/solar_inverters/deye.1676214863.txt.gz · Zuletzt geändert: von raptorsds