Har en låda med en Fibaro dörr-/fönstersensor.
En global variabel, MedicinVar som har värdet 0.
Jag ska ta min medicin morgon och kväll och om jag då öppnar lådan sätts MedicinVar till 1:
Om jag missat att ta min medicin klockan 8:00 eller klockan 20:00, MedicinVar är fortfarande 0, så ska ett mail skickas. Har två scenes, en för morgon och en för kväll.
(Detta är blockkod konverterat till LUA då jag försöker lära mig.)
Code: Select all
--[[
%% autostart
%% properties
%% events
%% globals
MedicinVar
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getGlobalValue("MedicinVar")) == tonumber("0") )
and
( ((currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4
or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7)
and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "20:00") )
)
then
-- Send an email to the email address associated with user 2.
local subject = "Ta din medicin 20:00"
local message = "Du har glömt att ta din medicin igen.\nDet är viktigt att du gör det."
fibaro:call(2, "sendEmail", subject, message)
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getGlobalValue("MedicinVar")) == tonumber("0") )
and
( (currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4
or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 7) )
or
startSource["type"] == "other"
)
then
-- fibaro:call(2, "sendDefinedEmailNotification", "4");
-- Send an email to the email address associated with user 2.
local subject = "Ta din medicin 20:00"
local message = "Du har glömt att ta din medicin igen.\nDet är viktigt att du gör det ;-)"
fibaro:call(2, "sendEmail", subject, message)
end
end
Klockan 04:00 och 16:00 nollställs MedicinVar till 0 igen. Detta funkar också bra. Det som är problemet är att det skickas mail även när MedicinVar nollställs. På något sätt aktiveras även script:en som skickar mail, LUA-koden, även fast det måste vara 20:00 (eller 08:00) för att det ska kunna köras.
Om någon har lust att hjälpa mig vore jag mycket tacksam, skönt att slippa mina epilepsianfall bara för att man är en slarver
Tack för hjälpen!