Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang)

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @BENNI32154 last edited by paul53

      @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);
      });
      
      BENNI32154 2 Replies Last reply Reply Quote 0
      • BENNI32154
        BENNI32154 @paul53 last edited by

        @paul53 Ich danke dir 🙂

        1 Reply Last reply Reply Quote 0
        • BENNI32154
          BENNI32154 @paul53 last edited by BENNI32154

          @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?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @BENNI32154 last edited by

            @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);
               }
            });
            
            BENNI32154 1 Reply Last reply Reply Quote 0
            • BENNI32154
              BENNI32154 @paul53 last edited by

              @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?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @BENNI32154 last edited by paul53

                @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.

                1 Reply Last reply Reply Quote 0
                • BENNI32154
                  BENNI32154 last edited by

                  @paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):

                                                                                                                                              schedule({astro: "sunset"}, function () {                                                                                                                                                                               if(tv) licht(true);                                                                                                                                                                            });
                  

                  Also so

                  const idTV     = 'lgtv.0.states.on';
                  const idLicht1 = 'wifilight.0.192_168_178_95.on';
                  const idLicht2 = 'wifilight.0.192_168_178_96.on';
                  const idLicht3 = 'wifilight.0.192_168_178_97.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 ' + 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: "sunrise"}, function () {
                     licht(false);
                  });
                  
                  schedule({astro: "sunrise"}, function () {
                     if(tv) {
                        licht(true);
                        setTimeout(function() {
                           var rgb = '#0000ff'; // ausprobieren !
                           setState('wifilight.0.192_168_178_95.rgb', rgb);
                           setState('wifilight.0.192_168_178_96.rgb', rgb);
                           setState('wifilight.0.192_168_178_97.rgb', rgb);
                        }, 3000);
                        setTimeout(function() {
                           setState('wifilight.0.192_168_178_95.bri', 20);
                           setState('wifilight.0.192_168_178_96.bri', 20);
                           setState('wifilight.0.192_168_178_97.bri', 20);
                        }, 5000);
                     }
                  });
                  

                  oder habe ich einen Fehler gemacht?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @BENNI32154 last edited by paul53

                    @Benni-Wartmann sagte:

                    habe ich einen Fehler gemacht?

                    "sunrise" --> "sunset"

                    Zum Testen mal {astro: "sunset"} durch einen Zeitstring ersetzen, z.B. "30 15 * * *". Vorher TV einschalten.

                    BENNI32154 1 Reply Last reply Reply Quote 0
                    • BENNI32154
                      BENNI32154 @paul53 last edited by

                      @paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):

                      Zum Testen mal {astro: "sunset"} durch einen Zeitstring ersetzen, z.B. "30 15 * * *".

                      durch was genau ersetzen, damit es jetzt funktioniert?

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @BENNI32154 last edited by

                        @Benni-Wartmann

                        schedule('40 15 * * *', function () {
                           if(tv) {
                        

                        für 15:40 Uhr.

                        BENNI32154 1 Reply Last reply Reply Quote 0
                        • BENNI32154
                          BENNI32154 @paul53 last edited by BENNI32154

                          @paul53 Hab es getestet. Licht "192_168_178_95" und "192_168_178_97" schalten sich für wenige Sekunden auf Blau und schalten sich dann auf originalzustand zurück. Licht "192_168_178_96" schaltet sich auf weiß für wenige sekunden und dann wieder auf vorherigen zustand.

                          EDIT:Durch die Farbe #0000ff00 sind alle auf Blau, schalten sich aber zurück. (außer "192_168_178_97",bleibt blau)

                          noch ein EDIT: wenn man den timeout raus nimmt, funktioniert "192_168_178_95" perfekt, bleibt blau und ist gedimmt, Licht "192_168_178_96" ist blau, aber nicht gedimmt. Licht "192_168_178_97" hat sich nur gedimmt, farbe nicht geändert

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @BENNI32154 last edited by

                            @Benni-Wartmann Da alle Lichter im Skript gleich behandelt werden, können die Unterschiede nicht am Skript liegen.

                            BENNI32154 2 Replies Last reply Reply Quote 0
                            • BENNI32154
                              BENNI32154 @paul53 last edited by

                              @paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):

                              @Benni-Wartmann Da alle Lichter im Skript gleich behandelt werden, können die Unterschiede nicht am Skript liegen.

                              Also ich hab es jetzt hinbekommen.

                              schedule('17 16 * * *', function () {
                                 if(tv) {
                                    licht(true);
                                       var cmd = 'r:0, g:0, b:100, on:true, transition:0';{ // ausprobieren !
                                       setState('wifilight.0.192_168_178_95.command', cmd);
                                       setState('wifilight.0.192_168_178_96.command', cmd);
                                       setState('wifilight.0.192_168_178_97.command', cmd);
                                    }
                                              
                                 }
                              });
                              

                              Ich habe die Dimm-Funktion komplett rausgenommen, trotzdem dimmt er auf die perfekte Helligkeit 🙂

                              1 Reply Last reply Reply Quote 0
                              • BENNI32154
                                BENNI32154 @paul53 last edited by

                                @paul53 Leider funktioniert es jetzt wieder nicht.. Kann man es irgendwie über alexa2 zum laufen bekommen?Unbenannt.PNG Also über die Gruppe Licht

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @BENNI32154 last edited by

                                  @Benni-Wartmann sagte:

                                  Kann man es irgendwie über alexa2 zum laufen bekommen?

                                  Mit Alexa habe ich nichts am Hut, bin also der falsche Ansprechpartner.

                                  BENNI32154 1 Reply Last reply Reply Quote 0
                                  • BENNI32154
                                    BENNI32154 @paul53 last edited by

                                    @paul53 said in [gelöst]Licht einschalten, wenn TV an ist (ab Sonnenuntergang bis Sonnenaufgang):

                                    Mit Alexa habe ich nichts am Hut, bin also der falsche Ansprechpartner.

                                    Hmm okay, aber an irgendetwas muss es ja liegen, weil es ja nicht klappt

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    421
                                    Online

                                    31.9k
                                    Users

                                    80.1k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    37
                                    1827
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo