NEWS
Timer mit Input / Zeitsteuerung Blockly
-
ich habe dein blockly heute nochmal probiert komme da aber auf keinen grünen zweig ...
hast du das mal getestet ? ich bekomme jede mange rote errorsvielleicht kannst du mir ja nochmal auf die Sprünge helfen !
-
@snupy sagte: hast du das mal getestet ?
Ja, gerade: Habe Startzeit auf "2021-04-15 17:03:00" gesetzt und dann das Skript gestartet, gleich nach 17:03:00 bei laufendem Skript die Startzeit auf 17:04:00 geändert.
EDIT: Später auf Zeiten "17:21:00" und "17:23:00" (ohne Datum) geändert: Funktioniert.
-
-
@snupy sagte: irgendwo muß ich da ja was falsch machen
Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
Welche zusätzlichen Informationen liefert der Tab "Log"?@snupy sagte in Timer mit Input / Zeitsteuerung Blockly:
habe extra nochmal nen neuen Datenpunkt unter 0_userdata.0.Timer_Input.Timer_Input_Startzeit angelegt
Weshalb? Der von mir angelegte DP entsprach genau Deiner Struktur (Nur der Name war anders).
-
habe zwischenzeitlich mal die Endzeit mit eingefügt ...
wo finde ich den Tab "Log" der zusätzliche Informationen liefert ?.... du meinst den hier ....
var startzeit, endzeit, schedule1, schedule2; // Beschreibe diese Funktion … function start() { startzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Startzeit").val).getTime(); schedule1 = schedule((getDateObject(startzeit).getMinutes()).trim() + ' ' + getDateObject(startzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { console.log('Aktion zur Startzeit'); setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, true); }); } // Beschreibe diese Funktion … function start2() { endzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Endzeit").val).getTime(); schedule2 = schedule((getDateObject(endzeit).getMinutes()).trim() + ' ' + getDateObject(endzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { console.log('Aktion zur Endzeit'); setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, false); }); } start(); on({id: '0_userdata.0.Timer_Input.Timer_Input_Startzeit', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule1) {clearSchedule(schedule1); schedule1 = null;}})(); start(); }); start2(); on({id: '0_userdata.0.Timer_Input.Timer_Input_Endzeit', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule2) {clearSchedule(schedule2); schedule2 = null;}})(); start2(); });
-
@snupy
Bei mir enthält die angemeckerte Zeile 6 vor .trim() noch ein .toString()schedule1 = schedule((getDateObject(startzeit).getMinutes()).toString().trim() + ' ' + getDateObject(startzeit).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
Welche Version des javascript-Adapters? Meine: 5.0.5
-
habe zwei raspis einen 3+ als Backup und einen 4'er ... auf beiden läuft / lief js 4.8.4
auf dem 4'er habe ich gerade js geupdatet auf 5.0.14 ... ergebniss ... nüscht ... geht nicht -
so extra zurück auf 5.0.5 ... raspi neustart ... nüscht
javascript.0 2021-04-15 23:17:38.889 error (2508) at Script.runInContext (vm.js:131:20)
javascript.0 2021-04-15 23:17:38.888 error (2508) at script.js.Timer_Test:39:3
javascript.0 2021-04-15 23:17:38.888 error (2508) at script.js.Timer_Test:22:1
javascript.0 2021-04-15 23:17:38.888 error (2508) at start (script.js.Timer_Test:6:64)
javascript.0 2021-04-15 23:17:38.887 error (2508) script.js.Timer_Test: TypeError: getDateObject(...).getMinutes(...).trim is not a functionvar startzeit, endzeit, schedule1, schedule2; // Beschreibe diese Funktion … function start() { startzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Startzeit").val).getTime(); schedule1 = schedule((getDateObject(startzeit).getMinutes()).trim() + ' ' + getDateObject(startzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { console.log('Aktion zur Startzeit'); setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, true); }); } // Beschreibe diese Funktion … function start2() { endzeit = getDateObject(getState("0_userdata.0.Timer_Input.Timer_Input_Endzeit").val).getTime(); schedule2 = schedule((getDateObject(endzeit).getMinutes()).trim() + ' ' + getDateObject(endzeit).getHours().trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { console.log('Aktion zur Endzeit'); setState("sonoff.0.DVES_D3CA1E.POWER"/*DVES_D3CA1E POWER*/, false); }); } start(); on({id: '0_userdata.0.Timer_Input.Timer_Input_Startzeit', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule1) {clearSchedule(schedule1); schedule1 = null;}})(); start(); }); start2(); on({id: '0_userdata.0.Timer_Input.Timer_Input_Endzeit', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; (function () {if (schedule2) {clearSchedule(schedule2); schedule2 = null;}})(); start2(); });
-
@snupy
Vielleicht muss der Block "CRON" gelöscht und neu eingefügt werden? -