ich habe öfters das Problem das ich zwei Szenen erstellen muss weil ich Geräte mit dem Zustand ein oder aus schalten will.
Kurzes Beispiel:
Ich haben einen Beamer wo ich die momentane Leistung abfrage und danach die Leinwand hoch oder runter gefahren werden soll.
Quasi
Wenn Beamer = W > 20 dann Leinwand per Rollershutter runter.
oder
Wenn Beamer = W < 20 dann Leinwand hoch
Da ich aber in der Blockszene nach der " Dann" Funktion kein “oder” mehr hinzufügen kann muss ich notgedrungen zwei Szenen erstellen.
In LUA bin ich nicht so firm und weiß nicht wie man das umsetzen kann. Ich habe zwar schon versucht die Blockszene in Lua zu wandeln und die andere Szene per or hinzuzufügen aber ich komme zu keinem Ergebnis.
nu ich weiß aber wir wäre der Ansatz wie kann ich beide Blockszenen kombinieren mit or geht es nicht.
Ich habe eine Variable Uhrzeit und möchte die Wert der Stunden schreiben z.B. 13.00 , 14.00 , 15.00
Um die Werte nun zu schreiben muss ich ja für jede Stunde eine Szene erstellen, das hätte ich gern zusammen gefasst.
--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( ((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) == "13:00") )
)
then
fibaro:setGlobal("Uhrzeit", "13.00");
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
fibaro:setGlobal("Uhrzeit", "13.00");
fibaro:debug('Uhrzeit auf 13.00Uhr gestellt')
end
end
if (
( ((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) == "13:00") )
)
then
fibaro:setGlobal("Uhrzeit", "13.00");
or (
( ((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) == "14:00") )
)
then
fibaro:setGlobal("Uhrzeit", "14.00");
end
end
--[[
%% properties
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( ((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) == "13:00") )
)
then
fibaro:setGlobal("Uhrzeit", "13.00")
fibaro:debug('Uhrzeit auf 13.00Uhr gestellt');
elseif (
( ((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) == "14:00") )
)
then
fibaro:setGlobal("Uhrzeit", "14.00")
fibaro:debug('Uhrzeit auf 14.00Uhr gestellt');
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
fibaro:setGlobal("Uhrzeit", "13.00");
end
end
in Zeile 39 will er den Wert auch setzen elseif funktioniert an der stelle nicht wenn ich eine weiter Zeile hinzufügen will
fibaro:setGlobal("Uhrzeit", "13.00");
Denn Debug den ich gesetzt habe gibt er mir auch nicht aus.
--[[
%% properties
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( ((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) == "11:00") )
)
then
fibaro:setGlobal("Uhrzeit", "11:00")
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
fibaro:setGlobal("Uhrzeit", "11:00")
fibaro:debug('Uhrzeit auf 11:00 Uhr gestellt')
end
end
Jetzt möchte ich aber noch weiter Zeiten abfragen und die Wert entsprechend mit Debug setzen, das bekomme ich nicht wirklich hin.