NEWS
Bei Filmstart Tradfri runterdimmer
-
Wenn man jetzt noch die Dimmgeschwindigkeit regeln könnte, wäre es absolut perfekt. `
Steht auf der TODO-Liste, kommt in Kürze:transitionTime: 5, // TODO: <- make this configurable
-
Geht jetzt auch (teilweise): http://forum.iobroker.net/viewtopic.php?p=86551#p86551
Nur scheint on/off den Wert zu ignorieren. Du könntest jedoch schummeln:
an: transitionTime => Wunschdauer, Brightness => 254
aus: transitionTime => Wunschdauer X, Brightness => 1. nach X sekunden: on/off => false
-
Ich habe heute Mittag das Skript nochmal getestet.
Die Lampe schaltet sich nach dem Film ein obwohl der Status vorher aus war.
Wie genau muss das Skript denn mit der transitiontime aussehen?
Ich weiß leider nicht wo ich das einbauen muss.
Danke fürs helfen und dafür das du die transitiontime mit einprogrammiert hast.
-
Die Lampe schaltet sich nach dem Film ein obwohl der Status vorher aus war. `
Habe die Logausgabe mal ergänzt, was zeigt der Log an bei folgendem Skript?! ````
var idStatus = "tradfri.0.L-65537.lightbulb.state";
! var statusBeiStart;
! on("kodi.0.state", function (obj) {
log("State geändert: " + obj.state.val);
switch (obj.state.val) {
case "play":
statusBeiStart = getState(idStatus).val;
log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus"));
setState(idStatus, false);
break;
! case "pause":
case "stop":
log("Video läuft nicht mehr, stelle Status <" + (statusBeiStart ? "an" : "aus") + "> wieder her...");
setState(idStatus, statusBeiStart);
break;
}
});Ein Versuch mit TransitionTime könnte wie folgt aussehen (ungetestet): >! ```` var idStatus = "tradfri.0.L-65537.lightbulb.state"; var idTime = "tradfri.0.L-65537.lightbulb.transitionDuration"; var idBrightness = "tradfri.0.L-65537.lightbulb.brightness"; >! var transitionTime = 2; // Zeit in Sekunden >! var statusBeiStart; >! function an() { setState(idTime, transitionTime); // Dimm-Dauer festlegen setState(idBrightness, 254); // maximale Helligkeit ansteuern } function aus() { setState(idTime, transitionTime); // Dimm-Dauer festlegen setState(idBrightness, 1); // minimale Helligkeit ansteuern setStateDelayed(idStatus, false, transitionTime*1000) // <transitiontime>sek später komplett abschalten } >! on("kodi.0.state", function (obj) { log("State geändert: " + obj.state.val); switch (obj.state.val) { case "play": statusBeiStart = getState(idStatus).val; log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus")); if (statusBeiStart) aus(); break; >! case "pause": case "stop": log("Video läuft nicht mehr, stelle Status <" + (statusBeiStart ? "an" : "aus") + "> wieder her..."); >! if (statusBeiStart) an(); else aus(); >! break; } });</transitiontime>
Edit: Fehlerkorrektur
-
Und..erfolgreich getestet??
-
Ich werde es heute Abend mal testen.
-
Funktioniert!
Ich musste nur von transitionTime auf transitionDuration ändern.
Dies wurde mal im Adapter geändert.
Was man vielleicht noch ändern könnte, wenn die Lampen nicht eingeschaltet sind und man einen Film startet, dann schalten die Lampen einmal ein und dann direkt wieder aus.
-
Was man vielleicht noch ändern könnte, wenn die Lampen nicht eingeschaltet sind und man einen Film startet, dann schalten die Lampen einmal ein und dann direkt wieder aus. `
Macht Sinn. Dazu muss dieser Abschnitt angepasst werden:case "play": statusBeiStart = getState(idStatus).val; log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus")); aus(); break;
zu
case "play": statusBeiStart = getState(idStatus).val; log("Video läuft, schalte Licht aus... Licht war " + (statusBeiStart ? "an" : "aus")); if (statusBeiStart) aus(); break;
-
Das sieht sehr gut aus!!!
Vielen Dank!
edit: Leider etwas zu früh gefreut. Die Lampe schaltet sich bei Filmende (Stop, Pause) wieder kurz ein und danach wieder aus. (Lampe war aus)
-
edit: Leider etwas zu früh gefreut. Die Lampe schaltet sich bei Filmende (Stop, Pause) wieder kurz ein und danach wieder aus. (Lampe war aus) `
Entferne diese Zeile (recht am Ende):else aus();