HUE Lampen in Verbindung mit Fibaro sind eine häufig anzutreffende Kombination, und mit dem Fibaro HUE Plugin sind die HUE aus Szenen heraus auch leicht anzusprechen. Nun möchte man nicht für jedes An, Aus, Heller oder Dunkler das Telefon hervorholen oder Siri bemühen, und dazu gibt es ja auch noch diese praktischen Dinger an der richtigen Stelle direkt neben der Tür: Die Lichtschalter.
Hier stellen wir euch ein Skript vor, mit dem sich eure HUE, oder auch eine Gruppe von HUEs, über einen Taster am Dimmer 2 steuern lassen, als wären es "normale" Leuchtmittel: An/Aus mit Klick, Heller/Dunkler im Wechsel mit Halten und volle Helligkeit mit Doppelklick. Was ihr dazu braucht sind HUE Lampen an einer HUE Bridge, das Fibaro HUE Plugin installiert im Home Center und ein Taster am Eingang S2 eines Fibaro Dimmers. Diesen Taster am zweiten Eingang des Dimmers zum Dimmen der HUE zu verwenden ist in wenigen Schritten erledigt. So geht's:
Zuerst aktiviere in den Einstellungen des Fibaro Dimmers die "Scene activation functionality" (Parameter 28). Dadurch kann ein Tastendruck am Dimmer das Dimmen der HUE über die Szene mit unserem Skript auslösen.
Lege anschließend im Home Center eine neue Szene an und kopiere den Code für die Szene dort hinein. Den Namen und Raum der Szene kannst du dir aussuchen, er hat keine Auswirkungen.
Konfiguration des HUE Skript
Jetzt musst du im Kopf der Szene die IDs deiner Geräte eintragen:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--[[ %% properties <ID Dimmer> sceneActivation %% events %% globals --]] local HUEs = {<ID HUE 1>, <ID HUE 2>, ...} -- IDs of HUE as Array {X, Y, Z} local fibaroID = <ID Dimmer> -- Set ID of Device which shall dim HUE local sceneID = <ID Szene> -- Set ID of this scene |
Die IDs des Dimmers und der HUEs findest im Home Center, wenn du beim Bearbeiten der Szene links in der Leiste mit dem Mauszeiger über die "Devices List" fährst und das gesuchte Gerät auswählst. Nur gucken, nicht klicken! Die IDs der zu steuernden HUEs kommen mit Komma getrennt in die geschwungenen Klammern. Wenn es nur eine HUE ist, nur eine ID ohne Komma.
Die ID der Szene findest du, wenn du in der Szene auf den Reiter "General / Allgemein" umschaltest. Wenn du fertig bist, Speichern nicht vergessen.
Damit das Skript sich merken kann, ob als nächstes hoch oder herunter gedimmt werden soll, legen wir noch zwei Variablen an: Gehe dazu im Home Center auf "Panels > Variables Panel" und klicke im oberen Bereich "Variables" (nicht bei "Predefined variables") auf "Add". Hier legst du zwei neue Einträge an:
"dimUpDown" mit dem Wert 1
"lastDimToggle" ebenfalls mit dem Wert 1
Du musst die Einträge genau so schreiben, ohne die Anführungszeichen. Auch hier das Speichern nicht vergessen.
Das war es schon. Jetzt sollte die bisher ungenutzte zweite Taste am Dimmer 2 deine HUE dimmen.
Die Tasten tauschen
Wahrscheinlich schaltet die erste Taste des Dimmers (S1) deine HUE bisher komplett aus und weiß mit voller Helligkeit wieder an. Diese Funktion brauchst du jetzt nicht mehr, so wie zuvor die nutzlose zweite Taste. Damit du dich nicht umgewöhnen musst, können wir einfach die Tasten tauschen: Aktiviere dazu im Home Center beim Dimmer die Option "Switch functionality of S1 and S2" (Parameter 29). Jetzt macht die bisher gewohnte Taste, was man von ihr erwarten würde.
Falls du übrigens die schönen Flat Icons von Andreas Vichr benutzt (an dieser Stelle nochmal Danke, Andreas), findest du hier HUE Icons für den Fibaro Dimmer, der nur den Strom für deine HUE schaltet, und den du ja jetzt nicht mehr brauchst, damit du ihn zukünftig von den "echten" Dimmern unterscheiden kannst. Es sind drei Icons: On (100%) und Off (0%), sowie ein "Low" (10%-90%) um dir anzuzeigen, dass du die HUE gerade über den Dimmer dimmst, was diese gar nicht mögen.
Wenn du möchtest, kannst du jetzt noch über die weiteren Parameter im Kopf des Skriptes die Geschwindigkeit und die Schritte des Dimmens einstellen, sowie die Zeit in der man von Hoch- auf Herunter-Dimmen wechseln kann. Wähle die "stepTime" nicht zu kurz, das überfordert das HUE Plugin. Sollte das Plugin nicht mehr reagieren, hilft ein Neustart des Home Centers.
Übrigens funktioniert das Skript auch am Eingang S1, mit einem Schalter statt Taster und auch mit anderen Fibaro Modulen. Dazu musst du die Szene Activation Codes im Skript auf die gewünschten Auslöser anpassen.
Hier das Skript. Viel Spaß!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
--[[ %% properties <ID Dimmer> sceneActivation %% events %% globals --]] local HUEs = {<ID HUE 1>, <ID HUE 2>, ...} -- IDs of HUE as Array {X, Y, Z} local fibaroID = <ID Dimmer> -- Set ID of Device which shall dim HUE local sceneID = <ID Szene> -- Set ID of this scene local stepPercentage = 7 -- Dimmer step in percent local stepTime = 0.05 -- Dimmer step duration in seconds local toggleTime = 5 -- Time to toggle dim up/down ---- Do not modify code below that line ---- function dimHue (hueID, step) local valueDimmer = tonumber(fibaro:getValue(hueID, "ui.brightness.value")) + step if valueDimmer < 0 then if valueDimmer == 0 + step then return end; valueDimmer = 0 -- fibaro:call(hueID, "turnOff") -- enable if you want HUE to switch off when dimmed down fully end if valueDimmer > 255 then if valueDimmer == 255 + step then return end; valueDimmer = 255 end -- fibaro:debug("HUE " .. hueID ..": ".. valueDimmer) fibaro:call(hueID, "changeBrightness", valueDimmer) end local startSource = fibaro:getSourceTrigger(); if ( ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 ) or startSource["type"] == "other" ) then -- Click local deviceValue1 = tonumber(fibaro:getValue(HUEs[1], "on")); if (deviceValue1 > 0) then for i, iHUE in ipairs(HUEs) do fibaro:call(iHUE, "turnOff") end else for i, iHUE in ipairs(HUEs) do fibaro:call(iHUE, "turnOn") end end elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then -- Hold local dimUpDown = fibaro:getGlobal("dimUpDown") local lastDimToggle = fibaro:getGlobal("lastDimToggle") -- always start a new dim with dimming up if os.time() - lastDimToggle > toggleTime then dimUpDown = 1 end -- if off, switch on and dim up from darkest local deviceValue1 = tonumber(fibaro:getValue(HUEs[1], "on")); if (deviceValue1 == 0) then for i, iHUE in ipairs(HUEs) do fibaro:call(iHUE, "changeBrightness", 1) fibaro:call(iHUE, "turnOn") end dimUpDown = 1 end -- if maximum brighntess start wich dimming down if tonumber(fibaro:getValue(HUEs[1], "ui.brightness.value")) == 255 then dimUpDown = -1 end fibaro:setGlobal("dimUpDown", dimUpDown * -1) local step = math.floor(255 / 100 * stepPercentage * dimUpDown) -- Start dim loop print ("Start dim",step) repeat for i, iHUE in ipairs(HUEs) do dimHue (iHUE, step) end fibaro:sleep(1000 * stepTime) until false elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then -- Release print ("Stop") fibaro:setGlobal("lastDimToggle", os.time()) fibaro:killScenes(sceneID) elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 24 ) then -- Double Click print ("Setting maximum") for i, iHUE in ipairs(HUEs) do dimHue (iHUE, 255) fibaro:call(iHUE, "turnOn") end end |
Alternativ kannst du dir das Skript hier herunterladen:
[icons icon="icon-folder-open" color="#dd3333" size="18"] Skript - DOWNLOAD ZIP
In der Zip-Datei befindet sich eine LUA-Datei mit dem oben geposteten Quellcode. Diese Zip muss nur entpackt werden und der Inhalt kann dann mit einem beliebigen Text-Editor bearbeitet werden.
Super Beitrag, danke! Eine Frage: Geht das auch mit dem RGBW-Modul? Ich habe nämlich 3 Dimmer verbaut mit denen ich jeweils über S2 meine sich im Raum befindlichen RGBWs steuere. Aktuell dimme ich mit Doppelklick hoch und mit gedrückt halten herunter. Jetzt wäre es natürlich richtig gut, wenn ich eben wie beim Script oben, das mit gedrückthalten hinbekomme. Ich hätte dann nämlich den Doppelklick für eine andere Aktion, wie z.B. Sonos an/aus, frei. Das wäre mega :)
Geht :) Hab HUE einfach durch RGWB ersetzt und die auszulesenden Daten an die Befehle des RGBWs angepasst. Anbei das Script
--[[
%% properties
sceneActivation
%% events
%% globals
--]]
local RGBWs = {RGBW} -- IDs of RGBW as Array {X, Y, Z}
local fibaroID = -- Set ID of Device which shall dim RGBW
local sceneID = -- Set ID of this scene
local stepPercentage = 3 -- Dimmer step in percent
local stepTime = 0.05 -- Dimmer step duration in seconds
local toggleTime = 5 -- Time to toggle dim up/down
---- Do not modify code below that line ----
function dimRgbw (rgbwID, step)
local valueDimmer = tonumber(fibaro:getValue(rgbwID, "brightness")) + step
if valueDimmer 255 then
if valueDimmer == 255 + step then return end;
valueDimmer = 255
end
-- fibaro:debug("RGBW " .. rgbwID ..": ".. valueDimmer)
fibaro:call(rgbwID, "setBrightness", valueDimmer)
end
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 )
or
startSource["type"] == "other"
)
then
-- Click
local deviceValue1 = tonumber(fibaro:getValue(RGBWs[1], "on"));
if (deviceValue1 > 0) then
for i, iRGBW in ipairs(RGBWs) do
fibaro:call(iRGBW, "turnOff")
end
else
for i, iRGBW in ipairs(RGBWs) do
fibaro:call(iRGBW, "turnOn")
end
end
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then
-- Hold
local dimUpDown = fibaro:getGlobal("dimUpDown")
local lastDimToggle = fibaro:getGlobal("lastDimToggle")
-- always start a new dim with dimming up
if os.time() - lastDimToggle > toggleTime then dimUpDown = 1 end
-- if off, switch on and dim up from darkest
local deviceValue1 = tonumber(fibaro:getValue(RGBWs[1], "on"));
if (deviceValue1 == 0) then
for i, iRGBW in ipairs(RGBWs) do
fibaro:call(iRGBW, "setBrightness", 1)
fibaro:call(iRGBW, "turnOn")
end
dimUpDown = 1
end
-- if maximum brighntess start wich dimming down
if tonumber(fibaro:getValue(RGBWs[1], "brightness")) == 255 then dimUpDown = -1 end
fibaro:setGlobal("dimUpDown", dimUpDown * -1)
local step = math.floor(255 / 100 * stepPercentage * dimUpDown)
-- Start dim loop
print ("Start dim",step)
repeat
for i, iRGBW in ipairs(RGBWs) do
dimRgbw (iRGBW, step)
end
fibaro:sleep(1000 * stepTime)
until false
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then
-- Release
print ("Stop")
fibaro:setGlobal("lastDimToggle", os.time())
fibaro:killScenes(sceneID)
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 24 ) then
-- Double Click
print ("Setting maximum")
for i, iRGBW in ipairs(RGBWs) do
dimRgbw (iRGBW, 255)
fibaro:call(iRGBW, "turnOn")
end
end
Ja, das geht so. Allerdings arbeitet das Fibaro RGB Modul mit dem Dimbereich 0-100 statt 0-255. Die angepasst Version ist unterwegs.
Auf die gleiche Weise lassen sich auch RGB Module über einen Dimmer 2 steuern. Es bedarf nur kleinerer Änderungen. Hier die angepasst Version des Skriptes:
--[[
%% properties
98 sceneActivation
%% events
%% globals
--]]
local RGBs = {175, 176, 177} -- IDs of RGB as Array {X, Y, Z}
local fibaroID = 98 -- Set ID of Device which shall dim RGB
local sceneID = 8 -- Set ID of this scene
local stepPercentage = 7 -- Dimmer step in percent
local stepTime = 0.05 -- Dimmer step duration in seconds
local toggleTime = 5 -- Time to toggle dim up/down
---- Do not modify code below that line ----
function dimRGB (rgbID, step)
local valueDimmer = tonumber(fibaro:getValue(rgbID, "brightness")) + step
if valueDimmer 100 then
if valueDimmer == 100 + step then return end;
valueDimmer = 100
end
-- fibaro:debug("RGB " .. rgbID ..": ".. valueDimmer)
fibaro:call(rgbID, "setBrightness", valueDimmer)
end
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 )
or
startSource["type"] == "other"
)
then
-- Click
local deviceValue1 = tonumber(fibaro:getValue(RGBs[1], "brightness"))
if (deviceValue1 > 0) then
for i, iRGB in ipairs(RGBs) do
fibaro:call(iRGB, "turnOff")
end
else
for i, iRGB in ipairs(RGBs) do
fibaro:call(iRGB, "turnOn")
end
end
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then
-- Hold
local dimUpDown = fibaro:getGlobal("dimUpDown")
local lastDimToggle = fibaro:getGlobal("lastDimToggle")
-- always start a new dim with dimming up
if os.time() - lastDimToggle > toggleTime then dimUpDown = 1 end
-- if off, switch on and dim up from darkest
local deviceValue1 = tonumber(fibaro:getValue(RGBs[1], "brightness"))
if (deviceValue1 == 0) then
for i, iRGB in ipairs(RGBs) do
fibaro:call(iRGB, "setBrightness", "1")
end
dimUpDown = 1
end
-- if maximum brighntess start wich dimming down
if tonumber(fibaro:getValue(RGBs[1], "brightness")) == 100 then dimUpDown = -1 end
fibaro:setGlobal("dimUpDown", dimUpDown * -1)
local step = math.floor(100 / 100 * stepPercentage * dimUpDown)
-- Start dim loop
print ("Start dim",step)
repeat
for i, iRGB in ipairs(RGBs) do
dimRGB (iRGB, step)
end
fibaro:sleep(1000 * stepTime)
until false
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then
-- Release
print ("Stop")
fibaro:setGlobal("lastDimToggle", os.time())
fibaro:killScenes(sceneID)
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 24 ) then
-- Double Click
print ("Setting maximum")
for i, iRGB in ipairs(RGBs) do
dimRGB (iRGB, 100)
end
end
Wow, danke :)
was ich nicht so recht verstehen möchte, ist die Szene Aktivierung
"sceneActivation")) == 24 )
Was wird hier aktiviert???
ich möchte das nämlich für meine Steuerung umschreiben. Und ich möchte das Ganze verstehen können.
Beim mir ist es so, dass ich auf meinem RelaySwitch den Tasterkontakt habe und die Lampe an einem Dimmer2. Jetzt möchte ich nicht nur das Licht Ein/Aus schalten, sondern auch dimmen. Da würde die Programmierung ja passen. finde nur meinen Fehler nicht:
--[[
%% properties
98 sceneActivation
%% events
%% globals
--]]
local DimWinterGarten = {154} -- IDs vom Dimmer
local fibaroID = 157 -- ID vom Gerät was dimmen soll
local sceneID = 12 -- ID von dieser Szene
local stepPercentage = 7 -- Dimmer step in percent
local stepTime = 0.05 -- Dimmer step duration in seconds
local toggleTime = 5 -- Time to toggle dim up/down
function dimWinterLicht (dimmID, step)
local valueDimmer = tonumber(fibaro:getValue(dimmID, "brightness")) + step
if valueDimmer > 100 then
if valueDimmer == 100 + step then return end;
valueDimmer = 100
end
fibaro:debug("DIMM " .. dimmID ..": ".. valueDimmer)
fibaro:call(dimmID, "setBrightness", valueDimmer)
end
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 26 )
or
startSource["type"] == "other"
)
then
-- Click
local deviceValue1 = tonumber(fibaro:getValue(DimWinterGarten[1], "brightness"));
if (deviceValue1 > 0) then
for i, iDIMM in ipairs(DimWinterGarten) do
fibaro:call(iDIMM, "turnOff")
end
else
for i, iDIMM in ipairs(DimWinterGarten) do
fibaro:call(iDIMM, "turnOn")
end
end
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 22 ) then
-- Hold
local dimUpDown = fibaro:getGlobalValue("dimUpDown")
local lastDimToggle = fibaro:getGlobal("lastDimToggle")
-- if off, switch on and dim up from darkest
local deviceValue1 = tonumber(fibaro:getValue(DimWinterGarten[1], "brightness"));
if (deviceValue1 == 0) then
for i, iDIMM in ipairs(DimWinterGarten) do
fibaro:call(iDIMM, "setBrightness", 1)
end
dimUpDown = 1
end
-- if maximum brighntess start wich dimming down
if tonumber(fibaro:getValue(DimWinterGarten[1], "brightness")) == 100 then dimUpDown = -1 end
fibaro:setGlobal("dimUpDown", dimUpDown * -1)
local step = math.floor(100 / 100 * stepPercentage * dimUpDown)
-- Start dim loop
print ("Start dim",step)
repeat
for i, iDIMM in ipairs(DimWinterGarten) do
dimWinterLicht (iDIMM, step)
end
fibaro:sleep(1000 * stepTime)
until false
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 23 ) then
-- Release
print ("Stop")
fibaro:setGlobal("lastDimToggle", os.time())
fibaro:killScenes(12)
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 24 ) then
-- Double Click
print ("Setting maximum")
for i, iDIMM in ipairs(DimWinterGarten) do
dimWinterLicht (iDIMM, 100)
end
end
Hi, ich bin neu im Bereich FIbaro und habe eine Frage.
Verstehe ich das richtig, dass die Hue Lampen durch Verwendung des Hue AddOn gedimmt werden, die Lampen also von der Bridge den Befehl bekommen, sich zu dimmen? Oder werden sie durch den Fibaro Dimmer gedimmt? Falls ersteres der Fall ist, wozu brauche ich dann den Fibaro Dimmer? Geht das nicht auch mit einem x-beliebigen Z-Wave Taster?
Liebe Grüße und vielen Dank,
Markus
Hi,
die HUE-Lampen können über Fibaro nur durch das Plugin (welches die Bridge ansteuert) gesteuert werden, da Fibaro kein ZigBee-Chip verbaut. Das funktioniert auch mit einem x-beliebigen Z-Wave Taster ;)
Gruß
Der Befehl an die HUE kommt von der HUE Bridge. Das vorgestellte Skript bedient den Wunsch, in einer Fibaro-Umgebung die "systemfremden" HUE Lampen mit dem zweiten Taster der an an den Wänden ohnehin vorhandenen Schalter an Fibaro Dimmern zu dimmen. Das geht auch mit anderen Z-Wave Modulen und Tasten, wenn man die Szene Activation Codes entsprechend anpasst.
Hi,
tolles Script, vielen Dank. Funktioniert super mit dem Schalter!
Nun habe ich versucht, das auch auf die neue Fibaro KeyFob zu übertragen, da hapert es bei mir etwas mit dem Verständnis....
Ich habe ein Script, dass via CentralSceneEvent die Tastendrücke in Zahlen wandelt und darauf hin Aktionen auslöst. Wie integriere ich da die SceneActivation? Auch als extra-Szene, sozusagen parallel zu SceneEvent läuft das bei mir nicht. Ich bin mir aber auch nicht sicher, welche Codes die KeyFob für die einzelnen Tasten sendet. Mein Wallmote-Script (https://www.siio.de/board/thema/aeotec-wallmote/) konnte ich 1 zu 1 übernehmen, aber auch da war mir das Dimmen mit diesem Script nicht gelungen.
Ist sicher ein Denkfehler von mir, aber welcher????
LG TT
Hi, danke für das Lob :-)
Versuche mal die Szene statt mit Szene Activation direkt über CentralSceneEvent zu starten und dann die Codes der Tastendrücke abzufragen, die du bisher auch in Zahlen umwandelst.
Also das SzeneActivation + Activation Codes der Dimmer zu ersetzen durch das CentralSceneEvent und die Codes der KeyFob.
Grüße, Christian
Ah, jetzt erst dein Script studiert. CentralSceneEvent und Codes der Tastendrücke abfragen hast du ja gemacht.
Das Dimmen geht nur in Richtung "Heller" ganz auf hell und erst bei voller Helligkeit dann wieder dunkler, oder? - Du speicherst die nächste Dimm-Richtung nicht mehr in einer globalen Variable, sondern beginnst immer mit "Heller":
local dimUpDo = 1
---
if tonumber(fibaro:getValue(HUEs[1], "ui.brightness.value")) == 255 then dimUpDo = -1 end
Mein Script speichert die nächste Dimm-Richtung und den Zeitpunkt des letzten Dimm-Stops in einer globalen Variable.
fibaro:setGlobal("dimUpDown", dimUpDown * -1)
---
fibaro:setGlobal("lastDimToggle", os.time())
Vor dem Dimmen werden die Richtung und der Zeitpunkt des letzten Dimmens aus der globalen Variable geholt.
local dimUpDown = fibaro:getGlobal("dimUpDown")
local lastDimToggle = fibaro:getGlobal("lastDimToggle")
Wenn das letzte Dimmer länger her ist, wird immer mit "heller" begonnen:
-- always start a new dim with dimming up
if os.time() - lastDimToggle > toggleTime then dimUpDown = 1 end
Und wenn die Lampen ausgeschaltet sind, wird auch immer mit "heller" begonnen:
-- if off, switch on and dim up from darkest
local deviceValue1 = tonumber(fibaro:getValue(HUEs[1], "on"));
if (deviceValue1 == 0) then
for i, iHUE in ipairs(HUEs) do
fibaro:call(iHUE, "changeBrightness", 1)
fibaro:call(iHUE, "turnOn")
end
dimUpDown = 1
end
Diese Funktion musst du in deinem Script wiederherstellen. Dann sollte das Dimmen gehen.
Grüße, Christian
Hi Christian,
vielen Dank, das Du Dich damit noch mal beschäftigt hast.
Habe jetzt die globalen Variablen wieder reingenommen, also original Dein Script in meine functions eingesetzt.
Beim ersten mal drücken ist alles super, Licht dimmt hoch.
Beim 2. mal drücken regeln dann die Hues unabhängig hoch und runter, das dauert auch etwas länger als ich die Taste drücke. To many instances wird nicht angezeigt. Wirkt, als ob das HC2 nicht klarkommt, der Debug ist aber zeitnah und korrekt, er erkennt Taste3 HeldDown und verändert die Helligkeit (lasse ich mir auch ausgeben), aber alle Lampen geben unterschiedliche Werte und die Reihenfolge im Debug wechselt auch. Leider kann ich hier keinen Screenshot anfügen, aber Du verstehst, was ich meine? Die globalen Variablen werden dem Script entsprechend gesetzt.
Hast Du noch eine Idee?
LG TT
Nein, ich verstehe leider nicht genau, was du meinst.
Wenn das Dimmen zu schnell geht, verschluckt sich das Fibaro HUE Plugin und arbeite die Dimm Befehle im Puffer langsam nacheinander ab. Das hat sehr merkwürdige Effekte zwischen nicht mehr reagieren und dann plötzlich nach einer Weile wild dimmen. Ist es das? Neustart des Homecenters hilft hier.
Andere Möglichkeit, wenn die Lampen gegeneinander hoch und runter dimmen: Das Speichern der dimUpDown, das sich die Richtung für das nächste Dimmen merkt ist ein der Schleife, die die Gruppe der HUE abarbeitet. Dann drehst du die Richtung für jede Lampe um.
Poste nochmal dein Script hier, dann schaue ich es mit an.
Grüße, Christian
Guten morgen zusammen,
bei mir kommt im debugg immer der Fehler " line 8: unexpected symbol near < "
so sieht meine Zeile 8 aus :
local HUEs = -- IDs of HUE as Array {X, Y, Z}
kann ich diese einzelne Szene für alle meine Schalter gemeinsam nutzen, oder muss ich sie für jeden Schalter einzeln anlegen?
Vielen Danke für die Hilfe und schon mal ein schönes Wochenende.
Grüße Eike
Hallo Eike.
In der Zeile 8 fehlt die Angabe der HUES, die du dimmen möchtest in geschweiften Klammern mit Komma getrennt, so wie im Kommentar dahinter gezeigt. z.B.
local HUEs = {23, 105, 213} -- IDs of HUE as Array {X, Y, Z}
Du must die Szene für jeden Schalter einzeln anlegen, mit dem du dann eine Gruppe von mehreren HUE dimmen kannst.
Viele Grüße, Christian
Hey Christian,
jetzt kommt diese Meldung:
[DEBUG] 18:09:18: line 115: attempt to concatenate local 'deviceId' (a table value)
Liebe Grüße
Eike
Hoi,
Das Skript läuft jetzt, Danke schon mal für die Hilfe.
Welche Parameter und wie, muss ich noch ändern wenn ich nur eine Taste am Schalter habe?
Liebe Grüße und ein schönes Wochenende,
Eike
Hoi,
Das Skript läuft jetzt, Danke schon mal für die Hilfe.
Welche Parameter und wie, muss ich noch ändern wenn ich nur eine Taste am Schalter habe?
Liebe Grüße und ein schönes Wochenende,
Eike
Gerne.
Um die Funktion auf die Taste S1 zu legen kannst du die Szene Activation Codes anpassen: Mache aus den Zwanzigern Zehner, z.B. für "Halten"
elseif ( tonumber(fibaro:getValue(fibaroID, "sceneActivation")) == 12 ) then
Allerdings wird die direkt an den Dimmer angeschlossene Lampe ebenfalls reagieren. Die Szene Activation Codes für andere Ereignisse und Geräte findest du hier: http://manuals.fibaro.com/document/fgr-scene-activation/
Hallo Christian,
mit Begeisterung habe ich Deinen Artikel gelesen und habe versucht es mit meiner Hardware umzusetzen, leider ohne Erfolg. Ich beitze einen Remotec Szenen Master Controller ( https://www.home4u-shop.de/z-wave-remotec-szenen-master-remezrc90 ), mit dem ich gerne meine Hue Beleuchtung steuern möchte. Das Ein- und Ausschalten, Farbsteuerung und Helligkeitseinstellung über einzelne Tasten funktioniert mit dem Hue-Plugin. Es gelingt mir aber nicht, die Lampen durch langen Tastendruck z.B. auf Taste 1 hochzudimmen oder z.B. auf Taste 2 herunterzudimmen. Wenn ich in Dein Script die ID des Controllers eingebe passiert gar nichts. Die einzelnen Tasten sind mit jeweils 4 Kommandos belegbar ( Key 1 Pressed, Key 1 Relased, Key 1 HeldDown, Key 1 Pressed2 usw.). Ich würde mich riesig freuen, wenn Du mir helfen könntest, damit ich verstehe, wie die Befehlsumsetzung für meinen Controller funktioniert, da ich auch vorhabe dieses Gerät auch für die Steuerung meiner Sonos Lautsprecher einzusetzen.
Viele Grüße Salve.
Hallo Salve.
Schön, dass dich mein Skript begeistert. :-)
Es gibt keinen Grund warum das nicht laufen sollte. Lass und den Fehler finden:
- Hast du die globalen Variablen angelegt?
- Ist Szene Acitivation für den Schalter aktiviert?
- Hast du die IDs des Schalters und auch der Lampen eingetragen?
- Was zeigt die Debug-Ausgabe an?
Du schreibst es funktioniert “mit einzelnen Tasten und dem HUE-Plugin”. Meinst hier mit meinem Skript oder ohne?
Grüße, Christian
Das ganze ist zwar schon ein paar Jahre alt aber dennoch würde ich das gern so machen. Leider funktioniert die Scene nicht bei mir. Und ich weiß leider nicht im geringsten warum.
Hallo Lars,
funktionirt die Scene bei Dir jetzt?
cu
karlk
Hallo,
ich bekomme nur die Meldung:
[20:27:46] ID 265: Received parameter 13 report, value = 1
[20:27:47] ID 265: Received parameter 13 report, value = 0
und nichts passiert?!?
Kann mir da bitte einer helfen?
Danke.
cu
karlk
Hallo,
Danke an Christian.
Das Problem bei mir war der Dimmer 2.
Nachdem er auf die Standard Werte gesetzt worden ist - läuft das Script.
cu
karlk