Hi,
ich lasse mit folgendem Script meine Hues blinken, wenn bei Haustüröffnung ein Fenster offen ist:
--[[
%% properties
382 value
%% events
%% globals
--]]
if fibaro:countScenes() > 1 then
fibaro:abort()
--fibaro:debug("Szene abgebrochen")
end
local TuerID = 382 -- Sensor Haustür als Auslöser der Prüfung
local FensterCheckID = {306, 358, 361, 50, 26}
local hueID = {377, 420} -- Hue IDs
local Dimmer = 126 --Dimmer vor WoZi
local room = fibaro:getRoomNameByDeviceID(TuerID)
local FensterStatus = 0
local DimmerStatus = tonumber(fibaro:getValue(Dimmer, "value"))
local DimmerAutoOn = 0 --sofern der Bewegungsmelder AUS ist, um Blinken anzuzeigen
if tonumber(fibaro:getValue(TuerID, "value")) == 0 then
--fibaro:debug(room.."-Haustür ist ZU")
elseif tonumber(fibaro:getValue(TuerID, "value")) == 1 then
fibaro:debug(room.."-Haustür ist OFFEN")
end
--print("DimmerStatus: "..DimmerStatus)
-------------------------------------------------------------------------
-- Prüfung auf offene Fenster
-------------------------------------------------------------------------
function FesnterChecker()
FensterStatus = 0
for i=1, #FensterCheckID do
if tonumber(fibaro:getValue(FensterCheckID[i], "value")) == 1 then
--ein Fenster ist offen
print("Fenster ist offen in: "..fibaro:getRoomNameByDeviceID(FensterCheckID[i]))
FensterStatus = FensterStatus + 1
end
end
--print ("FensterStatus aus function: "..FensterStatus)
end
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Blinklicht Funktion für stillen Alarm
-------------------------------------------------------------------------
function Blinklicht()
for i=1, #hueID do
fibaro:call(hueID[i], "changeSaturation", 255)
fibaro:call(hueID[i], "changeBrightness", 255)
fibaro:call(hueID[i], "turnOn")
fibaro:call(hueID[i], "changeHue", 65535) -- rot
end
fibaro:sleep(300)
for i=1, #hueID do
fibaro:call(hueID[i], "changeSaturation", 255)
fibaro:call(hueID[i], "changeBrightness", 255)
fibaro:call(hueID[i], "turnOn")
fibaro:call(hueID[i], "changeHue", 44309) -- blau
end
fibaro:sleep(300)
end
function Okay()
for i=1, #hueID do
fibaro:call(hueID[i], "changeSaturation", 212)
fibaro:call(hueID[i], "changeBrightness", 255)
fibaro:call(hueID[i], "changeHue", 26241) -- grün
fibaro:call(hueID[i], "turnOn")
end
fibaro:sleep(300)
for i=1, #hueID do
fibaro:call(hueID[i], "changeSaturation", 212)
fibaro:call(hueID[i], "changeBrightness", 255)
fibaro:call(hueID[i], "changeHue", 26241) -- grün
fibaro:call(hueID[i], "turnOn")
end
end
function NormalLicht()
for i=1, #hueID do
fibaro:call(hueID[i], "changeSaturation", 140)
fibaro:call(hueID[i], "changeBrightness", 255)
fibaro:call(hueID[i], "changeHue", 8418) -- warmweiß - Normallicht nach EIN
fibaro:call(hueID[i], "turnOn")
end
end
------------------------------------------------------------
-- Script
------------------------------------------------------------
FesnterChecker()
--print ("FensterStatus aus function im script: "..FensterStatus)
if FensterStatus >= 1 then --wenn mindestens ein Fenster offen ist, blinkende Lichter
print("Blinklicht wegen offenem Fenster ausgelöst")
if DimmerStatus == 0 then
fibaro:call(Dimmer, "turnOn")
DimmerAutoOn = 1
fibaro:sleep(1000)
print("Dimmer/Bewegungsmelder war aus")
end
while FensterStatus >= 0 do
Blinklicht()
FesnterChecker()
if FensterStatus == 0 then --alle Fenster wieer Zu
break
end
if tonumber(fibaro:getValue(TuerID, "value")) == 0 then -- Tür ist wieder Zu
break
end
end --von while
print("Blinklicht Ende, da alle Fenster zu.")
if DimmerAutoOn == 1 then
fibaro:call(Dimmer, "turnOff")
print("Dimmer am Ende wieder ausgeschaltet.")
DimmerAutoOn = 0
end
Okay()
NormalLicht()
else
--print ("Alle Fenster sind zu, kein Blinkhinweis.")
end