Hue bei Sonnenuntergang an und nach 3 Stunden aus

Hallo, ich möchte das 3 Hue Lampen bei Sonnenuntergang eingeschalten und nach 3 Stunden ausgeschalten werden. Ist das so korrekt:

--[[
%% 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) == fibaro:getValue(1, "sunsetHour")) )
)
then
fibaro:call(593, "turnOn")
fibaro:call(593, "changeSaturation", 255)
fibaro:call(593, "changeBrightness", 255)
fibaro:call(593, "changeHue", 40860);
fibaro:call(594, "turnOn")
fibaro:call(594, "changeSaturation", 255)
fibaro:call(594, "changeBrightness", 255)
fibaro:call(594, "changeHue", 40860);
fibaro:call(595, "turnOn")
fibaro:call(595, "changeSaturation", 255)
fibaro:call(595, "changeBrightness", 255)
fibaro:call(595, "changeHue", 40860);
	fibaro:call(527, "pressButton", "23");
	setTimeout(function()
		fibaro:call(593, "turnOff");
	fibaro:call(594, "turnOff");
	fibaro:call(595, "turnOff");
	end, 10800000)
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:call(593, "turnOn")
fibaro:call(593, "changeSaturation", 255)
fibaro:call(593, "changeBrightness", 255)
fibaro:call(593, "changeHue", 40860);
fibaro:call(594, "turnOn")
fibaro:call(594, "changeSaturation", 255)
fibaro:call(594, "changeBrightness", 255)
fibaro:call(594, "changeHue", 40860);
fibaro:call(595, "turnOn")
fibaro:call(595, "changeSaturation", 255)
fibaro:call(595, "changeBrightness", 255)
fibaro:call(595, "changeHue", 40860);
	fibaro:call(527, "pressButton", "23");
	setTimeout(function()
		fibaro:call(593, "turnOff");
	fibaro:call(594, "turnOff");
	fibaro:call(595, "turnOff");
	end, 10800000)
end

end


Hi,

als zeitgesteuerte Szene fehlt Dir im Header noch das %% autostart.

VG Hoggle

@Hoggle Danke

Oliver,

nachdem Du an jedem Wochentag die Lampen schaltest ist die Abfrage für wday überflüssig. (Schadet aber auch nicht)
Hoffe Du lässt nicht Dein Privathaus Twittern.
Das wäre nur eine Einladung für Einbrecher.
Sie Wissen welches System Du hast, wann Du zuHause bist und wann Du wahrscheinlich im Urlaub bist.

lg,

Markus

Hallo,

das Ganze kann man auch deutlich einfacher haben. Direkt über die Hue App kann man Lampen zeitgesteuert inkl. Sonnenauf-/untergang schalten.

Das ist deutlich einfacher, klappt hervorragend und entlastet die HC2.

Grüße
Arno

@ArnoNym
Danke, nur möchte ich gerne alles in einem haben. Ist die Last für die HC2 dadurch so hoch?

RAM ist meist um die 60% frei und auch die CPU läuft bei durchschnittlich 10 bis 20%.

OK, für mich war wichtig, dass die Lampen an-/aus gehen - welche Hardware das jetzt steuert ist ja erst einmal nebensächlich. Zumal man sich ja auch LUA coding und damit potentialle Fehlerquellen spart. Ich denke die eine Szene alleine schaft keine große Last. Trotzdem summiert sich denke ich jede Aktion die auf der HC2 läuft und in Summe kann die Last dann doch größer werden. Daher versuche ich nur das auf der HC2 zu steuern, was auch wirklich dort sein muss.

Grüße
Arno

Solche Skripte belasten das HC2 vielleicht mit 0,5% Prozessorlast. Sofern man die Szene vernünftig programmiert. Es wird erst interesant, wenn große json/XML-Responses in regelmäßigen Abständen decodet werden sollen. Da geht die Last auch mal kurzzeitig auf 40-50%.

Es sollten lange sleepstate-Phasen vermieden werden, weshalb ich das Skript in dem Fall eher so bauen würde, dass 2 Zeitpunkte abgefragt werden und anhand dieser Zeitpunkte das Licht entweder eingeschaltet oder ausgeschaltet.

Gruß