Modul für Deye / Bosswerk Wechselrichter anlegen?

Anfragen zum Erstellen von Modulen, Fragen zu Modulen
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

Hallo zusammen,

ich habe einen Deye (wird auch als Bosswerk vertrieben) Wechselrichter (WR) im Einsatz und möchte dafür die Unterstützung in openWB einbauen. Ich bin blutiger Software Entwickler Anfänger bei openWB und Bash ist auch nicht gerade meine Stärke, aber das soll mich nicht abhalten. Ich suche deshalb ein paar Informationen ob ich auf dem richtigen Weg bin:

Ich habe mir folgendes Vorgehen zu recht gelegt:
1.) Ich lege im openWB Verzeichnis modules ein neues Verzeichnis wr2_deye an. Dort erstelle ich eine Datei main.sh.
2.) Den Inhalt von https://github.com/dr-ni/mi600 (Ein Bash Script zum Auslesen von Deye WR) baue ich in die Struktur von der main.sh Datei vom Module wr2_json ein.
3.) In die Datei web/settings/modulconfigpv.php baue ich entsprechende Felder (z.B. Hostname / IP Adresse vom Deye Wechselrichter) für die neue main.sh Datei als Übergabeparameter ein.

Ist das alles? Habe ich etwas übersehen?

Jetzt habe ich noch ein paar Fragen zur Funktionsweise:
* Welche Werte vom WR werden benötigt? Aktuelle erzeugte Watt oder auch Aggregate (z.B. erzeugte Watt am Tag, erzeugte Watt insgesamt). Wenn ich die WR Scripte (also z.B. die main.sh von wr2_json und wr2_shelly) korret verstehe, dann wird mit dem legacy_run.sh Script der aktuelle erzeugte Wert vom WR abgerufen und in ${RAMDISKDIR}/pv2watt gespeichert, richtig?
* Wie kann ich meine Änderungen testen ohne das ich dazu eine openWB Hardware Box damit bespielen muss? Gibt es eine "Entwicklungsumgebung" für Windows / MAC?

Herzlichen Dank schon mal für jeden Hinweis zu Dokumentation oder ein paar Zeilen Erklärung!

Viele Grüße
Thomas
hhoefling
Beiträge: 627
Registriert: So Jul 25, 2021 2:32 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von hhoefling »

Wenn die WR schon via curl mit einem Bash-Script abgefragt werden kann
würde ich nur ein reinen BASH Script (main.sh) erstellen.
Das/den LRS (legatyp_run Server) kanst du dann erst mal weglassen.
Der wird nur sinvoll bei Python Scripten eingesetzt.

Wenn du Zugang zur Box hast kannst du dir die Sache einfacher machen indem du
einen ähnlichen WR (also einer der ebenfalls nur eine IPAdresse/bzw URL als Konfiguration hat)
hernimmst und einfach dessen main.sh austauscht.
Erst wenn das alles klappt würde ich "richtige" Integration in Angriff nehmen.
gruss
Heinz

6kWp PV+Akku von RCT Power,+Tibber,+Shelly's
Skoda Citigo e-iV, openWB series2 standart+
mit openWB_lite (auf Basis der openWB 1.9.244+ Okt.2021)
Github: https://github.com/hhoefling/openWB_lite
LenaK
Beiträge: 975
Registriert: Fr Jan 22, 2021 6:40 am

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von LenaK »

Um die Api des WR zu verstehen, kannst Du ein Shell-Skript wie hhoefling beschrieben hat verwenden.
Module, die nicht für 2.0 kompatibel sind wie zB Shell-Skripte, werden nicht gemergt. Die Vorgehensweise zur Erstellung kompatibler Module findest Du hier: https://github.com/openWB/core/wiki/Neu ... grammieren
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

Ich habe die Arbeiten begonnen:
https://github.com/tking/openWB/blob/ma ... ye/main.sh

Ich bin immer für Feedback offen!
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

Code: Alles auswählen

tking@MacBook-Pro-5 wr2_deye % ./main.sh
115 W
./main.sh: line 77: openwbDebugLog: command not found
Kommunikation mit dem Deye Wechselrichter funktioniert und die Power Werte werden abgefragt.

Wie integriere ich das nun weiter in openWB? Für jeden Hinweis bin ich dankbar!
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

Ich habe die Integration des neuen PV Modules für die Deye Wechselrichter begonnen und dazu folgende Dateien bearbeitet:
* moduleconfigpv.php: https://github.com/tking/openWB/blob/ma ... nfigpv.php
* updateConfig.sh: https://github.com/tking/openWB/blob/ma ... eConfig.sh

Weiß jemand ob weitere Schritte für die Integration notwendig sind? Ich bin über jedes Feedback sehr dankbar!
derNeueDet
Beiträge: 4197
Registriert: Mi Nov 11, 2020 7:16 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von derNeueDet »

Hast du einen Branch gemacht, um die Änderungen in deine Fork zu bringen?

Wäre ideal.
Auf jeden Fall musst du einem Pull Request machen, dann wird deine Änderung im Repo der openWB zugefügt. Jemand der Entwickler*innen muss dann noch einen Merge machen, damit deine Änderungen für alle verfügbar werden.

VG
Det
Zuletzt geändert von derNeueDet am So Jan 22, 2023 10:51 am, insgesamt 1-mal geändert.
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

Hi Det,

ich habe einen PR erstellt https://github.com/snaptec/openWB/pull/2597

Ich bin sehr gespannt auf den Review! :-)

Viele Grüße
Thomas
tking
Beiträge: 7
Registriert: Fr Jul 01, 2022 9:11 pm

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von tking »

So, as the old "main.sh" approach will no longer be merged I worked on the new python-based approach:
https://github.com/tking/core/tree/mast ... vices/deye

If I understand it correctly it should be possible to execute the device.ph file, however, I get the following error:
annotated name 'data' can't be global (data.py, line 499)
Any idea how to resolve this?

Best regards,
Thomas
LenaK
Beiträge: 975
Registriert: Fr Jan 22, 2021 6:40 am

Re: Modul für Deye / Bosswerk Wechselrichter anlegen?

Beitrag von LenaK »

Die device.py kann nicht isoliert ausgeführt werden. Du musst die main.py ausführen und dann in der Bedienoberfläche ein Deye-Gerät und eine Komponente Deye-WR anlegen. Dann sollten die Werte ausgelesen werden.
Antworten