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. RGB Effekte synchron mit mehrere Leuchtenn

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

RGB Effekte synchron mit mehrere Leuchtenn

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblocklyscenes
16 Beiträge 3 Kommentatoren 1.6k Aufrufe 4 Watching
  • Ä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.
  • marcusklM Offline
    marcusklM Offline
    marcuskl
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    Ich habe in meinem Wohnzimmer einmal den Shelly RGBW2 und eine Osram Smart + Zigbee RGB.
    Nun gibt es bei Shelly verschiedene Effekte, wo die Farbe automatisch wechselt z.B. "Meteor Shower, Flash.....".
    Ich hätte aber gerne das die Osram Synchron mit den Shelly die Farben wechselt.

    Hat jemand eine Idee für ein Skript, um das umzusetzen?

    Danke 😊

    Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

    Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

    AsgothianA 1 Antwort Letzte Antwort
    0
    • marcusklM marcuskl

      Hallo zusammen,

      Ich habe in meinem Wohnzimmer einmal den Shelly RGBW2 und eine Osram Smart + Zigbee RGB.
      Nun gibt es bei Shelly verschiedene Effekte, wo die Farbe automatisch wechselt z.B. "Meteor Shower, Flash.....".
      Ich hätte aber gerne das die Osram Synchron mit den Shelly die Farben wechselt.

      Hat jemand eine Idee für ein Skript, um das umzusetzen?

      Danke 😊

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      @marcuskl
      Synchron - nein. Es wird immer eine Verzögerung geben, die dadurch entsteht das der Shelly zunächst die korrekte Farbe an den ioBroker melden muss, und dieser dann getriggert die Osram Lampe schalten wird.

      Ich weiss nicht wie schnell die Shelly reagieren, aber ich fürchte man wird das immer sehen. Das Auge ist da sehr empfindlich.

      Einzige Option in meinen Augen: entsprechende Effekte im ioBroker als Skript nachbauen und die Farben vom ioBroker aus setzen.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      marcusklM 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @marcuskl
        Synchron - nein. Es wird immer eine Verzögerung geben, die dadurch entsteht das der Shelly zunächst die korrekte Farbe an den ioBroker melden muss, und dieser dann getriggert die Osram Lampe schalten wird.

        Ich weiss nicht wie schnell die Shelly reagieren, aber ich fürchte man wird das immer sehen. Das Auge ist da sehr empfindlich.

        Einzige Option in meinen Augen: entsprechende Effekte im ioBroker als Skript nachbauen und die Farben vom ioBroker aus setzen.

        A.

        marcusklM Offline
        marcusklM Offline
        marcuskl
        schrieb am zuletzt editiert von
        #3

        @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

        @marcuskl
        Synchron - nein. Es wird immer eine Verzögerung geben, die dadurch entsteht das der Shelly zunächst die korrekte Farbe an den ioBroker melden muss, und dieser dann getriggert die Osram Lampe schalten wird.

        Ich weiss nicht wie schnell die Shelly reagieren, aber ich fürchte man wird das immer sehen. Das Auge ist da sehr empfindlich.

        Einzige Option in meinen Augen: entsprechende Effekte im ioBroker als Skript nachbauen und die Farben vom ioBroker aus setzen.

        A.

        Ja genau das meine ich, ein Effekte Skript.
        Nur ich habe keine Idee das umzusetzen.

        Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

        Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

        AsgothianA 1 Antwort Letzte Antwort
        0
        • marcusklM marcuskl

          @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

          @marcuskl
          Synchron - nein. Es wird immer eine Verzögerung geben, die dadurch entsteht das der Shelly zunächst die korrekte Farbe an den ioBroker melden muss, und dieser dann getriggert die Osram Lampe schalten wird.

          Ich weiss nicht wie schnell die Shelly reagieren, aber ich fürchte man wird das immer sehen. Das Auge ist da sehr empfindlich.

          Einzige Option in meinen Augen: entsprechende Effekte im ioBroker als Skript nachbauen und die Farben vom ioBroker aus setzen.

          A.

          Ja genau das meine ich, ein Effekte Skript.
          Nur ich habe keine Idee das umzusetzen.

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #4

          @marcuskl

          Das ist einfach: Leg dir ein JS Objekt an, in dem du für jedes Target Objekt angibst:

          • Die Zeit wie lange die Farbe stehen bleiben soll
          • Die Farbe die gesetzt werden soll
          • wenn bei den Lampen verfügbar - die Transition time für die Lampe
          • alle weiteren Notwendigen Einstellungen

          Dazu kommt eine Datenpunkt der das Skript stoppt oder startet, sowie eine Variable fuer einen Timeout und eine Variable fuer den aktuellen Index

          Dann eine Funktion (nextStep()), die wenn sie aufgerufen wird folgendes tut:

          • die Einstellungen des aktuellen Index schalten (alle)
          • den am aktuellen index gespeicherten Timeout auslösen. Als Funktion nextStep eintragen.
          • den Index hochzählen, prufen ob er zu hoch für das Array wird, dann auf 0 setzen

          Zum starten und stoppen ein trigger auf den Datenpunkt zum aktivieren, deaktivieren : Aktivieren -> index = 0, nextStep()
          deaktivieren-> stopTimeout()

          Ich hoffe diese Beschreibung macht Sinn. Mehr details und ggf. einen JS Stub kann ich morgen geben. heute bin ich zu müde.

          A.

          Als nächstes nimmst du eine Variable, die als Index für das JS Objekt benutzt.

          Dann baust du dir eine Funktion, die immer die am Index liegende

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          marcusklM 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @marcuskl

            Das ist einfach: Leg dir ein JS Objekt an, in dem du für jedes Target Objekt angibst:

            • Die Zeit wie lange die Farbe stehen bleiben soll
            • Die Farbe die gesetzt werden soll
            • wenn bei den Lampen verfügbar - die Transition time für die Lampe
            • alle weiteren Notwendigen Einstellungen

            Dazu kommt eine Datenpunkt der das Skript stoppt oder startet, sowie eine Variable fuer einen Timeout und eine Variable fuer den aktuellen Index

            Dann eine Funktion (nextStep()), die wenn sie aufgerufen wird folgendes tut:

            • die Einstellungen des aktuellen Index schalten (alle)
            • den am aktuellen index gespeicherten Timeout auslösen. Als Funktion nextStep eintragen.
            • den Index hochzählen, prufen ob er zu hoch für das Array wird, dann auf 0 setzen

            Zum starten und stoppen ein trigger auf den Datenpunkt zum aktivieren, deaktivieren : Aktivieren -> index = 0, nextStep()
            deaktivieren-> stopTimeout()

            Ich hoffe diese Beschreibung macht Sinn. Mehr details und ggf. einen JS Stub kann ich morgen geben. heute bin ich zu müde.

            A.

            Als nächstes nimmst du eine Variable, die als Index für das JS Objekt benutzt.

            Dann baust du dir eine Funktion, die immer die am Index liegende

            marcusklM Offline
            marcusklM Offline
            marcuskl
            schrieb am zuletzt editiert von
            #5

            @Asgothian Ok danke, aber ich verstehe die hälfte nicht :grin:
            Ich habe bis jetzt nur mit Blockly gearbeitet und JS Vorlagen genutzt.

            Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

            Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

            AsgothianA 1 Antwort Letzte Antwort
            0
            • marcusklM marcuskl

              @Asgothian Ok danke, aber ich verstehe die hälfte nicht :grin:
              Ich habe bis jetzt nur mit Blockly gearbeitet und JS Vorlagen genutzt.

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #6

              @marcuskl ich kann dir heute Abend mal etwas zusammen bauen was du dann nur noch erweitern musst.

              A.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              marcusklM 1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

                @marcuskl ich kann dir heute Abend mal etwas zusammen bauen was du dann nur noch erweitern musst.

                A.

                marcusklM Offline
                marcusklM Offline
                marcuskl
                schrieb am zuletzt editiert von
                #7

                @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                @marcuskl ich kann dir heute Abend mal etwas zusammen bauen was du dann nur noch erweitern musst.

                A.

                Ja, da wäre ich dir sehr dankbar :blush: :+1:

                Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

                Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

                AsgothianA 1 Antwort Letzte Antwort
                0
                • marcusklM marcuskl

                  @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                  @marcuskl ich kann dir heute Abend mal etwas zusammen bauen was du dann nur noch erweitern musst.

                  A.

                  Ja, da wäre ich dir sehr dankbar :blush: :+1:

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von
                  #8

                  @marcuskl

                  Hier ist ein Code Beispiel. Im Array Effect kannst du in jeder Zeile die Datenpunkte angeben die du geschaltet haben willst, und auf welchen wert.
                  time: gibt an wie lange der eingestellte Status erhalten bleibt
                  state: Das Array von States die zu schalten sind. Darin jeweils Paare von obj: der Name des einzelnen States und val: der Wert der in diesen State geschrieben werden soll

                  An statischen Steuervariablen hast du:
                  TimeBetweenCommands - Anzahl von ms zwischen 2 Befehlen die abgesetzt werden. Als Absicherung um nicht zu viele Befehle auf einmal zu senden
                  TimeFactor: Ein Faktor für den Eintrag bei "time" im Effect Array. 1000 = Sekunden, 60000 = Minuten

                  Ein/Ausschalten geht über die beiden Subscriptions am Ende.
                  Falls du nach dem Beenden des Events einen bestimmten Zustand hergestellt haben willst muss das da mit angegeben werden.

                  let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                               {time: 3, state: [{obj: 'deconz.0.Lights.20.hue', val: 0 },{obj:'deconz.0.Lights.20.sat', val: 254 },{obj:'deconz.0.Lights.20.bri', val: 100 } ] },
                               {time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 100 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                               {time: 5, state: [{obj: 'deconz.0.Lights.20.hue', val: 300 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                               {time:10, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 0 },{obj:'deconz.0.Lights.20.bri', val: 50 } ] }
                  ]
                  
                  let Timeout = null;
                  let TimeFactor = 1000; // seconds
                  let Index = 0;
                  let TimeBetweenCommands = 20;
                  
                  function RunEvent()
                  {
                      if (Index >= Effect.length) Index = 0;
                      let TimeToNextEvent = TimeFactor * Effect[Index].time;
                      let Dt = 0;
                      for (let ObjIndex in Effect[Index].state) {
                          Dt += TimeBetweenCommands;
                          setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                      }
                      Index++;
                      Timeout = setTimeout(RunEvent, TimeToNextEvent);
                  }
                  
                  
                  on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                  on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                  
                  

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  marcusklM RababersaftR 3 Antworten Letzte Antwort
                  1
                  • AsgothianA Asgothian

                    @marcuskl

                    Hier ist ein Code Beispiel. Im Array Effect kannst du in jeder Zeile die Datenpunkte angeben die du geschaltet haben willst, und auf welchen wert.
                    time: gibt an wie lange der eingestellte Status erhalten bleibt
                    state: Das Array von States die zu schalten sind. Darin jeweils Paare von obj: der Name des einzelnen States und val: der Wert der in diesen State geschrieben werden soll

                    An statischen Steuervariablen hast du:
                    TimeBetweenCommands - Anzahl von ms zwischen 2 Befehlen die abgesetzt werden. Als Absicherung um nicht zu viele Befehle auf einmal zu senden
                    TimeFactor: Ein Faktor für den Eintrag bei "time" im Effect Array. 1000 = Sekunden, 60000 = Minuten

                    Ein/Ausschalten geht über die beiden Subscriptions am Ende.
                    Falls du nach dem Beenden des Events einen bestimmten Zustand hergestellt haben willst muss das da mit angegeben werden.

                    let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                 {time: 3, state: [{obj: 'deconz.0.Lights.20.hue', val: 0 },{obj:'deconz.0.Lights.20.sat', val: 254 },{obj:'deconz.0.Lights.20.bri', val: 100 } ] },
                                 {time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 100 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                 {time: 5, state: [{obj: 'deconz.0.Lights.20.hue', val: 300 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                 {time:10, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 0 },{obj:'deconz.0.Lights.20.bri', val: 50 } ] }
                    ]
                    
                    let Timeout = null;
                    let TimeFactor = 1000; // seconds
                    let Index = 0;
                    let TimeBetweenCommands = 20;
                    
                    function RunEvent()
                    {
                        if (Index >= Effect.length) Index = 0;
                        let TimeToNextEvent = TimeFactor * Effect[Index].time;
                        let Dt = 0;
                        for (let ObjIndex in Effect[Index].state) {
                            Dt += TimeBetweenCommands;
                            setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                        }
                        Index++;
                        Timeout = setTimeout(RunEvent, TimeToNextEvent);
                    }
                    
                    
                    on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                    on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                    
                    
                    marcusklM Offline
                    marcusklM Offline
                    marcuskl
                    schrieb am zuletzt editiert von
                    #9

                    @Asgothian Danke werde ich versuchen 😊

                    Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

                    Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

                    1 Antwort Letzte Antwort
                    0
                    • AsgothianA Asgothian

                      @marcuskl

                      Hier ist ein Code Beispiel. Im Array Effect kannst du in jeder Zeile die Datenpunkte angeben die du geschaltet haben willst, und auf welchen wert.
                      time: gibt an wie lange der eingestellte Status erhalten bleibt
                      state: Das Array von States die zu schalten sind. Darin jeweils Paare von obj: der Name des einzelnen States und val: der Wert der in diesen State geschrieben werden soll

                      An statischen Steuervariablen hast du:
                      TimeBetweenCommands - Anzahl von ms zwischen 2 Befehlen die abgesetzt werden. Als Absicherung um nicht zu viele Befehle auf einmal zu senden
                      TimeFactor: Ein Faktor für den Eintrag bei "time" im Effect Array. 1000 = Sekunden, 60000 = Minuten

                      Ein/Ausschalten geht über die beiden Subscriptions am Ende.
                      Falls du nach dem Beenden des Events einen bestimmten Zustand hergestellt haben willst muss das da mit angegeben werden.

                      let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                   {time: 3, state: [{obj: 'deconz.0.Lights.20.hue', val: 0 },{obj:'deconz.0.Lights.20.sat', val: 254 },{obj:'deconz.0.Lights.20.bri', val: 100 } ] },
                                   {time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 100 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                   {time: 5, state: [{obj: 'deconz.0.Lights.20.hue', val: 300 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                   {time:10, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 0 },{obj:'deconz.0.Lights.20.bri', val: 50 } ] }
                      ]
                      
                      let Timeout = null;
                      let TimeFactor = 1000; // seconds
                      let Index = 0;
                      let TimeBetweenCommands = 20;
                      
                      function RunEvent()
                      {
                          if (Index >= Effect.length) Index = 0;
                          let TimeToNextEvent = TimeFactor * Effect[Index].time;
                          let Dt = 0;
                          for (let ObjIndex in Effect[Index].state) {
                              Dt += TimeBetweenCommands;
                              setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                          }
                          Index++;
                          Timeout = setTimeout(RunEvent, TimeToNextEvent);
                      }
                      
                      
                      on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                      on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                      
                      
                      RababersaftR Offline
                      RababersaftR Offline
                      Rababersaft
                      schrieb am zuletzt editiert von
                      #10

                      @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                      Hallo Liebes Forum, mit dem Script,

                      let Effect =[{time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 0d326e },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 20 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20 } ] },
                                   {time: 3, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8954ab },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 25 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 10 } ] },
                                   {time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 9b54ab },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 40 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                   {time: 5, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: c447c0 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 55 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 50 } ] },
                                   {time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: c4479f },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 30 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                   {time: 7, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: d60f7d },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 80 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 60 } ] },
                                   {time: 2, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: d60f62 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 70 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 70 } ] },
                                   {time: 9, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1025 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 50 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                   {time: 3, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1010 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 30 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 40 } ] },
                                   {time: 5, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1410 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 50 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20 } ] },
                                   {time:10, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: a14a1f },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 0 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 50 } ] }
                      ]
                       
                      let Timeout = null;
                      let TimeFactor = 1000; // seconds
                      let Index = 0;
                      let TimeBetweenCommands = 20;
                       
                      function RunEvent()
                      {
                          if (Index >= Effect.length) Index = 0;
                          let TimeToNextEvent = TimeFactor * Effect[Index].time;
                          let Dt = 0;
                          for (let ObjIndex in Effect[Index].state) {
                              Dt += TimeBetweenCommands;
                              setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                          }
                          Index++;
                          Timeout = setTimeout(RunEvent, TimeToNextEvent);
                      }
                       
                       
                      on({id: 'javascript.0.Eigene_Datenpunkte.Beleuchtung.Halloween.SwitchOnOff', change: "gt"}, function () { RunEvent() });
                      on({id: 'javascript.0.Eigene_Datenpunkte.Beleuchtung.Halloween.SwitchOnOff', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                       
                      

                      bekomme ich diese folgenden fehlermeldungen...

                      javascript.0	2019-10-12 14:43:52.463	info	Stop script script.js.Beleuchtung.Farbwechsel.Diebwechsel1
                      javascript.0	2019-10-12 14:43:40.074	error	at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
                      javascript.0	2019-10-12 14:43:40.074	error	at Socket.Readable.push (_stream_readable.js:224:10)
                      javascript.0	2019-10-12 14:43:40.074	error	at readableAddChunk (_stream_readable.js:269:11)
                      javascript.0	2019-10-12 14:43:40.073	error	at addChunk (_stream_readable.js:288:12)
                      javascript.0	2019-10-12 14:43:40.073	error	at Socket.emit (events.js:198:13)
                      javascript.0	2019-10-12 14:43:40.073	error	at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20)
                      javascript.0	2019-10-12 14:43:40.073	error	at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24)
                      javascript.0	2019-10-12 14:43:40.073	error	at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31)
                      javascript.0	2019-10-12 14:43:40.073	error	at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12)
                      javascript.0	2019-10-12 14:43:40.073	error	at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3)
                      javascript.0	2019-10-12 14:43:40.070	error	at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14
                      javascript.0	2019-10-12 14:43:40.070	error	at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5)
                      javascript.0	2019-10-12 14:43:40.070	error	at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18
                      javascript.0	2019-10-12 14:43:40.069	error	at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10)
                      javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.emit (events.js:198:13)
                      javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14)
                      javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10)
                      javascript.0	2019-10-12 14:43:40.069	error	at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8)
                      javascript.0	2019-10-12 14:43:40.069	error	at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8)
                      javascript.0	2019-10-12 14:43:40.069	error	at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                      javascript.0	2019-10-12 14:43:40.069	error	at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10)
                      javascript.0	2019-10-12 14:43:40.069	error	at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14)
                      javascript.0	2019-10-12 14:43:40.068	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                      javascript.0	2019-10-12 14:43:40.068	error	at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                      javascript.0	2019-10-12 14:43:40.068	error	at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16)
                      javascript.0	2019-10-12 14:43:40.068	error	at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12)
                      javascript.0	2019-10-12 14:43:40.068	error	at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20)
                      javascript.0	2019-10-12 14:43:40.068	error	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                      javascript.0	2019-10-12 14:43:40.068	error	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                      javascript.0	2019-10-12 14:43:40.067	error	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                      javascript.0	2019-10-12 14:43:40.067	error	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                      javascript.0	2019-10-12 14:43:40.067	error	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
                      javascript.0	2019-10-12 14:43:40.067	error	at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
                      javascript.0	2019-10-12 14:43:40.067	error	at Socket.adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
                      javascript.0	2019-10-12 14:43:40.067	error	at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
                      javascript.0	2019-10-12 14:43:40.067	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
                      javascript.0	2019-10-12 14:43:40.067	error	at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
                      javascript.0	2019-10-12 14:43:40.066	error	at Object.createScript (vm.js:277:10)
                      javascript.0	2019-10-12 14:43:40.066	error	at new Script (vm.js:83:7)
                      javascript.0	2019-10-12 14:43:40.066	error	SyntaxError: Invalid or unexpected token
                      javascript.0	2019-10-12 14:43:40.066	error	^
                      javascript.0	2019-10-12 14:43:40.066	error	let Effect =[{time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 0d326e },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 20 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20
                      javascript.0	2019-10-12 14:43:40.065	error	at script.js.Beleuchtung.Farbwechsel.Diebwechsel1:1
                      javascript.0	2019-10-12 14:43:40.065	error	script.js.Beleuchtung.Farbwechsel.Diebwechsel1 compile failed:
                      javascript.0	2019-10-12 14:43:40.061	info	Start javascript script.js.Beleuchtung.Farbwechsel.Diebwechsel1
                      

                      Hier mal die Daten meines Systens:
                      Betriebssystem
                      linux
                      Architektur
                      x64
                      CPUs
                      2
                      Geschwindigkeit
                      1320 MHz
                      Modell
                      AMD E-450 APU with Radeon(tm) HD Graphics
                      RAM
                      3.47 GB
                      System Betriebszeit
                      21 T. 22:02:42
                      Node.js
                      v10.16.3
                      NPM
                      6.9.0
                      Anzahl der Adapter
                      256
                      Festplatte Größe
                      22.79 GB
                      Festplatte frei
                      14.06 GB
                      Betriebszeit
                      1 T. 23:53:33
                      Aktive Instanzen
                      28

                      Kann mir jemand helfen was ich falsch mache?

                      Besten Dank schon mal im Vorraus...

                      AsgothianA 1 Antwort Letzte Antwort
                      0
                      • RababersaftR Rababersaft

                        @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                        Hallo Liebes Forum, mit dem Script,

                        let Effect =[{time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 0d326e },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 20 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20 } ] },
                                     {time: 3, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8954ab },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 25 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 10 } ] },
                                     {time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 9b54ab },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 40 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                     {time: 5, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: c447c0 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 55 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 50 } ] },
                                     {time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: c4479f },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 30 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                     {time: 7, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: d60f7d },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 80 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 60 } ] },
                                     {time: 2, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: d60f62 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 70 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 70 } ] },
                                     {time: 9, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1025 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 50 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 30 } ] },
                                     {time: 3, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1010 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 30 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 40 } ] },
                                     {time: 5, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 8f1410 },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 50 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20 } ] },
                                     {time:10, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: a14a1f },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 0 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 50 } ] }
                        ]
                         
                        let Timeout = null;
                        let TimeFactor = 1000; // seconds
                        let Index = 0;
                        let TimeBetweenCommands = 20;
                         
                        function RunEvent()
                        {
                            if (Index >= Effect.length) Index = 0;
                            let TimeToNextEvent = TimeFactor * Effect[Index].time;
                            let Dt = 0;
                            for (let ObjIndex in Effect[Index].state) {
                                Dt += TimeBetweenCommands;
                                setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                            }
                            Index++;
                            Timeout = setTimeout(RunEvent, TimeToNextEvent);
                        }
                         
                         
                        on({id: 'javascript.0.Eigene_Datenpunkte.Beleuchtung.Halloween.SwitchOnOff', change: "gt"}, function () { RunEvent() });
                        on({id: 'javascript.0.Eigene_Datenpunkte.Beleuchtung.Halloween.SwitchOnOff', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                         
                        

                        bekomme ich diese folgenden fehlermeldungen...

                        javascript.0	2019-10-12 14:43:52.463	info	Stop script script.js.Beleuchtung.Farbwechsel.Diebwechsel1
                        javascript.0	2019-10-12 14:43:40.074	error	at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
                        javascript.0	2019-10-12 14:43:40.074	error	at Socket.Readable.push (_stream_readable.js:224:10)
                        javascript.0	2019-10-12 14:43:40.074	error	at readableAddChunk (_stream_readable.js:269:11)
                        javascript.0	2019-10-12 14:43:40.073	error	at addChunk (_stream_readable.js:288:12)
                        javascript.0	2019-10-12 14:43:40.073	error	at Socket.emit (events.js:198:13)
                        javascript.0	2019-10-12 14:43:40.073	error	at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20)
                        javascript.0	2019-10-12 14:43:40.073	error	at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24)
                        javascript.0	2019-10-12 14:43:40.073	error	at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31)
                        javascript.0	2019-10-12 14:43:40.073	error	at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12)
                        javascript.0	2019-10-12 14:43:40.073	error	at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3)
                        javascript.0	2019-10-12 14:43:40.070	error	at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14
                        javascript.0	2019-10-12 14:43:40.070	error	at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5)
                        javascript.0	2019-10-12 14:43:40.070	error	at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18
                        javascript.0	2019-10-12 14:43:40.069	error	at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10)
                        javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.emit (events.js:198:13)
                        javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14)
                        javascript.0	2019-10-12 14:43:40.069	error	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10)
                        javascript.0	2019-10-12 14:43:40.069	error	at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8)
                        javascript.0	2019-10-12 14:43:40.069	error	at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8)
                        javascript.0	2019-10-12 14:43:40.069	error	at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                        javascript.0	2019-10-12 14:43:40.069	error	at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10)
                        javascript.0	2019-10-12 14:43:40.069	error	at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14)
                        javascript.0	2019-10-12 14:43:40.068	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                        javascript.0	2019-10-12 14:43:40.068	error	at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                        javascript.0	2019-10-12 14:43:40.068	error	at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16)
                        javascript.0	2019-10-12 14:43:40.068	error	at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12)
                        javascript.0	2019-10-12 14:43:40.068	error	at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20)
                        javascript.0	2019-10-12 14:43:40.068	error	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                        javascript.0	2019-10-12 14:43:40.068	error	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                        javascript.0	2019-10-12 14:43:40.067	error	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                        javascript.0	2019-10-12 14:43:40.067	error	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                        javascript.0	2019-10-12 14:43:40.067	error	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
                        javascript.0	2019-10-12 14:43:40.067	error	at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
                        javascript.0	2019-10-12 14:43:40.067	error	at Socket.adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
                        javascript.0	2019-10-12 14:43:40.067	error	at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
                        javascript.0	2019-10-12 14:43:40.067	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
                        javascript.0	2019-10-12 14:43:40.067	error	at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
                        javascript.0	2019-10-12 14:43:40.066	error	at Object.createScript (vm.js:277:10)
                        javascript.0	2019-10-12 14:43:40.066	error	at new Script (vm.js:83:7)
                        javascript.0	2019-10-12 14:43:40.066	error	SyntaxError: Invalid or unexpected token
                        javascript.0	2019-10-12 14:43:40.066	error	^
                        javascript.0	2019-10-12 14:43:40.066	error	let Effect =[{time: 1, state: [{obj: 'tradfri.0.L-65555.lightbulb.color', val: 0d326e },{obj:'tradfri.0.L-65555.lightbulb.saturation', val: 20 },{obj:'tradfri.0.L-65555.lightbulb.brightness', val: 20
                        javascript.0	2019-10-12 14:43:40.065	error	at script.js.Beleuchtung.Farbwechsel.Diebwechsel1:1
                        javascript.0	2019-10-12 14:43:40.065	error	script.js.Beleuchtung.Farbwechsel.Diebwechsel1 compile failed:
                        javascript.0	2019-10-12 14:43:40.061	info	Start javascript script.js.Beleuchtung.Farbwechsel.Diebwechsel1
                        

                        Hier mal die Daten meines Systens:
                        Betriebssystem
                        linux
                        Architektur
                        x64
                        CPUs
                        2
                        Geschwindigkeit
                        1320 MHz
                        Modell
                        AMD E-450 APU with Radeon(tm) HD Graphics
                        RAM
                        3.47 GB
                        System Betriebszeit
                        21 T. 22:02:42
                        Node.js
                        v10.16.3
                        NPM
                        6.9.0
                        Anzahl der Adapter
                        256
                        Festplatte Größe
                        22.79 GB
                        Festplatte frei
                        14.06 GB
                        Betriebszeit
                        1 T. 23:53:33
                        Aktive Instanzen
                        28

                        Kann mir jemand helfen was ich falsch mache?

                        Besten Dank schon mal im Vorraus...

                        AsgothianA Offline
                        AsgothianA Offline
                        Asgothian
                        Developer
                        schrieb am zuletzt editiert von
                        #11

                        @Rababersaft
                        Bei Color muss der value als String übergeben werden ( z.bsp. “ a14a1f”) Wenn das vom trådfri Adapter nicht akzeptiert wird geht musst du den Wert als hex darstellen (0xa14a1f statt a14a1f)

                        A.

                        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                        RababersaftR 1 Antwort Letzte Antwort
                        1
                        • AsgothianA Asgothian

                          @marcuskl

                          Hier ist ein Code Beispiel. Im Array Effect kannst du in jeder Zeile die Datenpunkte angeben die du geschaltet haben willst, und auf welchen wert.
                          time: gibt an wie lange der eingestellte Status erhalten bleibt
                          state: Das Array von States die zu schalten sind. Darin jeweils Paare von obj: der Name des einzelnen States und val: der Wert der in diesen State geschrieben werden soll

                          An statischen Steuervariablen hast du:
                          TimeBetweenCommands - Anzahl von ms zwischen 2 Befehlen die abgesetzt werden. Als Absicherung um nicht zu viele Befehle auf einmal zu senden
                          TimeFactor: Ein Faktor für den Eintrag bei "time" im Effect Array. 1000 = Sekunden, 60000 = Minuten

                          Ein/Ausschalten geht über die beiden Subscriptions am Ende.
                          Falls du nach dem Beenden des Events einen bestimmten Zustand hergestellt haben willst muss das da mit angegeben werden.

                          let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                       {time: 3, state: [{obj: 'deconz.0.Lights.20.hue', val: 0 },{obj:'deconz.0.Lights.20.sat', val: 254 },{obj:'deconz.0.Lights.20.bri', val: 100 } ] },
                                       {time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 100 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                       {time: 5, state: [{obj: 'deconz.0.Lights.20.hue', val: 300 },{obj:'deconz.0.Lights.20.sat', val: 200 },{obj:'deconz.0.Lights.20.bri', val: 200 } ] },
                                       {time:10, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 },{obj:'deconz.0.Lights.20.sat', val: 0 },{obj:'deconz.0.Lights.20.bri', val: 50 } ] }
                          ]
                          
                          let Timeout = null;
                          let TimeFactor = 1000; // seconds
                          let Index = 0;
                          let TimeBetweenCommands = 20;
                          
                          function RunEvent()
                          {
                              if (Index >= Effect.length) Index = 0;
                              let TimeToNextEvent = TimeFactor * Effect[Index].time;
                              let Dt = 0;
                              for (let ObjIndex in Effect[Index].state) {
                                  Dt += TimeBetweenCommands;
                                  setStateDelayed(Effect[Index].state[ObjIndex].obj, Effect[Index].state[ObjIndex].val,  Dt);
                              }
                              Index++;
                              Timeout = setTimeout(RunEvent, TimeToNextEvent);
                          }
                          
                          
                          on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                          on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                          
                          
                          marcusklM Offline
                          marcusklM Offline
                          marcuskl
                          schrieb am zuletzt editiert von
                          #12

                          Kommt hier die Farbe rein?

                          let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 
                          

                          Was ist der Datenpunkt "Sat", ich habe diesen nähmlich nicht.

                          obj:'deconz.0.Lights.20.sat', val: 200 
                          

                          rgb.jpg

                          on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                          on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                          

                          Dieser Teil sind die Objekte wo den Effekt vermute ich mal starten, was heißt "gt" und "lt" ?

                          Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

                          Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

                          AsgothianA 1 Antwort Letzte Antwort
                          0
                          • marcusklM marcuskl

                            Kommt hier die Farbe rein?

                            let Effect =[{time: 1, state: [{obj: 'deconz.0.Lights.20.hue', val: 200 
                            

                            Was ist der Datenpunkt "Sat", ich habe diesen nähmlich nicht.

                            obj:'deconz.0.Lights.20.sat', val: 200 
                            

                            rgb.jpg

                            on({id: 'javascript.0.SwitchObject', change: "gt"}, function () { RunEvent() });
                            on({id: 'javascript.0.SwitchObject', change: "lt"}, function () { Index = 0; clearTimeout(Timeout); });
                            

                            Dieser Teil sind die Objekte wo den Effekt vermute ich mal starten, was heißt "gt" und "lt" ?

                            AsgothianA Offline
                            AsgothianA Offline
                            Asgothian
                            Developer
                            schrieb am zuletzt editiert von
                            #13

                            @marcuskl
                            Eine 1:1 Abbildung meinte beispielpunkte zu deinen Lampen gibt es nicht. Du solltest die Angaben im Beispiel ignorieren und schauen welche Datenpunkte du einstellen musst um die Farbe bei dir einzustellen, und diese dann entsprechend in dem Array angeben.
                            lt ist less than
                            gt ist greater than.

                            Der Trick ist dass in JS gilt: True >False

                            Damit triggert gt nur beim Übergang false auf true, und lt nur bei true auf false.

                            A.

                            ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                            "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                            marcusklM 1 Antwort Letzte Antwort
                            1
                            • AsgothianA Asgothian

                              @marcuskl
                              Eine 1:1 Abbildung meinte beispielpunkte zu deinen Lampen gibt es nicht. Du solltest die Angaben im Beispiel ignorieren und schauen welche Datenpunkte du einstellen musst um die Farbe bei dir einzustellen, und diese dann entsprechend in dem Array angeben.
                              lt ist less than
                              gt ist greater than.

                              Der Trick ist dass in JS gilt: True >False

                              Damit triggert gt nur beim Übergang false auf true, und lt nur bei true auf false.

                              A.

                              marcusklM Offline
                              marcusklM Offline
                              marcuskl
                              schrieb am zuletzt editiert von
                              #14

                              @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                              @marcuskl
                              Eine 1:1 Abbildung meinte beispielpunkte zu deinen Lampen gibt es nicht. Du solltest die Angaben im Beispiel ignorieren und schauen welche Datenpunkte du einstellen musst um die Farbe bei dir einzustellen, und diese dann entsprechend in dem Array angeben.
                              lt ist less than
                              gt ist greater than.

                              Der Trick ist dass in JS gilt: True >False

                              Damit triggert gt nur beim Übergang false auf true, und lt nur bei true auf false.

                              A.

                              Ja des ist mir klar, aber ich möchte nur gerne Wissen was dieser Wert macht ?
                              Das eine ist Farbe, das andere Helligkeit und des in der Mitte sagt mir nichts ?

                              Welcher Teil "Objekt/Datenpunkt" Aktiviert dann den Effekt ?
                              Es ist ja in dem Skript nur ein Effekt oder ?

                              Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

                              Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

                              AsgothianA 1 Antwort Letzte Antwort
                              0
                              • marcusklM marcuskl

                                @Asgothian sagte in RGB Effekte synchron mit mehrere Leuchtenn:

                                @marcuskl
                                Eine 1:1 Abbildung meinte beispielpunkte zu deinen Lampen gibt es nicht. Du solltest die Angaben im Beispiel ignorieren und schauen welche Datenpunkte du einstellen musst um die Farbe bei dir einzustellen, und diese dann entsprechend in dem Array angeben.
                                lt ist less than
                                gt ist greater than.

                                Der Trick ist dass in JS gilt: True >False

                                Damit triggert gt nur beim Übergang false auf true, und lt nur bei true auf false.

                                A.

                                Ja des ist mir klar, aber ich möchte nur gerne Wissen was dieser Wert macht ?
                                Das eine ist Farbe, das andere Helligkeit und des in der Mitte sagt mir nichts ?

                                Welcher Teil "Objekt/Datenpunkt" Aktiviert dann den Effekt ?
                                Es ist ja in dem Skript nur ein Effekt oder ?

                                AsgothianA Offline
                                AsgothianA Offline
                                Asgothian
                                Developer
                                schrieb am zuletzt editiert von Asgothian
                                #15

                                @marcuskl
                                Nach dem Farbmodell wird die Farbe über „hue“, „saturation“ und „value“. (Siege auch hier

                                Das Objekt was ich „switchobjekt“ genannt hat steuert das ganze. Wenn der auf true wechselt geht es los, wechselt er auf false hört es auf

                                A.

                                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                1 Antwort Letzte Antwort
                                0
                                • AsgothianA Asgothian

                                  @Rababersaft
                                  Bei Color muss der value als String übergeben werden ( z.bsp. “ a14a1f”) Wenn das vom trådfri Adapter nicht akzeptiert wird geht musst du den Wert als hex darstellen (0xa14a1f statt a14a1f)

                                  A.

                                  RababersaftR Offline
                                  RababersaftR Offline
                                  Rababersaft
                                  schrieb am zuletzt editiert von Rababersaft
                                  #16

                                  @Asgothian

                                  Hat funktioniert, :+1: :+1:
                                  als String bei trådfri "xyz"
                                  Danke vielmals ...

                                  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

                                  441

                                  Online

                                  32.6k

                                  Benutzer

                                  82.3k

                                  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