Virtuelles Modul oder Szenen die hue Szenen ansteuern

Gerade in größeren Setups ist es eigentlich total unsinnig auf der hue-bridge einzelne Lampen anzusteuern. Wenn man schon diesen wunderbaren Lichtcontroller mit allen seinen Möglichkeiten hat, dann sollte man dort eigentlich keine Lampen direkt ansteuern sondern Szenen, die man dann vom Homecenter aus startet. Das ist deutlich effektiver als viele Lampen einzeln anzusteuern und es bietet viel mehr Möglichkeiten wie z.B. Einblendzeiten usw. Wenn ich mich recht erinnere bietet die hue API auch die Möglichkeit über die Gruppen API Szenen zu steuern. Hat das schon mal jemand in Angriff genommen und ein Script dazu erstellt oder gefunden?

1 Like

Sorry Freunde - so lange kann ich nicht warten! Hier ist so ein Script. Allerdings noch etwas rudimentär weil in Eile zusammengedrechselt aber ich habe es gerade ausprobiert und es läuft. Viel Spaß damit. Anbei auch noch das virtuelle Modul zum Importieren.

-----------------------------------------------------------------------------
-- Philips HUE Scene Selector
-----------------------------------------------------------------------------

--[[
-----------------------------------------------------------------------------
V. 0.1.0
by i3ke
-----------------------------------------------------------------------------
--]]

-- PART OF CODE FOR USERS TO EDIT AND SETUP ---------------------------------
-- enter HUE scene to set. You can get this ID eg. in the all4hue Android app

local hueSceneID = "QLfLRvafY7JVSYz"
local hueGroupID = "4"
local hueOn = true

-- enter name of the user that you added to the HUE bridge into a global variable hueUser1
local hueUser = fibaro:getGlobal("hueUser1")

-- Icons are subject of a future version of this script
-- ICON ... blablabla

-- END OF USER DEFINED SETUP --------------------------

-- build API strings
local hueAPIget ="/api/"..hueUser.."/groups/"..hueGroupID
local hueAPIput = hueAPIget.."/action"
local hueAPIaction = '{"scene":"'..hueSceneID..'"}'

-- get this virtual device ID
vDeviceID = fibaro:getSelfId()

-- get IP address and TCP port for PhilipsHUE bridge
hueIP = fibaro:get(vDeviceID, "IPAddress")
huePort = fibaro:get(vDeviceID, "TCPPort")

-- verify API call
fibaro:debug(hueAPIget)
fibaro:debug(hueAPIput)
fibaro:debug(hueAPIaction)
  
-- connect to the Hue bridge 
Hue = Net.FHttp(hueIP,huePort)

-- this is the moment where the frog is running into the water
-- HTTP GET to get all the info from the scene 
response ,status , errorCode = Hue:GET(hueAPIget);

-- continue if HTTP status code is 200 
if (tonumber(status) == 200) then 
  fibaro:debug("connection OK");
  
  -- HTTP PUT to set the new values 
    response, status, errorCode = Hue:PUT(hueAPIput, hueAPIaction);
  if (tonumber(status) == 200) then 
     fibaro:debug("scene OK")
  else
     fibaro:debug("scene error")
  end 
else 
    fibaro:log("Hue: not reachable"); 
  
end

Philips hue SceneController

Anbei habe ich mal ein Virtuelles Modul zur Szenensteuerung gebastelt. Es gibt fünf Schalter zur Lichtszenenauswahl, einen Slider um die Gruppe zu dimmen und zwei Knöpfe um die Lichter der Gruppe an und aus zu schalten.
Bisher ist das Ganze nur oneway - es werden also noch keine Werte aus der hue bridge gelesen - in diesem Punkt ist die hue API - um es vorsichtig auszudrücken “etwas beschränkt”.

Da man hier leider nichts hochladen kann, ein Link zur Dropbox Freigabe:
Philips hue SceneController

Viel Spaß damit und vielleicht hat ja jemand Lust die Rückmeldungen von der hue Bridge auch noch zu scripten und ein paar hübsche Icons einzubinden.
Die API ist schlecht aber gut dokumentiert: hue API - Registrierung erforderlich

Als zip oder txt kann man es hochladen.

Gruß

Hallo zusammen
Ist zwar schon etwas älter aber besten Dank i3ke für das Script. Finde die Einbindung der Hue Leuchten über Gruppen um einiges eleganter als über einzelne Leuchten. Mit 10 Deckenspots sieht eine Schaltung über die einzelnen ID’s und Schleife doch etwas suboptimal aus.

Ein Tipp noch für die, welche die Szenen möglichst einfach ins Lua reinkopieren möchten. Gebt direkt im Browser folgendes ein: http://“ip-adresse-bridge”/api/“nutzer-als-token”/scenes
Das ganze spuckt unter anderem folgendes aus: “lmtrEv0L17R6y34”:{“name”:“Konzentrieren”,“type”:“GroupScene”,“group”:“6”,“lights”:[“18”,“19”,“21”,“22”]
Das fett gedruckte ist eure Szenen ID.

Beste Grüsse und Danke allen für die Arbeit in diesem Forum!

Hab jetzt endlich mal die Zeit gefunden es auch zu implementieren. Funktioniert wirklich klasse. Vielen Dank dafür.

Was auch super geht ist mittels “bri_inc”: die ganze Gruppe auf- oder abzudimmen. Das war ohne das immer recht hakelig.