NEWS
Javascriptadapter neustart bei Fehler trotz Catch-Block
-
Hallo Zusammen,
seit längerem nutze ich das NPM modul "nefit-easy-commands" in folgender Weise um aktuelle Daten meiner Heizung abzufragen:const NefitEasyClient = require('nefit-easy-commands'); function WerteAuslesen() { // Instantiate client const client = NefitEasyClient({ serialNumber : "xx", accessKey : "yy", password : "zz", }); // Connect client and retrieve status and pressure. client.connect().then( () => { return [ client.status(), client.pressure() ]; }).spread((status, pressure) => { console.log("Temperature is set to " + status['temp setpoint'].toFixed(1) + " °C, current is " + status['in house temp'].toFixed(1) + " °C.\n" + "Outside temperature is "+status['outdoor temp'].toFixed(1)+" °C.\n" + "User Mode is "+status['user mode']+".\n" + "System pressure is " + pressure.pressure + " " + pressure.unit); }).catch((e) => { console.error('Error: ' + e); }).finally(() => { client.end(); }); } schedule({minute: [12]}, WerteAuslesen);Das Funktioniert schon seit Wochen super (mein ioBroker läuft in einem Docker Container auf meinem Synology NAS).
Seit gestern bekomme ich sporadisch (ca. einmal pro Tag) folgende Fehlermeldung:host.ioBroker 2019-06-02 12:12:01.565 info Restart adapter system.adapter.javascript.0 because enabled host.ioBroker 2019-06-02 12:12:01.565 error instance system.adapter.javascript.0 terminated with code 0 (OK) Caught 2019-06-02 12:12:01.565 error by controller[0]: errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } Caught 2019-06-02 12:12:01.565 error by controller[0]: at TLSWrap.onread (net.js:622:25) Caught 2019-06-02 12:12:01.564 error by controller[0]: { Error: read ECONNRESET javascript.0 2019-06-02 12:12:01.533 error at TLSWrap.onread (net.js:622:25) javascript.0 2019-06-02 12:12:01.533 error Error: read ECONNRESET javascript.0 2019-06-02 12:12:01.532 error uncaught exception: read ECONNRESET javascript.0 2019-06-02 12:12:01.504 info System pressure is 1.2 bar javascript.0 2019-06-02 12:12:01.504 info User Mode is manual. javascript.0 2019-06-02 12:12:01.504 info Outside temperature is 27.0 °C. javascript.0 2019-06-02 12:12:01.504 info script.js.common.Nefit: Temperature is set to 11.0 °C, current is 23.4 °C.Ich dachte bisher, dass der Catch Block (welcher auch ausgeführt wird) verhindert, dass der Fehler zum Absturz des Adapters führt.
Was kann ich tun, um den Absturz abzufangen?
Danke
Christof -
Hallo Zusammen,
seit längerem nutze ich das NPM modul "nefit-easy-commands" in folgender Weise um aktuelle Daten meiner Heizung abzufragen:const NefitEasyClient = require('nefit-easy-commands'); function WerteAuslesen() { // Instantiate client const client = NefitEasyClient({ serialNumber : "xx", accessKey : "yy", password : "zz", }); // Connect client and retrieve status and pressure. client.connect().then( () => { return [ client.status(), client.pressure() ]; }).spread((status, pressure) => { console.log("Temperature is set to " + status['temp setpoint'].toFixed(1) + " °C, current is " + status['in house temp'].toFixed(1) + " °C.\n" + "Outside temperature is "+status['outdoor temp'].toFixed(1)+" °C.\n" + "User Mode is "+status['user mode']+".\n" + "System pressure is " + pressure.pressure + " " + pressure.unit); }).catch((e) => { console.error('Error: ' + e); }).finally(() => { client.end(); }); } schedule({minute: [12]}, WerteAuslesen);Das Funktioniert schon seit Wochen super (mein ioBroker läuft in einem Docker Container auf meinem Synology NAS).
Seit gestern bekomme ich sporadisch (ca. einmal pro Tag) folgende Fehlermeldung:host.ioBroker 2019-06-02 12:12:01.565 info Restart adapter system.adapter.javascript.0 because enabled host.ioBroker 2019-06-02 12:12:01.565 error instance system.adapter.javascript.0 terminated with code 0 (OK) Caught 2019-06-02 12:12:01.565 error by controller[0]: errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } Caught 2019-06-02 12:12:01.565 error by controller[0]: at TLSWrap.onread (net.js:622:25) Caught 2019-06-02 12:12:01.564 error by controller[0]: { Error: read ECONNRESET javascript.0 2019-06-02 12:12:01.533 error at TLSWrap.onread (net.js:622:25) javascript.0 2019-06-02 12:12:01.533 error Error: read ECONNRESET javascript.0 2019-06-02 12:12:01.532 error uncaught exception: read ECONNRESET javascript.0 2019-06-02 12:12:01.504 info System pressure is 1.2 bar javascript.0 2019-06-02 12:12:01.504 info User Mode is manual. javascript.0 2019-06-02 12:12:01.504 info Outside temperature is 27.0 °C. javascript.0 2019-06-02 12:12:01.504 info script.js.common.Nefit: Temperature is set to 11.0 °C, current is 23.4 °C.Ich dachte bisher, dass der Catch Block (welcher auch ausgeführt wird) verhindert, dass der Fehler zum Absturz des Adapters führt.
Was kann ich tun, um den Absturz abzufangen?
Danke
ChristofEdit: Warum machst du es nicht wie im example ist doch genau das was du brauchst? https://github.com/robertklep/nefit-easy-commands/blob/master/example/status.js
Du musst Promise all verwenden wie im Beispiel sonst arbeiten die Funktionen asynchron und der Fehler fliegt auch asynchron.
-
Hi,
ich bin mir sicher, das Beispiel von dieser Homepage genommen zu haben - da ist ja auch das Paket her.
Egal, Danke für den Tip.
Jetzt lass ich das mal laufen und bin schon gespannt, ob es robust läuft.Bis dann
Christof
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