Hallo an die Profis,
habe mir nach langer Recherche ein Fibaro HC2 mit 10 Motion Sensoren , einigen Steckdosen und 10 Philips Hue Lampen gekauft
.
Nachdem ich nun am zweiten Tag versuche, die Philips Lampen per Motion Sensor und Helligkeitssensor zu steuern (integrieren und manuell schalten via Fibaro Plugin kein Problem) bin ich jetzt am verzweifeln, weil ich mit keinem bestehenden Script weiterkomme.
Muß ich in den Scripten “switch” abändern, denn nur die ID der Philips Hue einzugeben funktioniert nicht. Leider finde ich kein fertiges Script dazu…
Kann einem blutigen Anfänger geholfen werden?
Leider verstehe ich erst jetzt, wie sehr man bei diesem Thema auf erfahrene Profis angewiesen ist…
--[[
%% properties
65 value
%% globals
PresentState
--]]
local sensors = {65}
local delay = 6000
local debug = false
local LuxSensorID = 67
function actionsMotion()
fibaro:debug('Führe Aktionen bei Bewegungserkennung aus')
if (
( tonumber(fibaro:getValue(LuxSensorID, "value")) <= 50 )
and ( fibaro:getGlobalValue("PresentState") == "Home" )
)
then
fibaro:call(252, "turnOn")
fibaro:sleep(1000)
fibaro:call(252, "changeSaturation", 245)
fibaro:call(252, "changeBrightness", 200)
fibaro:call(252, "changeHue", 7960)
fibaro:debug('Licht auf Tropendämmerung eingestellt!')
end
end
function actionsNoMotion()
fibaro:debug('Führe Aktionen nach Ende Bewegung aus')
fibaro:call(252, "turnOff")
fibaro:debug('Licht ausgeschaltet!')
end
local instances = tonumber(fibaro:countScenes());
function getSensorStatus()
for i,n in ipairs(sensors) do
if (tonumber(fibaro:getValue(n, "value")) > 0) then
return 1;
end
end
return 0;
end
function getLastBreach()
local breach = 0;
for i,n in ipairs(sensors) do
local nBreach = tonumber(fibaro:getValue(n, "lastBreached"));
if(nBreach > breach) then
breach = nBreach;
end
end
return breach;
end
function checkMotion()
lastBreached = getLastBreach();
time = os.time();
if (debug) then fibaro:debug("Zuletzt ausgelöst: Vor "..(time-lastBreached).." Sekunden"); end
if (getSensorStatus() == 1) then
return true;
end
if ((time-lastBreached)>=delay) then
return false;
end
return true;
end
local lastBreached = getLastBreach()
if (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1) then
if (instances > 1) then fibaro:abort(); end
fibaro:debug('Bewegung im Raum erkannt - Starte Timer')
actionsMotion()
while (checkMotion()) do
fibaro:sleep(5000);
end
if (debug) then fibaro:debug("Keine Bewegung mehr erkannt."); end
actionsNoMotion()
end