Frågan var om det går att göra, och det går utmärkt, i alla fall i LUA.Fick ett PM wrote:Gå in i badrummet och lampan tänds till ca 30%. Så länge man är i badrummet ska rörelse reggas och inte släcka lampan. Vill man ha mer ljus och dimmrar upp med knappen ska detta läge hålla sig. Sen tänkte jag med variabler ha lägen den ska dimmras till om det är dag eller natt.
Det finns såklart ett flertal lösningar, men i detta fallet antar jag att det är en Fibaro dimmerpuck som sitter kopplad till lampan. Vidare antar jag att den rörelse sensor (PIR) som finns, har hand om själva timerfunktionen - dvs hur lång tid lampan skall vara tänd. Observera att en rörelse sensor normalt har två värden: Rörelse (=1) eller Inte Rörelse (=0), så om man har rörelse sensorn som trigger till en scen, så kommer scenen triggas vid ändring till båda lägena, alltså först när man har rörelse, och sedan en gång till när man inte haft någon rörelse under den tidsperiod som man ställt in i rörelse sensorn. Jag kan göra detta onödigt komplexet såklart med en massa variabler och "saker" - men jag försökte eftersträva en så enkel lösning som möjligt.
OBS! EnhetsID = 95 --> Min rörelse sensor, och EnhetsID = 9 --> min taklampa som styrs av fibaros dimmerpuck.
Code: Select all
--[[
%% properties
95 value
%% globals
--]]
-- Tillåt så att bara EN instans, den första, av scenen körs...
if ( fibaro:countScenes() > 1 ) then fibaro:abort() end
-- Triggning vid rörelse, tänd lampa till 30% alternativt behåll redan
-- existerande dimmer nivå
if ( tonumber(fibaro:getValue(95, "value")) > 0 ) then
if ( tonumber(fibaro:getValue(9, "value")) == 0 ) then
if ( fibaro:getGlobalValue("Dagsljus") == "Mörkt" ) then
fibaro:call(9, "setValue", "20")
else
fibaro:call(9, "setValue", "30")
end
end
end
-- Triggning när rörelse upphört
if ( tonumber(fibaro:getValue(95, "value")) == 0 ) then
fibaro:call(9, "setValue", "0")
end