Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:solar_inverters:growatt

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:channels:solar_inverters:growatt [2023/05/27 17:58] – angelegt raptorsdshardware:channels:solar_inverters:growatt [2023/07/30 11:38] (aktuell) – duplicates erhöht raptorsds
Zeile 1: Zeile 1:
 ====== Growatt Wechselrichter ====== ====== Growatt Wechselrichter ======
 ==== Einleitung ==== ==== Einleitung ====
-Viele Growatt Wechselrichter werden mit einen WLAN, 4G oder Ethernet Stick verkauft bzw diese kann dazu erworben werden "Shine-Stick".+Viele Growatt Wechselrichter werden mit einen WLAN, 4G oder Ethernet Stick verkauft bzw diese kann dazu erworben werden "Shine-Stick".\\
 Diese Sticks werden an einen RS-232 bzw an einem USB Anschluss betrieben, alternativ besitzen viele dieser WR eine RS-485 Schnittstelle . Diese Sticks werden an einen RS-232 bzw an einem USB Anschluss betrieben, alternativ besitzen viele dieser WR eine RS-485 Schnittstelle .
  
Zeile 8: Zeile 8:
  
 Leider stellt der orginal Wlan Stick keine direkten Daten zum auslesen bereit.  Leider stellt der orginal Wlan Stick keine direkten Daten zum auslesen bereit. 
 +Viele Projekte haben sich der Growatt API Datenbank bedient um die Daten wieder aus der Cloud auszulesen.\\
  
-Viele Projekte haben sich der Growatt API Datenbank bedient um die Daten wieder aus der Cloud auszulesen.+Mitlerweile gibt es ein Projekt das auch den Stick selber erkundet hat und eine Lösung präsentiert\\
  
-Mitlerweile gibt es ein Projekt das auch den Stick selber erkundet hat und eine Lösung präsentiert  +In diesem Abschnitt beschreiben wir die Möglichkeit den WR ohne Cloud und Internet abzufragen
- +
-In diesem Abschnitt beschreiben wir die Möglichkeit den WR ohne Cloud und Internet abzufragen +
    
  
 ==== Vorraussetzung ==== ==== Vorraussetzung ====
  
