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.
    • BENNI32154
      BENNI32154 last edited by

      FireShot Capture 009 - objects - ioBroker - 192.168.178.99.png FireShot Capture 008 - objects - ioBroker - 192.168.178.99.png FireShot Capture 007 - objects - ioBroker - 192.168.178.99.png FireShot Capture 006 - objects - ioBroker - 192.168.178.99.png Ist es das richtige?

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

        @Benni-Wartmann sagte:

        Ist es das richtige?

        Ja, die (hoffentlich richtigen) IDs habe ich im Skript oben eingetragen.

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

          Vielen dank, es klappt. 🙂

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

            @paul53 wäre es mit dem Script möglich, dass ein PopUp aufm TV eingeblendet wird mit dem Text "Das Licht ist jetzt eingeschaltet"?

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

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

                Screenshot_20190331-090418.png

                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.

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

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

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

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

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

                      @paul53 said in Licht einschalten, wenn TV ist (ab Sonnenuntergang bis Sonnenaufgang):

                      if(tv && isAstroDay()) lichtEin();

                      Vielen dank. Es klappt alles perfekt 😄

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

                        @Benni-Wartmann sagte:

                        Es klappt alles perfekt

                        Dann markiere bitte das Thema als [gelöst].

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

                          @paul53 wie macht man das als gelöst makieren? Ich finde das nicht

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

                            @Benni-Wartmann In der Überschrift [gelöst] davor setzen.

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

                              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)

                              paul53 1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            477
                                            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