Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Leider doch nicht [gelöst]Tradfri über script steuern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Leider doch nicht [gelöst]Tradfri über script steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      ludino last edited by

      Hallo,

      ich möchte gerne meine Tradfri lampen über script steuern.

      Und zwar möchte ich bei mehreren lampen die helligkeit und die Temperatur einstellen.

      das Problem ist wenn ich das scripte, macht die Lampe immer nur eines.

      Z.b. ich möchte

      helligkeit 100%

      fabe 100%

      Die lampe schaltet 100% Helligkeit

      und Farbe bleibt unverändert,

      jetzt kommt der clou in den Objekten wird aber 100% farbe eingetragen.

      es scheint mir das der Tradfri gateway nicht schon die signale mit bekommt.

      Ich habe versucht überall eine verzögerung rein zu machen das die Befehle langsamer übertragen werden, leider ohne erfolg.

      Hat jemand schon mal das problem gehabt und wie hat er es gelöst?

      Gruß

      Mit der version aus der git funktioniert es

      1 Reply Last reply Reply Quote 0
      • L
        ludino last edited by

        Hi,

        leider funktioniert es immer noch nicht zuverlässig. Die Lampen haben so eine art eigenleben.

        hier mal der script

        ! ````
        var helligkeit, farbe, aus;
        ! createState("beleuchtung_gemuetlich", function () { //<---------ÄNDERN bei neuer Stimmung
        });
        helligkeit = 15;
        farbe = 100;
        aus= 0;
        on({id: "javascript.0.beleuchtung_gemuetlich"/beleuchtung_gemuetlich/, change: "ne"}, function (obj) { //<---------ÄNDERN bei neuer Stimmung
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("javascript.0.beleuchtung_gemuetlich").val === true) { //<---------ÄNDERN bei neuer Stimmung
        // Leselampe Wohnzimmer
        setState("tradfri.0.L-65544.lightbulb.brightness"/Brightness/, helligkeit);
        setState("tradfri.0.L-65544.lightbulb.colorTemperature"/Color temperature/, farbe);
        //setState("tradfri.0.L-65544.lightbulb.state"/on/off/, false);
        // Leselampe Esszimmer
        setState("tradfri.0.L-65545.lightbulb.brightness"/Brightness/, helligkeit);
        setState("tradfri.0.L-65545.lightbulb.colorTemperature"/Color temperature/, farbe);
        //setState("tradfri.0.L-65545.lightbulb.state"/on/off/, false);
        // Deckenlampe Esszimmer
        //setState("tradfri.0.L-65551.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65551.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65551.lightbulb.state"/on/off/, false);
        // Deckenlampe Wohnzimmer
        //setState("tradfri.0.L-65552.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65552.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65552.lightbulb.state"/on/off/, false);
        // Fenster Wohnzimmer Links
        //setState("tradfri.0.L-65556.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65556.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65556.lightbulb.state"/on/off/, false);
        // Fenster Wohnzimmer Mitte
        //setState("tradfri.0.L-65557.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65557.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65557.lightbulb.state"/on/off/, false);
        // Fenster Wohnzimmer Rechts
        //setState("tradfri.0.L-65558.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65558.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65558.lightbulb.state"/on/off/, false);
        // Fenster Kueche Rechts 1
        //setState("tradfri.0.L-65559.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65559.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65559.lightbulb.state"/on/off/, false);
        // Fenster Kueche Rechts 2
        //setState("tradfri.0.L-65560.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65560.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65560.lightbulb.state"/on/off/, false);
        // Fenster Kueche Links 1
        //setState("tradfri.0.L-65561.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65561.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65561.lightbulb.state"/on/off/, false);
        // Fenster Kueche Links 2
        //setState("tradfri.0.L-65562.lightbulb.brightness"/Brightness/, helligkeit);
        //setState("tradfri.0.L-65562.lightbulb.colorTemperature"/Color temperature/, farbe);
        setState("tradfri.0.L-65562.lightbulb.state"/on/off/, false);
        setState("javascript.0.beleuchtung_gemuetlich"/beleuchtung_gemuetlich/, false);
        }
        });

        
        WIe gesagt das ist nun für stimmung gemütlich die ersten beiden lampen sollen halt gedimmt und warm angehen, das klappt soweit
        
        Dann mache ich ein Script für alle aus
        
        >! ````
        var helligkeit, farbe, aus;
        createState("beleuchtung_aus", function () {                                                             //<---------ÄNDERN bei neuer Stimmung
        });
        helligkeit = 15;
        farbe = 100;
        aus= 0;
        on({id: "javascript.0.beleuchtung_aus"/*beleuchtung_aus*/, change: "ne"}, function (obj) {        //<---------ÄNDERN bei neuer Stimmung
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("javascript.0.beleuchtung_aus").val === true) {                                           //<---------ÄNDERN bei neuer Stimmung
        // Leselampe Wohnzimmer
            //setState("tradfri.0.L-65544.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65544.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65544.lightbulb.state"/*on/off*/, false);
        // Leselampe Esszimmer
            //setState("tradfri.0.L-65545.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65545.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65545.lightbulb.state"/*on/off*/, false);
        // Deckenlampe Esszimmer
            //setState("tradfri.0.L-65551.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65551.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65551.lightbulb.state"/*on/off*/, false);
        // Deckenlampe Wohnzimmer
            //setState("tradfri.0.L-65552.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65552.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65552.lightbulb.state"/*on/off*/, false);
        // Fenster Wohnzimmer Links
            //setState("tradfri.0.L-65556.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65556.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65556.lightbulb.state"/*on/off*/, false);
        // Fenster Wohnzimmer Mitte
            //setState("tradfri.0.L-65557.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65557.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65557.lightbulb.state"/*on/off*/, false);
        // Fenster Wohnzimmer Rechts
            //setState("tradfri.0.L-65558.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65558.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65558.lightbulb.state"/*on/off*/, false);
        // Fenster Kueche Rechts 1
            //setState("tradfri.0.L-65559.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65559.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65559.lightbulb.state"/*on/off*/, false);
        // Fenster Kueche Rechts 2
            //setState("tradfri.0.L-65560.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65560.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65560.lightbulb.state"/*on/off*/, false);
        // Fenster Kueche Links 1
            //setState("tradfri.0.L-65561.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65561.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65561.lightbulb.state"/*on/off*/, false);
        // Fenster Kueche Links 2
            //setState("tradfri.0.L-65562.lightbulb.brightness"/*Brightness*/, aus);
            //setState("tradfri.0.L-65562.lightbulb.colorTemperature"/*Color temperature*/, aus);
            setState("tradfri.0.L-65562.lightbulb.state"/*on/off*/, false);
            setState("javascript.0.beleuchtung_aus"/*beleuchtung_aus*/, false);
        /// Alle werte nullen   
        // Leselampe Wohnzimmer
            setState("tradfri.0.L-65544.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65544.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Leselampe Esszimmer
            setState("tradfri.0.L-65545.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65545.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Deckenlampe Esszimmer
            setState("tradfri.0.L-65551.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65551.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Deckenlampe Wohnzimmer
            setState("tradfri.0.L-65552.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65552.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Wohnzimmer Links
            setState("tradfri.0.L-65556.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65556.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Wohnzimmer Mitte
            setState("tradfri.0.L-65557.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65557.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Wohnzimmer Rechts
            setState("tradfri.0.L-65558.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65558.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Kueche Rechts 1
            setState("tradfri.0.L-65559.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65559.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Kueche Rechts 2
            setState("tradfri.0.L-65560.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65560.lightbulb.colorTemperature"/*Color temperature*/, 0);
        // Fenster Kueche Links 1
            setState("tradfri.0.L-65561.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65561.lightbulb.colorTemperature"/*Color temperature*/, 0);
         // Fenster Kueche Links 2   
            setState("tradfri.0.L-65562.lightbulb.brightness"/*Brightness*/, 0);
            setState("tradfri.0.L-65562.lightbulb.colorTemperature"/*Color temperature*/, 0);
            }
        });
        >! ````
        
        da geht die 2 lampe auf kalt und ist immer noch an.
        
        ich kann mir einfach nicht erklären warum die lampen sich so verhalten.
        
        Gruß
        1 Reply Last reply Reply Quote 0
        • M
          MrLee last edited by

          Moin!

          Habe ähnliches .

          Blockly welches in meheren Stufen 2 Lampen dimmt und die Farbe anpasst.

          Habe jetzt min. 1,5 Sek Pause zwishcne den Befehlen und es geht…sieht halt nur nicht so schön aus...

          bis denne

          Mr.Lee

          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            Moin! Ihr beide ändert gleichzeitig die Farbtemperatur und Helligkeit. Das sind beides Eigenschaften, die auf die TransitionTime zurückgreifen.

            Ich hab festgestellt, dass gleichzeitige bzw. überlappende Animationen nicht möglich sind, selbst wenn ich den Befehl ans Gateway von Hand zusammenbaue und nicht die States einzeln setze. Dabei wird immer eine der Eigenschaften ignoriert.

            Ihr habt verschiedene Optionen:

            1. Die Animation kann man von Hand zusammenbauen, indem man Helligkeit und Farbtemperatur in kurzen Abschnitten mit einer TransitionTime von 0 selbst anpasst, z.b. so http://forum.iobroker.net/viewtopic.php … 61#p120261

            2. Die Eigenschaften nacheinander setzen, z.B. Helligkeit, (mind. transitionTime warten), Farbtemperatur.

            3. Die Eigenschaften mit TransitionTime 0 setzen: transitionTime auf 0, Helligkeit, transitionTime wieder auf 0, Farbtemperatur. Hier sollte aber auf ack=true vom Adapter gewartet werden, weil sonst die Schaltbefehle und Bestätigung vom Gateway sich überschneiden können.

            4. Alternativ könntet ihr in der App für die Gruppen eine eigene Stimmung (Szene) erstellen und diese im Adapter per "<gruppe>.activeScene" setzen. Vielleicht funktioniert das zuverlässiger.</gruppe>

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

              Habe es so gelöst, dass ich alle .brightness und .colorTemperature Datenpunkte von Tradfri in "enum.functions.stimmungsdatenpunkte" gepackt habe und dann mit einem Script

              Zuerst alle .brightness Datenpunkte aus dieser Aufzählung ändere (vorher immer transitionDuration auf 5 Sekunden - für langsames, gemütliches dimmen).

              Und dann nach 6 Sekunden alle .colorTemperature werte aus der Aufzählung auf warmes weiß.

              Funktioniert bestens.

              Gruß

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                Virtuelle Gruppen (siehe Adapter-Konfig) oder echte Gruppen (für bis zu 9 Lampen, siehe App) tun es auch 😉

                Dann kannst du erst die Helligkeit der (virtuellen) Gruppe anpassen und später die Farbtemperatur.

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

                  Aber wenn ich eine Lampe aus einer Gruppe manuell ändere dann wird die Gruppe nicht angepasst, oder?

                  Ging mir darum dass ich die alten Werte abspeichere, "gemütlichkeit" aktiviere, und wenn ich dann "gemütlichkeit" deaktiviere die alten Zustände aller Lampen wiederhergestellt werden.

                  Gruß

                  1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer last edited by

                    > Ging mir darum dass ich die alten Werte abspeichere, "gemütlichkeit" aktiviere, und wenn ich dann "gemütlichkeit" deaktiviere die alten Zustände aller Lampen wiederhergestellt werden.
                    Das geht nicht ohne Weiteres (also nur per Skript).

                    Wenn du einen Gruppen-State setzt, werden auf dem Gateway alle Lampen auf diesen Wert gesetzt => die Lampen-States in ioBroker werden überschrieben.

                    Wenn du einen Lampen-State setzt, werden in ioBroker ebenfalls die Gruppen-States angepasst. Sind alle Lampen auf dem gleichen Wert, steht dieser in der Gruppe, sonst verschwindet der Gruppen-Wert (=> null).

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

                      Puh, dann war meine Arbeit doch nicht umsonst… :lol:

                      Gruß

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      859
                      Online

                      31.7k
                      Users

                      79.8k
                      Topics

                      1.3m
                      Posts

                      4
                      9
                      4128
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo