NEWS
anonymous warning – finde das Problem nicht
-
Hello,
ich bekomme bei meinem Script die Warnung:
16:03:19.589 info javascript.0 (8354) script.js.Production.Dachfenster: Rolladen javascript.0.Velux.og_bad. Klick auf STOP 16:03:19.602 warn javascript.0 (8354) at moveVelux (script.js.Production.Dachfenster:288:9) 16:03:19.602 warn javascript.0 (8354) at Object.<anonymous> (script.js.Production.Dachfenster:390:9)an der Stelle steht
if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); // Zeile 288 }Logisch, hab ich bestimmt einen Fehler beim Anlegen des State gemacht...
createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); // Inhalt: sonoff.0.DVES_F4D7C4.POWER17Aber der type ist korrekt als string angelegt...
Folgend auch nochmal mein komplettes JavaScript:
const og_empore = "javascript.0.Velux.og_empore."; const og_balkon = "javascript.0.Velux.og_balkon."; const dg_duschefenster = "javascript.0.Velux.dg_duschefenster."; const og_bad = "javascript.0.Velux.og_bad."; const dg_treppe = "javascript.0.Velux.dg_treppe."; const dg_bett = "javascript.0.Velux.dg_bett."; const dg_bad = "javascript.0.Velux.dg_bad."; const dg_dusche = "javascript.0.Velux.dg_dusche."; const dr_o = "/vis.0/main/dg_rolladen_open.svg"; const dr_m = "/vis.0/main/dg_rolladen_middle.svg"; const dr_c = "/vis.0/main/dg_rolladen_close.svg"; const wr_o = "/vis.0/main/fenster_rolladen_open.svg"; const wr_m = "/vis.0/main/fenster_rolladen_middle.svg"; const wr_c = "/vis.0/main/fenster_rolladen_close.svg"; const w_o = "/vis.0/main/dg_window_open.svg"; const w_m = "/vis.0/main/dg_window_middle.svg"; const w_c = "/vis.0/main/dg_window_close.svg"; function createRolladen_DISABLED(name){ createState("javascript.0.Velux."+name+".position", "", { "name": "position", "role": "", "type": "number", "desc": "Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".target_position", "", { "name": "target_position", "role": "", "type": "number", "desc": "Wunsch-Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt target_position für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".runtime", 0, { "name": "runtime", "role": "", "type": "number", "desc": "Gibt in Sekunden an wie lange der Rolladen für einen kompletten Lauf benötigt ", "unit": "s", "min": 0, "max": 1000, "def": 15, "read": true, "write": true }); console.log("Objekt runtime für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".icon", "", { "name": "icon", "role": "", "type": "string", "desc": "Speichert den Icon-Namen zur Position.", "def": "open", "read": true, "write": true }); console.log("Objekt icon für Rolladen "+name+" erstellt."); // Hier muss noch geprüft werden. createState("javascript.0.Velux."+name+".deviceType", "", { "name": "deviceType", "role": "", "type": "state", "desc": "Speichert den Icon-Namen zur Position.", "def": "0", "read": true, "write": true, "states": { "0": "DachRolladen", "1": "FensterRolladen", "2": "Fenster" } }); console.log("Objekt deviceType für Device "+name+" erstellt."); createState("javascript.0.Velux."+name+".open", "", { "name": "open", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: open.", "def": "", "read": true, "write": true }); console.log("Objekt open für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); console.log("Objekt stop für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".close", "", { "name": "close", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: close.", "def": "", "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".action", "", { "name": "action", "role": "", "type": "string", "desc": "Befehl an den Rolladen.", "def": false, "read": true, "write": true }); console.log("Objekt action für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction", "", { "name": "lastaction", "role": "", "type": "string", "desc": "Letzter Befehl an den Rolladen.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction_time", "", { "name": "lastaction_time", "role": "", "type": "string", "desc": "Zeitpunkt der letzten Änderung.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction_time für Rolladen "+name+" erstellt."); } //createRolladen("og_empore"); //createRolladen("og_balkon"); //createRolladen("dg_duschefenster"); //createRolladen("og_bad"); //createRolladen("dg_treppe"); //createRolladen("dg_bett"); //createRolladen("dg_bad"); //createRolladen("dg_dusche"); /* og_empore open: sonoff.0.DVES_F4D7C4.POWER1 stop: sonoff.0.DVES_F4D7C4.POWER2 close: sonoff.0.DVES_F4D7C4.POWER3 og_balkon open: sonoff.0.DVES_F4D7C4.POWER4 stop: sonoff.0.DVES_F4D7C4.POWER5 close: sonoff.0.DVES_F4D7C4.POWER6 dg_duschefenster open: sonoff.0.DVES_F4D7C4.POWER7 stop: sonoff.0.DVES_F4D7C4.POWER8 close: sonoff.0.DVES_F4D7C4.POWER9 og_bad open: sonoff.0.DVES_F4D7C4.POWER10 stop: sonoff.0.DVES_F4D7C4.POWER11 close: sonoff.0.DVES_F4D7C4.POWER12 og_treppe open: sonoff.0.DVES_F4D7C4.POWER13 stop: sonoff.0.DVES_F4D7C4.POWER14 close: sonoff.0.DVES_F4D7C4.POWER15 dg_bett open: sonoff.0.DVES_F4D7C4.POWER16 stop: sonoff.0.DVES_F4D7C4.POWER17 close: sonoff.0.DVES_F4D7C4.POWER18 dg_bad open: sonoff.0.DVES_F4D7C4.POWER19 stop: sonoff.0.DVES_F4D7C4.POWER20 close: sonoff.0.DVES_F4D7C4.POWER21 dg_dusche open: sonoff.0.DVES_F4D7C4.POWER22 stop: sonoff.0.DVES_F4D7C4.POWER23 close: sonoff.0.DVES_F4D7C4.POWER24 */ function moveVelux(idTarget, action, target_position){ var deviceType = getState(idTarget+"deviceType").val; if(deviceType == 0){ // DachRolladen var device_open = dr_o; var device_middle = dr_m; var device_close = dr_c; } if(deviceType == 1){ // FensterRolladen var device_open = wr_o; var device_middle = wr_m; var device_close = wr_c; } if(deviceType == 2){ // Fenster var device_open = w_o; var device_middle = w_m; var device_close = w_c; } var oldPosition = getState(idTarget+"position").val; // Percent per Second berechnen var pps = 100 / getState(idTarget+"runtime").val; var seconds; // display the current time var dateTime = new Date(); var time = dateTime.toLocaleTimeString(); //console.log(time); if(target_position == ""){ // Es wurde keine Ziel-Position geliefert wir gehen einfach in den modus open/stop/close setState(idTarget+"lastaction", action); // console.log(action + " für das Target "+idTarget+action); //console.log("Aktuelle Pos.: "+getState(idTarget+"position").val); if(action == "open"){ // Berechne die Laufzeit bis zum Ziel von 0% seconds = oldPosition / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 0%."); } if(action == "close"){ // Berechne die Laufzeit bis zum Ziel von 100% seconds = (100 - oldPosition) / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 100%."); } if(action == "stop"){ seconds = 0; } }else{ // Es wurde eine Ziel-Position übergeben wir ignorieren alles andere. console.log("Ziel-Position erkannt: "+target_position); if(oldPosition >= target_position){ // Rolladen muss Richtung 0% fahren seconds = (oldPosition - target_position) / pps; var action = "open"; }else{ // Rolladen muss Richtung 100% fahren seconds = (target_position - oldPosition) / pps; var action = "close"; } } if(action == "open"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf OPEN"); setState(getState(idTarget+"open").val, "true"); } if(action == "close"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf CLOSE"); setState(getState(idTarget+"close").val, true); } if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); } seconds = Math.round(seconds); var i = 0; var newPosition = oldPosition; if(action == "open" || action == "close"){ console.log("Wir starten von Pos. " + newPosition + " und gehen in den Interval."); let interval = setInterval(function(){ console.log("Noch "+i+"/"+seconds+" Sekunden. newPosition: "+newPosition); i++; if(action == "open"){ newPosition = newPosition - pps; } if(action == "close"){ newPosition = newPosition + pps; } if(i >= seconds || getState(idTarget+"lastaction").val == "stop"){ console.log("####### ENDE #######"); console.log("newPosition für "+idTarget+"position = "+Math.round(newPosition)); if(target_position != ""){ console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); console.log("Bewegung wegen erreichter target_position gestoppt."); } clearInterval(interval); } if(newPosition >100 || newPosition < 0){ // Irgendwas ist schief gegangen, daher Intervall stoppen. clearInterval(interval); } setState(idTarget+"position", Math.round(newPosition)); if(newPosition <= 10){ setState(idTarget+"icon",device_open); } if(newPosition > 10 && newPosition < 90 ){ setState(idTarget+"icon",device_middle); } if(newPosition >= 90){ setState(idTarget+"icon",device_close); } }, 1000); } } // Beobachte alle Velux Geräte auf Wunsch-Ziel-Position-Änderungen on(og_bad+"target_position", function(obj) { var target_position = getState(og_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_bad, "", target_position); }); on(og_empore+"target_position", function(obj) { var target_position = getState(og_empore+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_empore, "", target_position); }); on(og_balkon+"target_position", function(obj) { var target_position = getState(og_balkon+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_balkon, "", target_position); }); on(dg_treppe+"target_position", function(obj) { var target_position = getState(dg_treppe+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_treppe, "", target_position); }); on(dg_bett+"target_position", function(obj) { var target_position = getState(dg_bett+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bett, "", target_position); }); on(dg_bad+"target_position", function(obj) { var target_position = getState(dg_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bad, "", target_position); }); on(dg_dusche+"target_position", function(obj) { var target_position = getState(dg_dusche+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_dusche, "", target_position); }); on(dg_duschefenster+"target_position", function(obj) { var target_position = getState(dg_duschefenster+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_duschefenster, "", target_position); }); // Beobachte alle Velux Geräte auf Wunsch-Action-Änderungen on(og_bad+"action", function(obj) { var action = getState(og_bad+"action").val; setState(og_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_bad, action,""); } }); on(og_empore+"action", function(obj) { var action = getState(og_empore+"action").val; setState(og_empore+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_empore, action,""); } }); on(og_balkon+"action", function(obj) { var action = getState(og_balkon+"action").val; setState(og_balkon+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_balkon, action,""); } }); on(dg_treppe+"action", function(obj) { var action = getState(dg_treppe+"action").val; setState(dg_treppe+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_treppe, action, ""); } }); on(dg_bett+"action", function(obj) { var action = getState(dg_bett+"action").val; setState(dg_bett+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bett, action,""); } }); on(dg_bad+"action", function(obj) { var action = getState(dg_bad+"action").val; setState(dg_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bad, action,""); } }); on(dg_dusche+"action", function(obj) { var action = getState(dg_dusche+"action").val; setState(dg_dusche+"action",""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_dusche, action,""); } }); on(dg_duschefenster+"action", function(obj) { var action = getState(dg_duschefenster+"action").val; setState(dg_duschefenster+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_duschefenster, action,""); } });Würde mich freuen, wenn jemand einen Tipp für mich hat.
VG!
-
Hello,
ich bekomme bei meinem Script die Warnung:
16:03:19.589 info javascript.0 (8354) script.js.Production.Dachfenster: Rolladen javascript.0.Velux.og_bad. Klick auf STOP 16:03:19.602 warn javascript.0 (8354) at moveVelux (script.js.Production.Dachfenster:288:9) 16:03:19.602 warn javascript.0 (8354) at Object.<anonymous> (script.js.Production.Dachfenster:390:9)an der Stelle steht
if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); // Zeile 288 }Logisch, hab ich bestimmt einen Fehler beim Anlegen des State gemacht...
createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); // Inhalt: sonoff.0.DVES_F4D7C4.POWER17Aber der type ist korrekt als string angelegt...
Folgend auch nochmal mein komplettes JavaScript:
const og_empore = "javascript.0.Velux.og_empore."; const og_balkon = "javascript.0.Velux.og_balkon."; const dg_duschefenster = "javascript.0.Velux.dg_duschefenster."; const og_bad = "javascript.0.Velux.og_bad."; const dg_treppe = "javascript.0.Velux.dg_treppe."; const dg_bett = "javascript.0.Velux.dg_bett."; const dg_bad = "javascript.0.Velux.dg_bad."; const dg_dusche = "javascript.0.Velux.dg_dusche."; const dr_o = "/vis.0/main/dg_rolladen_open.svg"; const dr_m = "/vis.0/main/dg_rolladen_middle.svg"; const dr_c = "/vis.0/main/dg_rolladen_close.svg"; const wr_o = "/vis.0/main/fenster_rolladen_open.svg"; const wr_m = "/vis.0/main/fenster_rolladen_middle.svg"; const wr_c = "/vis.0/main/fenster_rolladen_close.svg"; const w_o = "/vis.0/main/dg_window_open.svg"; const w_m = "/vis.0/main/dg_window_middle.svg"; const w_c = "/vis.0/main/dg_window_close.svg"; function createRolladen_DISABLED(name){ createState("javascript.0.Velux."+name+".position", "", { "name": "position", "role": "", "type": "number", "desc": "Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".target_position", "", { "name": "target_position", "role": "", "type": "number", "desc": "Wunsch-Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt target_position für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".runtime", 0, { "name": "runtime", "role": "", "type": "number", "desc": "Gibt in Sekunden an wie lange der Rolladen für einen kompletten Lauf benötigt ", "unit": "s", "min": 0, "max": 1000, "def": 15, "read": true, "write": true }); console.log("Objekt runtime für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".icon", "", { "name": "icon", "role": "", "type": "string", "desc": "Speichert den Icon-Namen zur Position.", "def": "open", "read": true, "write": true }); console.log("Objekt icon für Rolladen "+name+" erstellt."); // Hier muss noch geprüft werden. createState("javascript.0.Velux."+name+".deviceType", "", { "name": "deviceType", "role": "", "type": "state", "desc": "Speichert den Icon-Namen zur Position.", "def": "0", "read": true, "write": true, "states": { "0": "DachRolladen", "1": "FensterRolladen", "2": "Fenster" } }); console.log("Objekt deviceType für Device "+name+" erstellt."); createState("javascript.0.Velux."+name+".open", "", { "name": "open", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: open.", "def": "", "read": true, "write": true }); console.log("Objekt open für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); console.log("Objekt stop für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".close", "", { "name": "close", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: close.", "def": "", "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".action", "", { "name": "action", "role": "", "type": "string", "desc": "Befehl an den Rolladen.", "def": false, "read": true, "write": true }); console.log("Objekt action für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction", "", { "name": "lastaction", "role": "", "type": "string", "desc": "Letzter Befehl an den Rolladen.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction_time", "", { "name": "lastaction_time", "role": "", "type": "string", "desc": "Zeitpunkt der letzten Änderung.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction_time für Rolladen "+name+" erstellt."); } //createRolladen("og_empore"); //createRolladen("og_balkon"); //createRolladen("dg_duschefenster"); //createRolladen("og_bad"); //createRolladen("dg_treppe"); //createRolladen("dg_bett"); //createRolladen("dg_bad"); //createRolladen("dg_dusche"); /* og_empore open: sonoff.0.DVES_F4D7C4.POWER1 stop: sonoff.0.DVES_F4D7C4.POWER2 close: sonoff.0.DVES_F4D7C4.POWER3 og_balkon open: sonoff.0.DVES_F4D7C4.POWER4 stop: sonoff.0.DVES_F4D7C4.POWER5 close: sonoff.0.DVES_F4D7C4.POWER6 dg_duschefenster open: sonoff.0.DVES_F4D7C4.POWER7 stop: sonoff.0.DVES_F4D7C4.POWER8 close: sonoff.0.DVES_F4D7C4.POWER9 og_bad open: sonoff.0.DVES_F4D7C4.POWER10 stop: sonoff.0.DVES_F4D7C4.POWER11 close: sonoff.0.DVES_F4D7C4.POWER12 og_treppe open: sonoff.0.DVES_F4D7C4.POWER13 stop: sonoff.0.DVES_F4D7C4.POWER14 close: sonoff.0.DVES_F4D7C4.POWER15 dg_bett open: sonoff.0.DVES_F4D7C4.POWER16 stop: sonoff.0.DVES_F4D7C4.POWER17 close: sonoff.0.DVES_F4D7C4.POWER18 dg_bad open: sonoff.0.DVES_F4D7C4.POWER19 stop: sonoff.0.DVES_F4D7C4.POWER20 close: sonoff.0.DVES_F4D7C4.POWER21 dg_dusche open: sonoff.0.DVES_F4D7C4.POWER22 stop: sonoff.0.DVES_F4D7C4.POWER23 close: sonoff.0.DVES_F4D7C4.POWER24 */ function moveVelux(idTarget, action, target_position){ var deviceType = getState(idTarget+"deviceType").val; if(deviceType == 0){ // DachRolladen var device_open = dr_o; var device_middle = dr_m; var device_close = dr_c; } if(deviceType == 1){ // FensterRolladen var device_open = wr_o; var device_middle = wr_m; var device_close = wr_c; } if(deviceType == 2){ // Fenster var device_open = w_o; var device_middle = w_m; var device_close = w_c; } var oldPosition = getState(idTarget+"position").val; // Percent per Second berechnen var pps = 100 / getState(idTarget+"runtime").val; var seconds; // display the current time var dateTime = new Date(); var time = dateTime.toLocaleTimeString(); //console.log(time); if(target_position == ""){ // Es wurde keine Ziel-Position geliefert wir gehen einfach in den modus open/stop/close setState(idTarget+"lastaction", action); // console.log(action + " für das Target "+idTarget+action); //console.log("Aktuelle Pos.: "+getState(idTarget+"position").val); if(action == "open"){ // Berechne die Laufzeit bis zum Ziel von 0% seconds = oldPosition / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 0%."); } if(action == "close"){ // Berechne die Laufzeit bis zum Ziel von 100% seconds = (100 - oldPosition) / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 100%."); } if(action == "stop"){ seconds = 0; } }else{ // Es wurde eine Ziel-Position übergeben wir ignorieren alles andere. console.log("Ziel-Position erkannt: "+target_position); if(oldPosition >= target_position){ // Rolladen muss Richtung 0% fahren seconds = (oldPosition - target_position) / pps; var action = "open"; }else{ // Rolladen muss Richtung 100% fahren seconds = (target_position - oldPosition) / pps; var action = "close"; } } if(action == "open"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf OPEN"); setState(getState(idTarget+"open").val, "true"); } if(action == "close"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf CLOSE"); setState(getState(idTarget+"close").val, true); } if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); } seconds = Math.round(seconds); var i = 0; var newPosition = oldPosition; if(action == "open" || action == "close"){ console.log("Wir starten von Pos. " + newPosition + " und gehen in den Interval."); let interval = setInterval(function(){ console.log("Noch "+i+"/"+seconds+" Sekunden. newPosition: "+newPosition); i++; if(action == "open"){ newPosition = newPosition - pps; } if(action == "close"){ newPosition = newPosition + pps; } if(i >= seconds || getState(idTarget+"lastaction").val == "stop"){ console.log("####### ENDE #######"); console.log("newPosition für "+idTarget+"position = "+Math.round(newPosition)); if(target_position != ""){ console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); console.log("Bewegung wegen erreichter target_position gestoppt."); } clearInterval(interval); } if(newPosition >100 || newPosition < 0){ // Irgendwas ist schief gegangen, daher Intervall stoppen. clearInterval(interval); } setState(idTarget+"position", Math.round(newPosition)); if(newPosition <= 10){ setState(idTarget+"icon",device_open); } if(newPosition > 10 && newPosition < 90 ){ setState(idTarget+"icon",device_middle); } if(newPosition >= 90){ setState(idTarget+"icon",device_close); } }, 1000); } } // Beobachte alle Velux Geräte auf Wunsch-Ziel-Position-Änderungen on(og_bad+"target_position", function(obj) { var target_position = getState(og_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_bad, "", target_position); }); on(og_empore+"target_position", function(obj) { var target_position = getState(og_empore+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_empore, "", target_position); }); on(og_balkon+"target_position", function(obj) { var target_position = getState(og_balkon+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_balkon, "", target_position); }); on(dg_treppe+"target_position", function(obj) { var target_position = getState(dg_treppe+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_treppe, "", target_position); }); on(dg_bett+"target_position", function(obj) { var target_position = getState(dg_bett+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bett, "", target_position); }); on(dg_bad+"target_position", function(obj) { var target_position = getState(dg_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bad, "", target_position); }); on(dg_dusche+"target_position", function(obj) { var target_position = getState(dg_dusche+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_dusche, "", target_position); }); on(dg_duschefenster+"target_position", function(obj) { var target_position = getState(dg_duschefenster+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_duschefenster, "", target_position); }); // Beobachte alle Velux Geräte auf Wunsch-Action-Änderungen on(og_bad+"action", function(obj) { var action = getState(og_bad+"action").val; setState(og_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_bad, action,""); } }); on(og_empore+"action", function(obj) { var action = getState(og_empore+"action").val; setState(og_empore+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_empore, action,""); } }); on(og_balkon+"action", function(obj) { var action = getState(og_balkon+"action").val; setState(og_balkon+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_balkon, action,""); } }); on(dg_treppe+"action", function(obj) { var action = getState(dg_treppe+"action").val; setState(dg_treppe+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_treppe, action, ""); } }); on(dg_bett+"action", function(obj) { var action = getState(dg_bett+"action").val; setState(dg_bett+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bett, action,""); } }); on(dg_bad+"action", function(obj) { var action = getState(dg_bad+"action").val; setState(dg_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bad, action,""); } }); on(dg_dusche+"action", function(obj) { var action = getState(dg_dusche+"action").val; setState(dg_dusche+"action",""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_dusche, action,""); } }); on(dg_duschefenster+"action", function(obj) { var action = getState(dg_duschefenster+"action").val; setState(dg_duschefenster+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_duschefenster, action,""); } });Würde mich freuen, wenn jemand einen Tipp für mich hat.
VG!
@tristan sagte in anonymous warning – finde das Problem nicht:
ich bekomme bei meinem Script die Warnung:
bitte alles zeigen!
da fehlt die Zeile mit dem Error.
Die muss davor gewesen sein -
Hello,
ich bekomme bei meinem Script die Warnung:
16:03:19.589 info javascript.0 (8354) script.js.Production.Dachfenster: Rolladen javascript.0.Velux.og_bad. Klick auf STOP 16:03:19.602 warn javascript.0 (8354) at moveVelux (script.js.Production.Dachfenster:288:9) 16:03:19.602 warn javascript.0 (8354) at Object.<anonymous> (script.js.Production.Dachfenster:390:9)an der Stelle steht
if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); // Zeile 288 }Logisch, hab ich bestimmt einen Fehler beim Anlegen des State gemacht...
createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); // Inhalt: sonoff.0.DVES_F4D7C4.POWER17Aber der type ist korrekt als string angelegt...
Folgend auch nochmal mein komplettes JavaScript:
const og_empore = "javascript.0.Velux.og_empore."; const og_balkon = "javascript.0.Velux.og_balkon."; const dg_duschefenster = "javascript.0.Velux.dg_duschefenster."; const og_bad = "javascript.0.Velux.og_bad."; const dg_treppe = "javascript.0.Velux.dg_treppe."; const dg_bett = "javascript.0.Velux.dg_bett."; const dg_bad = "javascript.0.Velux.dg_bad."; const dg_dusche = "javascript.0.Velux.dg_dusche."; const dr_o = "/vis.0/main/dg_rolladen_open.svg"; const dr_m = "/vis.0/main/dg_rolladen_middle.svg"; const dr_c = "/vis.0/main/dg_rolladen_close.svg"; const wr_o = "/vis.0/main/fenster_rolladen_open.svg"; const wr_m = "/vis.0/main/fenster_rolladen_middle.svg"; const wr_c = "/vis.0/main/fenster_rolladen_close.svg"; const w_o = "/vis.0/main/dg_window_open.svg"; const w_m = "/vis.0/main/dg_window_middle.svg"; const w_c = "/vis.0/main/dg_window_close.svg"; function createRolladen_DISABLED(name){ createState("javascript.0.Velux."+name+".position", "", { "name": "position", "role": "", "type": "number", "desc": "Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".target_position", "", { "name": "target_position", "role": "", "type": "number", "desc": "Wunsch-Position des Rolladen in % (0% ist offen).", "unit": "%", "min": 0, "max": 100, "def": 0, "read": true, "write": true }); console.log("Objekt target_position für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".runtime", 0, { "name": "runtime", "role": "", "type": "number", "desc": "Gibt in Sekunden an wie lange der Rolladen für einen kompletten Lauf benötigt ", "unit": "s", "min": 0, "max": 1000, "def": 15, "read": true, "write": true }); console.log("Objekt runtime für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".icon", "", { "name": "icon", "role": "", "type": "string", "desc": "Speichert den Icon-Namen zur Position.", "def": "open", "read": true, "write": true }); console.log("Objekt icon für Rolladen "+name+" erstellt."); // Hier muss noch geprüft werden. createState("javascript.0.Velux."+name+".deviceType", "", { "name": "deviceType", "role": "", "type": "state", "desc": "Speichert den Icon-Namen zur Position.", "def": "0", "read": true, "write": true, "states": { "0": "DachRolladen", "1": "FensterRolladen", "2": "Fenster" } }); console.log("Objekt deviceType für Device "+name+" erstellt."); createState("javascript.0.Velux."+name+".open", "", { "name": "open", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: open.", "def": "", "read": true, "write": true }); console.log("Objekt open für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".stop", "", { "name": "stop", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: stop.", "def": "", "read": true, "write": true }); console.log("Objekt stop für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".close", "", { "name": "close", "role": "", "type": "string", "desc": "Speichert den Pfad zum Objekt für die Aktion: close.", "def": "", "read": true, "write": true }); console.log("Objekt close für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".action", "", { "name": "action", "role": "", "type": "string", "desc": "Befehl an den Rolladen.", "def": false, "read": true, "write": true }); console.log("Objekt action für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction", "", { "name": "lastaction", "role": "", "type": "string", "desc": "Letzter Befehl an den Rolladen.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction für Rolladen "+name+" erstellt."); createState("javascript.0.Velux."+name+".lastaction_time", "", { "name": "lastaction_time", "role": "", "type": "string", "desc": "Zeitpunkt der letzten Änderung.", "def": "", "read": true, "write": true }); console.log("Objekt lastaction_time für Rolladen "+name+" erstellt."); } //createRolladen("og_empore"); //createRolladen("og_balkon"); //createRolladen("dg_duschefenster"); //createRolladen("og_bad"); //createRolladen("dg_treppe"); //createRolladen("dg_bett"); //createRolladen("dg_bad"); //createRolladen("dg_dusche"); /* og_empore open: sonoff.0.DVES_F4D7C4.POWER1 stop: sonoff.0.DVES_F4D7C4.POWER2 close: sonoff.0.DVES_F4D7C4.POWER3 og_balkon open: sonoff.0.DVES_F4D7C4.POWER4 stop: sonoff.0.DVES_F4D7C4.POWER5 close: sonoff.0.DVES_F4D7C4.POWER6 dg_duschefenster open: sonoff.0.DVES_F4D7C4.POWER7 stop: sonoff.0.DVES_F4D7C4.POWER8 close: sonoff.0.DVES_F4D7C4.POWER9 og_bad open: sonoff.0.DVES_F4D7C4.POWER10 stop: sonoff.0.DVES_F4D7C4.POWER11 close: sonoff.0.DVES_F4D7C4.POWER12 og_treppe open: sonoff.0.DVES_F4D7C4.POWER13 stop: sonoff.0.DVES_F4D7C4.POWER14 close: sonoff.0.DVES_F4D7C4.POWER15 dg_bett open: sonoff.0.DVES_F4D7C4.POWER16 stop: sonoff.0.DVES_F4D7C4.POWER17 close: sonoff.0.DVES_F4D7C4.POWER18 dg_bad open: sonoff.0.DVES_F4D7C4.POWER19 stop: sonoff.0.DVES_F4D7C4.POWER20 close: sonoff.0.DVES_F4D7C4.POWER21 dg_dusche open: sonoff.0.DVES_F4D7C4.POWER22 stop: sonoff.0.DVES_F4D7C4.POWER23 close: sonoff.0.DVES_F4D7C4.POWER24 */ function moveVelux(idTarget, action, target_position){ var deviceType = getState(idTarget+"deviceType").val; if(deviceType == 0){ // DachRolladen var device_open = dr_o; var device_middle = dr_m; var device_close = dr_c; } if(deviceType == 1){ // FensterRolladen var device_open = wr_o; var device_middle = wr_m; var device_close = wr_c; } if(deviceType == 2){ // Fenster var device_open = w_o; var device_middle = w_m; var device_close = w_c; } var oldPosition = getState(idTarget+"position").val; // Percent per Second berechnen var pps = 100 / getState(idTarget+"runtime").val; var seconds; // display the current time var dateTime = new Date(); var time = dateTime.toLocaleTimeString(); //console.log(time); if(target_position == ""){ // Es wurde keine Ziel-Position geliefert wir gehen einfach in den modus open/stop/close setState(idTarget+"lastaction", action); // console.log(action + " für das Target "+idTarget+action); //console.log("Aktuelle Pos.: "+getState(idTarget+"position").val); if(action == "open"){ // Berechne die Laufzeit bis zum Ziel von 0% seconds = oldPosition / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 0%."); } if(action == "close"){ // Berechne die Laufzeit bis zum Ziel von 100% seconds = (100 - oldPosition) / pps; console.log("Das Ding braucht "+seconds+" Sekunden von der aktuellen Pos. bis 100%."); } if(action == "stop"){ seconds = 0; } }else{ // Es wurde eine Ziel-Position übergeben wir ignorieren alles andere. console.log("Ziel-Position erkannt: "+target_position); if(oldPosition >= target_position){ // Rolladen muss Richtung 0% fahren seconds = (oldPosition - target_position) / pps; var action = "open"; }else{ // Rolladen muss Richtung 100% fahren seconds = (target_position - oldPosition) / pps; var action = "close"; } } if(action == "open"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf OPEN"); setState(getState(idTarget+"open").val, "true"); } if(action == "close"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf CLOSE"); setState(getState(idTarget+"close").val, true); } if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); } seconds = Math.round(seconds); var i = 0; var newPosition = oldPosition; if(action == "open" || action == "close"){ console.log("Wir starten von Pos. " + newPosition + " und gehen in den Interval."); let interval = setInterval(function(){ console.log("Noch "+i+"/"+seconds+" Sekunden. newPosition: "+newPosition); i++; if(action == "open"){ newPosition = newPosition - pps; } if(action == "close"){ newPosition = newPosition + pps; } if(i >= seconds || getState(idTarget+"lastaction").val == "stop"){ console.log("####### ENDE #######"); console.log("newPosition für "+idTarget+"position = "+Math.round(newPosition)); if(target_position != ""){ console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); console.log("Bewegung wegen erreichter target_position gestoppt."); } clearInterval(interval); } if(newPosition >100 || newPosition < 0){ // Irgendwas ist schief gegangen, daher Intervall stoppen. clearInterval(interval); } setState(idTarget+"position", Math.round(newPosition)); if(newPosition <= 10){ setState(idTarget+"icon",device_open); } if(newPosition > 10 && newPosition < 90 ){ setState(idTarget+"icon",device_middle); } if(newPosition >= 90){ setState(idTarget+"icon",device_close); } }, 1000); } } // Beobachte alle Velux Geräte auf Wunsch-Ziel-Position-Änderungen on(og_bad+"target_position", function(obj) { var target_position = getState(og_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_bad, "", target_position); }); on(og_empore+"target_position", function(obj) { var target_position = getState(og_empore+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_empore, "", target_position); }); on(og_balkon+"target_position", function(obj) { var target_position = getState(og_balkon+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(og_balkon, "", target_position); }); on(dg_treppe+"target_position", function(obj) { var target_position = getState(dg_treppe+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_treppe, "", target_position); }); on(dg_bett+"target_position", function(obj) { var target_position = getState(dg_bett+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bett, "", target_position); }); on(dg_bad+"target_position", function(obj) { var target_position = getState(dg_bad+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_bad, "", target_position); }); on(dg_dusche+"target_position", function(obj) { var target_position = getState(dg_dusche+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_dusche, "", target_position); }); on(dg_duschefenster+"target_position", function(obj) { var target_position = getState(dg_duschefenster+"target_position").val; wait(500); console.log("Wir gehen in den TargetModus mit: "+target_position); moveVelux(dg_duschefenster, "", target_position); }); // Beobachte alle Velux Geräte auf Wunsch-Action-Änderungen on(og_bad+"action", function(obj) { var action = getState(og_bad+"action").val; setState(og_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_bad, action,""); } }); on(og_empore+"action", function(obj) { var action = getState(og_empore+"action").val; setState(og_empore+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_empore, action,""); } }); on(og_balkon+"action", function(obj) { var action = getState(og_balkon+"action").val; setState(og_balkon+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(og_balkon, action,""); } }); on(dg_treppe+"action", function(obj) { var action = getState(dg_treppe+"action").val; setState(dg_treppe+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_treppe, action, ""); } }); on(dg_bett+"action", function(obj) { var action = getState(dg_bett+"action").val; setState(dg_bett+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bett, action,""); } }); on(dg_bad+"action", function(obj) { var action = getState(dg_bad+"action").val; setState(dg_bad+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_bad, action,""); } }); on(dg_dusche+"action", function(obj) { var action = getState(dg_dusche+"action").val; setState(dg_dusche+"action",""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_dusche, action,""); } }); on(dg_duschefenster+"action", function(obj) { var action = getState(dg_duschefenster+"action").val; setState(dg_duschefenster+"action", ""); wait(500); if( action == "open" || action == "close" || action == "stop" ){ console.log("moveVelux mit der action: "+action); moveVelux(dg_duschefenster, action,""); } });Würde mich freuen, wenn jemand einen Tipp für mich hat.
VG!
-
@tristan sagte: setState(getState(idTarget+"stop").val, "true");
Man muss die ID übergeben, nicht den eingelesenen Wert:
setState(idTarget+"stop", "true");oder ist der Inhalt des Datenpunktes die ID?
Also die "ganze" Zeile der Warnung lautet:
16:03:19.589 info javascript.0 (8354) script.js.Production.Dachfenster: Rolladen javascript.0.Velux.og_bad. Klick auf STOP 16:03:19.602 warn javascript.0 (8354) at moveVelux (script.js.Production.Dachfenster:288:9) 16:03:19.602 warn javascript.0 (8354) at Object.<anonymous> (script.js.Production.Dachfenster:390:9)Im on() habe ich den Aufruf der function
moveVelux(og_bad, action,"");Ich übergebe die const der Ziel-ID (og_bad) mit dem String "javascript.0.Velux.og_bad." und die var "action" in der der String "stop" steht. Das dritte Argument ist hier leer.
In meiner function
function moveVelux(idTarget, action, target_position){ //... // andere Sachen //... if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); }Ausformuliert wird daraus getState("javascript.0.Velux.og_bad.stop").val was mir sonoff.0.DVES_F4D7C4.POWER11 liefert, das auf true gesetzt wird – was auch funktioniert. Aber irgendwo scheint ihm ein Format nicht zu passen, oder so.
Am Ende macht die Zeile folgendes:
setState("sonoff.0.DVES_F4D7C4.POWER11", true);VG!
-
Also die "ganze" Zeile der Warnung lautet:
16:03:19.589 info javascript.0 (8354) script.js.Production.Dachfenster: Rolladen javascript.0.Velux.og_bad. Klick auf STOP 16:03:19.602 warn javascript.0 (8354) at moveVelux (script.js.Production.Dachfenster:288:9) 16:03:19.602 warn javascript.0 (8354) at Object.<anonymous> (script.js.Production.Dachfenster:390:9)Im on() habe ich den Aufruf der function
moveVelux(og_bad, action,"");Ich übergebe die const der Ziel-ID (og_bad) mit dem String "javascript.0.Velux.og_bad." und die var "action" in der der String "stop" steht. Das dritte Argument ist hier leer.
In meiner function
function moveVelux(idTarget, action, target_position){ //... // andere Sachen //... if(action == "stop"){ setState(idTarget+"lastaction_time", time); console.log("Rolladen "+idTarget+" Klick auf STOP"); setState(getState(idTarget+"stop").val, "true"); }Ausformuliert wird daraus getState("javascript.0.Velux.og_bad.stop").val was mir sonoff.0.DVES_F4D7C4.POWER11 liefert, das auf true gesetzt wird – was auch funktioniert. Aber irgendwo scheint ihm ein Format nicht zu passen, oder so.
Am Ende macht die Zeile folgendes:
setState("sonoff.0.DVES_F4D7C4.POWER11", true);VG!
-
@tristan sagte: Ausformuliert wird daraus getState("javascript.0.Velux.og_bad.stop").val
at Object.<anonymous>
deutet darauf hin, dass der Datenpunkt "javascript.0.Velux.og_bad.stop" keinen Zustand hat.
@paul53 sagte in anonymous warning – finde das Problem nicht:
deutet darauf hin, dass der Datenpunkt "javascript.0.Velux.og_bad.stop" keinen Zustand hat oder nicht existiert.
@tristan
Deswegen wollte ich ja den vorausgehenden ERROR sehen , und nicht nur die WARN -
@paul53 sagte in anonymous warning – finde das Problem nicht:
deutet darauf hin, dass der Datenpunkt "javascript.0.Velux.og_bad.stop" keinen Zustand hat oder nicht existiert.
@tristan
Deswegen wollte ich ja den vorausgehenden ERROR sehen , und nicht nur die WARNAh! Habs gefunden! Einen vorangegangenen ERROR gab es ja nicht. Das Problem war auch nicht der Datenpunkt javascript.0.Velux.og_bad.stop – dort habe ich auch dauernd gesucht.
Mein "Problem" war der Datenpunkt des sonoff, der in og_bad.stop abgelegt war. Der war auf Logikwert gestellt und dann sollte ich natürlich auch ein true oder false senden und nicht ein "true" oder "false". :-D
setState("sonoff.0.DVES_F4D7C4.POWER11", true); // LÄUFT ohne WARNsetState("sonoff.0.DVES_F4D7C4.POWER11", "true"); // LÄUFT mit WARNDer Wald und die Bäume... :-D
VG!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login