Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Javascriptadapter neustart bei Fehler trotz Catch-Block

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    828

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Javascriptadapter neustart bei Fehler trotz Catch-Block

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
heatingjavascript
3 Beiträge 2 Kommentatoren 379 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Christof.KacC Offline
    Christof.KacC Offline
    Christof.Kac
    schrieb am zuletzt editiert von
    #1

    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

    ioBroker admin 6 mit cloud in einer VM mit CCU2, Rademacher Homepilot, FS20, Homematic, Google Home

    foxriver76F 1 Antwort Letzte Antwort
    0
    • Christof.KacC Christof.Kac

      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

      foxriver76F Offline
      foxriver76F Offline
      foxriver76
      Developer
      schrieb am zuletzt editiert von foxriver76
      #2

      Edit: 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.

      Videotutorials & mehr

      Hier könnt ihr mich unterstützen.

      1 Antwort Letzte Antwort
      0
      • Christof.KacC Offline
        Christof.KacC Offline
        Christof.Kac
        schrieb am zuletzt editiert von
        #3

        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

        ioBroker admin 6 mit cloud in einer VM mit CCU2, Rademacher Homepilot, FS20, Homematic, Google Home

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        718

        Online

        32.6k

        Benutzer

        82.1k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe