Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Skript funktioniert nicht, wenn über schedule gestartet

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SOLVED Skript funktioniert nicht, wenn über schedule gestartet

    This topic has been deleted. Only users with topic management privileges can see it.
    • Christof.Kac
      Christof.Kac last edited by

      Hi,
      ich habe eine Heizung von Nefit (Bosch ableger), welche über das Internet gesteuert werden kann.
      Es gibt dazu bereits eine npm library "nefit-easy-commands" welche ich dafür erfolgreich nutze.
      Das Skript sieht so aus:

      const NefitEasyClient = require('nefit-easy-commands');
      // Client instanziieren
      const client = NefitEasyClient({
        serialNumber : "1234",
        accessKey    : "ABCD",
        password     : "EFGH",
      }); 
      function HollandWerteAuslesen()
      {
          log("Holland Heizung abfragen");
          // 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);
                  
              setState("HeizungHolland.TemperaturIst", status['in house temp'].toFixed(1));
              setState("HeizungHolland.TemperaturSoll", status['temp setpoint'].toFixed(1));
              setState("HeizungHolland.Aussentemperatur", status['outdoor temp'].toFixed(1));
              setState("HeizungHolland.Druck", pressure.pressure);
              var today = new Date();
              setState("HeizungHolland.UpdateZeit", today.getFullYear()+"-"+(today.getMonth()+1)+"-"+today.getDate()+" "+today.getHours()+":"+today.getMinutes());        
          }).catch((e) => 
          {
              console.error('Error: ' + e);
          }).finally(() => 
          {
              client.end();
          });
      }
      

      Wenn ich dieses Skript manuell ausführe, bekomme ich die gewünschte Info:

      11:50:30.569	[info]	javascript.0 script.js.common.Nefit: Holland Heizung abfragen
      11:50:31.692	[info]	javascript.0 script.js.common.Nefit: Temperature is set to 21.0 °C, current is 21.2 °C. Outside temperature is 7.0 °C. User Mode is clock. System pressure is 1.4 bar
      
      

      Wenn ich das Skript aber über "schedule" automatisch starten möchte:

      schedule({minute: [0, 30, 38, 45]}, HollandWerteAuslesen);
      

      bekomme ich einen timeout fehler auf der library :

      javascript.0	2019-02-10 11:38:38.635	error	script.js.common.Nefit: Error: Error: MAX_RETRIES_REACHED
      avascript.0	2019-02-10 11:38:00.578	info	script.js.common.Nefit: Holland Heizung abfragen
      

      Die npm library nefit-easy-commands habe ich bei den Einstellungen des JavaScript adapters eingetragen.

      Woran kann es liegen, dass eine "normale" Ausführung des Skriptes funktioniert, über "schedule" aber nicht?

      Danke
      Christof

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @Christof.Kac last edited by

        @Christof-Kac Kann man eine Client instanz mehrfach connecten oder brauchst immer ne neue? Nicht das es daran liegt. Ziehe mal das init von client mit in die Funktion

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Kann es sein das Du auch "second" wenigstens auf 0 setzen musst nicht das er in der minute das Skripe jede Sekunde startet?

          Peoples 1 Reply Last reply Reply Quote 0
          • Christof.Kac
            Christof.Kac last edited by

            Leider nicht, ich sehe am Log, dass das Skript wirklich nur zu den gewünschten Zeiten gestartet wird.
            Der Hund muss irgendwo anders verbuddelt sein...

            Danke
            Christof

            apollon77 1 Reply Last reply Reply Quote 0
            • Peoples
              Peoples @apollon77 last edited by

              @apollon77 said in Skript funktioniert nicht, wenn über schedule gestartet:

              Kann es sein das Du auch "second" wenigstens auf 0 setzen musst nicht das er in der minute das Skripe jede Sekunde startet?

              War bei mir auch so ohne Sekunden Angaben hatte ich beim Backitup Script immer Schwierigkeiten

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @Christof.Kac last edited by

                @Christof-Kac Kann man eine Client instanz mehrfach connecten oder brauchst immer ne neue? Nicht das es daran liegt. Ziehe mal das init von client mit in die Funktion

                1 Reply Last reply Reply Quote 0
                • Christof.Kac
                  Christof.Kac last edited by

                  Hi,
                  das war es, danke. Die Instanz muss anscheinend immer wieder neu erzeugt werden.
                  Jetzt funktioniert es.

                  Danke für den prompten Support!
                  Christof

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  899
                  Online

                  31.8k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  3
                  6
                  337
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo