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

      @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

                              949
                              Online

                              31.9k
                              Users

                              80.1k
                              Topics

                              1.3m
                              Posts

                              3
                              37
                              1831
                              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