Die Dimmfunktion vom Aeotec Wallmote Quad aktivieren
Erfahre hier, wie Du Lampen mit dem Funkwandschalter von Aeotec realisieren kannst. Zusätzlich haben wir eine LUA-Szene für einfacheres Dimmen erstellt.
Den Aeotec Wallmote Quad haben wir Dir in unserem letzten Beitrag vorgestellt und getestet. Heute möchte ich Dir dazu die Dimmfunktion zeigen. Diese kannst Du über Dein Fibaro Home Center aktivieren. So lässt sich über eine “Slide-Bewegung” am Gerät eine Lampe dimmen.
Die Dimmfunktion im Home Center aktivieren
Zuerst öffnen wir im Browser das Fibaro Home Center und suchen über den Menüpunkt “Module” den Wallmote Quad. Über das “Schraubenschlüsselsymbol” kannst Du nun das Haupt-Gerät bearbeiten. Dort unter “Erweitert” kannst Du bei den Parametern die Dimmfunktion aktivieren. Füge dafür zwei Parameter hinzu: einmal Parameter 3 und Parameter 4.
Für Parameter 3 setzen wir den Wert auf “1”, um die Schiebefunktion zu aktivieren. Auch der Wert bei Parameter 4 muss eingetragen werden. Diesen setzen wir auf “3”, um die Berichte und das Reporting umstellen zu können. Danach alles speichern.
Am Ende den Knopf an der Rückseite (unter der Abdeckung) des Aeotec Wallmote Quads etwas gedrückt halten. Das Gerät aktualisiert sich dann und wird durch die neuen Werte ergänzt.
Assoziationen festlegen
Nun benötigen wir für die Nutzung der Dimmfunktion noch Assoziationen. Ansonsten ist die Dimmfunktion jetzt noch nicht nutzbar, denn der Funkwandschalter muss erst noch mit den dimmbaren Geräten kommunizieren. Dafür gehst Du erneut auf die Einstellungen des Wallmotes unter “Erweitert” und scrollst weiter nach unten bis zu den “Assoziationen” und klickst auf “Setze Assoziation”.
Bei Z-Wave haben wir die Assoziationsgruppen bereits gefunden:
In meinem Beispiel wollen wir den 2. und 4. Button jeweils belegen für die Dimm-Funktion. Daher benötigen wir laut der vorherigen Auflistung die Gruppen-Nummer 4 und 5 sowie 8 und 9. Diese Gruppen müssen wir dann jeweils ändern.
Im Browser unter “Assoziationen” kannst Du nun innerhalb der jeweiligen Gruppe die Leuchten, also bei uns z.B. “Spots”, ankreuzen. Dies wird bei uns wie erwähnt bei Gruppe 4 und 5 vorgenommen. Dabei kann man bis zu 5 Geräte hinzufügen. Der Button kommuniziert nun direkt mit dem Gerät und nicht mehr mit der Fibaro Zentrale. Man sollte beide Geräte also nicht zu weit voneinander entfernt platzieren, da sonst eine Verbindung fehlschlagen könnte.
Danach alles speichern und erneut den Knopf am Wallmote Quad drücken. Hier kann es sein, dass man etwas warten muss bis die Aktualisierung abgeschlossen ist.
Anschließend kannst Du den Button, hier Button 2, nutzen und durch ein “Hoch- oder Runterschieben” das Licht dimmen. Diese Vorgehensweise lässt sich mit allen Buttons nach Belieben umsetzen.
LUA Szene für einfacheres Dimmen
Die Dimmfunktion über die Assoziationen funktioniert zwar gut, doch ist meiner Meinung nach etwas unpräzise auf der kleinen Taste. Daher haben ich eine LUA-Szene erstellt, mit der man keine “Slide-Bewegung” mehr umsetzen muss. Stattdessen kann man mit dieser über ein langes Drücken der Taste die Lampe an- oder ausschalten. Das Dimmen wird durch ein kürzeres Drücken umgesetzt. Dabei wird mit jedem Drücken die Lampe etwas weiter gedimmt, je nach Tastenfeld hoch oder runter. Das kann separat in der folgenden LUA-Szene eingestellt werden.
Das Grundmodell der neuen Szene ist genauso aufgebaut wie die Szene aus unserem Wallmote Quad Vorstellungsvideo. Wenn Du weitere Fragen dazu hast, findest Du dort sicher weitere Hilfestellungen.
--[[ %% properties %% weather %% events 632 CentralSceneEvent %% globals --]] if (fibaro:countScenes()>1) then fibaro:abort(); end local startSource = fibaro:getSourceTrigger(); local button = startSource["event"]["data"]["keyId"]; local keyAttribute = startSource["event"]["data"]["keyAttribute"]; fibaro:debug('Taste '..button..' und '..keyAttribute..' wurde gedrückt'); if (keyAttribute == 'Pressed' and button == 1) then -- Hier Button 1 & gedrückt -- Hochdimmen local dim_value_now = tonumber(fibaro:getValue(246, 'value')); if(dim_value_now >= 90) then dim_value_new = 100; else dim_value_new = dim_value_now+10; end fibaro:call(246, 'setValue', dim_value_new) fibaro:debug('Die Lampe 246 wurde von '..dim_value_now..' auf '..dim_value_new..' gesetzt'); elseif (keyAttribute == 'Pressed' and button == 2) then -- Hier Button 2 & gedrückt elseif (keyAttribute == 'Pressed' and button == 3) then -- Hier Button 3 & gedrückt -- Runterdimmen local dim_value_now = tonumber(fibaro:getValue(246, 'value')); if(dim_value_now <= 10) then dim_value_new = 0; else dim_value_new = dim_value_now-10; end fibaro:call(246, 'setValue', dim_value_new) fibaro:debug('Die Lampe 246 wurde von '..dim_value_now..' auf '..dim_value_new..' gesetzt'); elseif (keyAttribute == 'Pressed' and button == 4) then -- Hier Button 4 & gedrückt elseif (keyAttribute == 'HeldDown' and button == 1) then fibaro:call(246, "turnOn"); -- Hier Button 1 & gehalten elseif (keyAttribute == 'HeldDown' and button == 2) then -- Hier Button 2 & gehalten elseif (keyAttribute == 'HeldDown' and button == 3) then fibaro:call(246, "turnOff"); -- Hier Button 3 & gehalten elseif (keyAttribute == 'HeldDown' and button == 4) then -- Hier Button 4 & gehalten end
Excellent just what I needed. I didnt know how to sort out keyattribute
If you are interested, I also added:
– A variablename for the lightsource (LightID)
– Added Logic so that if the light is on and I hold button 1, the light will go straight to 99 ( shortcut to max I Guess)
– Listed the buttons and keyattributes that I use ( so that the scene does not run when key is released)
Thank you so much
regards
Andreas
my scene:
–[[
%% properties
%% weather
%% events
189 CentralSceneEvent 1 Pressed
189 CentralSceneEvent 1 HeldDown
189 CentralSceneEvent 3 Pressed
189 CentralSceneEvent 3 HeldDown
%% globals
–]]
–replace 189 above with your Wallmote id
local LightID = 104 –LightSource to be used
if (fibaro:countScenes()>1) then
fibaro:abort();
end
local startSource = fibaro:getSourceTrigger();
local button = startSource[“event”][“data”][“keyId”];
local keyAttribute = startSource[“event”][“data”][“keyAttribute”];
fibaro:debug(keyAttribute);
if (keyAttribute == ‘Pressed’ and button == 1) then
local dim_value_now = tonumber(fibaro:getValue(LightID, ‘value’));
if(dim_value_now >= 90) then
dim_value_new = 99;
else
dim_value_new = dim_value_now+10;
end
fibaro:call(LightID, ‘setValue’, dim_value_new);
elseif (keyAttribute == ‘Pressed’ and button == 3) then
local dim_value_now = tonumber(fibaro:getValue(LightID, ‘value’));
if(dim_value_now <= 10) then
dim_value_new = 0;
else
dim_value_new = dim_value_now-10;
end
fibaro:call(LightID, 'setValue', dim_value_new);
elseif (keyAttribute == 'HeldDown' and button == 1) then
local dim_value_now = tonumber(fibaro:getValue(LightID, 'value'));
if(dim_value_now <=10) then
fibaro:call(LightID, "turnOn");
else
fibaro:call(LightID, 'setValue', 99);
end
elseif (keyAttribute == 'HeldDown' and button == 3) then
fibaro:call(LightID, "turnOff");
end