Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Script mit Astro und Variablen Lampe einschalten

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Script mit Astro und Variablen Lampe einschalten

Script mit Astro und Variablen Lampe einschalten

Scheduled Pinned Locked Moved Skripten / Logik
22 Posts 4 Posters 4.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by
    #13

    @coyote:

    wie kann ich den Ausschaltzeitpunkt 1min verschieben? `
    Versuche es mal so:

    setTimeout(function() {setState("hm-rpc.0.LEQ0870824.1.STATE", false)}, 60 * 1000);  //Lampe ausschalten
    

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Reply Last reply
    0
    • coyoteC Offline
      coyoteC Offline
      coyote
      Most Active
      wrote on last edited by
      #14

      Sehr gut, das sollte funktionieren, kann ich heute Abend erst testen.

      Gehen wir mal noch einen Schritt weiter, vllt denke ich zu kompliziert und das Ganze kann vereinfacht werden und vllt kann ich dann das Programm auf der CCU2 entfernen.

      Ich würde ja gerne die Lampe, immer über den Wandsender ein/ausschalten können und zusätzlich im Zeitraum ab Sonnenuntergang + Fernseher/FireTV an, soll sie sich von selbst einschalten, aber ich möchte sie trotzdem über den Wandsender auch ausschalten können.

      Momentan mach ich das über die Variable "hm-rega.0.11040" die auf true/false gesetzt wird, wenn ich den Wandsender betätige. Das ist meine AutomatikVariable, diese wird um 18:30Uhr immer auf "true" gesetzt damit die Bedingung passt für das Automatische Einschalten.

      Das geht doch bestimmt auch anders oder? Hoffe ihr versteht was ich meine 😉

      1 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #15

        @coyote:

        Ich würde ja gerne die Lampe, immer über den Wandsender ein/ausschalten können und zusätzlich im Zeitraum ab Sonnenuntergang + Fernseher/FireTV an, soll sie sich von selbst einschalten, aber ich möchte sie trotzdem über den Wandsender auch ausschalten können. `
        Also mit einer Taste toggeln ? Das sollte so gehen:

        on("ID der Taste", function() {
            var licht = getState("hm-rpc.0.LEQ0870824.1.STATE").val;
            if (licht) setState("hm-rpc.0.LEQ0870824.1.STATE", false);
            else setState("hm-rpc.0.LEQ0870824.1.STATE", true);
        });
        

        Die Variable "tasteein" und der zugehörige Programmblock entfallen dann. Die Funktion lampe() vereinfacht sich:

        function lampe() {
          if (night && (fernseh || fireTV)) {
              log("Licht nachts über TV ein");
              setState("hm-rpc.0.LEQ0870824.1.STATE", true);         //Stehlampe einschalten
          } else {
              log("Licht aus");
              setState("hm-rpc.0.LEQ0870824.1.STATE", false);        //Stehlampe ausschalten
          }
        }
        
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Reply Last reply
        0
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          wrote on last edited by
          #16

          Also ich hab das jetzt mal so umgeschrieben

          var night = false;    // ab Sonnenuntergang bis Sonnenaufgang
          var fernseh = false;  // Fernseher Aus/Ein
          var fireTV = false;   // fireTV Aus/Ein
          
          function lampe() {
            if (night && (fernseh || fireTV)) {
                log("Licht nachts über TV ein");
                setState("hm-rpc.0.LEQ0870824.1.STATE", true);         //Stehlampe einschalten
            } else {
                log("Licht aus");
                setTimeout(function() {setState("hm-rpc.0.LEQ0870824.1.STATE", false)}, 60 * 1000);        //Stehlampe ausschalten
            }
          }
          
          schedule({astro:"sunset"}, function () {
              night = true; 
              lampe();
          });
          schedule({astro:"sunrise"}, function () {
              night = false;
              lampe();
          });
          
          on("hm-rpc.0.MEQ0024459.2.PRESS_SHORT", function() {
              var licht = getState("hm-rpc.0.LEQ0870824.1.STATE").val;
              if (licht) setState("hm-rpc.0.LEQ0870824.1.STATE", false);
              else setState("hm-rpc.0.LEQ0870824.1.STATE", true);
          });
          
          on("harmony.0.CoyoteHarmonyHub.activities.Fernsehen", function(obj) {
              if(obj.newState.val == 2) {
                fernseh = true;
              } else {
                fernseh = false;
              }
              lampe();
          });
          
          on("harmony.0.CoyoteHarmonyHub.activities.Fire_TV_Stick", function(obj) {
            if(obj.newState.val == 2) {
                fireTV = true;
              } else {
                fireTV = false;
              }
              lampe();
          });
          

          funktioniert nur leider nicht. Die Lampe schaltet sich schon mal nach einer Minute wieder aus. Togglen über den Taster geht auch nicht.

          Anschalten wenn, Fernseher/FireTV an ist funktioniert und ausschalten über den Taster, wenn die Lampe an ist geht auch. Irgendwie ist da noch ein Fehler drin

          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #17

            @coyote:

            funktioniert nur leider nicht. Die Lampe schaltet sich schon mal nach einer Minute wieder aus. Togglen über den Taster geht auch nicht. `
            Keine Ahnung, warum :?

            Vielleicht funktioniert das Toggeln so:

            on({id:"hm-rpc.0.MEQ0024459.2.PRESS_SHORT", valNe: 2}, function() {
                var licht = getState("hm-rpc.0.LEQ0870824.1.STATE").val;
                if (licht) {
                    setState("hm-rpc.0.LEQ0870824.1.STATE", false);
                } else {
                    setState("hm-rpc.0.LEQ0870824.1.STATE", true);
                }
            });
            
            

            EDIT: Habe gerade http://forum.iobroker.org/viewtopic.php?f=21&t=448&p=2990#p3029: Anstellevon valNe: 2 funktioniert auch val:true.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • coyoteC Offline
              coyoteC Offline
              coyote
              Most Active
              wrote on last edited by
              #18

              Hi,

              habe jetzt mal alle Konstelationen getestet, funktioniert soweit, bis auf eine.

              Schalte ich die Lampe über den Taster ein (nach Sonnenuntergang), der TV/FireTV ist noch aus und ich schalte jetzt TV/FireTV ein, schaltet sich die Lampe nach einer Minute aus.

              Weiß leider nicht warum, vllt hast du ja noch ne Idee @paul53

              var night = false;    // ab Sonnenuntergang bis Sonnenaufgang
              var fernseh = false;  // Fernseher Aus/Ein
              var fireTV = false;   // fireTV Aus/Ein
              
              function lampe() {
                if (night && (fernseh || fireTV)) {
                 log("Licht nachts über TV ein");
                    setState("hm-rpc.0.LEQ0870824.1.STATE", true);         //Stehlampe einschalten
                } else {
                    log("Licht aus");
                    setTimeout(function() {setState("hm-rpc.0.LEQ0870824.1.STATE", false)}, 60 * 1000);        //Stehlampe ausschalten
                }
              }
              
              schedule({astro:"sunset"}, function () {
                  night = true; 
                  lampe();
              });
              schedule({astro:"sunrise"}, function () {
                  night = false;
                  lampe();
              });
              
              on({id:"hm-rpc.0.MEQ0024459.2.PRESS_SHORT", valNe: 2}, function() {
                  var licht = getState("hm-rpc.0.LEQ0870824.1.STATE").val;
                  if (licht) {
                      setState("hm-rpc.0.LEQ0870824.1.STATE", false);
                  } else {
                      setState("hm-rpc.0.LEQ0870824.1.STATE", true);
                  }
              });
              
              on("harmony.0.CoyoteHarmonyHub.activities.Fernsehen", function(obj) {  
              
                  if(obj.newState.val == 2) {
                    fernseh = true;
                  } else {
                    fernseh = false;
                  }
                  lampe();
              });
              
              on("harmony.0.CoyoteHarmonyHub.activities.Fire_TV_Stick", function(obj) {
                if(obj.newState.val == 2) {
                    fireTV = true;
                  } else {
                    fireTV = false;
                  }
                  lampe();
              });
              
              1 Reply Last reply
              0
              • paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #19

                @coyote:

                Schalte ich die Lampe über den Taster ein (nach Sonnenuntergang), der TV/FireTV ist noch aus und ich schalte jetzt TV/FireTV ein, schaltet sich die Lampe nach einer Minute aus. `
                Das dürfte nicht sein, wenn der Wert von fireTV auf 2 bleibt, solange das Gerät an ist. Kann es sein, dass fireTV nur einen kurzen Impuls mit dem Wert 2 liefert ?

                Füge mal zum Testen ein Log ein:

                on("harmony.0.CoyoteHarmonyHub.activities.Fire_TV_Stick", function(obj) {
                  log("fireTV: " + obj.newState.val);
                  if ...
                
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Reply Last reply
                0
                • coyoteC Offline
                  coyoteC Offline
                  coyote
                  Most Active
                  wrote on last edited by
                  #20

                  Ich werd wahnsinnig :shock:

                  Habe jetzt nochmal alles probiert und es läuft jetzt…

                  Aber vllt hast du ne Idee wie man den doppelten Start weg bekommt oder ist es egal, schau mal

                  536_snip_20150917003343.png

                  Also bei dem HarmonyAdapter wechselt es von 0 nach 1 dann nach 2, denke deshalb kommt es doppelt oder?

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #21

                    @coyote:

                    Also bei dem HarmonyAdapter wechselt es von 0 nach 1 dann nach 2, denke deshalb kommt es doppelt oder? `
                    Dann dürfte es nicht 2 mal mit fireTV: true kommen.

                    Ändere mal die fireTV-Abfrage so:

                    on("harmony.0.CoyoteHarmonyHub.activities.Fire_TV_Stick", function(obj) {
                      var fire = obj.newState.val;
                      log("fireTV: " + fire);
                      if(fire == 2) {
                          fireTV = true;
                          lampe();
                        } else if (fire == 0) {
                          fireTV = false;
                          lampe();
                        }
                    });
                    

                    und schau was passiert. Mit dem zusätzlichen Test auf 0 und dem Aufruf der Funktion lampe() innerhalb der Abfragen wird verhindert, dass lampe() auch bei den Werten 1 und 3 ausgeführt wird.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • Homer.J.H Offline
                      Homer.J.H Offline
                      Homer.J.
                      wrote on last edited by
                      #22

                      Hallo Leute vielleicht kann mir jemand helfen hab das Script jetzt angepasst so wie ich es haben möchte,

                      hab aber das Problem das immer egal ob ich den Fernseher ein oder ausschalte es immer auf aus getriggert wird.

                      Grüße Homer

                      var night = false;    // ab Sonnenuntergang bis Sonnenaufgang
                      var fernseh = false;  // Fernseher Aus/Ein
                      
                      function lampe() {
                        if (night && (fernseh)) {
                            log("Amphilight nachts über Smart TV ein");
                            setState("hm-rpc.2.00105709A24040.3.STATE"/*Licht TV.STATE*/, true);         
                        } else {
                            log("Amphilight nachts über Smart TV aus");
                            setState("hm-rpc.2.00105709A24040.3.STATE"/*Licht TV.STATE*/, false);        
                        }
                      }
                      
                      schedule({astro: "sunset"}, function () {
                          night = true; 
                          lampe();
                      });
                      
                      schedule({astro: "sunrise"}, function () {
                          night = false;
                          lampe();
                      });
                      
                      on("harmony.0.Harmony Hub.activities.Smart TV wiedergeben"/*activity:Smart TV wiedergeben*/, function(obj) {  
                        var fernseh = obj.newState.val;
                        log("fernseh: " + fernseh);
                        if(fernseh === 2) {
                            fernseh = true;
                            lampe();
                          } else if (fernseh === 0) {
                            fernseh = false;
                            lampe();
                          }
                      });
                      
                       21:24:56.648	[info]	javascript.0 script.js.Test.test_1: fernseh: 3
                      21:25:02.389	[info]	javascript.0 script.js.Test.test_1: fernseh: 0
                      21:25:02.390	[info]	javascript.0 script.js.Test.test_1: Amphilight nachts über Smart TV aus
                      21:25:21.539	[info]	javascript.0 script.js.Test.test_1: fernseh: 1
                      21:25:43.320	[info]	javascript.0 script.js.Test.test_1: fernseh: 2
                      21:25:43.320	[info]	javascript.0 script.js.Test.test_1: Amphilight nachts über Smart TV aus
                      
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      597

                      Online

                      32.4k

                      Users

                      81.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe