Mehrere Hue Lampen

Nabend,

ich möchte bei mehreren Hue Lampen, je nach deren Status, dass diese auf ein Blinklicht umschalten und wieder zurückgehen oder sich anschalten und wieder ausgehen.

Grundsätzlich geht es, viele Hue Lampen vorher zu definieren (local lightID = {XX, XX}) und diese umzuschalten und nach Ereignis wieder zurück zum “Normalwert” bzw. anzuschalten und dann wieder auszuschalten. Mein Problem ist, wenn nun bei 2 Lampen die Erste an ist und Zweite aus ist, funktioniert das Ganze nicht mehr.

Ich kann natürlich für jede Hue einzeln das Ganze definieren, so dass diese Zustände sich nicht ins Gehege kommen, ist aber ganz schön umständlich.

Nachstehend mal in Lua was ich meine:

local lightID  = {XX, XX} 

 if (tonumber(fibaro:getValue(lightID[1], "on")) == 1) --wenn Hue bereits an dann Licht umschalten
 
	then
    
      for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 255)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "changeHue", 65535) -- rot
    end
	fibaro:sleep(5*1000)

    for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 255)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "turnOn")
      fibaro:call(lightID[i], "changeHue", 44309) -- blau
    end
   	fibaro:sleep(5*1000)

   	for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 212)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "changeHue", 26241) -- grün
      fibaro:call(lightID[i], "turnOn")
    end
  		fibaro:sleep(5*100)

   	for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 140)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "changeHue", 8418) -- warmweiß - Normallicht 
      fibaro:call(lightID[i], "turnOn")
     end

	else --andernfalls Licht an
  
      for i=1, #lightID do
       fibaro:call(lightID[i], "changeSaturation", 255)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "turnOn")
      fibaro:call(lightID[i], "changeHue", 65535) -- rot
    end
	fibaro:sleep(5*1000)

    for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 255)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "turnOn")
      fibaro:call(lightID[i], "changeHue", 44309) -- blau
    end
   	fibaro:sleep(5*1000)

   	for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 212)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "changeHue", 26241) -- grün
      fibaro:call(lightID[i], "turnOn")
    end
  		fibaro:sleep(5*100)

   	for i=1, #lightID do
      fibaro:call(lightID[i], "changeSaturation", 140)
      fibaro:call(lightID[i], "changeBrightness", 255)
      fibaro:call(lightID[i], "changeHue", 8418) -- warmweiß - Normallicht 
      fibaro:call(lightID[i], "turnOn")
    end 
	  fibaro:sleep(200) --Wartezeit für Wechsel auf Normallicht 

   	for i=1, #lightID do
      fibaro:call(lightID[i], "turnOff")
    end
 end

Einer einen Plan, ob das umzusetzen ist ohne jede Lampe einzeln aufzunehmen und zu sagen, wenn an dann dass oder wenn aus dann das?

Hallo Martin,
ich habe das folgendermaßen gelöst. Bei mir ist es egal ob eine Lampe an ist bzw. aus ist, das Script läuft ab. Die Lampen blinken unteschiedlich Blau und Rot und am Ende setze ich den Wert den die Lampen wieder annehmen sollen. Dadurch stelle ich sicher, dass die Lampe mit der richtigen Einstellung startet die ich haben will, wenn ich Alexa sage Lampe XY an.
Gruß secundani


--[[
%% properties
%% globals
--]]
 

--------------------------------------------------------------------------
local hues  = {146,230}; -- Hue IDs
---------------------------------------------------------------------------

for a = 1, 7 do    
   for i = 1,#hues do                                      
		fibaro:call(hues[i], "turnOn")                                
		 fibaro:call(hues[i], "changeSaturation", 255)                
		 fibaro:call(hues[i], "changeBrightness", 255)                
            fibaro:call(hues[i], "changeHue", 40595)              
   end                                                       
  fibaro:sleep(2*700);                                  
    for i = 1,#hues do                                        
            fibaro:call(hues[i], "changeHue", 0)                  
    end                                                      
  fibaro:sleep(1*700);                                      
 end                                                         
 		--fibaro:call(230, "turnOn")                                
		fibaro:call(230, "changeSaturation", 199)                
		fibaro:call(230, "changeBrightness", 255)                
        fibaro:call(230, "changeHue", 7676) 

		--fibaro:call(146, "turnOn")                                
		fibaro:call(146, "changeSaturation", 207)                
		fibaro:call(146, "changeBrightness", 144)                
        fibaro:call(146, "changeHue", 6343) 
		fibaro:call(146, "turnOff") 

Mein Problem ist ja, dass eine Lampe die an war, nach dem Blinklicht wieder in den Originalzustand zurückgehen soll und eine Lampe die aus war, dann auch wieder aus geht.

Glaube einmal gesehen zu haben, dass ein Zustand in einer Variable gespeichert werden kann, um dann später wieder diese Einstellung anzunehmen.

Versteht einer mein Anliegen? Wie löst ihr das Problem bei Alarm, wenn Lampen nach Alarm wieder den vorherigen Zustand einnehmen sollen?

Ja, versteht man.
Da die Hues nicht nur nur über einen Parameter gesteuert werden, ist das hier nur etwas aufwendiger.
Bevor die eigentliche Aktion in dem Script losgeht, kannst du je Hue die relevanten Parameter in eine lokale Variable speichern.
Am Ende des Scriptes nutzt du mdiese Var wieder, um den vorherigen Zustandes wieder herzustellen.
Etwas Fleißarbeit. Aber geht.

Hast du unabhängig davon dir hier mal die Scripts zu Blinklicht angesehen. Da wird mit Funktionen gearbeitet. Das macht das aufgeräumter.

Viele Grüße Hoggle

@Hoggle

Danke. Werde das mit in einer lokalen Variable speichern einmal versuchen. Alles eine Zeitfrage.

Funtionen nutze ich mittlerweile. :smiley: Kommt immer so nach und nach mit Lua.

@Martin

Und? Hast du das schon hinbekommen? Das wäre nämlich genau das, was ich suche. Ich möchte nämlich meine Osram Lightify Außenleuchten kurz rot blinken lassen, sobald ich die Alarmanlage per Fernbedienung erfolgreich schargeschaltet habe. Quasi als optische Kontrolle. Danach sollen sie ganz normal in den alten Zustand zurückkehren.

@eccki

Nein!

Habe auch im Moment wenig Zeit, so dass ich nicht weiter rumprobieren konnte. Mein Problem ist schon, dass ich nicht weiß, mit welchem Befehl ich die Werte bei den Hues auslese, da sich das von normalen Leuchtmittel wohl unterscheiden wird.

Laufen die Osram Lightify Außenleuchten so oder über das Hue plugin?

lua-funktion-farbe-speichern-und-nach-alarm-wieder-setzen

Auszug:

 --------------------------------------------------
   -- Werte auslesen und Variablen setzen--
   --------------------------------------------------
 
Phone1 = (fibaro:getGlobal("PhoneChris")); -- ID Chris iPhone
Phone2 = (fibaro:getGlobal("PhonePaula"));  -- ID Paula iPhone
 
local volumeRocki= ( tonumber(fibaro:getValue(967, "ui.SliderVolume.value"))); -- aktuelle Lautstärke speichern
fibaro:call(967, "setSlider", "13", "99");  -- Slider für Rocki Lautstärke setzen
 
pendel_old = fibaro:getValue(445, "color") -- aktuelle Lichtfarbe Pendelleuchte Küche
LEDring_old = fibaro:getValue(125, "color") -- aktuelle Lichtfarbe LED Ring Wohnzimmer
Schlafzimmer_old = fibaro:getValue(536, "value") -- aktueller Zustand Schlafzimmer Lampe
Fluroben_old = fibaro:getValue(556, "value") -- aktueller Zustand Licht Flur Oben
Bad_old = fibaro:getValue(552, "value") -- aktueller Zustand Licht Bad 
Badschrank_old = fibaro:getValue(791, "value") -- aktueller Zustand Licht Badschrank
Treppeunten_old = fibaro:getValue(784, "value") -- aktueller Zustand Licht Treppe unten 

Weiß jemand wie das für die Hues ausschaut?

Irgendwas wie: fibaro:getValue(xxx, “ui.Hue.value”) vielleicht?

Hi,
Hast schon in der Datenbank nach Hue gesucht?

Viele Grüße Hoggle

Hast schon in der Datenbank nach Hue gesucht?

Ja. Da habe ich nichts hilfreiches gefunden oder zu oberflächlich geguckt.

Es gibt auch irgendwie keine richtige Erklärung, wie ich einen Wert in einer Variable speichere.

Oder geh auf die Siio Seite und suche nach Hue - ich kann den Link nicht aus der App kopieren…

Oder
https://forum.fibaro.com/topic/23519-vd-philips-hue-color-white-ambience-and-white-dimmable-only-v21mv21b/?page=10&tab=comments#comment-146167

Zur Variable; mach eine simple Blockszene und wandele diese in LUA um, dann hast du den exakten Code.

Viele Grüße Hoggle