-Growatt WR mit modifizierten ShineWifi-X oder ShineWifi-S alternativ einen D1-mini (ch340) oder ESP32 (ch340)+Growatt WR mit modifizierten ShineWifi-X oder ShineWifi-S alternativ einen D1-mini (ch340) oder ESP32 (ch340)\\
  
  
-Bitte dazu auf den einschlägigen Seiten Informieren wie man einen D1-mini programmiert (der Orginal ShineWifi besitzt ebenfalls einen ESP8622 (ESP07s) Controller)  +Bitte dazu auf den einschlägigen Seiten Informieren wie man einen D1-mini programmiert\\ 
-zusätzlich finden auf der Projektseite weitere information .+(der Orginal ShineWifi besitzt ebenfalls einen ESP8622 (ESP07s) Controller)\\ 
 +zusätzlich finden auf der Projektseite weitere information .\\
 [[https://github.com/otti/Growatt_ShineWiFi-S|ShineWifi Mod]]  [[https://github.com/otti/Growatt_ShineWiFi-S|ShineWifi Mod]] 
  
 <note tip>Beim D1-mini benötigt man keine Zusätzliche Beschaltung das Programmier USB-Kabel kann direkt am WR ebenfalls genutzt werden </note> <note tip>Beim D1-mini benötigt man keine Zusätzliche Beschaltung das Programmier USB-Kabel kann direkt am WR ebenfalls genutzt werden </note>
  
-==== Insatallation ====+==== Möglichkeit 1 CRON ====
  
-Bitte über <IP/status> einmal die JSON Datenblock abfragen und scheuen welche Daten der WR bereitstellt +Bitte über <IP/status> einmal die JSON Datenblock abfragen und schauen welche Daten der WR bereitstellt 
  
 <note>der Nachfolgende Script ist für Modbus v1.24 und einem Growatt 600TL-x Einphasig ausgelegt </note> <note>der Nachfolgende Script ist für Modbus v1.24 und einem Growatt 600TL-x Einphasig ausgelegt </note>
Zeile 93: Zeile 93:
  
  
-<note>Bitte IP und UUID an deine Gegebenheiten anpassen.</note>+<note>Bitte IP UUID und die Namen der Json Objekte an deine Gegebenheiten anpassen.</note>
  
 Dieses Script sendet nur die aktuellen Zählerstand und zusätzlich die Leistung an die Middleware.\\ Dieses Script sendet nur die aktuellen Zählerstand und zusätzlich die Leistung an die Middleware.\\
 Zeilen mit "#" sind auskommentiert und können bei Bedarf genutzt werden für Debug oder um einen weitere Kanäle hinzuzufügen. Zeilen mit "#" sind auskommentiert und können bei Bedarf genutzt werden für Debug oder um einen weitere Kanäle hinzuzufügen.
 +<note> aufgrund der langsamen auslesung vom Cron Job wie unten angegeben mit 1min Intervall ist die Darstellung des Zählerstandes nicht allzu gut </note>
  
   * Datei Speichern und ausführbar machen   * Datei Speichern und ausführbar machen
Zeile 108: Zeile 109:
 Grundsätzlich aktuallisiert der Wifi-Stick alle 5 sek die JSON-Daten   Grundsätzlich aktuallisiert der Wifi-Stick alle 5 sek die JSON-Daten  
  
 +
 +
 +
 +==== Möglichkeit 2 vzlogger exec ====
 +
 +Nachteile Vzlogger darf nicht als root laufen --> umstellung vzlogger siehe [[software:controller:vzlogger|vzlogger]] "vzlogger als anderer Benutzer ausführen"
 +
 +
 +Bitte über <IP/status> einmal die JSON Datenblock abfragen und schauen welche Daten der WR bereitstellt 
 +
 +<note>der Nachfolgende Script ist für Modbus v1.24 und einem Growatt 600TL-x Einphasig ausgelegt </note>
 +
 +
 +  * Als nächstes Abfragedatei erstellen
 +  - Manuelle erstellen <code>sudo nano Growatt_JSON_exec.sh</code>
 +  - alternativ git clone <code>sudo git clone https://github.com/RaptorSDS/VZ_Growatt_JSON_read.git</code>
 +
 +<note> In der Datei sind keine Anpassungen notwendig alle Notigen Optionen werden von extern zu angegeben . \\
 +Folgende Optionen sind vorhanden ... exec.sh IP Reading1 Reading2 .... dabei werden alle Reading angenommen solange sie im JSON Datenblock vorhanden sind , der script beinhaltet eine Schutz nur wen der WR Status 1 = Betriebsbereit gesetzt hat werden daten ausgegebnen
 +</note>
 +
 +der Inhalt sieht wie folgt aus 
 +<code>
 +#!/bin/bash
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +#!/bin/bash
 +set -u
 +set -e
 +
 +# Script: Growatt_JSON_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 "Usage: $0 <hostname> <reading1> <reading2> ..."
 +  exit 1
 +}
 +
 +# Validate required arguments
 +if [ "$#" -lt 2 ]; then
 +  usage
 +fi
 +
 +# Extract hostname
 +HOSTNAME="$1"
 +shift
 +
 +# Extract readings
 +READINGS="$*"
 +
 +#build URL
 +URL="http://${HOSTNAME}/status"
 +#echo $URL
 +
 +#get json
 +JSON=$(curl --connect-timeout 5 -s "$URL")
 +
 +#first check status
 +STATUS=$(echo "$JSON" | jq '. | to_entries[0].value')
 +
 +if [ "$STATUS" != 0 ]; then
 +  # process json
 +  for READING in $READINGS; do
 +    OUTPUT=$(echo "$JSON" | jq -r --arg readings "$READING" '.[$readings]')
 +    printf "%s = %s\n" "$READING" "$OUTPUT"
 +  done
 +#else
 +  #echo "Inverter status is not 1"
 +fi
 +</code>
 +
 +  * Datei Speichern und ausführbar machen
 +
 +   chmod +x Growatt_JSON_exec.sh
 +   
 +  * Die Datei kan jetzt an einen Bekannt Ort kopiert werden bsp /etc/growatt/
 +
 +  * Als nächstes die Kanäle im Frontend erstellen
 +
 +  * Folgende vzlogger config erstellen ändern
 +<code>
 +{
 +      "enabled": true,
 +      "allowskip": true,
 +      "interval": 60,
 +      "aggtime": -1,
 +      "aggfixedinterval": false,
 +      "channels": [
 +        {
 +          "api": "volkszaehler",
 +          "uuid": "e4f6a700-xxxxx",
 +          "identifier": "TotalGenerateEnergy",
 +          "middleware": "http://localhost/middleware.php",
 +          "aggmode": "none",
 +          "duplicates": 43200
 +        },
 +        {
 +          "api": "volkszaehler",
 +          "uuid": "35edd970-xxxxx",
 +          "identifier": "OutputPower",
 +          "middleware": "http://localhost/middleware.php",
 +          "aggmode": "avg",
 +          "duplicates": 0
 +        }
 +      ],
 +      "protocol": "exec",
 +      "command": "/etc/growatt/growatt_json_exec.sh 192.xxxx TotalGenerateEnergy OutputPower",
 +      "format": "$i = $v"
 +    },
 + </code>
 +<note>Die Config ist so eingestellt das sie alle 60s den WR abfragt und an die DB Übergibt , Der Gesmt Zählerstand wir auf Duplikate kontrolliert und spätesten falls kein neuer Wert vorliegt nach 43200s (12h) erneut in die DB geschrieben</note>
 +
 +  * vzlogger neu starten
hardware/channels/solar_inverters/growatt.1685203093.txt.gz · Zuletzt geändert: 2023/05/27 17:58 von raptorsds