Jag försöker lära mig LUA men får inte till en enkel sak.
Jag har jobbat som c# knackare i 10år och löser inte detta(pinsamt)
Jag gör kanske inte det snyggaste nu men koden är mest för lära mig.
Jag vill att det ska hoppa in i rätt if/elseif om tiden är rätt.
allt från 0 till 6:00 fungerar men så fort man går förbi så "Gryning" ska skrivas så slutar det fungera och "natt4" visas.
Tar jag bort "and currentTime < morningStartTime" så får jag "Gryning".
Har jag fel syntax eller ser ni något härligt "rookie mistake"
Så här ser min kod ut just nu:
Code: Select all
--[[
%% autostart
%% properties
%% globals
--]]
--kill any extra instances of the same scene
if (fibaro:countScenes() > 1) then fibaro:abort() end
--Loopa alltid
while true do
local currentDate = os.date("*t");
local currentTime=string.format("%02d", currentDate.hour) .. "." .. string.format("%02d", currentDate.min)
local nightStartTime= fibaro:getGlobalValue("NightStartTime")
-- nightStartTime är 0
local dawnStartTime= fibaro:getGlobalValue("DawnStartTime")
-- dawnStartTime är 6.30
local morningStartTime= fibaro:getGlobalValue("MorningStartTime")
-- morningStartTime är 10
local afternoonStartTime= fibaro:getGlobalValue("afternoonStartTime")
-- afternoonStartTime är 13
local eveningstartTime= fibaro:getGlobalValue("EveningstartTime")
-- eveningstartTime är 19
--skriver över för testning
currentTime="6:45"
fibaro:debug(currentTime)
if(currentTime >= nightStartTime and currentTime < dawnStartTime)then
fibaro:debug(dawnStartTime .." = Natt")
elseif(currentTime >= dawnStartTime and currentTime < morningStartTime)then
fibaro:debug(morningStartTime .." = Gryning");
elseif(currentTime>=morningStartTime and currentTime<afternoonStartTime)then
fibaro:debug(dawnStartTime .." = Förmidag")
elseif(currentTime>=afternoonStartTime and currentTime<eveningstartTime)then
fibaro:debug(dawnStartTime .." = Eftermidag")
else
fibaro:debug(morningStartTime .." = natt4")
end
end