NEWS
[gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang)
-
@Benni-Wartmann Es werden keine Datenpunkte gezeigt. Klappe bitte die 4 Device-Ordner auf, so dass man die Datenpunkte (Typ: state) sieht.
-
Ist es das richtige?
-
@Benni-Wartmann sagte:
Ist es das richtige?
Ja, die (hoffentlich richtigen) IDs habe ich im Skript oben eingetragen.
-
Vielen dank, es klappt.
-
@paul53 wäre es mit dem Script möglich, dass ein PopUp aufm TV eingeblendet wird mit dem Text "Das Licht ist jetzt eingeschaltet"?
-
@Benni-Wartmann:
dass ein PopUp aufm TV eingeblendet wird
Füge es mal so ein:
setState(idLicht3, true); setState('lgtv.0.states.popup', 'Das Licht ist jetzt eingeschaltet'); }
-
Macht mein Zuhause auch Ich habs so gelöst.
Und AstroDay wird über ein separates kleines Skript gesteuert, da ich den Zustand für mehrere Skripts (Rolladen, Bewegungsmelder) steuere und einheitlich haben will. -
@paul53 said in Licht einschalten, wenn TV ist (ab Sonnenuntergang bis Sonnenaufgang):
}
Vielen dank. Gibt es eine möglichkeit, dass ich das Skript jetzt testen kann, wenn kein Sonnenuntergang ist?
-
@Benni-Wartmann sagte:
das Skript jetzt testen kann, wenn kein Sonnenuntergang ist?
Nicht, ohne das Skript zu verändern. Wenn Du am Tage testen willst, wie es auf TV ein reagiert, dann lass not (Ausrufezeichen) weg
if(tv && isAstroDay()) lichtEin();
Nach dem Testen not (Ausrufezeichen) vor isAstroDay() wieder einfügen !!
-
@paul53 said in Licht einschalten, wenn TV ist (ab Sonnenuntergang bis Sonnenaufgang):
if(tv && isAstroDay()) lichtEin();
Vielen dank. Es klappt alles perfekt
-
@Benni-Wartmann sagte:
Es klappt alles perfekt
Dann markiere bitte das Thema als [gelöst].
-
@paul53 wie macht man das als gelöst makieren? Ich finde das nicht
-
@Benni-Wartmann In der Überschrift [gelöst] davor setzen.
-
Hey!
Ich weiß, dass ich das hier schon als gelöst markiert habe. Aber ist es möglich durch das Script, dass mein Licht ausgeht, soweit mein TV aus ist oder die Sonne aufgeht? Und würde das dann auch mit einem Popup gehen auf dem TV "Das Licht ist jetzt ausgeschaltet"(bei Sonnenaufgang) -
@Benni-Wartmann sagte:
dass mein Licht ausgeht, soweit mein TV aus ist oder die Sonne aufgeht?
const idTV = 'lgtv.0.states.on'; const idLicht1 = 'wifilight.0.192_168_178_90.on'; const idLicht2 = 'wifilight.0.192_168_178_93.on'; const idLicht3 = 'wifilight.0.192_168_178_95.on'; var tv = getState(idTV).val; function licht(ein) { setState(idLicht1, ein); setState(idLicht2, ein); setState(idLicht3, ein); var txt = 'ausgeschaltet'; if(ein) txt = 'eingeschaltet'; if(tv) setState('lgtv.0.states.popup', 'Das Licht ist jetzt ' + txt); } // Skriptstart if(!isAstroDay() && tv) licht(true); else licht(false); on(idTV, function(dp) { // Triggert bei Wertänderung tv = dp.state.val; if(tv && !isAstroDay()) licht(true); else licht(false); }); schedule({astro: "sunset"}, function () { if(tv) licht(true); }); schedule({astro: "sunrise"}, function () { licht(false); });
-
@paul53 Ich danke dir
-
@paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):
const idTV = 'lgtv.0.states.on'; const idLicht1 = 'wifilight.0.192_168_178_90.on'; const idLicht2 = 'wifilight.0.192_168_178_93.on'; const idLicht3 = 'wifilight.0.192_168_178_95.on'; var tv = getState(idTV).val; function licht(ein) { setState(idLicht1, ein); setState(idLicht2, ein); setState(idLicht3, ein); var txt = 'ausgeschaltet'; if(ein) txt = 'eingeschaltet'; if(tv) setState('lgtv.0.states.popup', 'Das Licht ist jetzt ' + txt); } // Skriptstart if(!isAstroDay() && tv) licht(true); else licht(false); on(idTV, function(dp) { // Triggert bei Wertänderung tv = dp.state.val; if(tv && !isAstroDay()) licht(true); else licht(false); }); schedule({astro: "sunset"}, function () { if(tv) licht(true); }); schedule({astro: "sunrise"}, function () { licht(false); });
Ist es auch möglich, dass das Licht auf Blau geht und sich auf 20% Helligkeit dimmt, wenn die Sonne untergeht und der TV an ist? Aber der Farbwechsel soll erst nach 3 Sekunden(nachdem licht an) gemacht werden und die Lichtdimmung erst nach 5 Sekunden. Ist das möglich?
-
@Benni-Wartmann sagte:
Licht auf Blau geht und sich auf 20% Helligkeit dimmt, wenn die Sonne untergeht und der TV an ist?
Versuche es mal so:
schedule({astro: "sunset"}, function () { if(tv) { licht(true); setTimeout(function() { var rgb = '#0000ff'; // ausprobieren ! setState('wifilight.0.192_168_178_90.rgb', rgb); setState('wifilight.0.192_168_178_93.rgb', rgb); setState('wifilight.0.192_168_178_95.rgb', rgb); }, 3000); setTimeout(function() { setState('wifilight.0.192_168_178_90.bri', 20); setState('wifilight.0.192_168_178_93.bri', 20); setState('wifilight.0.192_168_178_95.bri', 20); }, 5000); } });
-
@paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):
schedule({astro: "sunset"}, function () { if(tv) { licht(true); setTimeout(function() { var rgb = '#0000ff'; // ausprobieren ! setState('wifilight.0.192_168_178_90.rgb', rgb); setState('wifilight.0.192_168_178_93.rgb', rgb); setState('wifilight.0.192_168_178_95.rgb', rgb); }, 3000); setTimeout(function() { setState('wifilight.0.192_168_178_90.bri', 20); setState('wifilight.0.192_168_178_93.bri', 20); setState('wifilight.0.192_168_178_95.bri', 20); }, 5000); } });
Einfach am ende des Scripts hinzufügen?
-
@Benni-Wartmann sagte:
Einfach am ende des Scripts hinzufügen?
Nein, einfach die Funktion
schedule({astro: "sunset"}, function () { if(tv) licht(true); });
erweitern bzw. die vorhandene ersetzen.