Hallo,
ich habe eine kurze Frage zu einer Szene die ich habe:
Die bestehende Szene hat einen Dimmer. Jetzt möchte ich noch zwei Dimmer hinzufügen. Ich habe folgende Varianten probiert aber keine funktioniert!?
Ursprünglich:
dimmerID = 210 --Dimmer
motionID = 80 --MotionSensor
doorID = 259 --Türsensor
lightLow = 1 --unterer Prozentwert für den Dimmer
lightHigh = 99 --oberer Prozentwert für den Dimmer
lightTimer = 300 --Zeit in Sekunden die das Licht auf lightHigh bleiben soll
offsetSunrise = 0 --Offset Sonnenaufgang in Minuten (+10 oder -10)
offsetSunset = 0 --Offset Sonnenuntergang in Minuten (+10 oder -10)
Probiert:
dimmerID = 210, 281, 286 --Dimmer
motionID = 80 --MotionSensor
doorID = 259 --Türsensor
lightLow = 1 --unterer Prozentwert für den Dimmer
lightHigh = 99 --oberer Prozentwert für den Dimmer
lightTimer = 300 --Zeit in Sekunden die das Licht auf lightHigh bleiben soll
offsetSunrise = 0 --Offset Sonnenaufgang in Minuten (+10 oder -10)
offsetSunset = 0 --Offset Sonnenuntergang in Minuten (+10 oder -10)
dimmerID = 210, --Dimmer
dimmerID = 281
dimmerID = 286
motionID = 80 --MotionSensor
doorID = 259 --Türsensor
lightLow = 1 --unterer Prozentwert für den Dimmer
lightHigh = 99 --oberer Prozentwert für den Dimmer
lightTimer = 300 --Zeit in Sekunden die das Licht auf lightHigh bleiben soll
offsetSunrise = 0 --Offset Sonnenaufgang in Minuten (+10 oder -10)
offsetSunset = 0 --Offset Sonnenuntergang in Minuten (+10 oder -10)
Muss ich evtl. in der Szene noch etwas ändern?
Hier noch die ganze Szene.
--[[
%% autostart
%% properties
80 value
259 value
%% globals
--]]
--[[
* Licht nach Sonnenuntergang auf 10% einschalten
* Bei Bewegung oder Tür auf Licht auf 99% für X Sekunden
* Nur zwischen sunset und sunrise Licht einschalten
** Max. running Instances muss auf 3 stehen!
--]]
---------------------------------------------------
--------- Schleifenschutz -------------------------
if (fibaro:countScenes()>2) then
fibaro:debug('Kill the third scene!');
fibaro:abort();
end
---------------------------------------------------
------------- stime -------------------------------
-- Funktion zum Umrechnen von Uhrzeiten in Sekunden
-- seit 0 Uhr
---------------------------------------------------
function stime(s)
local pattern = "(%d+):(%d+)"
local hours, minutes, seconds = string.match(s, pattern)
return (hours*3600)+(minutes*60)
end
---------------------------------------------------
------------- Config ------------------------------
dimmerID = 210 --Dimmer
motionID = 80 --MotionSensor
doorID = 259 --Türsensor
lightLow = 1 --unterer Prozentwert für den Dimmer
lightHigh = 99 --oberer Prozentwert für den Dimmer
lightTimer = 300 --Zeit in Sekunden die das Licht auf lightHigh bleiben soll
offsetSunrise = 0 --Offset Sonnenaufgang in Minuten (+10 oder -10)
offsetSunset = 0 --Offset Sonnenuntergang in Minuten (+10 oder -10)
version = 'v0.1'
---------------------------------------------------
--------- Farbiges Debug --------------------------
function debug( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s<!--%s-->', "span", color, message, "span"));
end
---------------------------------------------------
--------- GetGlobals ------------------------------
function getGlobals()
sunset = fibaro:getValue(1, "sunsetHour")
sunsetSeconds = stime(sunset)
sunrise = fibaro:getValue(1, "sunriseHour")
sunriseSeconds = stime(sunrise)
timeNow = stime(os.date("%H:%M"))
sourceTrigger = fibaro:getSourceTrigger();
end
---------------------------------------------------
--------- setLightHighTimer -----------------------
-- (sec) -- Sekunden die das Licht auf 100% bleiben soll
---------------------------------------------------
function setLightHighTimer(sec)
fibaro:call(dimmerID,"setValue",lightHigh)
i = 1
while i <= sec do
debug("yellow","Restzeit "..sec-i.." Sekunden")
i = i + 1
if fibaro:getValue(motionID, "value") == "1" or fibaro:getValue(doorID, "value") == "1" then
i = 0
debug("red","Bewegung dauert an / Tür ist noch offen, setzte Timer zurück")
end
fibaro:sleep(1000)
end
debug("yellow","Timer abgelaufen, schalte wieder auf "..lightLow.."%")
if timeNow > sunsetSeconds or timeNow < sunriseSeconds then
fibaro:call(dimmerID,"setValue",lightLow)
else
fibaro:call(dimmerID,"setValue",0)
end
end
---------------------------------------------------
--------- START -----------------------------------
--------- Globale Werte auslesen
getGlobals()
--------- Timerfunktion
function tempFunc()
getGlobals()
if os.date("%H:%M", os.time()+offsetSunset*60) == sunset then
debug("green","Sunset erkannt, schalte Licht auf "..lightLow.."% ein")
fibaro:call(dimmerID,"setValue",lightLow)
elseif os.date("%H:%M", os.time()+offsetSunrise*60) == sunrise then
debug("green","Sunrise erkannt, schalte Licht aus")
fibaro:call(dimmerID,"setValue",0)
else
debug("green","Sunset "..sunset.." // Sunrise "..sunrise)
end
setTimeout(tempFunc, 60*1000)
end
-- Bei Autostart Timer aktivieren
if sourceTrigger["type"] == "autostart" then
debug("green","Autostart erkannt, starte Timer")
tempFunc()
else
-- Wenn getriggert (Motion oder Door), dann Licht auf lightHigh für x Sekunden
debug("red","Bewegung oder Tür auf erkannt, schalte Dimmer auf "..lightHigh.."%")
if timeNow > sunsetSeconds or timeNow < sunriseSeconds then
setLightHighTimer(lightTimer)
end
end