NEWS
Modbus-Adapter -> Fronius-WR Schreibfehler
-
Hi,
zum zweiten Mal habe ich bei meiner Verbindung zum Fronius ein Problem gehabt, dass unangenehm ist :(.
Adapterversion: v7.0.4Zur Erklärung: Ich lade meine Batterie zum Zeitpunkt des günstigen Preises auf. Dafür habe ich ein Skript geschrieben, dass das macht, und es funktioniert auch, ausser es kommt zu Verbindungsproblemen.
Dafür wird minütlich kontrolliert, ob eine Änderung notwendig ist.Mein Log für ein normales Setting:
2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T02:00:00+02:00","endTime":"2025-10-16T03:00:00+02:00","price":9.69,"unit":"ct/kWh","isActive":true,"value":3500,"isDirty":false,"dateKey":"2025-10-16 02:00:00","day":"2025-10-16","hour":2,"preisBrutto":11.627999999999998,"preisGesamt":13.067999999999998} 2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 0 - Value = 100 2025-10-16 02:00:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Actual SOC (41) less than Min-SOC (70) or calcActive == false): start Charging 2025-10-16 02:00:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Activating with Value: 34.18 % / 3500 W 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T02:00:00+02:00","endTime":"2025-10-16T03:00:00+02:00","price":9.69,"unit":"ct/kWh","isActive":true,"value":3500,"isDirty":false,"dateKey":"2025-10-16 02:00:00","day":"2025-10-16","hour":2,"preisBrutto":11.627999999999998,"preisGesamt":13.067999999999998} 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18Im ersten Block wird erkannt, dass eine Ladung zu erfolgen hat und die Daten werden geschrieben, erkennbar, dass die Daten im 2. Block eine Minute später gesetzt sind.
Dann kommt der Fehler (warum auch immer):
Der Wert, den ich schreiben will, ist nicht illegal, sonst würde es nie funktionieren2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18 2025-10-16 03:00:00.008 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Changing Value to: 9.77 % / 1000 W 2025-10-16 03:00:00.053 - warn: modbus.0 (29938) Can not write value 977: Error: ILLEGAL DATA VALUE 2025-10-16 03:00:00.063 - info: modbus.0 (29938) Disconnected from slave 192.168.1.102 2025-10-16 03:00:00.085 - error: modbus.0 (29938) Socket Error Error [ERR_STREAM_WRITE_AFTER_END]: write after end 2025-10-16 03:00:00.085 - error: modbus.0 (29938) Client in error state. 2025-10-16 03:00:00.085 - warn: modbus.0 (29938) On error: {"code":"ERR_STREAM_WRITE_AFTER_END"} 2025-10-16 03:00:01.067 - info: modbus.0 (29938) Connected to slave 192.168.1.102 2025-10-16 03:00:01.085 - info: modbus.0 (29938) Disconnected from slave 192.168.1.102 2025-10-16 03:00:31.088 - info: modbus.0 (29938) Connected to slave 192.168.1.102 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18 2025-10-16 03:01:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Changing Value to: 9.77 % / 1000 W 2025-10-16 03:02:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:02:00.007 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:02:00.007 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18In Block 1 wird erkannt, dass die Ladeleistung geändert werden soll und beim Schreiben auf den WR kommt der Fehler. Die Daten werden auf die Datenpunkte geschrieben, das kann man nur sehen, wenn man davor sitzt, nicht im Log. Der Fehler tritt sporadisch auf, wie geschrieben, sehe ich es jetzt erst das zweite Mal.
Nach dem Verbindungs-Fehler werden die alten Daten aus dem Fronius wieder auf die Datenpunkte geschrieben, zu sehen im 2. Block. Und wieder versuche ich die Daten zu ändern, aber sie werden nicht an den Fronius übertragen und es kommt auch keine Fehlermeldung mehr.Das funktioniert erst wieder wenn ich den Adapter neu starte.
Ob da mit diesen sproadisch auftretenden Fehler eine Analyse für den Adapter gemacht werden kann,weiss ich nicht. Aber ich hätte eine Lösung für mein Skript.
Ich prüfe, jedesmal beim Start des Cron-Jobs, ob die Daten gleich sind, wie beim letzten Write sein sollten. Passt das nicht, starte ich den Adapter einfach neu. Innerhalb der Minute wird er sich schon erfangen haben.
Dafür bräuchte ich Hilfe:
Wie kann ich abfragen, ob der Adapter gestartet und ready ist (wäre sowieso interessant)?
Wie kann ich den Adapter restarten? -
Hi,
zum zweiten Mal habe ich bei meiner Verbindung zum Fronius ein Problem gehabt, dass unangenehm ist :(.
Adapterversion: v7.0.4Zur Erklärung: Ich lade meine Batterie zum Zeitpunkt des günstigen Preises auf. Dafür habe ich ein Skript geschrieben, dass das macht, und es funktioniert auch, ausser es kommt zu Verbindungsproblemen.
Dafür wird minütlich kontrolliert, ob eine Änderung notwendig ist.Mein Log für ein normales Setting:
2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T02:00:00+02:00","endTime":"2025-10-16T03:00:00+02:00","price":9.69,"unit":"ct/kWh","isActive":true,"value":3500,"isDirty":false,"dateKey":"2025-10-16 02:00:00","day":"2025-10-16","hour":2,"preisBrutto":11.627999999999998,"preisGesamt":13.067999999999998} 2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 02:00:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 0 - Value = 100 2025-10-16 02:00:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Actual SOC (41) less than Min-SOC (70) or calcActive == false): start Charging 2025-10-16 02:00:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Activating with Value: 34.18 % / 3500 W 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T02:00:00+02:00","endTime":"2025-10-16T03:00:00+02:00","price":9.69,"unit":"ct/kWh","isActive":true,"value":3500,"isDirty":false,"dateKey":"2025-10-16 02:00:00","day":"2025-10-16","hour":2,"preisBrutto":11.627999999999998,"preisGesamt":13.067999999999998} 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 02:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18Im ersten Block wird erkannt, dass eine Ladung zu erfolgen hat und die Daten werden geschrieben, erkennbar, dass die Daten im 2. Block eine Minute später gesetzt sind.
Dann kommt der Fehler (warum auch immer):
Der Wert, den ich schreiben will, ist nicht illegal, sonst würde es nie funktionieren2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:00:00.008 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18 2025-10-16 03:00:00.008 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Changing Value to: 9.77 % / 1000 W 2025-10-16 03:00:00.053 - warn: modbus.0 (29938) Can not write value 977: Error: ILLEGAL DATA VALUE 2025-10-16 03:00:00.063 - info: modbus.0 (29938) Disconnected from slave 192.168.1.102 2025-10-16 03:00:00.085 - error: modbus.0 (29938) Socket Error Error [ERR_STREAM_WRITE_AFTER_END]: write after end 2025-10-16 03:00:00.085 - error: modbus.0 (29938) Client in error state. 2025-10-16 03:00:00.085 - warn: modbus.0 (29938) On error: {"code":"ERR_STREAM_WRITE_AFTER_END"} 2025-10-16 03:00:01.067 - info: modbus.0 (29938) Connected to slave 192.168.1.102 2025-10-16 03:00:01.085 - info: modbus.0 (29938) Disconnected from slave 192.168.1.102 2025-10-16 03:00:31.088 - info: modbus.0 (29938) Connected to slave 192.168.1.102 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:01:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18 2025-10-16 03:01:00.006 - info: javascript.0 (318) script.js.Batterie_Load_Control: $BLC: Changing Value to: 9.77 % / 1000 W 2025-10-16 03:02:00.006 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Antwort: {"calculationConfiguration":{"calculationType":2,"socMin":70,"socMax":80,"calcActive":false,"loadStepping":true},"startTime":"2025-10-16T03:00:00+02:00","endTime":"2025-10-16T04:00:00+02:00","price":9.97,"unit":"ct/kWh","isActive":true,"value":1000,"isDirty":false,"dateKey":"2025-10-16 03:00:00","day":"2025-10-16","hour":3,"preisBrutto":11.964,"preisGesamt":13.404} 2025-10-16 03:02:00.007 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Controlling! 2025-10-16 03:02:00.007 - debug: javascript.0 (318) script.js.Batterie_Load_Control: BLC: Current values: Control = 3 - Value = -34.18In Block 1 wird erkannt, dass die Ladeleistung geändert werden soll und beim Schreiben auf den WR kommt der Fehler. Die Daten werden auf die Datenpunkte geschrieben, das kann man nur sehen, wenn man davor sitzt, nicht im Log. Der Fehler tritt sporadisch auf, wie geschrieben, sehe ich es jetzt erst das zweite Mal.
Nach dem Verbindungs-Fehler werden die alten Daten aus dem Fronius wieder auf die Datenpunkte geschrieben, zu sehen im 2. Block. Und wieder versuche ich die Daten zu ändern, aber sie werden nicht an den Fronius übertragen und es kommt auch keine Fehlermeldung mehr.Das funktioniert erst wieder wenn ich den Adapter neu starte.
Ob da mit diesen sproadisch auftretenden Fehler eine Analyse für den Adapter gemacht werden kann,weiss ich nicht. Aber ich hätte eine Lösung für mein Skript.
Ich prüfe, jedesmal beim Start des Cron-Jobs, ob die Daten gleich sind, wie beim letzten Write sein sollten. Passt das nicht, starte ich den Adapter einfach neu. Innerhalb der Minute wird er sich schon erfangen haben.
Dafür bräuchte ich Hilfe:
Wie kann ich abfragen, ob der Adapter gestartet und ready ist (wäre sowieso interessant)?
Wie kann ich den Adapter restarten?Bitte das Template nicht löschen sondern ausfüllen:
Bitte in der nachfolgenden Übersicht die mit ... bzw x gekennzeichneten Felder ausfüllen und im Anschluss an die Tabelle auf Linux Systemen den Output des Commands iob diag einfügen.
Hinweis: Das Eröffnen eines Issues hier ersetzt NICHT das Anlegen eine Issues im Repository des Adapters. Fehlerbehebungen werden ausschließlich über Issues getrackt.
DANKE
Bitte ausfüllen:
- Adaptername: ...
- Link zu Adapterrepository: www.github.com...
- Adapterversion: ...
- js-controller Version: ...
- Admin Version: ...
- Hardwaresystem: NUC, Pi4 ...
- Arbeitsspeicher: ...xGB
- Festplattenart: SD-Karte, SSD, HDD, ...
- Betriebssystem: ...
- Nodejs-Version: ...
- NPM-Version: ...
- Installationsart: Skript oder Manuell ?
- Image, Docker genutzt: Ja - Nein
- Ort, Name der Imagedatei: ...
Linux User bitte hier den Output von iob diag einfügen.Bitte in der nachfolgenden Übersicht die mit ... bzw x gekennzeichneten Felder ausfüllen und im Anschluss an die Tabelle auf Linux Systemen den Output des Commands iob diag einfügen.
Hinweis: Das Eröffnen eines Issues hier ersetzt NICHT das Anlegen eine Issues im Repository des Adapters. Fehlerbehebungen werden ausschließlich über Issues getrackt.
DANKE
-
@mcm1957 sagte in Modbus-Adapter -> Fronius-WR Schreibfehler:
Bitte ausfüllen:
Adaptername: ModBus
Link zu Adapterrepository: www.github.com...
Adapterversion: 7.0.4
js-controller Version: 8.9.2
Admin Version: 7.7.3
Hardwaresystem: MinisForum, Proxmox, LXC
Arbeitsspeicher: 32GB Gesamt, 4GB ioBroker
Festplattenart: SSD
Betriebssystem: Proxmox, LXC
Nodejs-Version: 20.19.1
NPM-Version: 10.8.2
Installationsart: Skript
Image, Docker genutzt: Nein
Ort, Name der Imagedatei: ...Bezüglich Adapterrepository-Link: Keine Ahnung
Durch das Adapter-Update braucht man keinen Link zum Repository (ist ja auch verpönt und nur auf Zuruf davon zu installieren). Dadurch gibt es keine Angabe zum Repository, nicht ein mal in der Hilfe dazu.Aber ich sehe gerade, dass ich auf eine Version 7.0.5 updaten kann, was aber mit meinem Problem laut Änderungslog nichts zu tun hat.
Es ist nur mein DEV-IoBroker zum testen. Aber ich habe gesehen, dass ich mit den BS-Updates etwas zurückgeblieben bin.
Bevor ich auf mein Produktiv-System wechsle, würde ich gerne die Möglichkeit mit dem Restart ausprobieren.Und Sorry, ich wusste nicht, dass ich so ein Template vielleicht schon zu Anfang hätte ausfüllen müssen.