NEWS
Finde den Fehler - den ich nicht finde
-
Ich habe folgendes JavaScript laufen:
// ################################################################## // Regen ermitteln und in Wetter Regen2 schreiben // ################################################################## function regen_ermitteln() { //Definitionen var idOpenWeater = 'openweathermap.0.forecast.current.state'/*Actual state*/; var idVariable = 'hm-rega.0.32978'/*Wetter Regen*/ //Wetterdaten auslesen wetterdaten = getState(idOpenWeater).val; //finde regen oder niesel var regen = wetterdaten.lastIndexOf('Regen')+1; var niesel = wetterdaten.lastIndexOf('Niesel')+1; var Regen = wetterdaten.lastIndexOf('regen')+1; var Niesel = wetterdaten.lastIndexOf('niesel')+1; var Gewitter = wetterdaten.lastIndexOf('Gewitter')+1; // wenn gefunden dann if (regen + niesel + Regen + Niesel + Gewitter > 0) { regen = true; } //else //{regen = false;} //log(regen); //Variable setzen setState(idVariable, regen); }; //bei Skriptstart Cron Job starten schedule('0 11 * * *', function () { if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val == true) { regen_ermitteln(); }; }); //bei Skriptstart: Start //regen_ermitteln();und erhalte folgende Fehlermeldung, Warnung
2019-06-05 11:00:00.010 - warn: javascript.0 Wrong type of hm-rega.0.32978: "number". Please fix, while deprecated and will not work in next versions. 2019-06-05 11:00:00.014 - warn: javascript.0 at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20) 2019-06-05 11:00:00.014 - warn: javascript.0 at regen_ermitteln (script.js.common.Skripte_aktiviert.Regen_13:00:28:1) 2019-06-05 11:00:00.014 - warn: javascript.0 at Object. (script.js.common.Skripte_aktiviert.Regen_13:00:37:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) 2019-06-05 11:00:00.014 - warn: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 2019-06-05 11:00:00.014 - warn: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) 2019-06-05 11:00:00.014 - warn: javascript.0 at ontimeout (timers.js:498:11) 2019-06-05 11:00:00.014 - warn: javascript.0 at tryOnTimeout (timers.js:323:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Timer.listOnTimeout (timers.js:290:5)Wo ist der Fehler im Script. Ich finde ihn nicht. Es muß etwas mit der Variablendefinition zu tun haben. Aber ich weiß nicht, wie ich das ändern muß. Wer kann mir helfen?
-
Ich habe folgendes JavaScript laufen:
// ################################################################## // Regen ermitteln und in Wetter Regen2 schreiben // ################################################################## function regen_ermitteln() { //Definitionen var idOpenWeater = 'openweathermap.0.forecast.current.state'/*Actual state*/; var idVariable = 'hm-rega.0.32978'/*Wetter Regen*/ //Wetterdaten auslesen wetterdaten = getState(idOpenWeater).val; //finde regen oder niesel var regen = wetterdaten.lastIndexOf('Regen')+1; var niesel = wetterdaten.lastIndexOf('Niesel')+1; var Regen = wetterdaten.lastIndexOf('regen')+1; var Niesel = wetterdaten.lastIndexOf('niesel')+1; var Gewitter = wetterdaten.lastIndexOf('Gewitter')+1; // wenn gefunden dann if (regen + niesel + Regen + Niesel + Gewitter > 0) { regen = true; } //else //{regen = false;} //log(regen); //Variable setzen setState(idVariable, regen); }; //bei Skriptstart Cron Job starten schedule('0 11 * * *', function () { if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val == true) { regen_ermitteln(); }; }); //bei Skriptstart: Start //regen_ermitteln();und erhalte folgende Fehlermeldung, Warnung
2019-06-05 11:00:00.010 - warn: javascript.0 Wrong type of hm-rega.0.32978: "number". Please fix, while deprecated and will not work in next versions. 2019-06-05 11:00:00.014 - warn: javascript.0 at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20) 2019-06-05 11:00:00.014 - warn: javascript.0 at regen_ermitteln (script.js.common.Skripte_aktiviert.Regen_13:00:28:1) 2019-06-05 11:00:00.014 - warn: javascript.0 at Object. (script.js.common.Skripte_aktiviert.Regen_13:00:37:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) 2019-06-05 11:00:00.014 - warn: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 2019-06-05 11:00:00.014 - warn: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) 2019-06-05 11:00:00.014 - warn: javascript.0 at ontimeout (timers.js:498:11) 2019-06-05 11:00:00.014 - warn: javascript.0 at tryOnTimeout (timers.js:323:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Timer.listOnTimeout (timers.js:290:5)Wo ist der Fehler im Script. Ich finde ihn nicht. Es muß etwas mit der Variablendefinition zu tun haben. Aber ich weiß nicht, wie ich das ändern muß. Wer kann mir helfen?
@skorpil
Was ist der Datenpunkt den du mit setstate beschreibst für ein Typ? -
Ich habe folgendes JavaScript laufen:
// ################################################################## // Regen ermitteln und in Wetter Regen2 schreiben // ################################################################## function regen_ermitteln() { //Definitionen var idOpenWeater = 'openweathermap.0.forecast.current.state'/*Actual state*/; var idVariable = 'hm-rega.0.32978'/*Wetter Regen*/ //Wetterdaten auslesen wetterdaten = getState(idOpenWeater).val; //finde regen oder niesel var regen = wetterdaten.lastIndexOf('Regen')+1; var niesel = wetterdaten.lastIndexOf('Niesel')+1; var Regen = wetterdaten.lastIndexOf('regen')+1; var Niesel = wetterdaten.lastIndexOf('niesel')+1; var Gewitter = wetterdaten.lastIndexOf('Gewitter')+1; // wenn gefunden dann if (regen + niesel + Regen + Niesel + Gewitter > 0) { regen = true; } //else //{regen = false;} //log(regen); //Variable setzen setState(idVariable, regen); }; //bei Skriptstart Cron Job starten schedule('0 11 * * *', function () { if(getState('hm-rega.0.30304'/*Automower Daemon Modus*/).val == true) { regen_ermitteln(); }; }); //bei Skriptstart: Start //regen_ermitteln();und erhalte folgende Fehlermeldung, Warnung
2019-06-05 11:00:00.010 - warn: javascript.0 Wrong type of hm-rega.0.32978: "number". Please fix, while deprecated and will not work in next versions. 2019-06-05 11:00:00.014 - warn: javascript.0 at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1258:20) 2019-06-05 11:00:00.014 - warn: javascript.0 at regen_ermitteln (script.js.common.Skripte_aktiviert.Regen_13:00:28:1) 2019-06-05 11:00:00.014 - warn: javascript.0 at Object. (script.js.common.Skripte_aktiviert.Regen_13:00:37:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1181:34) 2019-06-05 11:00:00.014 - warn: javascript.0 at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10) 2019-06-05 11:00:00.014 - warn: javascript.0 at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11 2019-06-05 11:00:00.014 - warn: javascript.0 at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7) 2019-06-05 11:00:00.014 - warn: javascript.0 at ontimeout (timers.js:498:11) 2019-06-05 11:00:00.014 - warn: javascript.0 at tryOnTimeout (timers.js:323:5) 2019-06-05 11:00:00.014 - warn: javascript.0 at Timer.listOnTimeout (timers.js:290:5)Wo ist der Fehler im Script. Ich finde ihn nicht. Es muß etwas mit der Variablendefinition zu tun haben. Aber ich weiß nicht, wie ich das ändern muß. Wer kann mir helfen?
-
@skorpil Das Auskommentieren von
else regen = false;erzeugt den Fehler, weil die Variable regen doppelt verwendet wird. Es wird nicht false, sondern 0 an setState() übergeben.
-
@skorpil Das Auskommentieren von
else regen = false;erzeugt den Fehler, weil die Variable regen doppelt verwendet wird. Es wird nicht false, sondern 0 an setState() übergeben.
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