NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
Ich werde das Error handling und das Logging in der nächsten Version anpassen. Ich möchte einerseits das Log nicht "zuspammen" und auf der anderen Seite dem Anwender möglichst genaue Handlungsweise zur Fehlerbeseitigung geben. @christian-kohlöffel ich würde mich freuen wenn du die Anpassung in deiner Installationsumgebung testen würdest.
Warum das ganze?
Gerade der sDongle macht bei einigen Usern immer wieder Probleme. Entweder hat er alte und langsame Hardware oder eine nicht passende Firmware verpasst bekommen.@bolliy
Erst mal Danke für die neue Version, hab sie natürlich gleich per npm installiert. Es sind nun deutlich weniger Fehlermeldungen im Log, und es sieht auch anders aus:Zur Vollständigkeit ChatGPT hat mir noch geraten den Ping und die Verbindung über TCP Port 502 zum Zeitpunkt des ausfalls zu prüfen. Beide sind unauffällig:
Das Ergebnis ist ziemlich eindeutig: Der SDongle akzeptiert weiterhin TCP-Verbindungen auf Port 502. Alle vollständig gezeigten Tests waren erfolgreich, siehe sein Ergebnis dazu:Zusammen mit deinen bisherigen Messungen ergibt sich folgendes Bild:
Prüfung Ergebnis
Ping zum SDongle Stabil
TCP-Port 502 Erreichbar
Modbus-Kommunikation Zeitweise gestörtsun2000.0 2026-11-09 18:07:09.646 info Connection to device is back to normal. sun2000.0 2026-11-09 18:06:09.645 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 18:03:09.641 info Connection to device is back to normal. sun2000.0 2026-11-09 18:02:09.640 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:59:09.636 info Connection to device is back to normal. sun2000.0 2026-11-09 17:58:09.634 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:55:11.227 warn statistics: waited 5 min for 'collected.accumulatedEnergyYield' – computed statistics may be incomplete until that state is present. sun2000.0 2026-11-09 17:55:09.634 info Connection to device is back to normal. sun2000.0 2026-11-09 17:54:09.633 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:51:20.076 info inverter 1 control: Service queue initialized sun2000.0 2026-11-09 17:51:20.063 info inverter 0 control: Service queue initialized sun2000.0 2026-11-09 17:50:29.536 warn The inverter with modbus ID 2 is no longer accessible. sun2000.0 2026-11-09 17:50:29.534 warn The inverter with modbus ID 1 is no longer accessible. sun2000.0 2026-11-09 17:50:17.503 info Identified a Huawei SUN2000-5K-MAP0 model 1001 for modbus ID 2 sun2000.0 2026-11-09 17:50:13.214 info Identified a Huawei SUN2000-10KTL-M1 model 429 for modbus ID 1 sun2000.0 2026-11-09 17:50:09.603 info starting. Version 2.7.5 in /opt/iobroker/node_modules/iobroker.sun2000, node: v22.23.3, js-controller: 7.2.5``` Und hier noch das Json{
"errno": 1,
"message": "Can't connect to device",
"modbus": {
"timeout": 30000,
"delay": 500,
"connectDelay": 2000,
"modbusAdjust": false,
"min": 0,
"max": 6000,
"maxDelay": 200,
"stat": {
"successSumCounter": 48,
"errorSumCounter": 0,
"errorRate": 0
},
"adjust": {
"successLevel": 0,
"successCounter": 3,
"errorCounter": 0,
"lastLength": 1,
"SuccessDelay": 0,
"ErrorDelay": 0
},
"currentStat": {
"success": 0,
"errors": 0,
"timeouts": 0,
"total": 0,
"errorRate": 0,
"timeoutRate": 0
}
}
} -
@bolliy
Erst mal Danke für die neue Version, hab sie natürlich gleich per npm installiert. Es sind nun deutlich weniger Fehlermeldungen im Log, und es sieht auch anders aus:Zur Vollständigkeit ChatGPT hat mir noch geraten den Ping und die Verbindung über TCP Port 502 zum Zeitpunkt des ausfalls zu prüfen. Beide sind unauffällig:
Das Ergebnis ist ziemlich eindeutig: Der SDongle akzeptiert weiterhin TCP-Verbindungen auf Port 502. Alle vollständig gezeigten Tests waren erfolgreich, siehe sein Ergebnis dazu:Zusammen mit deinen bisherigen Messungen ergibt sich folgendes Bild:
Prüfung Ergebnis
Ping zum SDongle Stabil
TCP-Port 502 Erreichbar
Modbus-Kommunikation Zeitweise gestörtsun2000.0 2026-11-09 18:07:09.646 info Connection to device is back to normal. sun2000.0 2026-11-09 18:06:09.645 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 18:03:09.641 info Connection to device is back to normal. sun2000.0 2026-11-09 18:02:09.640 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:59:09.636 info Connection to device is back to normal. sun2000.0 2026-11-09 17:58:09.634 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:55:11.227 warn statistics: waited 5 min for 'collected.accumulatedEnergyYield' – computed statistics may be incomplete until that state is present. sun2000.0 2026-11-09 17:55:09.634 info Connection to device is back to normal. sun2000.0 2026-11-09 17:54:09.633 warn Can't connect to SmartDongle. sun2000.0 2026-11-09 17:51:20.076 info inverter 1 control: Service queue initialized sun2000.0 2026-11-09 17:51:20.063 info inverter 0 control: Service queue initialized sun2000.0 2026-11-09 17:50:29.536 warn The inverter with modbus ID 2 is no longer accessible. sun2000.0 2026-11-09 17:50:29.534 warn The inverter with modbus ID 1 is no longer accessible. sun2000.0 2026-11-09 17:50:17.503 info Identified a Huawei SUN2000-5K-MAP0 model 1001 for modbus ID 2 sun2000.0 2026-11-09 17:50:13.214 info Identified a Huawei SUN2000-10KTL-M1 model 429 for modbus ID 1 sun2000.0 2026-11-09 17:50:09.603 info starting. Version 2.7.5 in /opt/iobroker/node_modules/iobroker.sun2000, node: v22.23.3, js-controller: 7.2.5``` Und hier noch das Json{
"errno": 1,
"message": "Can't connect to device",
"modbus": {
"timeout": 30000,
"delay": 500,
"connectDelay": 2000,
"modbusAdjust": false,
"min": 0,
"max": 6000,
"maxDelay": 200,
"stat": {
"successSumCounter": 48,
"errorSumCounter": 0,
"errorRate": 0
},
"adjust": {
"successLevel": 0,
"successCounter": 3,
"errorCounter": 0,
"lastLength": 1,
"SuccessDelay": 0,
"ErrorDelay": 0
},
"currentStat": {
"success": 0,
"errors": 0,
"timeouts": 0,
"total": 0,
"errorRate": 0,
"timeoutRate": 0
}
}
} -
500
Bitte in modbus timing:
timeout: 10000
delay: 0
connectDelay: 5000und dann noch mal die Fehler und sun2000.x.info.JSONhealth posten.
StephanKlar, mach ich. Hab den Fehler gerade von der Fritz Box auf dem Port mit aufzeichnen lassen und über Wireshark gecheckt ob andere darauf zugreifen. Das können wir schon mal ausschließen.
Anbei die gewünscht Nachricht. Ich lasse das Log nun mal auf Silly mitlaufen und zeichne parallel mit der Fritzbox den Verkehr auf und lasse ChatGPT analysieren und hänge den Bericht hier an, er hatte da auch schon eine Meinung dazu, vielleicht hilfts ja. Die ganzen Protokolle will ich hier glaub nicht veröffentlichen.
Ergaenzung-Fehlerbericht-sun2000-2.7.5-anonymisiert.md Fehlerbericht-sun2000-2.7.5-anonymisiert.md{ "errno": 1, "message": "Can't connect to device", "modbus": { "timeout": 10000, "delay": 0, "connectDelay": 5000, "modbusAdjust": false, "min": 0, "max": 6000, "maxDelay": 200, "stat": { "successSumCounter": 24, "errorSumCounter": 0, "errorRate": 0 }, "adjust": { "successLevel": 0, "successCounter": 4, "errorCounter": 0, "lastLength": 1, "SuccessDelay": 0, "ErrorDelay": 0 }, "currentStat": { "success": 0, "errors": 0, "timeouts": 0, "total": 0, "errorRate": 0, "timeoutRate": 0 } } } -
Ich hab mal den Codex mit über den Adapter Code laufen lassen, vielleicht hilfts ja.
-
Ich hab mal den Codex mit über den Adapter Code laufen lassen, vielleicht hilfts ja.
@Christian-Kohlöffel es kommt in einem Intervall zu fast keiner Kommunikation.
currentStat ist Null!
Das ist sehr verwunderlich. Deshalb kommt auch nur die Warnung "Can't connect to SmartDongle." ohne Fehlermeldung - da es ja keine Fehler gibt. Der Verbindsaufbau scheint unheimlich langsam zu sein.Würdest du den Log-Level mal auf silly (alles) stellen und mir einen Mitschnitt der ersten Minute machen. Dann kann ich den zeitlichen Verlauf begutachten.
-
Hier der passende Log-Level silly. Welcher auch zu der Nachricht von Codex passt.
-
@christian-kohlöffel so sieht mein sun2000.x.info.JSONhealth nach 1 Minute aus:
{
"message": "No problems detected",
"modbus": {
"timeout": 10000,
"delay": 0,
"connectDelay": 5000,
"modbusAdjust": false,
"min": 0,
"max": 6000,
"maxDelay": 200,
"stat": {
"successSumCounter": 106,
"errorSumCounter": 0,
"errorRate": 0
},
"adjust": {
"successLevel": 0,
"successCounter": 1,
"errorCounter": 0,
"lastLength": 38,
"SuccessDelay": 0,
"ErrorDelay": 0
},
"currentStat": {
"success": 106,
"errors": 0,
"timeouts": 0,
"total": 106,
"errorRate": 0,
"timeoutRate": 0
}
}
}In currentstat sieht man, dass in 1 Minute 106 Anfragen per modbus gestellt und beantwortet wurden.
-
Keine Ahnung, was bei mir los ist. Aber wenn ich was liefern kann um das Problem einzugrenzen, gerne. Nachdem ich die ganzen Extra Abfragen wie Sdongle, Batterie etc. abgeschaltet habe ist es auf jeden Falls schon mal besser geworden. Evtl. liegt es ja auch daran, dass er jetzt so wenig kommuniziert.
-
Keine Ahnung, was bei mir los ist. Aber wenn ich was liefern kann um das Problem einzugrenzen, gerne. Nachdem ich die ganzen Extra Abfragen wie Sdongle, Batterie etc. abgeschaltet habe ist es auf jeden Falls schon mal besser geworden. Evtl. liegt es ja auch daran, dass er jetzt so wenig kommuniziert.
-
Keine Ahnung, was bei mir los ist. Aber wenn ich was liefern kann um das Problem einzugrenzen, gerne. Nachdem ich die ganzen Extra Abfragen wie Sdongle, Batterie etc. abgeschaltet habe ist es auf jeden Falls schon mal besser geworden. Evtl. liegt es ja auch daran, dass er jetzt so wenig kommuniziert.
@Christian-Kohlöffel ich habe ein Ahnung woran es liegt.
sun2000.0
2026-11-09 19:55:44.106 warn The inverter with modbus ID 2 is no longer accessible.sun2000.0
2026-11-09 19:55:44.104 warn The inverter with modbus ID 1 is no longer accessible.Die beiden Zeilen zeigen an, dass die Inverter nicht mehr erreichbar sind. Es wird der deviceStatus ausgewertet. Hier scheint das Problem zu liegen.
Der Slave ist im standby der Master "shutdown". OK, dann ist die modbus Schnittstelle natürlich tot!
Ok, ich werde mir mal etwas überlegen....sun2000.0
2026-11-09 19:55:44.992 silly Fetched inverter.1.derived.deviceStatus, val=Standby: no irradiationsun2000.0
2026-11-09 19:55:44.991 silly Fetched inverter.1.deviceStatus, val=40960sun2000.0
2026-11-09 19:55:44.991 silly ### DataPolling STOP ###sun2000.0
2026-11-09 19:55:44.128 silly Fetched inverter.0.derived.dailyActiveEnergy, val=2.834sun2000.0
2026-11-09 19:55:44.127 silly Fetched inverter.0.derived.dailySolarYield, val=3.342sun2000.0
2026-11-09 19:55:44.127 silly Fetched inverter.0.derived.dailyInputYield, val=0.4203sun2000.0
2026-11-09 19:55:44.126 silly Fetched inverter.0.derived.deviceStatus, val=Shutdown: command
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden