NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
@bolliy , danke für das Feedback Stephan. Dann muss ich mal gucken welches der kummulierenden Registern das richtige ist bzw., ob ich je Inverter ein Register mit kWh Informationen nehme und diese dan summiere.
Hat das schon mal ein Teilnehmer gemacht?
LG von Andreas
-
@gelbwichtel aus dem WR kann man keine EnergyYield-Werte nach strings auslesen. Zumal der dailyEnergyYield die Batterie-lade-/entlade-Energiewerte beinhalten. https://github.com/bolliy/ioBroker.sun2000/wiki/Energieertrag-(Yield-today)
Ggf. würde eine Riemann Summierung (Intergral) über die Stringpowerwerte (sun2000.0.inverter.0.string.PV[1|2]Power) die Lösung sein. Dann erhält man aber eher den SolarYield der Strings und nicht den EnergieYield der Strings.
LG Stephan
@bolliy Vielen Dank für die Info. Wäre auch zu schön gewesen
LG Gelbwichtel -
@bolliy ich habe ioBroker und Node.js komplett neu installiert auf meinem Windows Rechner, und die Admin Credentials neu aufgesetzt. Nun habe ich ioBroker wieder verfügbar. Aber nun lässt ich dein Adapter 1.0.1 nicht mehr korrekt installieren, es fehlen die Inverter und Meter Objekte usw., und das Protokoll sagt u.A. "Adapter Settings incomplete". Wenn ich den Adapter laufen lassen will, geht er sofort wieder auf Stop. Hast du eine Ahnung an was das liegen könnte?
-
@fredi-wiegisser bitte die Main Settings des Adapters zeigen.
-
@fredi-wiegisser sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
und das Protokoll sagt u.A. "Adapter Settings incomplete".
Protokolle und Logs bitte NICHT als Screenshot, sondern als Text, eingebettet in Code-Tags (</>) in den Post hängen.
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge
-
@bolliy hatte ich vergessen sorry. Ich habe v1.0.1 via NPM installiert. Ausser der Modbus ID habe ich alle Settings auf ihren Default Werten belassen. Mein OS ist Win 11 64 Bit, Browser ist Edge. Admin Adapter ist auf v7.4.10. Und wie gesagt, ist bis gestern alles immer gut gelaufen, bis zum Punkt wo ich den Admin Zugang verloren hatte (wegen Admin Adapter Update) und heute alles neu installieren musste. Node.js: v20.18.3 und NPM: 10.8.2.
Und hier noch das aktuelle Log vom Issue, wenn ich den Adapter starte stop er sogleich wieder.
2025-03-04 12:24:43.831 - info: host.Fredi-NB instance system.adapter.sun2000.0 in version "1.0.1" started with pid 10828 2025-03-04 12:24:44.722 - info: sun2000.0 (10828) starting. Version 1.0.1 in C:/ProgramData/ioBroker/node_modules/iobroker.sun2000, node: v20.18.3, js-controller: 7.0.6 2025-03-04 12:24:44.748 - error: sun2000.0 (10828) *** Adapter deactivated, Adapter Settings incomplete! *** 2025-03-04 12:24:44.749 - info: host.Fredi-NB instance "system.adapter.sun2000.0" disabled via .alive 2025-03-04 12:24:44.751 - info: host.Fredi-NB "system.adapter.sun2000.0" disabled 2025-03-04 12:24:44.751 - info: host.Fredi-NB stopInstance system.adapter.sun2000.0 (force=false, process=true) 2025-03-04 12:24:44.752 - info: host.Fredi-NB stopInstance system.adapter.sun2000.0 send kill signal 2025-03-04 12:24:44.754 - info: sun2000.0 (10828) Got terminate signal TERMINATE_YOURSELF 2025-03-04 12:24:44.755 - info: sun2000.0 (10828) cleaned everything up... 2025-03-04 12:24:44.756 - info: sun2000.0 (10828) terminating 2025-03-04 12:24:44.756 - info: sun2000.0 (10828) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2025-03-04 12:24:45.258 - info: sun2000.0 (10828) terminating 2025-03-04 12:24:45.288 - info: host.Fredi-NB instance system.adapter.sun2000.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)``` code_text
code_text
-
@bolliy Schande über mich, ich hatte die IP vergessen, jetzt läuft es wieder. Manchmal sieht man vor lauter Bäume den Wald nicht mehr. Bitte sehr um Entschuldigung.
-
@bolliy Dafür weiss ich jetzt auch, woher die TimeOuts kommen. Während dem ich im Büro am Windows PC die Anwendung weiter entwickle, läuft in der Küche meine Raspberry Pi Anwendung unbemerkt weiter. So entsteht ein Parallel-Zugriff auf die Register, das verursacht die Timeouts. Sobald ich das Raspberry Pi ausstecke, sind die TimeOuts auf dem PC weg.
2025-03-04 12:34:18.471 - info: sun2000.0 (11584) starting. Version 1.0.1 in C:/ProgramData/ioBroker/node_modules/iobroker.sun2000, node: v20.18.3, js-controller: 7.0.6 2025-03-04 12:34:18.516 - info: sun2000.0 (11584) Adjustment: It starts for the Modbus connection... 2025-03-04 12:34:18.526 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:34:23.665 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:34:23.907 - info: sun2000.0 (11584) Identified a Huawei SUN2000-12KTL-M5 model 473 for modbus ID 2 2025-03-04 12:34:26.169 - info: sun2000.0 (11584) Adjustment: It has reached the step 1 with delay value 0 ms 2025-03-04 12:34:37.059 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 38284, Len: 10, modbusID: 2] with: Timed out 2025-03-04 12:34:37.076 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:34:43.085 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:34:46.234 - info: sun2000.0 (11584) Adjustment: It has reached the step 1 with delay value 600 ms 2025-03-04 12:34:58.070 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 37100, Len: 38, modbusID: 2] with: Timed out 2025-03-04 12:34:58.072 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:35:04.090 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:35:06.778 - info: sun2000.0 (11584) Adjustment: It has reached the step 2 with delay value 488 ms 2025-03-04 12:35:18.106 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 38368, Len: 10, modbusID: 2] with: Timed out 2025-03-04 12:35:18.108 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:35:24.177 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:35:26.407 - info: sun2000.0 (11584) Control: Service queue initialized 2025-03-04 12:35:27.168 - info: sun2000.0 (11584) Adjustment: It has reached the step 3 with delay value 425 ms 2025-03-04 12:35:40.456 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 32064, Len: 2, modbusID: 2] with: Timed out 2025-03-04 12:35:40.460 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:35:45.471 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:35:50.388 - info: sun2000.0 (11584) Adjustment: It has reached the step 4 with delay value 389 ms 2025-03-04 12:36:10.325 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 32080, Len: 2, modbusID: 2] with: Timed out 2025-03-04 12:36:10.329 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:36:16.380 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:36:30.189 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 32080, Len: 2, modbusID: 2] with: Timed out 2025-03-04 12:36:30.193 - info: sun2000.0 (11584) Open Connection... 2025-03-04 12:36:35.214 - info: sun2000.0 (11584) Connected Modbus TCP to 192.168.1.162:502 2025-03-04 12:36:50.659 - warn: sun2000.0 (11584) Error while reading from 192.168.1.162 [Reg: 32064, Len: 2, modbusID: 2] with: Timed out
-
@fredi-wiegisser der gleichzeitiger Zugriff auf die modbus Schnittstelle ist über den internen mobus-proxy des Adapters möglich.
Toll, dass du die Ursache der Timeouts eigenständig herausgefunden hast.
LG Stephan
-
@bolliy vielleicht noch etwas Kleines zur Info. Die Register 32091 und 32093 meines Sun2000 12KTL M5 weisen eine falsche Uhrzeit aus für die Inverter Start- und Stopzeit, obschon GMT+1 korrekt eingetragen ist. Angezeigt wird aktuell die Sommerzeit, also 1h zu viel. Ich gehe davon aus, dass die Register unbehandelt im Adapter zur Verfügung stehen und direkt vom Inverter ausgelesen werden. Falls das so ist, plane ich einen Service Request bei Huawei.
-
@bolliy Hallo Stephan, nachdem ich diesen Winter nun mit Auswertungen/Zusammenlegungen über zwei Instanzen-mit drei M1 WR- über Blockly deinen Adapter (DANKE!) erfolgreich genutzt habe, stellt sich nun im beginnenden Frühjahr ein Problem, das ich nicht selbst lösen konnte :
ich versuche über die Batterie-Regelung zeitlich unterschiedliche Ladegrößen in Abhängigkeit von SOC zu schalten - Blockly funktioniert - Datenpunkte werden geändert ABER mein führender M1-8K (mit zwei Battreiblöcken - alles richtig dargestellt)
nimmt die Daten nicht an ?!?
Mir fällt im Moment nichts mehr dazu ein - der WR ist lokal über sein eigenes WLAN eingebunden - paßt seit drei Monaten.
Danke schon einmal und viele Frühlingsgrüße Michael -
@michael-birr diese Dinge sind zu beachten:
-
Bitte den blockly Funktionsblock steuere anstatt aktualisieren verwenden. Siehe https://forum.iobroker.net/post/1244554 und https://github.com/bolliy/ioBroker.sun2000/wiki/Verarbeitung-der-Sollwerte
-
Falls die Luna schläft (SLEEP_MODE), muss der Speicher erst "aufgeweckt" werden. https://github.com/bolliy/ioBroker.sun2000/wiki/Speichersystem-aufwecken-(wake-up-Luna)
Ob der Adapter die Controls zum WR schreibt kannst du im Log verfolgen - hier wird MinSoc auf 5 % gesetzt:
2025-03-06 07:15:41.218 - info: sun2000.0 (1015299) Control: Event - state: battery.dischargeCutoffCapacity changed: 5 ack: false 2025-03-06 07:15:46.084 - info: sun2000.0 (1015299) Control: write state inverter.0.control.battery.dischargeCutoffCapacity : 5 ack: true
LG Stephan
-
-
@bolliy Ich denke, dass ich diese Anregungen schon beachtet habe - siehe CC. Vieleicht erkennst du daraus mehr
2025-03-06 10:00:00.026 - info: javascript.0 (7292) script.js.common.Batteriesteuerung.Skript_1: getState(id=sun2000.0.inverter.0.battery.SOC, timerId=undefined) => {"val":57,"ack":true,"ts":1741251580239,"q":0,"from":"system.adapter.sun2000.0","user":"system.user.admin","lc":1741251580239} 2025-03-06 10:00:00.030 - info: javascript.0 (7292) script.js.common.Batteriesteuerung.Skript_1: getState(id=sun2000.0.inverter.0.battery.ratedCapacity, timerId=undefined) => {"val":25000,"ack":true,"ts":1741105021840,"q":0,"from":"system.adapter.sun2000.0","user":"system.user.admin","lc":1726907980177} 2025-03-06 10:00:00.030 - info: javascript.0 (7292) script.js.common.Batteriesteuerung.Skript_1: setForeignState(id=sun2000.0.inverter.0.control.battery.maximumChargingPower, state={"val":2687.5000000000005,"ack":false,"ts":1741251600030,"q":0,"from":"system.adapter.javascript.0","lc":1741251600030,"c":"script.js.common.Batteriesteuerung.Skript_1"}) 2025-03-06 10:00:00.030 - info: javascript.0 (7292) script.js.common.Batteriesteuerung.Skript_1: setStateDelayed(id=sun2000.0.inverter.0.control.battery.maximumChargePower, state=2687.5000000000005, isAck=undefined, delay=500, clearRunning=false) 2025-03-06 10:00:00.045 - info: sun2000.0 (21396) Control: Event - state: battery.maximumChargingPower changed: 2687.5000000000005 ack: false 2025-03-06 10:00:00.385 - warn: sun2000.0 (21396) Error while writing to 192.168.200.1 [Reg: 47075, Len: 2, modbusID: 0] with: Modbus exception 128: Unknown error 2025-03-06 10:00:00.385 - info: sun2000.0 (21396) Control: Event is discarded because it could not be processed. inverter.0.control.battery.maximumChargingPower 2025-03-06 10:00:00.539 - info: javascript.0 (7292) script.js.common.Batteriesteuerung.Skript_1: setForeignState(id=sun2000.0.inverter.0.control.battery.maximumChargePower, state={"val":2687.5000000000005,"ack":false,"ts":1741251600539,"q":0,"from":"system.adapter.javascript.0","lc":1741251600539,"c":"script.js.common.Batteriesteuerung.Skript_1"}) 2025-03-06 10:00:00.555 - info: sun2000.0 (21396) Control: Event - state: battery.maximumChargePower changed: 2687.5000000000005 ack: false 2025-03-06 10:00:20.544 - warn: sun2000.0 (21396) Control: maximumChargePower is deprecated use "maximumChargingPower" instead 2025-03-06 10:00:20.648 - warn: sun2000.0 (21396) Error while writing to 192.168.200.1 [Reg: 47075, Len: 2, modbusID: 0] with: Modbus exception 128: Unknown error 2025-03-06 10:00:20.648 - info: sun2000.0 (21396) Control: Event is discarded because it could not be processed. inverter.0.control.battery.maximumChargePower 2025-03-06 10:14:58.097 - info: admin.0 (19984) ==> Connected system.user.admin from ::ffff:192.168.188.71 2025-03-06 10:15:41.848 - info: admin.0 (19984) ==> Connected system.user.admin from ::ffff:192.168.188.71 Danke und Gruß Michael EIN NEUER VERSUCH Gruß Michael
-
@michael-birr keine 'Float' (Gleitkommazahl) verwenden! Der Inverter erwartet den Datentyp 'Integer' (ganze Zahl) . Du mußt die Zahl runden (Math.round())
Ich werde die Gleitkommzahlen in der nächsten Version einfach runden.
LG Stephan -
@bolliy Vielen Dank, da bin ich nicht drauf gekommen - Test folgt !
-
Hi bolliy, zuerst einmal ein großes Lob für diesen mega Adapter.
Jetzt hätte ich aber eine Frage bzw. ein Anliegen.
Ich habe folgende Hardware-Konfiguration:10,53 kWp mit SUN2000 10ktl-m1
10kW LUNA2000
SDongleA-05
DTSU666-H -> Modbus-ID 11zusätzlich läuft bei mir aber auch noch ein Balkonkraftwerk mit 840 Wp und Hoyemiles-800.
Bisher habe ich mit einem shelly-1em die Werte des BK abgefragt. Ich wollte aber die Daten auch gerne auf Fusionsolar.
Dazu habe ich mir noch einen DDSU666-H zugelegt. Dieser ist einphasig!
Habe ihn gemäß Anleitung Vernetzung Fremdwechselrichter von Huawei ins System eingebunden.
Da habe ich dem DDSU die ModBusadresse 19 gegeben.
Der DDSU ist über den Dongle eingebunden.
Funktioniert auch alles super. Werte passen auf Fusionsolar. es wird nur nicht der DDSU angezeigt, sondern die Werte sind saldierend. Stört mich aber nicht.
Jetzt würde ich aber gerne mit Deinem Adapter die Daten des DDSU seperat abfragen wollen. er ließt ja den Modbus aus.
Bei Integration-Settings im Adapter ist aber die ModBus-Adresse für den SmartLogger fest verankert. Lässt sich nicht ändern bzw erweitern.
Besteht vielleicht die Möglichkeit das man noch eine zweite SmartLogger Abfrage integriert?
Also z.B. so?
Da wo auch die Möglichkeit besteht die Modbus-ID manuell einzugeben?Wäre mega wenn sowas gehen würde!
Gruß
Johnny -
@prinzeisenherz1 die Abfrage der DDSU erfolgt durch den Smart Logger eigenständig. Du hast aber eine SDongle als Integration gewählt ?!
Man müsste also den 2ten SmartMeter über die Modbus id 19 auslesen. Das bedeutet allerdings die Erstellung eines weiteren Treibers. Das wird leider nicht ohne größeren Aufwand funktionieren.Es gibt aber einen Fork zu meinem Projekt. Vielleicht wäre diese Anpassung ein Ansatz um dein Anliegen umzusetzen. https://github.com/edyso/ioBroker.sun2000
Ansonsten kannst du gerne ein issue hier https://github.com/bolliy/ioBroker.sun2000/issues anlegen. Dann können wir schauen ob sich weitere Interessenten finden, die dein Anliegen unterstützen.
LG Stephan
-
Hi bolliy danke für Deine Antwort.
Welche Anpassung ist denn in dem Fork?
Ich habe gestern mal ein issue auf github angelegt, mit der Hoffnung das diese Option vielleicht doch noch einzug in Deinem Adapter hält!Wäre super!!
Gruß Johnny -
@prinzeisenherz1 das steht im github repository: "this fork reads meter-data directly from comunication between inverter and smartmeter by a rs485-adapter"
-
Hallo zusammen,
ich hatte per Blockly versucht den Wert für den "sun2000.0.inverter.0.battery.dischargeCutoffCapacity" zu setzen. Leider scheint das nicht zu funktionieren. Hat jemand einen Tipp für mich? Muss ich da noch etwas beachten, um den Wert zu setzen?
<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="3g`Uj6f2os+y,26H.+)!" x="88" y="63"> <field name="SCHEDULE">59 23 14 10 *</field> <statement name="STATEMENT"> <block type="control" id="v0!u]czk1PE^j_W+r~0t"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sun2000.0.inverter.0.battery.dischargeCutoffCapacity</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="U*N?9F7L;1L0hMZo}(H1"> <field name="NUM">5</field> </block> </value> </block> </statement> </block>