hardware:channels:solar_inverters:solaredge
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
hardware:channels:solar_inverters:solaredge [2021/11/19 23:17] – angelegt sirtet | hardware:channels:solar_inverters:solaredge [2021/11/20 19:38] (aktuell) – gelöscht sirtet | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Solaredge Wechselrichter ===== | ||
- | Der Hersteller [[https:// | ||
- | Solaredge benutzt dabei den **SunSpec** Standard, der auch von anderen Herstellern wie ABB, Fronius, LG, SMA, Schneider Electric etc. verwendet wird. | ||
- | Diese Anleitung sollte also für alle Geräte auf der [[https:// | ||
- | Ein Weg, wie man mit vzlogger an diese Daten kommt, wird hier beschrieben. | ||
- | |||
- | ==== Zusammenfassung ==== | ||
- | Der beschriebene Weg in Kürze: | ||
- | |||
- | - vzlogger kann nicht direkt Modbus TCP, es braucht weitere Komponenten. | ||
- | - Der Modbus Metering Deamon [[https:// | ||
- | - Um mit vzlogger an die Daten von mbmd zu kommen, ist der kürzeste Weg \\ (im Sinne von " | ||
- | |||
- | <note tip> | ||
- | mbmd kann die ausgelesenen Daten auch auf andere Arten zur Verfügung stellen. Wer schon MQTT, nodeRED & co. kennt, ist damit vielleicht schneller. [[https:// | ||
- | |||
- | Die hier gezeigte Lösung verlangt von jemandem der den Volkszähler und vzlogger schon kennt, als Lernaufwand " | ||
- | |||
- | ==== mbmd ==== | ||
- | [[https:// | ||
- | |||
- | mbmd kennt verschiedene gut dokumentierte [[https:// | ||
- | |||
- | Bevor man mbmd als Dienst beim Systemstart starten kann, braucht man einige Angaben, die man erst mal zusammensuchen muss. | ||
- | Dazu genügt es, wie in der Installationsanleitung beschrieben die ausführbare Datei mbmd auf den Rechner zu holen. | ||
- | |||
- | === Verbindung testen === | ||
- | == scan == | ||
- | In der mbmd Dokumentation steht, wie man mit '' | ||
- | Als Beispiel ist dort ein Serial-Port wie '' | ||
- | Das Kommando und der Output sehen dann z.B. so aus: | ||
- | |||
- | < | ||
- | pi@raspberrypi: | ||
- | 2021/11/19 17:43:50 config: creating TCP connection for 192.168.1.101: | ||
- | 2021/11/19 17:43:50 starting bus scan on 192.168.1.101: | ||
- | 2021/11/19 17:43:51 device 1: SolarEdge type device found, Current: 234.40 | ||
- | 2021/11/19 17:43:54 device 2: n/a | ||
- | </ | ||
- | ...jetzt dauert' | ||
- | < | ||
- | 2021/11/19 20:01:47 device 246: n/a | ||
- | 2021/11/19 20:01:50 device 247: n/a | ||
- | 2021/11/19 20:01:50 found 1 active devices: | ||
- | 2021/11/19 20:01:50 * #1 type SolarEdge (Model: SE9K Version: 0003.225 Serial: 9A166F9D) | ||
- | 2021/11/19 20:01:50 WARNING: This lists only the devices that responded to a known probe request. Devices with different function code definitions might not be detected. | ||
- | </ | ||
- | |||
- | Der Scan kann auch vorzeitig unterbrochen werden um sich das Warten zu sparen. Dies wenn man weiss, dass man nicht mehr als die schon gefundenen Geräte hat. | ||
- | |||
- | Wichtig aus der Ausgabe ist nur, dass mbmd den Wechselrichter findet, und die device Nummer, im Beispiel oben die '' | ||
- | Man braucht die '' | ||
- | Entsprechend der Dokumentation funktioniert '' | ||
- | Auch der im Output von '' | ||
- | |||
- | == inspect == | ||
- | Zum testen der so gefundenen Daten für die device- und adapter- parameter kann man mit dem | ||
- | [[https:// | ||
- | |||
- | |||
- | < | ||
- | pi@raspberrypi: | ||
- | 2021/11/19 20:15:05 config: creating TCP connection for 192.168.1.101: | ||
- | --------- Model 1 common --------- | ||
- | Mn | ||
- | Md | ||
- | Opt string | ||
- | Vr | ||
- | SN | ||
- | DA | ||
- | Pad 0x0067 | ||
- | --------- Model 103 inverter --------- | ||
- | A 0.00 uint16 | ||
- | AphA | ||
- | AphB | ||
- | AphC | ||
- | ... | ||
- | </ | ||
- | |||
- | == run == | ||
- | Als letzten Test kann man mit '' | ||
- | |||
- | Dabei ist zu beachten, dass der Webserver standardmässig auf dem selben Port laufen will wie der vom Volkszähler standard- Frontend, Port 8080. | ||
- | Deshalb muss man, wenn man auf dem selben Server ist, im zusätzlichen '' | ||
- | '' | ||
- | |||
- | Jetzt kann man im Webbrowser unter der IP des Servers und angegebenem Port das Frontend mit live- Daten sehen: '' | ||
- | |||
- | {{: | ||
- | |||
- | Von hier kann man gleich die Geräte- Adresse, '' | ||
- | |||
- | === mbmd als Dienst installieren === | ||
- | |||
- | Jetzt da mbmd läuft, kann er wie in der Dokumentation beschrieben [[https:// | ||
- | Dabei ist natürlich die Kommandozeile mit den bis hier ermittelten Parametern anzupassen. | ||
- | '' | ||
- | |||
- | ==== das Python Script ==== | ||
- | Da vzlogger nicht direkt auf die Daten von mbmd zugreifen kann, braucht es ein Script, das sie aufbereitet. | ||
- | Stefan Schoof hat das mit einem [[https:// | ||
- | Die URL von der mbmd API ist natürlich wieder anzupassen, mit der IP, Port und Meter-ID (letzteres aus dem mbmd Web Frontend) | ||
- | |||
- | <file python | ||
- | # | ||
- | import requests | ||
- | import json | ||
- | |||
- | response = requests.get(" | ||
- | if (not response.ok): | ||
- | exit(1) | ||
- | data = json.loads(response.content) | ||
- | print(f' | ||
- | print(f' | ||
- | print(f' | ||
- | </ | ||
- | |||
- | nach dem die Datei mit '' | ||
- | |||
- | < | ||
- | pi@raspberrypi: | ||
- | 1636450880: Export = 34981.956 | ||
- | 1636450880: Power = 5173.0 | ||
- | 1636450880: DCPower = 5251.0 | ||
- | </ | ||
- | Wer andere oder mehr Messwerte braucht, kann natürlich das Script anpassen. | ||
- | |||
- | Diese Ausgabe ist nun das, was vzlogger beim exec- Protokoll erwartet. | ||
- | |||
- | |||
- | |||
- | ==== vzlogger ==== | ||
- | In vzlogger geht man nun prinzipiell vor wie bei jedem Anlegen von neuen Kanälen: | ||
- | |||
- | Typischerweise über' | ||
- | die Dokumentation zum [[https:// | ||
- | |||
- | |||
- | <file plain / | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | { | ||
- | // pv inverter via mbmd | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | }, | ||
- | |||
- | </ | ||
- | |||
- | Insbesondere wichtig sind bei den channels die identifier wie ''" | ||
- | |||
- | Jetzt sollte man beim Start von vzlogger sehen können, dass alles läuft: | ||
- | < | ||
- | pi@raspberrypi: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | </ | ||
- | |||
- | Und im Log sollte, je nach eingestelltem Log Level, auch etwas zu sehen sein: | ||
- | < | ||
- | pi@raspberrypi: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | [Nov 09 10: | ||
- | </ | ||
- | Oops, es gibt keine Fehlermeldung und trotzdem keinen Output vom python script? | ||
- | Ah, mit log level 15 sehe ich mehr: | ||
- | < | ||
- | pi@raspberrypi: | ||
- | [Nov 10 06: | ||
- | [Nov 10 06: | ||
- | </ | ||
- | Da ist scheinbar die Ursache, Falsche Rechte... | ||
- | |||
- | <note important> | ||
- | |||
- | <note warning> |
hardware/channels/solar_inverters/solaredge.1637360241.txt.gz · Zuletzt geändert: 2021/11/19 23:17 von sirtet