Fibaro LUA Commando:

os.time

Actie / doel:

Geeft de huidige tijd terug van het besturingssysteem van de Z-Wave controller, indien het commando zonder nadere argumenten wordt gebruikt. Je kunt tevens een parameter gebruiken om een specifiek onderdeel van de tijd (bijv. de minuut of de betreffende maand) weer te geven.

Gebruik functie & parameters:

    • %a - Dag van de week afgekort (bijvoorbeeld tue)

    • %A - Dag van de week (bijvoorbeeld tuesday)

    • %b - Naam van de maand afgekort (bijvoorbeeld nov)

    • %B - Naam van de maand (bijvoorbeeld november)

    • %c - Datum en tijd (e.g., 29/05/18 14:29:24)

    • %d - Dag van de maand (bijvoorbeeld 14) waarde tussen 1 en 31

    • %H - Huidig uur in 24-uurs formaat (bijvoorbeeld 21)

    • %I - Huidig uur in 12-uurs formaat (bijvoorbeeld 11)

    • %M - Huidige minuut in (bijvoorbeeld 56) waarde tussen 00-59

    • %m - Huidige maand in cijfers (bijvoorbeeld 11) waarde tussen 1-12

    • %p - am of pm

    • %s - Huidige seconde

    • %w - Huidige weekdag (0-6; van zaterdag tot zondag)

    • %x - Datum (bijvoorbeeld 29/05/18)

    • %X - Tijd (bijvoorbeeld time (22:47:24)

    • %Y - Jaartal (bijvoorbeeld 2017)

    • %y - Jaartal in de getallen (bijvoorbeeld 17)

Waarde dat je terug krijgt / kunt krijgen:

De waarde dat je terug krijgt is afhankelijk van de meegegeven parameter. 

In de onderstaande voorbeeld LUA code gebruiken we het os.time() commando om een badkamerscène testarten dat het licht op een bepaald dim niveau inschakelt en tevens de radio, mits het niet al té laat is. De verlichting en evt. de radio moeten worden ingeschakeld als de deur open gaat. Als de deur dicht gaat na meer dan 20 seconden, dan wordt de verwarming en het licht weer uitgeschakeld.

Zodra de deur open gaat schrijven we de huidige tijd weg naar een variabele (BadkamerOpen). Deze variabele krijgt een tijdswaarde van Linux (de Fibaro Home Center is gebaseerd op Linux). Deze tijdswaarde betreft overigens een bijzonder lang getal.

Voorbeeld code:

--[[

%% properties

218 value

%% globals

--]]


local trigger = fibaro:getSourceTrigger()


local StatusDeur =fibaro:getValue(64, "value")

local HuidigUur = os.date("%H")


local LampAan =fibaro:getValue(61, "value")

local TijdBadkamerOpen = tonumber( os.time() ) - tonumber(fibaro:getGlobalValue("BadkamerOpen"))


if ( tonumber(StatusDeur) == 1 ) then

    if ( tonumber(LampAan) == 0 ) then


        fibaro:setGlobal("BadkamerOpen", tonumber(os.time() ));

    if (( tonumber(HuidigUur) <= 23 ) and ( tonumber(HuidigUur) > 20 ) ) then --voor 20:00 mag de radio aan

        fibaro:call(61, "setValue", "75");

        fibaro:call(43, "turnOn");

    elseif (( tonumber(HuidigUur) < 9 ) and ( tonumber(HuidigUur) > 5 ) ) then

        fibaro:call(61, "setValue", "75"); -- 's ochtends wel behoorlijke (75%) verlichting, maar radio blijft uit

    elseif ( tonumber(HuidigUur) < 5 ) then

        fibaro:call(61, "setValue", "10"); -- als het 's ochtends nog vroeg is dan minder (sterk) licht aan

    end


    -- fibaro:debug('lamp aanzetten')

    end

    elseif ( tonumber(StatusDeur) == 0 ) then

        if ( tonumber(TijdBadkamerOpen) > 20 ) then

        fibaro:call(61, "setValue", "00");

        fibaro:call(61, "turnOff");

        fibaro:call(43, "turnOff");

        fibaro:call(61, "turnOff");

    end

end


Terug naar het overzicht van de meest gebruikelijke Fibaro LUA Functies.