Temp och tid

Hjälp varandra att vara kreativa för att göra hemmet mer bekvämt.
Post Reply
stefafo
Ny medlem
Posts: 6
Joined: 15 Sep 2017, 15:51

22 Mar 2019, 11:51

Hej, flyttar frågan hit då jag råkade lägga den under HC2 innan.

Har en scen där jag vill ha en interaktiv push om både ett tidsvillkor och en temperatur är under ett visst värde.
Har gjort scenen med block då jag inte kan LUA ännu, men om jag konverterar scenen till LUA ser den ut som nedan.
Problemet är att som den ser ut nu så frågar den väldigt ofta (misstänker att det är varje gång tempen rapporteras) men jag vill bara få frågan vardagar 6.30 om temperaturen är under en viss grad, exempelvis 5 grader som jag har i scenen.

--[[
%% autostart
%% properties
326 value
%% weather
%% events
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(326, "value")) < 5 )
and
( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "06:30") )
)
then
api.post('/mobile/push', {["mobileDevices"]={234}, ["message"]=[[Idag är det kallt, vill du starta motorvärmaren?]], ["title"]='Motorvärmare', ["category"]='YES_NO', ["data"]={["sceneId"]=2}});
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:getValue(326, "value")) < 5 )
and
( (currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) )
or
startSource["type"] == "other"
)
then
api.post('/mobile/push', {["mobileDevices"]={234}, ["message"]=[[Idag är det kallt, vill du starta motorvärmaren?]], ["title"]='Motorvärmare', ["category"]='YES_NO', ["data"]={["sceneId"]=2}});
end

end
Post Reply