Licht mit dem FIBARO HomeCenter zeitgesteuert schalten

Auch wenn die Zeitumstellung von Sommer- auf Winterzeit noch nicht durchgeführt und auch noch nicht abgeschafft wurde, wird es immer später dunkler. Zeit, sich mal eine Szene anzuschauen, mit der Ihr euer Licht (oder noch mehr) zu Hause zeitgesteuert schalten könnt. So könnt Ihr zum Beispiel ein automatisches Licht realisieren, welches sich zu einer bestimmten Uhrzeit am Tag einschaltet und zu einer gewissen Zeit ausschaltet.

Szene auf dem FIBARO HomeCenter 2 anlegen

Um unsere Szene zu nutzen, müsst Ihr auf dem FIBARO HomeCenter 2 eine neue Szene über “Szenen” -> “Szene hinzufügen” und wählt dann dort LUA-Szene aus. Den LUA-Code für die Szene findet Ihr gleich hier, Erläuterungen zu dem Code gibt es nach dem Code 😉 :

--[[
%% autostart
%% properties
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();

local time_on = '07:00';
local time_off = '19:00';

function fu_lamp_on()
fibaro:debug('Führe Aktionen beim Einschalten aus')
end

function fu_lamp_off()
fibaro:debug('Führe Aktionen beim Ausschalten aus')
end

local version = '3.1';
fibaro:debug('AUTO-ON/OFF erstmalig gestartet (Ver.' .. version .. ')');

function lamp_control()
local version = version;
local lamp_on = time_on;
local lamp_off = time_off;
local currentDate = os.date("*t");
local lamp_runs = tonumber(fibaro:getGlobalValue("lamp_runs"));
local random = math.random(10);
local min = math.floor((random*100)/60);

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) == lamp_on)) and lamp_runs == 0)
then
fibaro:debug('Funktion lamp_on wird gestartet (Ver.' .. version .. ')')
fibaro:setGlobal("lamp_runs", "1")
fibaro:debug('Warte ' .. min .. ' min')
fibaro:sleep(random*100000)
fu_lamp_on()
fibaro:setGlobal("lamp_runs", "0")

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) == lamp_off)) and lamp_runs == 0)
then
fibaro:debug('Funktion lamp_off wird gestartet (Ver.' .. version .. ')')
fibaro:setGlobal("lamp_runs", "1")
fibaro:debug('Warte ' .. min .. ' min')
fibaro:sleep(random*100000)
fu_lamp_off()
fibaro:setGlobal("lamp_runs", "0")

end
setTimeout(lamp_control, 60*1000);
end

if (sourceTrigger["type"] == "autostart") then
lamp_control();
end

Vorzunehmende Anpassungen in dem Code für die Lichtsteuerung

Damit das Skript ordnungsgemäß auf dem FIBARO HomeCenter 2 funktioniert, müssen noch 2,3 Änderungen vorgenommen werden. Dies betrifft zum Einem die Zeit, zu welcher das Skript laufen soll. Dies kann in den zwei folgenden Code-Zeilen festgelegt werden:

local time_on = '07:00';
local time_off = '19:00';

Hier müssen nur die entsprechenden Zeiten eingetragen werden. In dem Debug-Fenster des FIBARO HomeCenter 2 könnt Ihr erkennen, wann das Skript startet und wie lange es pausiert, um ein “zufälliges” Einschalten zu simulieren.

Neben diesen beiden Zeilen, müsst Ihr noch die entsprechenden Funktionen anpassen, die zu den jeweiligen Zeitpunkten aufgerufen werden. Hierbei handelt es sich um folgende Code-Zeilen:

function fu_lamp_on() 
fibaro:debug('Führe Aktionen beim Einschalten aus') end 

function fu_lamp_off() 
fibaro:debug('Führe Aktionen beim Ausschalten aus') 
end

In den Funktionen könnt Ihr nach der Debug-Ausgabe beliebigen LUA-Code ausführen lassen. Sei es die Steuerung eines RGBW-Moduls, eines normalen FIBARO Relay-Switch oder die Steuerung eines SONOS Play:one. Alles ist hier möglich.

Neben den ganzen Anpassungen im LUA-Code, müsst Ihr noch eine globale Variable anlegen. Geht dazu unter den Menü-Punkt “Steuerungen” und wählt hier die globalen Variablen aus. Erstellt dann hier eine globale Variable mit dem Namen “lamp_runs” (Ohne die Anführungszeichen) und dem Inhalt “0”. Das war es dam auch schon. Sofern Ihr alles korrekt eingerichtet habt, sollte dann folgender Debug auf eurem FIBARO HomeCenter 2 erscheinen:

Wir steuern damit zum Beispiel eine Beleuchtung für eine Pflanze, welche am Tag eine 12-stündige Beleuchtung mit LEDs benötigt. ( Siehe Artikelbild 😉 ) Vielleicht habt Ihr ja auch ein paar ausgefeilte Ideen, welche Ihr mit dem Skript umsetzen möchtet. Ihr könnt uns gern eine Mail schicken und dort ein paar Bilder anfügen. Wir würden uns sehr freuen.

Euer IntuITech-Team

Related Posts

Leave a Reply

Ich akzeptiere