NEWS
SOLVED Skript funktioniert nicht, wenn über schedule gestartet
-
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 -
@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
-
Kann es sein das Du auch "second" wenigstens auf 0 setzen musst nicht das er in der minute das Skripe jede Sekunde startet?
-
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 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
-
@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
-
Hi,
das war es, danke. Die Instanz muss anscheinend immer wieder neu erzeugt werden.
Jetzt funktioniert es.Danke für den prompten Support!
Christof