NEWS
[gelöst] variable Rolladenposition über Vis
-
Hallo liebe Gemeinde,
ich habe folgendes Script welches funktioniert aber folgenden Fehler erzeugt.
" You are assigning a string to the state "knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position" which expects a number."var idt1 = 'javascript.2.Zeiten.Isabelle.Nachtruhe.Start'; var timer1; var Pos_Nachtruhe = 'javascript.2.Rolladen.Positionen.Isabelle.Nachtruhe'; function getTimeObject(state) { var t = state.val.split(":"); var h = parseInt(t[0]); var m = parseInt(t[1]); return {hour: h, minute: m}; } on(idt1, function(dp) { var t = getTimeObject(dp.newState); if (timer1) clearSchedule(timer1); timer1 = on({time: t}, function () { Nachtruhe (); }); }); var state = getState(idt1); var t = getTimeObject(state); if (timer1) clearSchedule(timer1); timer1 = on({time: t}, function () { Nachtruhe (); }); function Nachtruhe() { // Abbruch if (getState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/).val >= 10 || getState("knx.0.Rolladen.Rolladen-Betrieb.OG-Isabelle-Rolladen-Sperre"/*OG-Isabelle-Rolladen-Sperre*/).val === 1 || getState("javascript.2.Zeiten.Isabelle.Nachtruhe.Freigabe").val === 0) { return; } event("Isabelle...Rolladen hat Nachtruheposition durch Zeitvorgabe angefahren","Allgemein",""); setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/,getState(Pos_Nachtruhe).val); }
Über Vis gebe ich per Input Widget eine Prozentzahl vor für die Position.
Dieses Widget gibt immer einen String obwohl der Datenpunkt als Number deklariert ist.
Die Position der Rollade ist auch ein Number.Was kann ich da nun tun um die Fehlermeldung zu bereinigen?
Danke im voraus
Sebastian
-
var pos = Number(getState(Pos_Nachtruhe).val);
if (!isNaN(pos)) {
event("Isabelle...Rolladen hat Nachtruheposition durch Zeitvorgabe angefahren","Allgemein","");
setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/OG-Isabelle-Rolladen-Position/, pos);
} -
@webseb79 sagte:
Was kann ich da nun tun um die Fehlermeldung zu bereinigen?
setState("knx.0.Rolladen.Rolladen-Position.OG-Isabelle-Rolladen-Position"/*OG-Isabelle-Rolladen-Position*/, parseFloat(getState(Pos_Nachtruhe).val));
-
Ich danke euch beiden für die schnelle Hilfe.
Bei der Lösung von mbw hat er mir die Position nicht übernommen, auch bei mehrmaligem Versuch.
Bei der Lösung von Paul53 funktioniert alles.Danke