Hallo
wie sieht der Befehl für einen Debug von folgender Codezeile aus ?
and (tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende)
Gruss Splinter
Hallo
wie sieht der Befehl für einen Debug von folgender Codezeile aus ?
and (tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende)
Gruss Splinter
Hi,
was willst du da debuggen? Es handelt sich doch um eine if-Bedingung, ergo kannst du doch in der Schleife eine debug-Ausgabe machen.
Ansonsten kannst du natürlich auch eine Debug-Ausgabe so machen:
fibaro:debug(tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende)
Da kommt dann halt true oder false bei raus. Keine Ahnung, ob du das so willst.
Gruß
Hi,
ich dacht durch eine DEBUG würde mir die Skriptzeile verständlicher…
and (tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende)
also ich dachte mir das so um es mal für mich zu übersetzen…
und (tonumber(os.date(Stunden/Minuten)) größer/gleich Uhrzeit Tagstart und tonumber (os.date(Stunden/Minuten)) kleiner/gleich tagende)
Ich hatte mal ein Skript geposte da musst ich ein or durch ein and ersetzen
und ich versuche jetzt mal mehr zeit zu investieren um diese Lua Sprache zu lernen…
und ich dachte mir wenn diese Skritzeilen in worte fast ist es leichter zu verstehen und umzusetzten.
Durch so einen DEBUG sieht man was im Hintergrund passiert finde das zum lernen Hilfreich.
--[[
%% properties
302 value
%% globals
--]]
-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 333 -- ID dieser Szene
local motion = 302 -- ID des Bewegungssensors
local radio = 274 -- ID der Lampe
local tagstart = 0520 -- 22:00 = 2200
local tagende = 2000-- 07:00 = 0700
local starttimer = 180 -- Radio an Zeit +min 60sec Schlaftimer bei Busch Jäger Radio
---------------------Script-----------------
fibaro:debug("Start1")
if (fibaro:countScenes()>1) then
fibaro:debug("Stope Scene weil ein weiteres mal ausgeführt wurde");
fibaro:abort();
end
-- SCHALTE Radio EIN
if (tonumber(fibaro:getValue(motion, "value")) > 0 )
and (tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende) then
fibaro:call(radio, "pressButton", "1") -- Radio Sauerland wird eingeschalten
fibaro:sleep(1000) -- warten
fibaro:call(radio, "pressButton", "4") -- Volumen wird auf 8 eingestellt
fibaro:debug('Starte Radio Sauerland');
-- timer start
timer = os.time();
while os.time() - timer < starttimer do
fibaro:sleep(1000);
-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if (tonumber(fibaro:getValue(motion, "value"))) > 0 then
timer = os.time();
end
end
fibaro:call(radio, "pressButton", "3"); -- Schlaftimer wird gestartet;
end
fibaro:debug('Schalte Schlaftimer ein, keine Bewegung mehr im Raum');
fibaro:killScenes(scene);
local tagstart = 0520 -- 22:00 = 2200
local tagende = 2000-- 07:00 = 0700
local starttimer = 180 -- Radio an Zeit +min 60sec Schlaftimer bei Busch Jäger Radio
Hier habe ich Tagstart 0520 und Tagende 2000.
Das Sript ist für mein BAadezimmerradio.
Ziel war das es nur zwischen 5:20Uhr Morgens und 20:00Uhr Abend angehen soll.
Und hier kommt wieder dieses or oder and zu Tage…
and (tonumber(os.date("%H%M")) >= tagstart and tonumber(os.date("%H%M")) <= tagende) then
and (tonumber(os.date("%H%M")) >= tagstart or tonumber(os.date("%H%M")) <= tagende) then
Nur verstehen tu ich das ganz irgenwie nicht so richtig…
Wenn da or steht geht das Radio immer an, auch nach 20 uhr…
Ich hoffe ich habe mich verständlcih ausgedrückt…schreiben ist nicht immer so leicht wie sprechen
Gruss Splinter
Dann gib dir doch das os.date aus und vergleiche die Werte:
fibaro:debug(os.date("%H%M"))
Gruß