Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. HUE Zeitsteuerung ( Skript )

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

HUE Zeitsteuerung ( Skript )

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
17 Beiträge 4 Kommentatoren 2.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    CyberMicha
    schrieb am zuletzt editiert von
    #2

    Niemand? Schade :/

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #3

      dann bilde es doch in JavaScript ab.. wenn du scho mal C# gemacht hast

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        schneidy76
        schrieb am zuletzt editiert von
        #4

        schau mal hier: http://forum.iobroker.net/viewtopic.php?f=21&t=7876

        Musst nur noch den Trigger ändern.

        Das ganze ist im Szenen Adapter geschrieben, die Command sollte jedoch auch im Blockly gehen

        Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          CyberMicha
          schrieb am zuletzt editiert von
          #5

          Ich bleib bei HUE.. Gerade einfach mal versucht wenn Lampe an, dann setze level auf 1 und nix passiert.

          2418_simple.png

          :oops: :cry:

          1 Antwort Letzte Antwort
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            schrieb am zuletzt editiert von
            #6

            @CyberMicha:

            Ich bleib bei HUE.. Gerade einfach mal versucht wenn Lampe an, dann setze level auf 1 und nix passiert.

            filename="simple.PNG" index="0">~~

            :oops: :cry: `

            Nicht so schnell aufgegeben :-)

            Habe selber kein Hue, reicht den setzen des Wertes oder ist noch irgendwo ein on/Off.

            Hast du es Mal mit einem"normalen" Text Block probiert anstatt Mathe für die Zahl

            –-----------------------

            Send from mobile device

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              schneidy76
              schrieb am zuletzt editiert von
              #7

              Du brauchst die Command zeile der hue, sonst tut sich nichts…

              Den Beitrag gelesen?

              Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                CyberMicha
                schrieb am zuletzt editiert von
                #8

                @schneidy76:

                Du brauchst die Command zeile der hue, sonst tut sich nichts…

                Den Beitrag gelesen? `

                Gelesen ja, verstanden eher nicht. Also was ich genau mit der command anfangen muss :/

                Hier sehe ich auch nicht wirklich etwas mit "command" hmmmm

                http://forum.iobroker.net/viewtopic.php … &hilit=hue

                oder muss ich auf meiner ccu2 noch irgendwas nachinstallieren? steuerung der lampen per vis funktioniert ohne probleme.

                Per Vis:
                > hue.0 2017-10-27 12:18:32.979 info final lightState for Philips_hue.Wohnzimmer:{"bri":254,"on":true,"level":100}

                1 Antwort Letzte Antwort
                0
                • C Offline
                  C Offline
                  CyberMicha
                  schrieb am zuletzt editiert von
                  #9

                  Ok ich gehe doch über das normale Skript :)

                  Wie sage ich dem iobroker denn jetzt, dass er es ausführen soll? Es muss ja dauerhaft geprüft werden ob z.B. der Sonnenuntergang ist.

                  Per Cron alle 30 Sekunden oder wie macht man das?

                  schedule("*/30 * * * * *", function () // alle 15 Sekunden

                  { ….

                  und noch eine frage:

                  wie kann ich lampen jetzt nach und nach dimmen? z.b. schalte um 30minuten vor sonnenuntergang an und erhöhe den level von 0 auf 80 bis sonnenuntergang erreicht.

                  Die Zeit zu berechnen ist ja nicht weiter schwer.

                  LG Michael

                  1 Antwort Letzte Antwort
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    schrieb am zuletzt editiert von
                    #10

                    @CyberMicha:

                    Ok ich gehe doch über das normale Skript :)

                    Wie sage ich dem iobroker denn jetzt, dass er es ausführen soll? Es muss ja dauerhaft geprüft werden ob z.B. der Sonnenuntergang ist.

                    Per Cron alle 30 Sekunden oder wie macht man das?

                    schedule("*/30 * * * * *", function () // alle 15 Sekunden

                    { ….

                    und noch eine frage:

                    wie kann ich lampen jetzt nach und nach dimmen? z.b. schalte um 30minuten vor sonnenuntergang an und erhöhe den level von 0 auf 80 bis sonnenuntergang erreicht.

                    Die Zeit zu berechnen ist ja nicht weiter schwer.

                    LG Michael `

                    Du kannst einen cron benutzen mir Astro um das zu überprüfen oder auch mir Astro function Triggeren

                    Un die Lampen schrittweise zu dimmen kannst du time outs nemen und alle x Minuten + was du willst

                    –-----------------------

                    Send from mobile device

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      schneidy76
                      schrieb am zuletzt editiert von
                      #11

                      du nimmst als Object die Command Zeile
                      2631_hue_command.png
                      und sagst ihr zum Beispiel:
                      2631_hue_scene.png
                      Auf deutsch:

                      on = ja

                      Helligkeit auf 6 (von max 254)

                      Dimmzeit 15000 ms

                      jetzt klar? damit kannst du der Lampe alles sagen was du willst

                      Den Status kannst du auch abfragen - das sind die Sachen die bei mir nicht aktiv sind

                      Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        schneidy76
                        schrieb am zuletzt editiert von
                        #12

                        das ist die ganze Scene:
                        2631_hue_scene_komplett.png
                        den Trigger dafür:
                        2631_trigger.png
                        ganz oben bei "scene_Nachtlicht_an" eintragen, da kannst du auch einen cron definieren

                        oder wenn du Astro brauchst, dann erstelle beim JavaScript Adapter ein Object "Dämmerung"

                        und erstelle ein Blockly Script mit Astro
                        2631_sonnenuntergang.png
                        ObjectID wird durch das Object Dämmerung ersetzt

                        Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                        1 Antwort Letzte Antwort
                        0
                        • C Offline
                          C Offline
                          CyberMicha
                          schrieb am zuletzt editiert von
                          #13

                          So fange ich erst mal an. Erstmal an Javascript gewöhnen :)

                          mit````
                          setState("hue.0.Philips_hue.Teich.level"/Philips_hue.Teich.level/,10)

                          
                          

                          var DebugCounter = 1;

                          schedule("*/15 * * * * *", function ()
                          {
                          log("=====================");
                          log("Astro Werte für heute");
                          log("=====================");
                          var nightEnd = getAstroDate("nightEnd");
                          log(" (0) nightEnd (Ende der Nacht)........................: " + nightEnd.toLocaleTimeString());
                          var nauticalDawn = getAstroDate("nauticalDawn");
                          log(" (1) nauticalDawn (naut. Dämmerung Morgens)...........: " + nauticalDawn.toLocaleTimeString());
                          var dawn = getAstroDate("dawn");
                          log(" (2) dawn (Dämmerung Morgens).........................: " + dawn.toLocaleTimeString());
                          var sunrise = getAstroDate("sunrise");
                          log(" (3) sunrise (Sonnenaufgang)..........................: " + sunrise.toLocaleTimeString());
                          var sunriseEnd = getAstroDate("sunriseEnd");
                          log(" (4) sunriseEnd (Ende des Sonnenaufgangs).............: " + sunriseEnd.toLocaleTimeString());
                          var goldenHourEnd = getAstroDate("goldenHourEnd");
                          log(" (5) goldenHourEnd (Ende der Golden Hour VM)..........: " + goldenHourEnd.toLocaleTimeString());
                          var solarNoon = getAstroDate("solarNoon");
                          log(" (6) solarNoon (Mittag)...............................: " + solarNoon.toLocaleTimeString());
                          var goldenHour = getAstroDate("goldenHour");
                          log(" (7) goldenHour (Start der Golden Hour NM)............: " + goldenHour.toLocaleTimeString());
                          var sunsetStart = getAstroDate("sunsetStart");
                          log(" (8) sunsetStart (Start des Sonnenuntergangs).........: " + sunsetStart.toLocaleTimeString());
                          var sunset = getAstroDate("sunset");
                          log(" (9) sunset (Sonnenuntergang).........................: " + sunset.toLocaleTimeString());
                          var dusk = getAstroDate("dusk");
                          log("(10) dusk (Dämmerung Abends)..........................: " + dusk.toLocaleTimeString());
                          var nauticalDusk = getAstroDate("nauticalDusk");
                          log("(11) nauticalDusk (naut. Dämmerung Abends)...........: " + nauticalDusk.toLocaleTimeString());
                          var night = getAstroDate("night");
                          log("(12) night (astron. Dämmerung Abends).................: " + night.toLocaleTimeString());
                          var nadir = getAstroDate("nadir");
                          log("(13) nadir (Dunkelster Moment der Nacht)..............: " + nadir.toLocaleTimeString());
                          log("=====================");

                          var today = new Date();
                          var differenz = ((sunsetStart.getTime() - today.getTime()) /1000 /60);
                          
                          log( "Noch " + differenz + " Minuten bis Sonnenuntergang" );
                          log("Anzahl Ausführungen " + DebugCounter);
                          
                          DebugCounter = DebugCounter + 1;
                          

                          });

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            schneidy76
                            schrieb am zuletzt editiert von
                            #14

                            Okay, es sollte auch in Blockly gehen. Die geschweiften Klammern nicht vergessen.

                            Oder in JavaScripts steuere objectID mit String und dann die Zeichenfolge.

                            In Java bin ich leider nicht so fit, aber dafür gibt's ja Blockly…

                            Raspberry Matic (RP3), LIVE PV Monitoring mit Smartmeter, Poolsteuerung mit NodeRed, KNX Ausbau (ersetzt stückweise HM & klassische Installation), ioBroker Multihost (RP4 &RP2), Visu mit VIS

                            1 Antwort Letzte Antwort
                            0
                            • C Offline
                              C Offline
                              CyberMicha
                              schrieb am zuletzt editiert von
                              #15

                              Bei mir ist es halt genau anders rum :) also aus Quellcode kann ich meinst mehr deuten als aus Blöcken :)

                              LG

                              1 Antwort Letzte Antwort
                              0
                              • C Offline
                                C Offline
                                CyberMicha
                                schrieb am zuletzt editiert von
                                #16

                                So, das funktioniert schon mal. Nun alles zusammen bastelt und statt der 200 die differenz zum sonnenuntergang irgendwie eintragen.

                                function fadein(transTime){
                                    var fadeTime = transTime;
                                    setState("hue.0.Philips_hue.Wohnzimmer.command"/*Philips_hue.Wohnzimmer.command*/,"{}");
                                    setState("hue.0.Philips_hue.Wohnzimmer.on"/*Philips_hue.Wohnzimmer.on*/,true);
                                    setState("hue.0.Philips_hue.Wohnzimmer.level"/*Philips_hue.Wohnzimmer.level*/,10);
                                    setTimeout(function() {
                                        var level = "{\"on\":true,\"level\":80,\"transitiontime\":" + fadeTime + "}";
                                        setState("hue.0.Philips_hue.Wohnzimmer.command"/*Philips_hue.Wohnzimmer.command*/,level);
                                    },5000);
                                }
                                

                                LG Micha

                                1 Antwort Letzte Antwort
                                0
                                • C Offline
                                  C Offline
                                  CyberMicha
                                  schrieb am zuletzt editiert von
                                  #17

                                  Was haltet ihr davon? Gibt es einen eleganteren Weg?

                                  • 2017-10-31

                                  • Lampen als Array

                                  • Neue Funktion CheckStatus(TimeToSunset,light) pro Lampe

                                  • Funktion fadeIN(transTime,level_min,level_max) erweitert. Parameter Level_min und Level_max definieren Start- und Endhelligkeit der Lampen.

                                  // ==========Einstellungen Start==========
                                  
                                  // Lampen
                                  var lights = [
                                      "hue.0.Philips_hue.Wohnzimmer", 
                                      "hue.0.Philips_hue.Teich",
                                      ];
                                  // Start und Endhelligkeit
                                  var level_min = 10;
                                  var level_max = 80;
                                  // ToDo
                                  var color = 0;
                                  
                                  // ==========Einstellungen Ende==========
                                  
                                  // Timer jede Minute
                                  schedule("* * * * *", function ()
                                  {
                                  log("==========Skript Start: Sunset_Light==========");
                                      log("==========AstroDaten abfragen==========");
                                  //    var nightEnd = getAstroDate("nightEnd");
                                  //    log(" (0) nightEnd (Ende der Nacht)........................:        " + nightEnd.toLocaleTimeString());       
                                  //    var nauticalDawn = getAstroDate("nauticalDawn");
                                  //    log(" (1) nauticalDawn (naut. Dämmerung Morgens)...........:       " + nauticalDawn.toLocaleTimeString());  
                                  //    var dawn = getAstroDate("dawn");
                                  //    log(" (2) dawn (Dämmerung Morgens).........................:       " + dawn.toLocaleTimeString());           
                                  //    var sunrise = getAstroDate("sunrise");
                                  //    log(" (3) sunrise (Sonnenaufgang)..........................:       " + sunrise.toLocaleTimeString());        
                                  //    var sunriseEnd = getAstroDate("sunriseEnd");
                                  //    log(" (4) sunriseEnd (Ende des Sonnenaufgangs).............:       " + sunriseEnd.toLocaleTimeString());     
                                  //    var goldenHourEnd = getAstroDate("goldenHourEnd");
                                  //    log(" (5) goldenHourEnd (Ende der Golden Hour VM)..........:       " + goldenHourEnd.toLocaleTimeString());  
                                  //    var solarNoon = getAstroDate("solarNoon");
                                  //    log(" (6) solarNoon (Mittag)...............................:       " + solarNoon.toLocaleTimeString());      
                                  //    var goldenHour = getAstroDate("goldenHour");
                                  //    log(" (7) goldenHour (Start der Golden Hour NM)............:       " + goldenHour.toLocaleTimeString());     
                                      var sunsetStart = getAstroDate("sunsetStart");
                                      log(" (8) sunsetStart (Start des Sonnenuntergangs).........:       " + sunsetStart.toLocaleTimeString());    
                                      var sunset = getAstroDate("sunset");
                                  //    log(" (9) sunset (Sonnenuntergang).........................:       " + sunset.toLocaleTimeString());        
                                      var dusk = getAstroDate("dusk");
                                      log("(10) dusk (Dämmerung Abends)..........................:       " + dusk.toLocaleTimeString());           
                                  //    var nauticalDusk = getAstroDate("nauticalDusk");
                                  //    log("(11) nauticalDusk (naut. Dämmerung Abends)...........:       " + nauticalDusk.toLocaleTimeString());   
                                  //    var night = getAstroDate("night");
                                  //    log("(12) night (astron. Dämmerung Abends).................:       " + night.toLocaleTimeString());          
                                  //    var nadir = getAstroDate("nadir");
                                  //    log("(13) nadir (Dunkelster Moment der Nacht)..............:       " + nadir.toLocaleTimeString());          
                                  
                                      log("==========Funktionen ausführen==========");
                                  
                                      // Zeit zwischen 2 Zeiten berechnen
                                      // Übergabe: Zeit 1 und Zeit 2
                                      var Time1_2 = TimeBetween(sunsetStart, dusk);
                                      // Zeit bis Start Sonnenuntergang berechnen
                                      // Übergabe: Start des Sonnenuntergangs. getAstroDate("sunsetStart");
                                      var sunsetrest = TimeToSunset(sunsetStart);
                                      // Prüfen pro Lampe ob bereits an und ob Sonnenuntergang begonnen hat.
                                      // Wenn true, dann anschalten
                                      lights.forEach(function(element) {
                                          if (Boolean(CheckStatus(sunsetrest,element))){
                                              FadeIN(Time1_2,level_min,level_max);
                                          }
                                      });
                                  
                                  log("==========Skript Ende: Sunset_Light==========");
                                  });
                                  
                                  // Funktionen ***************************************************************************************************
                                  
                                  // Licht mit level_min einschalten und auf level_max mit transTime blenden
                                  // Übergebene Parameter: Zeit für das Einblenden in Minuten, start und end level
                                  function FadeIN(transTime,level_min,level_max){
                                      log("Funktion: fadeIN() mit transTime: " + transTime + " , level_min " + level_min + " , level_max " + level_max);
                                      // transTime kommt mit Minuten, also transTime *60 / 0.1 = fadeTime
                                      // da es zu schnell dunkel wird nur die halbe Zeit nehmen
                                      var fadeTime = transTime * 60 / 0.1 / 2;
                                      lights.forEach(function(element) {
                                          // Command leeren
                                         setState(element +".command","{}");
                                         // Lampen anschalten ( command greift sonst nicht )
                                         setState(element +".on",true);
                                         // Initial level auf level_min setzen
                                         setState(element+".level",level_min);
                                         // 3 Sekunden warten, dann command ausfühen ( klappt nicht direkt nach einschalten )
                                         setTimeout(function() {
                                         var com = "{\"on\":true,\"level\":" + level_max + ",\"transitiontime\":" + fadeTime + "}";
                                         setState(element+".command",com);
                                         },3000);
                                      });
                                  }
                                  
                                  // Berechnungen der restlichen Minnuten bis endTime basierend auf der aktuellen Uhrzeit
                                  // Übergebene Parameter: Zeit auf die berechnet werden soll
                                  // Return liefert Zeit in Minuten
                                  function TimeToSunset(endTime){
                                      log("Funktion: timeToSunset()");
                                      var today = new Date();
                                      var rest = 0;
                                      rest = ((endTime.getTime() - today.getTime()) /1000 /60);
                                      rest = Math.round(rest);
                                      return rest;
                                  }
                                  
                                  // Berechnungen der Zeit zwischen 2 Zeiten
                                  // Übergebene Parameter: Zeit1 und Zeit2 auf die berechnet werden soll
                                  // Return liefert Zeit in Minuten
                                  function TimeBetween(time1, time2){
                                      log("Funktion: TimeBetween()");
                                      var diff = 0;
                                      diff = ((time2.getTime() - time1.getTime()) /1000 /60);
                                      diff = Math.round(diff);
                                      return diff;
                                  }
                                  
                                  // Status der Lampen prüfen und schauen ob Sonnenuntergang bald beginnt
                                  // Übergebene Parameter: Zeit bis Sonnenuntergang in Minuten, Lampe
                                  // Return liefert true oder false
                                  function CheckStatus(TimeToSunset,light){
                                        log("Funktion: CheckStatus() mit TimeToSunset: " + TimeToSunset + " und Lampe " + light);
                                        // Wenn Lampe aus
                                        if (getState(light+".on").val === false ){
                                            // Wenn restl. Zeit bis Sonneuntergang ( zwischen 2 und 0 Minuten )
                                            if(TimeToSunset <= 2 && TimeToSunset >=0){
                                                return true;
                                            // sonst tue nichts.
                                            } else {
                                              return false;
                                            }
                                        }
                                        // sonst tue nichts.
                                        else {
                                          return false;
                                        }
                                  }
                                  
                                  
                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  540

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe