Привет. Есть скрипт для Веры (см. ниже) по включения светодиодной ленты - не могу понять почему он четко выключает свет через время указанное в переменной period. Нужно чтоб от последнего срабатывания отсчет был. Такое мнение, что он вообще не видит следующие срабатывания датчика. Подскажите плиз, что не так?
Сцена запускается по тригеру датчика движения.
Цвет RGB, соответсвующий температуре за окном ++
local WiFiControler = 37
local InsideLight = luup.variable_get ("urn:micasaverde-com:serviceId:LightSensor1" , "CurrentLevel" , 9) or "0"
InsideLight = tonumber(InsideLight)
if InsideLight > 555 then
levelTarget = 85
elseif InsideLight <= 3 then
levelTarget = 20
else levelTarget = 3
end
local outsideTemp = luup.variable_get ("urn:upnp-org:serviceId:TemperatureSensor1" , "CurrentTemperature" , 20) or "0"
outsideTemp = tonumber (outsideTemp)
--outsideTemp = 3
local StatusMagicHomeLesn = luup.variable_get("urn:upnp-org:serviceId:SwitchPower1", "Status", WiFiControler) or "1"
if StatusMagicHomeLesn == "0" and InsideLight <= 5 then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue=1},WiFiControler)
if outsideTemp < -15 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "0,0,220,0"}, WiFiControler)
end
if outsideTemp >= -15 and outsideTemp < -10 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "0,150,255,0"}, WiFiControler)
end
if outsideTemp >= -10 and outsideTemp < 0 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "190,255,255,0"}, WiFiControler)
end
if outsideTemp >= 0 and outsideTemp <= 15 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "255,255,0,0"}, WiFiControler)
end
if outsideTemp > 15 and outsideTemp <= 25 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "255,15,15,0"}, WiFiControler)
end
if outsideTemp > 25 then
luup.call_action("urn:ceefin-mcvforum-com:serviceId:MagicHomeRGBW1","SetRGBW", { newRGBW = "255,0,0,0"}, WiFiControler)
end
luup.call_action("urn:upnp-org:serviceId:Dimming1","SetLoadLevelTarget",{ newLoadlevelTarget = levelTarget},WiFiControler) -- общий уровень света
else
--- luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue=0},WiFiControler)
end
local period = 20 -- Seconds
function checkLastTrip()
local LastTrip=luup.variable_get ("urn:micasaverde-com:serviceId:SecuritySensor1", "LastTrip", 7) or os.time()
if (os.difftime(os.time(), tonumber(lastTrip)) >= period) then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue=0},WiFiControler) -- Turn off the light.
else
luup.call_delay ("checkLastTrip", period) -- Check when the sensor was last tripped every <period> seconds.
end
end
luup.call_delay ("checkLastTrip", period)
return true