Microwechselrichter Bosswerk MI 300 und Huayu HY-800 an Fhem anbinden

Begonnen von Decki, 18 Oktober 2021, 21:28:27

Vorheriges Thema - Nächstes Thema

neobiker


rob

Zitat von: bismosa am 20 Februar 2023, 19:11:13Ich habe dieses Projekt in Github entdeckt:
https://github.com/kbialek/deye-inverter-mqtt
Vielen Dank fürs Teilen Deines Fundes :)
Auf der Seite ist u.a. der Start via Docker erklärt. Hab ich auch so am Laufen: einfacher geht's nicht. Zusammen mit Influx + Grafana lassen sich coole Sachen machen. Da ist der 5Min Takt fast verschmerzbar  ;)

VG
rob

golem

Hallo,

falls sich Irgendjemand für das leicht modifizierte Modbus-Protokoll des Deye interessiert oder gar ein Modul daraus machen möchte, hier gibt es passende Infos https://pysolarmanv5.readthedocs.io/en/stable/solarmanv5_protocol.html
Pi - Max-Lan - 8x max Ht -3x Max WT - Max Fk -modbus umg103- 2x Arduino mit Firmata Ethernet- ws300 - 433Mhz Sender Empfänger - 7x 1wire ds1820

schnulli59

#78
Zitat von: Hauswart am 18 November 2022, 13:18:16define Solar2 HTTPMOD http://[USER]:[PASS]@[IP]/status.html 60
attr Solar2 icon sani_solar
attr Solar2 reading01Name current_power-1
attr Solar2 reading01Regex (?^:var webdata_now_p = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 reading02Name yield_today-1
attr Solar2 reading02OExpr my $regex  = qr/(\d*)[.](\d{2})/mp;;\
my $regex2 = qr/(\d*)[.](\d{1})/mp;;\
\
if ($val =~ /$regex/g) {\
    $val = $val;;\
} elsif ($val =~ /$regex2/g) {\
    $val = "$1.0$2";;\
} else {\
    $val = $val;;\
}
attr Solar2 reading02Regex (?^:var webdata_today_e = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 reading03IgnoreExpr $val < $oldVal
attr Solar2 reading03Name total_yield-1
attr Solar2 reading03Regex (?^:var webdata_total_e = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 stateFormat Aktuelle Leistung: current_power-1 W;;\
Tagesertrag: yield_today-1 kWh;;\
Gesamtertrag: total_yield-1 kWh

Ich wollte das auch mal testen weil ich die Anlage auch habe. Aber folgendes attr wird nicht angenommen.
attr Solar2 reading02OExpr my $regex  = qr/(\d*)[.](\d{2})/mp;;\
my $regex2 = qr/(\d*)[.](\d{1})/mp;;\
\
if ($val =~ /$regex/g) {\
    $val = $val;;\
} elsif ($val =~ /$regex2/g) {\
    $val = "$1.0$2";;\
} else {\
    $val = $val;;\
}

die Fehlermeldung:
Invalid Expression my $regex = qr/(\d*)[.](\d{2})/mp;\ my $regex2 = qr/(\d*)[.](\d{1})/mp;\ \ if ($val =~ /$regex/g) {\ $val = $val;\ } elsif ($val =~ /$regex2/g) {\ $val = "$1.0$2";\ } else {\ $val = $val;\ } Log:2023.04.11 14:37:51 3: Solar2: attr reading02OExpr with expression package main; my $oldVal = $oRef->{'$oldVal'};my @matchlist = @{$oRef->{'@matchlist'}};my $timeDiff = $oRef->{'$timeDiff'};return undef;my $regex  = qr/(\d*)[.](\d{2})/mp;\ my $regex2 = qr/(\d*)[.](\d{1})/mp;\ \ if ($val =~ /$regex/g) {\     $val = $val;\ } elsif ($val =~ /$regex2/g) {\     $val = "$1.0$2";\ } else {\     $val = $val;\ } on  created error: Experimental aliasing via reference not enabled at (eval 793) line 1.Vieleicht kann mir da jemand helfen.

Die anderen Eingaben wurden übernommen
Fhem -> Raspi 3B / 7590AX / CUL

schnulli59

Habe es rausgefunden -  man muss es bei RAW eintragen

Geht jetzt auch bei mir
Fhem -> Raspi 3B / 7590AX / CUL

neobiker

Zitat von: neobiker am 09 März 2023, 17:50:57Hallo,
ich habe meinen Microwechselrichter von DEYE (identisch Bosswerk) jetzt auch erfolgreich mit dem deye_inverter_mqtt Skript in FHEM mittels MQTT eingebunden.

...

Ich habe das entsprechende Skript noch etwas verfeinert und ausführlicher in meinem Wiki beschrieben:
Balkonkraftwerk: DEYE Wechselrichter ohne Cloud auslesen und per MQTT monitoren

kanenas

Hallo!
ich habe mich auch intensive mit dem Thema beschäftig und habe für mich eine Lösung über Node-RED gefunden.
Keine Ahnung ob jemant diesen Weg hier im Forum schon vorgestellt hat.

Es geht über ein fertiges Modul:https://flows.nodered.org/node/@binsoul/node-red-contrib-deye-sun-g3
Dann direct eine Verbindung zum mqtt-out und fertig! Ich betreibe zwei Deye wechselrichter damit.

Servus!



Jessie@Raspi(v3)+SSD, CUL-MAX, CUL-433, CUL-FS20, JeeLink-PCA301, JeeLink-JLLaCrosse, HM-MOD-UART, HUEBridge(v2), ESPEasy, Tasmota, Plenticore 7 mit BYD 11,5

X-Byte

Zitat von: kanenas am 10 Mai 2023, 13:40:36Es geht über ein fertiges Modul:https://flows.nodered.org/node/@binsoul/node-red-contrib-deye-sun-g3
Dann direct eine Verbindung zum mqtt-out und fertig! Ich betreibe zwei Deye wechselrichter damit.

Hi kanenas, hört sich für mich sehr interessant an, vor allem, weil die Werte direkt über das Solarman v5 Protokoll ausgelesen werden.
Könntest Du vielleicht etwas genauer beschreiben, welche Bedingungen auf Seite von FHEM/RasPi erfüllt/installiert sein müssen, um das ans Laufen zu bekommen?
Hilft bestimmt auch vielen anderen 😊

Grüße!
X-Byte

kanenas

Hi X-byte,

Fhem ist auf ein Raspi installiert mit dem MQTT2 Server. Node-RED in einen zweiten Raspi installiert. Ob beides in ein Raspi installiert werden können, ist mir nicht bekannt aber sicherlich möglich.

Node-RED hatte ich vorher in Betrieb da ich damit den BMS von ein "China" 48v lifepo4 120Ah Akku mit RS485 auslese und über MQTT die Daten an fhem sende.

Vorher hatte über Node-Red keine Ahnung. Ist ziemlich einfach zu installieren und relative schnell zu verstehen wie Projekte umzusetzen sind.

Falls du den Code von Node-Red brauchst, schreib mir.

LG

fhem Readings:

setstate Deye_Micro_Solar_Carport 2023-05-23 12:04:10 IODev MQTT_Server
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv1TotalEnergy 181.5
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv1TotalEnergyToday 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv2TotalEnergy 135.2
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv2TotalEnergyToday 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv3TotalEnergy 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv3TotalEnergyToday 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv4TotalEnergy 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_pv4TotalEnergyToday 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_totalEnergy 323.7
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 counters_totalEnergyToday 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 isAvailable true
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 output_current 0.4
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 output_frequency 50
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 output_power 105
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 output_voltage 238
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv1_current 1.4
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv1_power 50.12
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv1_voltage 35.8
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv2_current 1.4
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv2_power 51.52
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv2_voltage 36.8
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv3_current 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv3_power 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv3_voltage 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv4_current 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv4_power 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 pv4_voltage 0
setstate Deye_Micro_Solar_Carport 2023-05-25 06:20:02 temperature 15
Jessie@Raspi(v3)+SSD, CUL-MAX, CUL-433, CUL-FS20, JeeLink-PCA301, JeeLink-JLLaCrosse, HM-MOD-UART, HUEBridge(v2), ESPEasy, Tasmota, Plenticore 7 mit BYD 11,5

mrb

hi zusammen,

ich schließe mich mal hier an.
ich habe jetzt aus einem ziemlich am Anfang geschriebenen post das "geklaut"
Du darfst diesen Dateianhang nicht ansehen.

Spricht irgendwas dagegen da es funktioniert nach meinem Anschein nach?

Edit: Zur Info ich bin überhaupt nicht mit Perl vertraut und habe da einfach euch vertraut ^^

chunter1

Lieg ich richtig, dass mit allen Lösungen hier die Werte nur alle 5 Minuten aktualisiert ausgelesen werden können oder gibt es einen Weg diese z.B. alle 10s zu erhalten?

bismosa

Hallo!

Mit diesem Script
https://github.com/kbialek/deye-inverter-mqtt
Kann man auch häufiger auslesen.
Da gab es auch gerade wieder ein Update. U.a. lässt sich das jetzt auch offiziell ohne Docker benutzen. Da ist eine Anleitung für ein Startscript.

Ich weiß nicht wie häufig der Wechselrichter überhaupt die eigenen Werte aktualisiert... deswegen habe ich für eine häufigere Aktualisierung eine WLAN Steckdose mit messfunktion angeschlossen. Hier sollte man nur aufpassen das die billigen tuya sehr gerne Mal unverhofft abschalten...

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

chunter1

Zitat von: bismosa am 29 Mai 2023, 09:35:32Mit diesem Script
https://github.com/kbialek/deye-inverter-mqtt
Kann man auch häufiger auslesen.

Danke für den Tip.
Habs grade ausprobiert - man kann zwar häufiger auslesen, die Werte ändern sich aber leider trotzdem nur alle 5 Minuten.

Christian_M

#88
Zitat von: Hauswart am 12 August 2022, 07:09:00FYI:

Ich teste gerade die Solarman API:
defmod Solarman HTTPMOD https://api.solarmanpv.com/device/v1.0/currentData?language=en 60
attr Solarman extractAllJSON 1
attr Solarman requestData { "deviceSn": "[SN]", "deviceId": [ID]}
attr Solarman requestHeader1 Content-Type: application/json
attr Solarman requestHeader2 Accept: */*
attr Solarman requestHeader3 Authorization: bearer [TOKEN]

Hallo @Hauswart,
ich würde genau das Szenario auch gerne umsetzen um vor allem auszulesen wieviel Strom gerade eingespeist wird um damit z.B. die Wallbox zu starten.
Ich breche mir mit der Nutzung der REST API aber einen ab.
Kannst du mehr Beispiel Code zur Verfügung stellen? Gerne sonst auch als PM.

VG
Christian

Hauswart

Zitat von: Christian_M am 01 Juni 2023, 22:07:20
Zitat von: Hauswart am 12 August 2022, 07:09:00FYI:

Ich teste gerade die Solarman API:
defmod Solarman HTTPMOD https://api.solarmanpv.com/device/v1.0/currentData?language=en 60
attr Solarman extractAllJSON 1
attr Solarman requestData { "deviceSn": "[SN]", "deviceId": [ID]}
attr Solarman requestHeader1 Content-Type: application/json
attr Solarman requestHeader2 Accept: */*
attr Solarman requestHeader3 Authorization: bearer [TOKEN]

Hallo @Hauswart,
ich würde genau das Szenario auch gerne umsetzen um vor allem auszulesen wieviel Strom gerade eingespeist wird um damit z.B. die Wallbox zu starten.
Ich breche mir mit der Nutzung der REST API aber einen ab.
Kannst du mehr Beispiel Code zur Verfügung stellen? Gerne sonst auch als PM.

VG
Christian

Hallo Christian, ich habe die Solarman Variante nicht wirklich produktiv bei mir umgesetzt und bin dann doch direkt auf die WR-Daten (lokale IP vom WR) gegangen.
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)