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. [SKRIPT] Philips hue dynamische Szenen - update

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

[SKRIPT] Philips hue dynamische Szenen - update

[SKRIPT] Philips hue dynamische Szenen - update

Scheduled Pinned Locked Moved Skripten / Logik
templatejavascript
54 Posts 22 Posters 16.3k Views 29 Watching
  • 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    wrote on last edited by Jey Cee
    #1

    Anbei die aktualisierte Fassung (neue Szenen) des Skripts für dynamische Lichtszenen mit Philips hue.

    Folgende Szenen sind in der aktualisierten Fassung enthalten:

        "kamin":
            "description":  "roter Farbverlauf",
        "wald":
            "description":  "grüner Farbverlauf",
        "sonne":
            "description":  "gelb/oranger Farbverlauf",
        "blau":
            "description":  "Energie, blauer Farbverlauf",
        "strobo":
            "description":  "Stroboskop",
        "feuer":
            "description":  "pulsierende Farben",
        "regenbogen":
            "description":  "das gesamte Farbspektrum",
        "love":
            "description":  "langsam wechselnder Farbverlauf im lila/violetten Bereich, bis zu den Endpunkten blau und rot",
    

    Mit strobo wird die Wohnung zur Disco 😉

    Bei Szenen, wie Kamin, Sonne, Wald, usw. verändern die Lampen innerhalb des angegeben Spektrums zufällig (Zeit und Farbe) die Farbe, so dass eine leicht dynamische Lichtstimmung entsteht.

    Skript V 0.3.1:

    // hue Szenzen - Script für ioBroker
    // V 0.3.1
    //
    // es empfiehlt sich den hue-Adapter-Loglevel auf "warn" zu stellen (viele Farbänderungen)
    //
    // Benutzung über Vis, bzw. Datenpunkte
    // ------------------------------------
    //
    // die Szenen können über Datenpunkte, z.B. über Vis eingeschaltet und gesteuert werden.
    //
    // javascript.0.hue.szene.arbeitszimmer.szene = "love" -> schaltet die Szene "love" im Arbeitszimmer ein
    // javascript.0.hue.szene.arbeitszimmer.szene = "aus"  -> schaltet die aktive Szene im Arbeitszimmer aus, die Lampen gehen aus
    // javascript.0.hue.szene.arbeitszimmer.szene = "stop" -> stoppt die Szene, die Lampen der Gruppe "arbeitszimmer" leuchten weiter
    //
    // javascript.0.hue.szene.arbeitszimmer.bri_inc = -16  -> reduziert de Helligkeit der Szene um 16 Punkte
    //
    // javascript.0.hue.szene.arbeitszimmer.bri     = 200  -> ändert die Helligkeit der Szene direkt auf den Wert 200
    // javascript.0.hue.szene.arbeitszimmer.sat     = 200  -> ändert die Sättigung  der Szene direkt auf den Wert 200
    //
    //
    // Benutzung über Javascript (Funktionen)
    // --------------------------------------
    //
    // szeneStart(lampenGruppe,szene,bri); // bri ist optional
    //
    // Beispiel:
    //
    // szeneStart("wohnzimmer","sonne");  // startet in der Lampengruppe "wohnzimmer" die Szene "sonne"
    //
    //
    // szeneStop(lampenGruppe);
    //
    //
    // lampenAus(lampenGruppe);
    //
    //
    //
    //
    //
    //
    //
    //
     // todo
    // ----
    //
    // Rotalarm     Effekt
    //
    // prüfen:
    // -------
    //
    //
    // erledigt:
    // ---------
    // bri          optional übergeben (zur Laufzeit veränderbar)
    // Einschaltzeit beim ersten Einschalten
    // sat          optional übergeben (zur Laufzeit veränderbar)
    // Änderungen sat, bri per on() überwachen und Lampen in aktiver Gruppe sofort anpassen
    // neue DP Strukutur ()
    //
    //
     // ------------ ANFANG der individuellen Konfiguration ------------
     // die eigenen Lampen in Gruppen sortiert (die Farbverläufe und Effekte werden nach Gruppen aktiviert)
     var lampen ={
        "wohnzimmer":       // Lampengruppe
            [
                "hue.0.Hue_2_AZ.wohnzimmer.kugel",
                "hue.0.Hue_2_AZ.wohnzimmer.stehlampe.oben",
                "hue.0.Hue_2_AZ.wohnzimmer.stehlampe.mitte",
                "hue.0.Hue_2_AZ.wohnzimmer.stehlampe.unten",
                "hue.0.Hue_2_AZ.küche.kühlschrank.lc"
            ],
        "schlafzimmer":     // Lampengruppe
            [
                "hue.0.Hue_2_AZ.schlafzimmer.decke.hinten.links",
                "hue.0.Hue_2_AZ.schlafzimmer.decke.hinten.mitte",
                "hue.0.Hue_2_AZ.schlafzimmer.decke.hinten.rechts",
                "hue.0.Hue_2_AZ.schlafzimmer.decke.vorne.links",
                "hue.0.Hue_2_AZ.schlafzimmer.decke.vorne.mitte",
                "hue.0.Hue_2_AZ.schlafzimmer.decke.vorne.rechts"
            ],
        "arbeitszimmer":    // Lampengruppe
            [
                "hue.0.Hue_2_AZ.arbeitszimmer.schreibtisch.ls",
                "hue.0.Hue_2_AZ.arbeitszimmer.vorhang",
                "hue.0.Hue_2_AZ.arbeitszimmer.regal.li.re"
            ]
    };
     var hueSzenenApapterPfad = "hue.szene.";    // wo sollen die Datenpunkte in den ioBroker Objekten angelegt werden
                                                // je Lampengruppe werden die Datenpunkte:
                                                // .szene       -> Änderung der Szene per Datenpunkt, z.B. über VIS oder im Script per szeneStart(lampenGruppe,szene,bri);
                                                // .bri         -> Änderung der Helligkeit per Datenpunkt (0-254)
                                                // .sat         -> Änderung der Farbsättigung per Datenpunkt ())0-254)
                                                // .bri_inc     -> Erhöhung/Verminderung der Helligkeit per Datenpunkt (positiver Wert = Heller, negativer Wert = dunkler)
                                                // .sat_inc     -> Erhöhung/Verminderung der Sättigung per Datenpunkt  (positiver Wert = mehr Farbe, negativer Wert = blasser)
                                                // angelegt
                                                // z.B. unter: javascript.0.hue.szene.arbeitszimmer.szene (Javascfript Instanz 0, Pfad = "hue.szene.")
     // globaler Parameter: Zufällige Zeit zwischen den Wechsel zwischen zwei Farben, je Lampe, in der aktivierten Szene in ms
    // (wenn keine individuelle Zeit in der Szene definiert ist)
    var delayMin =  1000;   // minimale Zeit in ms einer Lampe, um in die nächste Farbe zu wechseln
    var delayMax =  3000;   // maximale Zeit in ms einer Lampe, um in die nächste Farbe zu wechseln
     // ------------ ENDE der individuellen Konfiguration ------------
     // -------------------------------------------------------------------------
    // Script: Logik & Szenen - ab hier muss in der Regel nichts geändert werden
    // -------------------------------------------------------------------------
     var szenen = {
        "beispiel":
        {
            "description":  "Beispielszene",    // optional: Beschreibung der Szene
            "delayMin":     2000,               // optional (ohne werden die globalen Einstellungen verwendet)
            "delayMax":     9000,               // optional (ohne werden die globalen Einstellungen verwendet)
            "hueMin":       0,                  // niedrigste Farbe im Verlauf
            "hueMax":       50000               // höchste Farbe im Verlauf
        },
        "kamin":
        {
            "description":  "roter Farbverlauf",
            "hueMin":       0,
            "hueMax":       10000
        },
        "wald":
        {
            "description":  "grüner Farbverlauf",
            "hueMin":       20000,
            "hueMax":       27000
        },
        "sonne":
        {
            "description":  "gelb/oranger Farbverlauf",
            "hueMin":       10000,
            "hueMax":       17000
        },
        "blau":
        {
            "description":  "Energie, blauer Farbverlauf",
            "hueMin":       44000,
            "hueMax":       48000
        },
        "strobo":
        {
            "description":  "Stroboskop",
            "ct":           153,
            "delayMin":     500,
            "delayMax":     800
        },
        "feuer":
        {
            "description":  "pulsierende Farben",
            "delayMin":     200,
            "delayMax":     600,
            "hueMin":       0,
            "hueMax":       17000
        },
        "regenbogen":
        {
            "description":  "das gesamte Farbspektrum",
            "delayMin":     1000,
            "delayMax":     8000,
            "hueMin":       0,
            "hueMax":       65355
        },
         "love":
        {
            "description":  "langsam wechselnder Farbverlauf im lila/violetten Bereich, bis zu den Endpunkten blau und rot",
            "delayMin":     5000,
            "delayMax":     8000,
            "hueMin":       46920,
            "hueMax":       65355
        }
    };
     // ##### Script Variablen #####
     var timer =             {};
    var nextDelay =         {};
    var szeneAktiv =        [];
    var szene =             [];
     //  ##### Script Funktionen #####
     function rand(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
     function dpAnlegen() {
        for (var lampenGruppe in lampen) {
            createState(hueSzenenApapterPfad + lampenGruppe + ".szene","aus");
            createState(hueSzenenApapterPfad + lampenGruppe + ".infoAktiveSzene","keine");
            createState(hueSzenenApapterPfad + lampenGruppe + ".bri",254);
            createState(hueSzenenApapterPfad + lampenGruppe + ".bri_inc",0);
            createState(hueSzenenApapterPfad + lampenGruppe + ".sat",254);
            createState(hueSzenenApapterPfad + lampenGruppe + ".sat_inc",0);
            log(hueSzenenApapterPfad + lampenGruppe + " wurde angelegt","info");
        }
    }
     function restoreSzenen() {
        for (var lampenGruppe in lampen) {
            var aktiveSzene = getState(hueSzenenApapterPfad + lampenGruppe + ".szene").val;
            var bri = getState(hueSzenenApapterPfad + lampenGruppe + ".bri").val;
            if (aktiveSzene != "aus") {
                log("im der Gruppe: " + lampenGruppe + " wurde die Szene: " + aktiveSzene + " wieder aktiviert.");
                setState(hueSzenenApapterPfad + lampenGruppe + ".infoAktiveSzene",aktiveSzene);
                szeneStart(lampenGruppe,aktiveSzene,bri);
            }
        }
    }
     function varsAnlegen() {
        // Script-Variablen für jede Lampengruppe anlagen
        for (var lampenGruppe in lampen) {
            timer[lampenGruppe] =           [];
            nextDelay[lampenGruppe] =       [];
            szeneAktiv[lampenGruppe] =      false;
            szene[lampenGruppe] =           null;
            // Script-Variablen für jede Lampe in jeder Lampengruppe anlegen
            for (var i = 0; i < lampen[lampenGruppe].length; i++) {                 // timer und die nächste Delayzeit für jede Lampe zurückstellen
                timer[lampenGruppe][i] = null;
                nextDelay[lampenGruppe][i] = 0;
            }
        }
    }
     function szenenwechsel (lampenGruppe,lampe,delay) {
        delay = Math.floor(delay / 100);                                            // der zufällige Wert für die nächste Lichtfarbe wird auch als transitiontime verwendet (dazu wird das delay durch 100 geteilt)
        //log("aktive Szene: hueMin: " + szenen[szene[lampenGruppe]]["hueMin"] + " hueMax: " + szenen[szene[lampenGruppe]]["hueMax"]);
        var hue = rand(szenen[szene[lampenGruppe]].hueMin,szenen[szene[lampenGruppe]].hueMax);
        var bri = getState(hueSzenenApapterPfad + lampenGruppe+".bri").val;
        var sat = getState(hueSzenenApapterPfad + lampenGruppe+".sat").val;
        var command = '{"on":true,"hue":' + hue + ',"sat":' + sat + ',"bri":' + bri + ',"transitiontime":' + delay + ',"colormode":"hs"}';
        //log ("Lampe: " + lampen[lampenGruppe][lampe] + " # command: " + command);
        if (bri == 0) command = '{"on":false,"bri":0}';
        setState(lampen[lampenGruppe][lampe] + ".command", command);
    }
     function stroboskop(lampenGruppe,lampe) {
        var command = '{"on":true,"ct":153,"bri":254,"transitiontime":0,"colormode":"ct"}';
        setState(lampen[lampenGruppe][lampe] + ".command", command);
        command = '{"on":false,"transitiontime":0}';
        setState(lampen[lampenGruppe][lampe] + ".command", command);
    }
     function berechneDelay (lampenGruppe,lampe){
        // globale Delay-Einstellungen übernehmen
        var delayMinTemp = delayMin;
        var delayMaxTemp = delayMax;
        // globale Delay-Einstellungen überschreiben, wenn in der Szene ein eingener Delay definiert ist
        if (szenen[szene[lampenGruppe]].delayMin) delayMinTemp = szenen[szene[lampenGruppe]].delayMin;
        if (szenen[szene[lampenGruppe]].delayMax) delayMaxTemp = szenen[szene[lampenGruppe]].delayMax;
        nextDelay[lampenGruppe][lampe] = rand(delayMinTemp,delayMaxTemp);
    }
     function szeneTimer(lampenGruppe,lampe) {
        var delay = nextDelay[lampenGruppe][lampe] || 0;
        var aktuelleSzene = szene[lampenGruppe];
        //log("gesetztes Delay: " + delay);
        if (timer[lampenGruppe][lampe]) clearTimeout(timer[lampenGruppe][lampe]);
        timer[lampenGruppe][lampe]  = setTimeout(function() {
            timer[lampenGruppe][lampe] = null;
            berechneDelay(lampenGruppe,lampe);
            switch (aktuelleSzene) {
                case "strobo":
                    stroboskop(lampenGruppe,lampe);
                    break;
                default:
                    szenenwechsel(lampenGruppe,lampe,nextDelay[lampenGruppe][lampe]);
                    break;
            }
            //log("Delay = " + nextDelay[lampenGruppe][lampe] + " # Lampe: " + lampen[lampenGruppe][lampe]);
            szeneTimer(lampenGruppe,lampe); // ruft den Timer nach Ablauf wieder auf
        },delay);
    }
     function check254(check) {
        if (check !== 0) if (!check) check = 254;
        check = parseInt(check);
        if (check > 254) check =254;
        if (check <= 0 ) check = 0;
        return check;
    }
     function setBri(lampenGruppe,aktiveSzene,bri) {
        if (szenen[aktiveSzene].bri) bri = szenen[aktiveSzene].bri;
        bri = check254(bri);
        setState(hueSzenenApapterPfad + lampenGruppe+".bri", bri);
    }
     function setSat(lampenGruppe,aktiveSzene,sat) {
        if (szenen[aktiveSzene].sat) sat = szenen[aktiveSzene].sat;
        sat = check254(sat);
        setState(hueSzenenApapterPfad + lampenGruppe+".sat", sat);
    }
     function szeneStart(lampenGruppe,aktiveSzene,bri,sat) {
        if (!szenen[aktiveSzene]) {                                                 // undefinierte Szenen abfangen
            log("# hue Szenen Script: undefinierte Szene wurde versucht aufzurufen: " + aktiveSzene,"error");
            return;
        }
        szene[lampenGruppe] = aktiveSzene;
        setBri(lampenGruppe,aktiveSzene,bri);
        setSat(lampenGruppe,aktiveSzene,sat);
        if (!szeneAktiv[lampenGruppe]) {
            szeneAktiv[lampenGruppe] = true;
            for (var i = 0; i < lampen[lampenGruppe].length; i++) {                 // für alle Lampen den timer starten
                nextDelay[lampenGruppe][i] = 0;
                szeneTimer(lampenGruppe,i);
            }
        }
    }
     function szeneStop(lampenGruppe) {                                              // alle aktiven timer löschen
        for (var i = 0; i < lampen[lampenGruppe].length; i++) {
            clearTimeout(timer[lampenGruppe][i]);
            log("Timer: " + lampen[lampenGruppe][i] + " gestoppt");
        }
        szeneAktiv[lampenGruppe] =  false;
        szene[lampenGruppe] =       null;
    }
     function lampenAus(lampenGruppe) {
        for (var i = 0; i < lampen[lampenGruppe].length; i++) {
            setState(lampen[lampenGruppe][i]+".command",'{"on":false}');
        }
    }
     function setBriSat(com,wert,lampenGruppe) {
        if (wert != check254(wert)) {
            wert = check254(wert);
            setState(hueSzenenApapterPfad + lampenGruppe + "." + com, wert);    //korrigiert bri/sat und  ruft diese on() Funktion direkt wieder auf
        } else {
            //log("Lampengruppe: " + lampenGruppe + " # " + com + ": " + wert + " empfangen","warn");
            if (szeneAktiv[lampenGruppe]) {                                         // wenn die Szene in der Gruppe aktiv ist:
                for (var i = 0; i < lampen[lampenGruppe].length; i++) {             // für alle Lampen der Gruppe
                    setState(lampen[lampenGruppe][i] + "." + com, wert);            // die Helligkeit/Saturation direkt ändern
                    //log(com + ": " + wert + " # " + lampen[lampenGruppe][i] + " gesetzt","warn");
                }
            }
        }
    }
     function changeBriSat (com, wert, lampenGruppe) {
        com = com.replace("_inc", "");
        var alterWert = getState(hueSzenenApapterPfad + lampenGruppe + "." + com).val;
        wert = parseInt(wert) + alterWert;
        setState(hueSzenenApapterPfad + lampenGruppe + "." + com, wert);            //setzt bri/sat neu. Dies ruft die on() Funktion direkt wieder auf, diesmal mit bri/sat
    }
     //  ##### Überwachte Datenpunkte #####
     // Änderung der Helligkeit (.bri) oder Farbsättigung (.sat) während der Laufzeit über einen Datenpunkt
     var reg = new RegExp("^javascript\\.\\d+\\." + hueSzenenApapterPfad.replace('.', '\\.') + ".*\\.(sat|bri)");
    on({"id":reg , "change": "ne"}, function (obj) {
        var com = obj.id.split('.').pop();
        var	str = obj.id.replace(/\.(bri|sat)$/, "");
        var reg2 = new RegExp("^javascript\\.\\d+\\."+ hueSzenenApapterPfad.replace('.', '\\.'));
        var lampenGruppe = str.replace(reg2, "");
        var wert = obj.newState.val;
        setBriSat (com, wert, lampenGruppe);
    });
     // Änderung der Helligkeit oder Farbsättignung als adaptiver Wert (.bri_inc, .sat_inc)
     var reg = new RegExp("^javascript\\.\\d+\\." + hueSzenenApapterPfad.replace('.', '\\.') + ".*\\.(sat_inc|bri_inc)");
    on({"id":reg , "change": "any"}, function (obj) {
        var com = obj.id.split('.').pop();
        var	str = obj.id.replace(/\.(sat_inc|bri_inc)$/, "");
        var reg2 = new RegExp("^javascript\\.\\d+\\."+ hueSzenenApapterPfad.replace('.', '\\.'));
        var lampenGruppe = str.replace(reg2, "");
        var wert = obj.newState.val;
        changeBriSat (com, wert, lampenGruppe);
    });
     // Änderung einer Szene während der Laufzeit, z.B. über VIS
     var reg = new RegExp("^javascript\\.\\d+\\." + hueSzenenApapterPfad.replace('.', '\\.') + ".*\\.szene");
    on(reg , function (obj) {
        var	str = obj.id.replace(/\.szene$/, "");
        var reg2 = new RegExp("^javascript\\.\\d+\\."+ hueSzenenApapterPfad.replace('.', '\\.'));
        var lampenGruppe = str.replace(reg2, "");
        var neueSzene =         obj.newState.val;
        log("Lampengruppe: " + lampenGruppe + " # Szene: " + neueSzene + " empfangen");
        switch (neueSzene) {
            case "aus":
                szeneStop(lampenGruppe);
                lampenAus(lampenGruppe);
                log(lampenGruppe + " Szene deaktiviert");
                break;
            case "stop":
                szeneStop(lampenGruppe);
                log(lampenGruppe + " Szene angehalten");
                break;
            default:
                if (szenen[neueSzene]) {
                    // TODO: bri nur ermitteln, wenn in der Szene kein eigener bri festgelegt ist
                    var bri = getState(hueSzenenApapterPfad + lampenGruppe+".bri").val;
                    bri = check254(bri);
                    if (bri == 0) bri = 254;
                    szeneStart(lampenGruppe,neueSzene,bri);
                    setState(hueSzenenApapterPfad + lampenGruppe+".infoAktiveSzene", neueSzene);
                    log(lampenGruppe + " Szene: " + neueSzene + " gestartet");
                    break;
                }
                log("### unbekannte Szene: " + neueSzene,"error");
                break;
        }
    });
     //  ##### Scriptstart #####
     dpAnlegen();        // je einen Datenpunkt pro Lampengruppe anlegen
    varsAnlegen();      // die für das Script notwendigen Variablen erstellen
     // warte bis alle States und Objekte angelegt werden.
    // 500ms und dann starte main();
    function main() {
     //  ##### Scriptstart main() #####
         restoreSzenen();    // aktiviert zuletzt eingestellte Szenen
     }
    setTimeout(main, 500);
    

    Das alte Widget funktioniert weiterhin und kann um die neuen Szenen erweitert werden:
    327_iobroker_20dynamische_20hue_20szenen_20widget.png
    http://forum.iobroker.net/viewtopic.php ... che#p10055

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    K 1 Reply Last reply
    1
    • J Offline
      J Offline
      jans_ios
      wrote on last edited by
      #2

      Moin!

      Ich habe in GitHub eine Issue (https://github.com/ruhr70/ioBroker-JS-S … n/issues/1) geöffnet, dass das Skript leider bei einem Neustart des ioBrokers immer wieder die letzte aktive Szene aktiviert - auch, wenn das Licht vor Neustart aus war.

      Ist Dir das im GitHub lieber oder hier im Forum?

      Ansonsten: Geiles Skript, danke für Deinen Aufwand!!

      Gruß, Jan

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Stormbringer
        wrote on last edited by
        #3

        Moin, das Problem habe ich nicht…. Hast du den Datenpunkt "Szene" auf "aus" gesetzt?

        Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

        1 Reply Last reply
        0
        • S Offline
          S Offline
          schmimla
          wrote on last edited by
          #4

          Ich habe dieses Skript mal angelegt. Bei den Objekten werden mir im Verzeichnis javascript.0/hue/szene/raumname auch die Punkte bri, bri_inc, infoAktiveSzene, sat, sat_inc und szene angezeigt.

          Ich habe eine Szene, die als Reaktion auf meinen Klingelsignalsensor nun die Lampen in einem Zimmer mit einer der definierten Szenen schalten soll. Kann mir jemand sagen, wie ich das in der Szene einbinden muss? Oder muss ich vorher nochmal ein Skript definieren, welches z.B. die Funktion szeneStart("wohnzimmer","sonne"); implementiert?

          1 Reply Last reply
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            wrote on last edited by
            #5

            @schmimla:

            Ich habe dieses Skript mal angelegt. Bei den Objekten werden mir im Verzeichnis javascript.0/hue/szene/raumname auch die Punkte bri, bri_inc, infoAktiveSzene, sat, sat_inc und szene angezeigt.

            Ich habe eine Szene, die als Reaktion auf meinen Klingelsignalsensor nun die Lampen in einem Zimmer mit einer der definierten Szenen schalten soll. Kann mir jemand sagen, wie ich das in der Szene einbinden muss? Oder muss ich vorher nochmal ein Skript definieren, welches z.B. die Funktion szeneStart("wohnzimmer","sonne"); implementiert? `

            Du kannst eine Lichtstimmung einfach als Zeile innerhalb einer Deiner Szenen hinzufügen. Dabei würde ich bri und sat direkt mit setzen.

            327_2017-11-21_szene_um_kamin_stimmung_einzuschalten.png

            Wenn Du so eine Szene öfter in anderen Szenen verwenden willst, dann kannst Du Dir eine Lichtstimmung als eigene Szene anlegen und diese Szene dann mit einer Zeile in weiteren Szenen aufrufen.

            327_2017-11-21_szene_kamin_innerhalb_einer_szene.png

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Reply Last reply
            0
            • K Online
              K Online
              Kueppert
              wrote on last edited by
              #6

              Huhu ruhr70,

              ist die Zeile 260 in deinem Script v0.3.1 so korrekt? Bei mir steht da ein Ausrufezeichen:

                  if (bri == 0) command = '{"on":false,"bri":0}';
              

              2700_2018-01-03_14_48_21-iobroker.admin.png

              Ist nur ein Hinweis. Ich selbst kann kein JavaScript, also bitte nicht missverstehen 😉

              VG Thorsten

              UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

              1 Reply Last reply
              0
              • C Offline
                C Offline
                cernst1980
                wrote on last edited by
                #7

                @Kueppert:

                Ich selbst kann kein JavaScript… `
                https://developer.mozilla.org/de/docs/W … operatoren 😉

                Wenn man "==" verwendet, kann man sich Umwandlung von String in Integer und umgekehrt sparen und auch "0" mit 0 als wahr vergleichen.

                Wird sehr oft so gemacht. Sauberer ist aber die Verwendung von "===", daher der Hinweis im Skripteditor.

                1 Reply Last reply
                0
                • O Offline
                  O Offline
                  Oak
                  wrote on last edited by
                  #8

                  Guten Tag,

                  Ich benutze bereits einige Zeit die dynamischen Szenen ohne Probleme.

                  Plötzlich ist jedoch bei jeder Szene der LED Stripe rot.

                  Ist das Problem bekannt? Wenn nein, wie gehe ich an die Sache heran?

                  Neustart des IO Broker und der Hue habe Ich bereits gemacht. Ebenso das Script neu aufgesetzt.

                  Kann es an dem Update vom IO Broke liegen?

                  1 Reply Last reply
                  0
                  • W Offline
                    W Offline
                    Waly_de
                    wrote on last edited by
                    #9

                    Hallo,

                    ich habe das Script gerade zum ersten Mal ausprobiert.

                    Auch bei mir sind in allen Szenen alle Lampen nur rot.

                    Helligkeit funktioniert.

                    Was kann das Problem sein?

                    1 Reply Last reply
                    0
                    • I Online
                      I Online
                      intruder7
                      wrote on last edited by
                      #10

                      Hallo,

                      versuche gerade dieses Skript auf meine Lightify Lampen von Osram umzuschreiben. Dieses hab ich auch alles ohne Fehlermeldungen hinbekommen.

                      Allerdings, und jetzt kommt das Problem, arbeitet Osram mit RGB , Bri, Sat, Werten und dieses Skripte mit dem Hue Farbcode.

                      Gibt es eine Möglichkeit diesen in RGB umzurechen?

                      Als Anlage mal die Punkte für Lightify.

                      Ich hoffe ihr könnt mir helfen

                      Viele Grüße
                      6224_unbenannt.png

                      1 Reply Last reply
                      0
                      • W Offline
                        W Offline
                        Waly_de
                        wrote on last edited by
                        #11

                        Hallo,

                        Dann beantworte ich mal selbst meine Frage: ("alle Lampen leuchten nur rot")

                        Bei Neuinstallationen wird die Version 1.1.1 des Hue-Adapters installiert. Der ist aber in dieser Version nicht in der Lage die vom Script verwendeten HUE-Farbwerte an die Bridge zu senden.

                        Es hilft ein Downgrade des HueAdapters auf die Version 0.6.9. die prima funktioniert.

                        Den Downgrade habe ich mit dem folgenden Befehl über die Console (Terminal) hinbekommen:

                        sudo iobroker upgrade hue@0.6.9
                        

                        Grüße

                        Markus

                        1 Reply Last reply
                        0
                        • W Offline
                          W Offline
                          Walkinlarge2010
                          wrote on last edited by
                          #12

                          Danke für die Info. Wollte das Script die Tage mal testen. Bei Yahka liefert die aktuelle Version des Hue adapters bei mir auch nur komische Farben. Bin daher auch wieder auf der 0.69

                          Gesendet von iPhone mit Tapatalk

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            aleks-83
                            wrote on last edited by
                            #13

                            Hi,

                            dieses Skript scheint mir super interessant.
                            Ich würde es genre ausprobieren.

                            Wenn ich den Code im Zitat kopiere habe ich aber keinerlei Zeilenümbrüche.
                            Liegt vielleicht am neuen Foren Design?
                            Ist es möglich dass jemand den Code als Code Schnippsel einfügt?

                            Und kann man mit diesem Skript eigentlich auch Szenen übernehmen?
                            Das heißt, ich stelle meine Hue Lampen ein wie ich möchte, klicke iwo auf "übernehmen" und dann habe ich alle Werte iwo gespeichert? 😬
                            Das wäre ein Traum. Ich bin kein Programmierer, ich selbst würde das nie hin bekommen.

                            Für eine einzelne Lampe würde aber natürlich reichen.
                            Skalieren auf meine Lampen/Gruppen könnte ich dann selbst.

                            = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                            = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                            Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                            Glasfaser 400

                            dslraserD S 2 Replies Last reply
                            0
                            • A aleks-83

                              Hi,

                              dieses Skript scheint mir super interessant.
                              Ich würde es genre ausprobieren.

                              Wenn ich den Code im Zitat kopiere habe ich aber keinerlei Zeilenümbrüche.
                              Liegt vielleicht am neuen Foren Design?
                              Ist es möglich dass jemand den Code als Code Schnippsel einfügt?

                              Und kann man mit diesem Skript eigentlich auch Szenen übernehmen?
                              Das heißt, ich stelle meine Hue Lampen ein wie ich möchte, klicke iwo auf "übernehmen" und dann habe ich alle Werte iwo gespeichert? 😬
                              Das wäre ein Traum. Ich bin kein Programmierer, ich selbst würde das nie hin bekommen.

                              Für eine einzelne Lampe würde aber natürlich reichen.
                              Skalieren auf meine Lampen/Gruppen könnte ich dann selbst.

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              wrote on last edited by
                              #14

                              @aleks-83
                              Müsste doch der hier sein
                              Klick hier

                              A 1 Reply Last reply
                              1
                              • A aleks-83

                                Hi,

                                dieses Skript scheint mir super interessant.
                                Ich würde es genre ausprobieren.

                                Wenn ich den Code im Zitat kopiere habe ich aber keinerlei Zeilenümbrüche.
                                Liegt vielleicht am neuen Foren Design?
                                Ist es möglich dass jemand den Code als Code Schnippsel einfügt?

                                Und kann man mit diesem Skript eigentlich auch Szenen übernehmen?
                                Das heißt, ich stelle meine Hue Lampen ein wie ich möchte, klicke iwo auf "übernehmen" und dann habe ich alle Werte iwo gespeichert? 😬
                                Das wäre ein Traum. Ich bin kein Programmierer, ich selbst würde das nie hin bekommen.

                                Für eine einzelne Lampe würde aber natürlich reichen.
                                Skalieren auf meine Lampen/Gruppen könnte ich dann selbst.

                                S Offline
                                S Offline
                                Stormbringer
                                wrote on last edited by
                                #15

                                @aleks-83

                                Eigentlich tust du dich leichter, wenn du die Szenen auf der HUE Bridge abspeicherst und dann abrufst. Entweder mit der Szenen ID (da brauchst aber eine App die das ausliest (auf iOS Hue Lights z. B.) und dann musst du die Szenen ID umständlich in die Skripte eintragen. Aber seit "neuestem" hat einer netterweise ein Skript geschrieben der alle Szenen aus der HUE Bridge ausliest und alle Szenen dann in den Objekten zur Verfügung stellt.

                                Den Link finde ich leider gerade selber nicht aber das Skript kann ich dir gerne posten

                                var HueApi = require("node-hue-api").HueApi;
                                
                                // Replace IP and username!!!
                                var host = "192.168.x.x",
                                    username = "xxxxxxxxxx",
                                    api = new HueApi(host, username);
                                    
                                var groups_ = [],
                                    lights_ = [],
                                    objects_ = [];
                                
                                // Log JSON results
                                var displayResults = function(result) {
                                    console.log('Reponse: '+JSON.stringify(result, null, 2));
                                };
                                
                                // Parse Light Group 0 (All Lights)
                                var parseGroup0 = function(result) {
                                    if (!result.lights){return} // Empty group
                                    
                                    var id = result.id,
                                        lights = result.lights,
                                        name = "All Lights";
                                    console.debug('group: '+name+', lights: '+lights);
                                    groups_[lights] = name;
                                };
                                
                                // Parse Light Groups
                                var parseGroups = function(result) {
                                    for (var i = 0; i < result.length; i++) {
                                        if (!result[i].lights){continue} // Empty group
                                        
                                        var id = result[i].id,
                                            lights = result[i].lights,
                                            name = result[i].name;
                                        console.debug('group: '+name+', lights: '+lights);
                                        groups_[lights] = name;
                                    }
                                };
                                
                                // Parse Lights
                                var parseLights = function(result) {
                                    for (var i = 0; i < result.length; i++) {
                                        var id = result[i].id,
                                            name = result[i].name;
                                        console.debug('light: '+name+', id: '+id);
                                        lights_[id] = name;
                                    } 
                                };
                                
                                // Create States in ioBroker
                                var createStates = function(result) {
                                    // Resync button
                                    createState('PhilipsHue.Scenes.Resync', false, {role: "button", name: 'Resync Philips Hue Groups, Lights and Scenes'});
                                
                                    for (var i = 0; i < result.length; i++) {
                                        if (!result[i].appdata.data){continue} // skip internal szenes
                                
                                        var id = result[i].id,
                                            lights = result[i].lights,
                                            name = result[i].name.replace(/"/g,''),
                                            pathname = name.replace(/ /g,'_');
                                        
                                        // Get light names
                                        var light_names = [];
                                        for (var j = 0; j < lights.length; j++) {
                                            var light_name = lights_[lights[j]];
                                            light_names.push(light_name);
                                        }
                                
                                        // Room, group or lights linked with scene
                                        var group = 'Group: '+groups_[lights] || 'Lights: '+light_names.join(", ");
                                        
                                        // Create States and skip duplicates
                                        if (!objects_[lights+pathname]){
                                            console.debug('scene: '+name+', '+group);
                                            createState('PhilipsHue.Scenes.'+pathname+'.'+id, false, {role: "button", name: 'Scene: '+name+' ('+group+')'});
                                            objects_[lights+pathname] = true;
                                        }
                                    }
                                };
                                
                                // Delete States
                                function deleteStates(){
                                    console.log('Deleting current objects for scenes...');
                                    objects_ = [];
                                    $('javascript.0.PhilipsHue.Scenes.*').each(function (id) {
                                        deleteState(id);
                                    });
                                }
                                
                                // Fetch data from Hue API
                                function init(){
                                    api.getGroup(0, function(err, group0) {
                                        if (err) throw err;
                                        console.log('Processing group 0...');
                                        //displayResults(group0);
                                        parseGroup0(group0);
                                    });
                                    api.groups(function(err, groups) {
                                        if (err) throw err;
                                        console.log('Processing ' + groups.length + ' groups...');
                                        //displayResults(groups);
                                        parseGroups(groups);
                                    });
                                
                                    api.lights(function(err, lights) {
                                        if (err) throw err;
                                        console.log('Processing ' + lights.lights.length + ' lights...');
                                        //displayResults(lights);
                                        parseLights(lights.lights);
                                    });
                                
                                    api.scenes(function(err, scenes) {
                                        if (err) throw err;
                                        console.log('Processing ' + scenes.length + ' scenes...');
                                        //displayResults(scenes);
                                        createStates(scenes);
                                    });
                                }
                                
                                // Init on start
                                init();
                                
                                // Activate scene
                                on({id: /^javascript\.0\.PhilipsHue.Scenes\./, val: true}, function (obj) {
                                    if (obj.id == 'javascript.0.PhilipsHue.Scenes.Resync'){return}
                                    sceneId = obj.id.split('.').pop();
                                    console.log('Activating '+obj.name);
                                    api.activateScene(sceneId, function(err, result) {
                                        if (err) throw err;
                                        displayResults(result);
                                    });
                                    setState(obj.id, false);
                                });
                                
                                // Resync
                                on({id: 'javascript.0.PhilipsHue.Scenes.Resync', val: true}, function (obj) {
                                    console.log('Resync triggered...');
                                    groups_ = [];
                                    lights_ = [];
                                    deleteStates();
                                    init();
                                });
                                
                                schedule("0 3 * * *", function () {
                                    console.log('Resync triggered...');
                                    groups_ = [];
                                    lights_ = [];
                                    deleteStates();
                                    init();
                                });
                                

                                Wenn man es so machen will wie du es beschreiben hast würde mir aber nur der Szenen Adapter einfallen. Lampen einstellen wie du magst, dann siehst die Werte und kannst sie übernehmen. Hoffe konnte dir helfen

                                Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

                                1 Reply Last reply
                                1
                                • dslraserD dslraser

                                  @aleks-83
                                  Müsste doch der hier sein
                                  Klick hier

                                  A Offline
                                  A Offline
                                  aleks-83
                                  wrote on last edited by
                                  #16

                                  @dslraser sagte in [SKRIPT] Philips hue dynamische Szenen - update:

                                  @aleks-83
                                  Müsste doch der hier sein
                                  Klick hier

                                  Stimmt, der ist es.
                                  Danke

                                  @Stormbringer sagte in [SKRIPT] Philips hue dynamische Szenen - update:

                                  @aleks-83

                                  Eigentlich tust du dich leichter, wenn du die Szenen auf der HUE Bridge abspeicherst und dann abrufst. Entweder mit der Szenen ID (da brauchst aber eine App die das ausliest (auf iOS Hue Lights z. B.) und dann musst du die Szenen ID umständlich in die Skripte eintragen. Aber seit "neuestem" hat einer netterweise ein Skript geschrieben der alle Szenen aus der HUE Bridge ausliest und alle Szenen dann in den Objekten zur Verfügung stellt.

                                  Den Link finde ich leider gerade selber nicht aber das Skript kann ich dir gerne posten

                                  >

                                  var HueApi = require("node-hue-api").HueApi;
                                  
                                  // Replace IP and username!!!
                                  var host = "192.168.x.x",
                                      username = "xxxxxxxxxx",
                                      api = new HueApi(host, username);
                                      
                                  var groups_ = [],
                                      lights_ = [],
                                      objects_ = [];
                                  
                                  // Log JSON results
                                  var displayResults = function(result) {
                                      console.log('Reponse: '+JSON.stringify(result, null, 2));
                                  };
                                  
                                  // Parse Light Group 0 (All Lights)
                                  var parseGroup0 = function(result) {
                                      if (!result.lights){return} // Empty group
                                      
                                      var id = result.id,
                                          lights = result.lights,
                                          name = "All Lights";
                                      console.debug('group: '+name+', lights: '+lights);
                                      groups_[lights] = name;
                                  };
                                  
                                  // Parse Light Groups
                                  var parseGroups = function(result) {
                                      for (var i = 0; i < result.length; i++) {
                                          if (!result[i].lights){continue} // Empty group
                                          
                                          var id = result[i].id,
                                              lights = result[i].lights,
                                              name = result[i].name;
                                          console.debug('group: '+name+', lights: '+lights);
                                          groups_[lights] = name;
                                      }
                                  };
                                  
                                  // Parse Lights
                                  var parseLights = function(result) {
                                      for (var i = 0; i < result.length; i++) {
                                          var id = result[i].id,
                                              name = result[i].name;
                                          console.debug('light: '+name+', id: '+id);
                                          lights_[id] = name;
                                      } 
                                  };
                                  
                                  // Create States in ioBroker
                                  var createStates = function(result) {
                                      // Resync button
                                      createState('PhilipsHue.Scenes.Resync', false, {role: "button", name: 'Resync Philips Hue Groups, Lights and Scenes'});
                                  
                                      for (var i = 0; i < result.length; i++) {
                                          if (!result[i].appdata.data){continue} // skip internal szenes
                                  
                                          var id = result[i].id,
                                              lights = result[i].lights,
                                              name = result[i].name.replace(/"/g,''),
                                              pathname = name.replace(/ /g,'_');
                                          
                                          // Get light names
                                          var light_names = [];
                                          for (var j = 0; j < lights.length; j++) {
                                              var light_name = lights_[lights[j]];
                                              light_names.push(light_name);
                                          }
                                  
                                          // Room, group or lights linked with scene
                                          var group = 'Group: '+groups_[lights] || 'Lights: '+light_names.join(", ");
                                          
                                          // Create States and skip duplicates
                                          if (!objects_[lights+pathname]){
                                              console.debug('scene: '+name+', '+group);
                                              createState('PhilipsHue.Scenes.'+pathname+'.'+id, false, {role: "button", name: 'Scene: '+name+' ('+group+')'});
                                              objects_[lights+pathname] = true;
                                          }
                                      }
                                  };
                                  
                                  // Delete States
                                  function deleteStates(){
                                      console.log('Deleting current objects for scenes...');
                                      objects_ = [];
                                      $('javascript.0.PhilipsHue.Scenes.*').each(function (id) {
                                          deleteState(id);
                                      });
                                  }
                                  
                                  // Fetch data from Hue API
                                  function init(){
                                      api.getGroup(0, function(err, group0) {
                                          if (err) throw err;
                                          console.log('Processing group 0...');
                                          //displayResults(group0);
                                          parseGroup0(group0);
                                      });
                                      api.groups(function(err, groups) {
                                          if (err) throw err;
                                          console.log('Processing ' + groups.length + ' groups...');
                                          //displayResults(groups);
                                          parseGroups(groups);
                                      });
                                  
                                      api.lights(function(err, lights) {
                                          if (err) throw err;
                                          console.log('Processing ' + lights.lights.length + ' lights...');
                                          //displayResults(lights);
                                          parseLights(lights.lights);
                                      });
                                  
                                      api.scenes(function(err, scenes) {
                                          if (err) throw err;
                                          console.log('Processing ' + scenes.length + ' scenes...');
                                          //displayResults(scenes);
                                          createStates(scenes);
                                      });
                                  }
                                  
                                  // Init on start
                                  init();
                                  
                                  // Activate scene
                                  on({id: /^javascript\.0\.PhilipsHue.Scenes\./, val: true}, function (obj) {
                                      if (obj.id == 'javascript.0.PhilipsHue.Scenes.Resync'){return}
                                      sceneId = obj.id.split('.').pop();
                                      console.log('Activating '+obj.name);
                                      api.activateScene(sceneId, function(err, result) {
                                          if (err) throw err;
                                          displayResults(result);
                                      });
                                      setState(obj.id, false);
                                  });
                                  
                                  // Resync
                                  on({id: 'javascript.0.PhilipsHue.Scenes.Resync', val: true}, function (obj) {
                                      console.log('Resync triggered...');
                                      groups_ = [];
                                      lights_ = [];
                                      deleteStates();
                                      init();
                                  });
                                  
                                  schedule("0 3 * * *", function () {
                                      console.log('Resync triggered...');
                                      groups_ = [];
                                      lights_ = [];
                                      deleteStates();
                                      init();
                                  });
                                  


                                  Wenn man es so machen will wie du es beschreiben hast würde mir aber nur der Szenen Adapter einfallen. Lampen einstellen wie du magst, dann siehst die Werte und kannst sie übernehmen. Hoffe konnte dir helfen

                                  Auch dir danke für das Skript.
                                  Das habe ich schon im Einsatz.
                                  Leider gab es auf meiner Hue Bridge Probleme mit den Szenen und Gruppen da ich die philips hue app und iConnectHue App auf 2 Geräten gleichzeitig verwendet habe.
                                  Ich habe heute abend meine Bridge komplett zurück gesetzt.
                                  Jetzt nach dem ersten Einrichten läuft erst mal alles wie gewünscht.
                                  Falls ich wieder Probleme mit den Apps haben sollte, würde ich gerne die Hue Szenen im ioBroker hinterlegen.
                                  Das schöne an iConnectHue ist aber dass man Szenen starten kann, als würde man auf einem Hue Taster eine Taste drücken.
                                  Dann kann man mehrere Aktionen gleichzeitig auslösen und auch die Fade in Zeit einstellen.

                                  = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                                  = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                                  Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                                  Glasfaser 400

                                  1 Reply Last reply
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #17

                                    ich mache das fast alles im Blockly mit dem command Datenpunkt. Transitionstime regelt das langsame ein/ ausschalten.
                                    Hier mal ein kleines Beispiel...
                                    Screenshot_20190218-221104_Firefox.jpg

                                    1 Reply Last reply
                                    1
                                    • A Offline
                                      A Offline
                                      aleks-83
                                      wrote on last edited by aleks-83
                                      #18

                                      So etwas habe ich auch schonmal ausprobiert.
                                      Aber mehr als die Helligkeit kann ich damit bisher nicht regeln 😬

                                      Welche Werte muss man denn angeben um Farbe und Helligkeit zu regeln?
                                      on,level,r,g,b,sat,hue,bri ?

                                      = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                                      = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                                      Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                                      Glasfaser 400

                                      dslraserD 1 Reply Last reply
                                      0
                                      • A aleks-83

                                        So etwas habe ich auch schonmal ausprobiert.
                                        Aber mehr als die Helligkeit kann ich damit bisher nicht regeln 😬

                                        Welche Werte muss man denn angeben um Farbe und Helligkeit zu regeln?
                                        on,level,r,g,b,sat,hue,bri ?

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        wrote on last edited by dslraser
                                        #19

                                        @aleks-83 sagte in [SKRIPT] Philips hue dynamische Szenen - update:

                                        So etwas habe ich auch schonmal ausprobiert.
                                        Aber mehr als die Helligkeit kann ich damit bisher nicht regeln 😬

                                        Welche Werte muss man denn angeben um Farbe und Helligkeit zu regeln?
                                        on,level,r,g,b,sat,hue,bri ?

                                        hier mal rot

                                        {"on":true,"level":100,"r":254,"g":53,"b":30,"transitiontime":0}
                                        

                                        und hier mal blau

                                        {"on":true,"level":100,"r":47,"g":80,"b":254,"transitiontime":0}
                                        

                                        Rot und Blau im wechsel
                                        Bildschirmfoto 2019-02-19 um 08.52.18.png

                                        Kann man auch als Alarmlicht oder wenn es klingelt oder wenn ein Anruf kommt z.B. einsetzen.

                                        1 Reply Last reply
                                        2
                                        • A Offline
                                          A Offline
                                          aleks-83
                                          wrote on last edited by aleks-83
                                          #20

                                          OK danke.
                                          Die Farben an sich sind mir aber schon bewusst.

                                          Hab mir mittlerweile ein Skript geschrieben in dem ich meine Lampen auslesen und in Datenobjekten ablegen kann.
                                          ich möchte dann gerne meine Szenen an den Lampen einstellen, mein Skript starten, und das dann als Szene im ioBroker ablegen.

                                          Wollte nur wissen welche Werte man im "command" angeben MUSS.
                                          ct, xy, hue, sat, effect usw scheinbar nicht!?

                                          = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                                          = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                                          Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                                          Glasfaser 400

                                          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

                                          342

                                          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