Hi,
seitdem ich auf der 4.53 bin funktioniert die Feiertagsprpüfung im Rolladenscript nicht mehr… bei mir ist ständig Wochenende
--[[
%% autostart
%% properties
%% globals
--]]
-- Bisherige Hauptarbeiten an dem Skript: http://www.Siio.de, boomx, parip69 und thebrain. Kleine Modifikationen von alando22
-- Version 2.3
-- Dieses Skript realisiert eine Rolladen-Steuerung zum Sonnenaufgang und - untergang mit Verzögerungszeiten und einer
-- Temperaturschwelle, die zum schließen der Rolläden unterschritten werden muss.
-- Zusätzlich ist eine zufällige Verzögerung von 1-30 Minuten eingebaut, um die Aktivitäten nicht nachvollziehbar zu machen.
-- Zudem ist ein Sonnenschutz über einen Helligkeitssensor integriert. Eine Prüfung ggf. offener Türen ist ebenfalls enthalten.
-- Bei morgendlichen Öffnen wird zwischen Werktagen und Wochenenden & Feiertagen unterschieden.
-- Wochentags wird nach Sonnenaufgang geöffnet, am Wochenende & an Feiertagen zu fester Uhrzeit.
-- Dazu ist das Skript "Variable für Feiertage" von https://www.siio.de/board/thema/variable-fuer-feiertage/#post-42440 notwendig.
-- Ohne Verwendung des Feiertagsscripts bitte die Zeile 89 auskommentieren!!!
-- Notwendige globale Variablen (vorher anlegen!):
--
-- SunFirstMaxTimeLux Startwert = 0 (Interne Zeitvariable)
-- SunFirstMinTimeLux Startwert = 0 (Interne Zeitvariable)
-- SonnenSchutz Startwert = 0 (Variable gibt an, ob der Sonnenschutz aktiv '1' oder inaktiv '0' ist
-- RolloUnten0Oben1 Startwert = 1 (Variable gibt an, ob Rolladen unten '0' oder oben '1' ist
--#####################################################################################################################
local minSonAuf = '-15' -- Verzögerungszeit in Minuten zum öffnen der Rolläden bei Sonnenaufgang.
local minSonUnt = '15' -- Verzögerungszeit in Minuten zum schließen der Rolläden bei Sonnenuntergang.
local zeitFruehstensAuf = '06:00' -- Zeitpunkt ab dem die Rolläden frühestens öffnen (Nicht am WE & Feiertag).
local zeitSpaetestensAuf = '08:30' -- Zeitpunkt ab dem die Rolläden frühestens öffnen (Nicht am WE & Feiertag).
local zeitWeFtAuf = '08:30' -- Zeitpunkt, an dem am Wochenende und an Feiertagen die Rolläden öffnen (fixer Zeitpunkt)
local zeitMaxUntergang = '22:00' -- Spätester Zeitpunkt, an dem die Rolläden schließen
-- local maxTempStart = 7 -- Temperatur unterhalb der die Rolladen abends schließen sollen
local startSunLux = 20000 -- war auf 6.000 Lux
local startSunDelay = 5 -- 5 Min bis zu
local endSunLux = 3000 -- unter 1.000 Lux für auf
local endSunDelay = 20 -- 20 Min bis auf
local sunProtectPosition = 25; -- Sonnenschutzposition für Rolladen
local sunProtectPosition1 = 0; -- Sonnenschutzposition für Raffstores
local sunProtectLamella = 25; -- Sonnenschutzposition Lamellen
local luxSensor = 404 -- ID des Helligkeitssensors
-- local tempSensor = 11 -- ID des Temperatursensors (Außentemperatur)
local rebootSceneID = 96 -- ID der eigenen Scene die rebotet wird.
local meldungenDebug = 0 -- Hilfsvariable um die Meldungen nicht andauernd zu wiederholen.
local rs_wohnraum1 = 50; -- Schiebetür Raffst.
local rs_wohnraum2 = 52; -- Fenster Raffst.
local rs_wohnraum3 = 54; -- Wohnzimmer Fenster Raffst.
local rs_arbeitszimmer1 = 58; -- Büro
local rs_bad1 = 60; -- G-WC
local rs_bad2 = 42; -- Bad
local rs_kueche1 = 44; -- Fenster Garage
local rs_kueche2 = 46; -- Fenster Garten Raffst.
local rs_kueche3 = 48; -- Tür Garten Raffst.
local rs_theo = 40; -- Fenster Theo
local rs_flurEG = 62; -- Fenster Flur EG
local rs_ankleide = 32 -- Fenster Ankleide
local rs_elternGarten = 36 -- Fenster Eltern Garten
local rs_karla = 38 -- Fenster Karla
local rs_elternTerrasse = 34 -- Fenster Eltern Terrasse
local doorID1 = 278; -- ID des Türkontakts Schiebetür
local doorID2 = 338; -- ID Balkontür Küche
local doorID3 = 408; -- ID Tür Terrasse Eltern (siehe WHILE-Schleifen bei ca. Zeile 275)
-------------------------------------------------------------------------------------------------------------------------
--################################ ab hier nichts mehr ändern! ##########################################################
-------------------------------------------------------------------------------------------------------------------------
debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end
--#######################################################################################
local sourceTrigger = fibaro:getSourceTrigger();
function sceneReboot()
local currentDate = os.date("*t");
if ((currentDate.hour == 2) and (currentDate.min >= 0)and (currentDate.min < 1))
or sourceTrigger["type"] == "other" then
debug('salmon',"Neustart der Szene!")
fibaro:sleep(1*60*1000)
fibaro:startScene(rebootSceneID);
end
setTimeout(sceneReboot, 1*60*1000)
end
--########## Berechnung versetzter Sonnenaufgang und versetzter Sonnenuntergang ############
debug('gold', ""..fibaro:getValue(1,'sunriseHour').." ... Sonnenaufgang")
debug('steelblue', ""..minSonAuf.." min... Zeitverzögerung zum Sonnenaufgang.")
local a, b = fibaro:getValue(1,'sunriseHour'):match("([^,]+):([^,]+)")
local VersetzterSonnenAufgang = os.date("%H:%M", -3600+ a*60*60 + (b*60+minSonAuf*60));
debug('yellow',""..VersetzterSonnenAufgang.." Öffnen der Rolladen.")
----------------------------------------------------------------------------------------
debug('orangered',""..fibaro:getValue(1,'sunsetHour').. " ... SonnenUntergang")
debug('steelblue', ""..minSonUnt.." min. Zeitverzögerung Sonnenuntergang.")
local a, b = fibaro:getValue(1,'sunsetHour'):match("([^,]+):([^,]+)")
local VersetzterSonnenUntergang = os.date("%H:%M", -3600+ a*60*60 + (b*60+minSonUnt*60));
debug('orangered',""..VersetzterSonnenUntergang..' schließen der Rolladen')
--############################## Feststellung ob Wochenende oder Feiertag ##################
local Feiertag_heute = tonumber(fibaro:getGlobalValue("Feiertag_heute")) -- Diese Zeile auskommentieren, wenn kein Feiertagsscript genutzt wird
local currentDate = os.date("*t")
local werktag = 1
---------------------------------------------------------------------------------------
--############ Prüfung wann Rolladen tatsächlich öffnen werden ########################
if werktag == 0 then
debug ('yellow', "Die Rolladen werden um "..zeitWeFtAuf.." öffnen.")
elseif
VersetzterSonnenAufgang > zeitFruehstensAuf and VersetzterSonnenAufgang < zeitSpaetestensAuf then
debug('yellow',"Die Rolladen werden um "..VersetzterSonnenAufgang.. " zuzüglich einer zufälligen Verzögerung öffnen.")
elseif VersetzterSonnenAufgang < zeitFruehstensAuf then
debug('yellow',"Die Rolladen werden um "..zeitFruehstensAuf.. " zuzüglich einer zufälligen Verzögerung öffnen.")
elseif VersetzterSonnenAufgang > zeitSpaetestensAuf then
debug('yellow',"Die Rolladen werden um "..zeitSpaetestensAuf.. " zuzüglich einer zufälligen Verzögerung öffnen.")
end
--------------------------------------------------------------------------------------------
if VersetzterSonnenUntergang > zeitMaxUntergang then
debug('steelblue',"Die Rolladen werden um "..zeitMaxUntergang.. ' zuzüglich einer zufälligen Verzögerung geschlossen')
else
debug('steelblue',"Die Rolladen werden um "..VersetzterSonnenUntergang.. ' zuzüglich einer zufälligen Verzögerung geschlossen')
end
--#########################################################################################
debug('darkgreen',"Rolladen-Controller startet das erste mal!");
function rollerShutter()
--######## Berechnung der Variablen ########
local a, b = fibaro:getValue(1,'sunriseHour'):match("([^,]+):([^,]+)")
local VersetzterSonnenAufgang = os.date("%H:%M", -3600+ a*60*60 + (b*60+minSonAuf*60));
----------------------------------------------------------------------------------------
local a, b = fibaro:getValue(1,'sunsetHour'):match("([^,]+):([^,]+)")
local VersetzterSonnenUntergang = os.date("%H:%M", -3600+ a*60*60 + (b*60+minSonUnt*60));
----------------------------------------------------------------------------------------
local currentDate = os.date('*t');
local rollershutter_runs = tonumber(fibaro:getGlobalValue('rollershutter_runs'));
local SonnenSchutz = tonumber(fibaro:getGlobalValue('SonnenSchutz'));
----------------------------------------------------------------------------------------
local version = '2.3';
local currentDate = os.date('*t');
local rollershutter_runs = tonumber(fibaro:getGlobalValue('rollershutter_runs'));
local random = math.random(5); -- Hier wird die zufällige Verzögerung beeinflusst.
local min = math.floor((random*100)/60);
--------------------------------------------------------------------------------------------
if ((Feiertag_heute == 1)) -- or currentDate.wday == 7 or currentDate.wday == 1 or currentDate.wday == 2 or currentDate.wday == 6))
then
werktag = 0
--debug('grey', "Heute ist Wochenende oder ein Feiertag.")
else
werktag = 1
--debug('grey',"Heute ist ein Werktag und kein Feiertag.")
end
------------------------------------------------------------------------------------------
---################# SonnenSchutz... Rolladen runterfahren !! #########################---
------------------------------------------------------------------------------------------
if ( tonumber(fibaro:getValue(luxSensor, "value")) > startSunLux )
-- and sunProtectTempMin <= tonumber(fibaro:getValue(tempSensor, "value"))
and (os.date("%H:%M", os.time()) > VersetzterSonnenAufgang)
and (os.date("%H:%M", os.time()) < VersetzterSonnenUntergang)
and (tonumber(SonnenSchutz) == 0)
then
fibaro:setGlobal('SunFirstMaxTimeLux', '1');
local gSunFirstMaxTimeLux = fibaro:getGlobalModificationTime('SunFirstMaxTimeLux')
if ( tonumber(fibaro:getValue(luxSensor, "value")) > startSunLux )
and ((os.time() - gSunFirstMaxTimeLux) >= startSunDelay*60)
then
---------------- Rolladen eintragen ----------------------------------------
--fibaro:call(rs_wohnraum2, "setValue", sunProtectPosition1); --Fenster Esszimmer
--fibaro:call(rs_wohnraum2, "setValue2", sunProtectLamella); --Lamellen
--fibaro:call(rs_wohnraum3, "setValue", sunProtectPosition1); --Fenster Wohnzimmer
--fibaro:call(rs_wohnraum3, "setValue2", sunProtectLamella); --Lamellen
fibaro:call(rs_arbeitszimmer1, "setValue", sunProtectPosition); --Fenster Büro
fibaro:call(rs_bad1, "setValue", sunProtectPosition); -- Fenster G-WC
-- fibaro:call(rs_bad2, "setValue", sunProtectPosition); --Fenster Bad
fibaro:call(rs_kueche1, "setValue", sunProtectPosition); --Fenster Garage
--fibaro:call(rs_kueche2, "setValue", sunProtectPosition1); --Fenster Garten
--fibaro:call(rs_kueche2, "setValue2", sunProtectLamella); --Lamellen
--fibaro:call(rs_kueche3, "setValue", sunProtectPosition1); --Tür Garten
--fibaro:call(rs_kueche3, "setValue2", sunProtectLamella); --Lamellen
-- fibaro:call(rs_theo, "setValue", sunProtectPosition); --Fenster Theo
fibaro:call(rs_flurEG, "setValue", sunProtectPosition); --Fenster Flur
--fibaro:call(rs_ankleide, "setValue", sunProtectPosition); --Fenster Ankleide
--fibaro:call(rs_elternTerrasse, "setValue", sunProtectPosition) --Fenster Terrasse
---------------------------------------------------------------------------
debug('greenyellow', fibaro:getValue(luxSensor, "value")..' Lux ... Die Rolladen fahren auf ' ..sunProtectPosition..'%!!!')
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '1'); --SonnenSchutz wurde gesetzt.
fibaro:setGlobal('RolloUnten0Oben1', '0');
meldungenDebug = 0
elseif meldungenDebug == 0 then
debug('lightsteelblue','Die Rolladen bleiben oben... es sind ' ..fibaro:getValue(luxSensor, "value")..' Lux und '..startSunDelay..' min bis die Rollos auf ' ..sunProtectPosition..'% fahren.')
meldungenDebug = 1 --damit er nicht immer die gleiche meldung schreibt wie odas ueber ihm.
end
------------------------------------------------------------------------------------------
---################# SonnenSchutz... Rolladen hochfahren !! ###########################---
------------------------------------------------------------------------------------------
elseif ( tonumber(fibaro:getValue(luxSensor, "value")) < endSunLux )
and (os.date("%H:%M", os.time()) > VersetzterSonnenAufgang)
and (os.date("%H:%M", os.time()) < VersetzterSonnenUntergang)
and (tonumber(SonnenSchutz) == 1)
then
fibaro:setGlobal('SunFirstMinTimeLux', '1');
local gSunFirstMinTimeLux = fibaro:getGlobalModificationTime('SunFirstMinTimeLux')
if ( tonumber(fibaro:getValue(luxSensor, "value")) < endSunLux )
and ((os.time() - gSunFirstMinTimeLux) >= endSunDelay*60)
then
---------------- Rolladen eintragen --------------------------------------------------
--fibaro:call(rs_wohnraum1, 'open');
--fibaro:call(rs_wohnraum2, 'open');
--fibaro:call(rs_wohnraum3, 'open');
fibaro:call(rs_arbeitszimmer1, 'open');
fibaro:call(rs_bad1, 'open');
-- fibaro:call(rs_bad2, 'open');
fibaro:call(rs_kueche1, 'open');
--fibaro:call(rs_kueche2, 'open');
--fibaro:call(rs_kueche3, 'open');
-- fibaro:call(rs_theo, 'open');
fibaro:call(rs_flurEG, 'open');
--fibaro:call(rs_ankleide, "open");
--fibaro:call(rs_elternTerrasse, "open");
--------------------------------------------------------------------------------------
debug('greenyellow', fibaro:getValue(luxSensor, "value")..' Die Rolladen fahren hoch!!!')
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
fibaro:setGlobal('RolloUnten0Oben1', '1');
meldungenDebug = 0
elseif meldungenDebug == 0 then
debug('lightsteelblue','Rollos bleiben auf ' ..sunProtectPosition..' % ... es sind ' ..fibaro:getValue(luxSensor, "value")..' Lux und '..endSunDelay..' min bis die Rollos rauf fahren.')
meldungenDebug = 1 --damit er nicht immer die gleiche meldung schreibt wie odas ueber ihm.
end
------------------------------------------------------------------------------------------
---################# Sonnenaufgang Werktags!! ###############################################--
------------------------------------------------------------------------------------------
elseif werktag == 1 and ((VersetzterSonnenAufgang > zeitFruehstensAuf and os.date("%H:%M", os.time()) == VersetzterSonnenAufgang)
or (VersetzterSonnenAufgang < zeitFruehstensAuf and os.date("%H:%M", os.time()) == zeitFruehstensAuf)
or (VersetzterSonnenAufgang > zeitSpaetestensAuf and os.date("%H:%M", os.time()) == zeitSpaetestensAuf)
and (tonumber(rollershutter_runs) == 0))
then
debug('green', 'Werktag = '.. werktag)
debug('darkkhaki',"Rolladen-Controller ist gestartet (Ver." .. version .. ")");
fibaro:setGlobal('rollershutter_runs', '1');
debug('gold', 'Sonnenaufgang... öffne Rolladen');
debug('gold', 'Waiting ' .. min .. ' min');
fibaro:sleep(random*100000);
fibaro:call(rs_wohnraum1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum3, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_arbeitszimmer1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche3, 'open');
fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_theo, 'open');
--fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_flurEG, 'open');
fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_karla, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_elternTerrasse, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_elternGarten, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_ankleide, 'open');
--fibaro:sleep(math.random(5000,10000));
debug('yellow',"Rolladen wurden geöfnet.");
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
fibaro:setGlobal('rollershutter_runs', '0');
fibaro:setGlobal('RolloUnten0Oben1', '1');
if (os.date("%H:%M", os.time()) >= VersetzterSonnenAufgang) then
debug('coral',"Es ist Tag.");
end
------------------------------------------------------------------------------------------
---################# Sonnenaufgang Wochenende und Feiertags!! ###################################--
------------------------------------------------------------------------------------------
elseif werktag == 0 and ((string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == zeitWeFtAuf)
and (tonumber(rollershutter_runs) == 0))
then
debug('green', 'Werktag = '.. werktag)
debug('darkkhaki',"Rolladen-Controller ist gestartet (Ver." .. version .. ")");
fibaro:setGlobal('rollershutter_runs', '1');
debug('yellow','Es ist '..zeitWeFtAuf..'Uhr, Öffne Rolladen');
fibaro:call(rs_wohnraum1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum3, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_arbeitszimmer1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche1, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche2, 'open');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche3, 'open');
fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_theo, 'open');
--fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_flurEG, 'open');
fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_karla, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_elternTerrasse, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_elternGarten, 'open');
--fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_ankleide, 'open');
--fibaro:sleep(math.random(5000,10000));
debug('yellow',"Rolladen wurden geöfnet.");
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
fibaro:setGlobal('rollershutter_runs', '0');
fibaro:setGlobal('RolloUnten0Oben1', '1');
debug('coral',"Es ist Tag.");
-----------------------------------------------------------------------------------------
---################ SonnenUntergang !! ###########################################---
-----------------------------------------------------------------------------------------
elseif (tonumber(rollershutter_runs) == 0) and ((VersetzterSonnenUntergang < zeitMaxUntergang and os.date("%H:%M", os.time()) == VersetzterSonnenUntergang)
or (VersetzterSonnenUntergang > zeitMaxUntergang and os.date("%H:%M", os.time()) == zeitMaxUntergang))
then
debug('darkkhaki',"Rolladen-Controller ist gestartet (Ver." .. version .. ")");
fibaro:setGlobal('rollershutter_runs', '1');
debug('steelblue', 'Sonnenuntergang... schließe Rolladen')
-- debug('sttelblue', 'Die Temperatur beträgt '..tonumber(fibaro:getValue(tempSensor, "value"))..'°C.')
debug('steelblue', 'Die zufällige Verzögerung beträgt ' .. min .. ' min.');
fibaro:sleep(random*100000);
fibaro:call(rs_arbeitszimmer1, 'close') --ID für close ohne prüfung eines offenen Fensters
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad1, 'close');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_bad2, 'close');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche1, 'close');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_kueche2, 'close');
fibaro:call(rs_kueche2,'setValue2', '0')
fibaro:sleep(math.random(5000,10000));
--fibaro:call(rs_kueche3, 'close');
--fibaro:call(rs_kueche3,'setValue2', '0')
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum2, 'close');
fibaro:call(rs_wohnraum2,'setValue2', '0')
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_wohnraum3, 'close');
fibaro:call(rs_wohnraum3,'setValue2', '0')
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_theo, 'close');
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_flurEG, "close"); -- Weihanchtsbeleuchtung "setValue" "45"
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_ankleide, 'close')
fibaro:sleep(math.random(5000,10000))
fibaro:call(rs_elternGarten,'close')
fibaro:sleep(math.random(5000,10000));
fibaro:call(rs_karla,'close');
fibaro:sleep(math.random(5000,10000));
while
(tonumber(fibaro:getValue(doorID1, 'value')) > 0) do --prüft ob Fester offen, wenn ja wird Rolladen nicht geschlossen
fibaro:sleep(10*1000)
end
fibaro:call(rs_wohnraum1, 'close');
fibaro:call(rs_wohnraum1,"setValue2", '0')
while
(tonumber(fibaro:getValue(doorID2, 'value')) > 0) do --prüft ob Fester offen, wenn ja wird Rolladen nicht geschlossen
fibaro:sleep(10*1000)
end
fibaro:call(rs_kueche3, 'close');
fibaro:call(rs_kueche3, "setValue2","0")
while
(tonumber(fibaro:getValue(doorID3, 'value')) > 0) do --prüft ob Fester offen, wenn ja wird Rolladen nicht geschlossen
fibaro:sleep(10*1000)
end
fibaro:call(rs_elternTerrasse, 'close');
debug('royalblue',"Rolladen wurden geschlossen.");
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
fibaro:setGlobal('rollershutter_runs', '0');
fibaro:setGlobal('RolloUnten0Oben1', '0');
if (os.date("%H:%M", os.time()) >= VersetzterSonnenUntergang) then
debug('royalblue',"Es ist Nacht.");
end
end
---#######################################################################################
setTimeout(rollerShutter, 60*1000);
end
--########################################################################################
if (sourceTrigger['type'] == 'autostart') then
rollerShutter();
sceneReboot();
elseif (sourceTrigger['type'] == 'property') then
debug('orangered', 'Source device = ' .. sourceTrigger['deviceID'])
elseif (sourceTrigger['type'] == 'global') then
debug('orangered', 'Global variable source = ' .. sourceTrigger['name'])
elseif (sourceTrigger['type'] == 'other') then
---------------- Rolladen eintragen ----------------------------------------
if(os.date("%H:%M", os.time()) > VersetzterSonnenAufgang)
and(os.date("%H:%M", os.time()) < VersetzterSonnenUntergang) then
fibaro:call(rs_wohnraum1, 'open');
fibaro:call(rs_wohnraum2, 'open');
fibaro:call(rs_wohnraum3, 'open');
fibaro:call(rs_arbeitszimmer1, 'open');
fibaro:call(rs_bad1, 'open');
fibaro:call(rs_bad2, 'open');
fibaro:call(rs_kueche1, 'open');
fibaro:call(rs_kueche2, 'open');
fibaro:call(rs_kueche3, 'open');
fibaro:call(rs_theo, 'open');
fibaro:call(rs_flurEG, 'open');
fibaro:call(rs_ankleide, "open");
fibaro:call(rs_elternTerrasse, "open");
fibaro:call(rs_elternGarten, "open");
fibaro:call(rs_karla, "open");
debug('coral',' Die Rolladen fahren in Grundstellung!!!')
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
fibaro:setGlobal('RolloUnten0Oben1', '1');
else
debug('royalblue',' Es ist Nacht.')
fibaro:setGlobal('SunFirstMaxTimeLux', '0');
fibaro:setGlobal('SunFirstMinTimeLux', '0');
fibaro:setGlobal('SonnenSchutz', '0'); --SonnenSchutz wurde entfernt.
end
---------------------------------------------------------------------------
debug('orangered', 'Other source.')
end
--###########################################################################################
[DEBUG] 03:03:12: 07:40 … Sonnenaufgang
[DEBUG] 03:03:12: -15 min… Zeitverzögerung zum Sonnenaufgang.
[DEBUG] 03:03:12: 07:25 Öffnen der Rolladen.
[DEBUG] 03:03:12: 17:55 … SonnenUntergang
[DEBUG] 03:03:12: 15 min. Zeitverzögerung Sonnenuntergang.
[DEBUG] 03:03:12: 18:10 schließen der Rolladen
[DEBUG] 03:03:12: Die Rolladen werden um 07:25 zuzüglich einer zufälligen Verzögerung öffnen.
[DEBUG] 03:03:12: Die Rolladen werden um 18:10 zuzüglich einer zufälligen Verzögerung geschlossen
[DEBUG] 03:03:12: Rolladen-Controller startet das erste mal!
[DEBUG] 08:30:20: Werktag = 0
[DEBUG] 08:30:20: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 08:30:20: Es ist 08:30Uhr, Öffne Rolladen
[DEBUG] 08:31:41: Rolladen wurden geöfnet.
[DEBUG] 08:31:41: Es ist Tag.
[DEBUG] 18:10:55: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 18:10:55: Sonnenuntergang… schließe Rolladen
[DEBUG] 18:10:55: Die zufällige Verzögerung beträgt 5 min.
[DEBUG] 18:17:42: Rolladen wurden geschlossen.
[DEBUG] 18:17:42: Es ist Nacht.
[DEBUG] 02:00:53: Neustart der Szene!
[DEBUG] 02:01:53: 07:39 … Sonnenaufgang
[DEBUG] 02:01:53: -15 min… Zeitverzögerung zum Sonnenaufgang.
[DEBUG] 02:01:53: 07:24 Öffnen der Rolladen.
[DEBUG] 02:01:53: 17:56 … SonnenUntergang
[DEBUG] 02:01:53: 15 min. Zeitverzögerung Sonnenuntergang.
[DEBUG] 02:01:53: 18:11 schließen der Rolladen
[DEBUG] 02:01:53: Die Rolladen werden um 07:24 zuzüglich einer zufälligen Verzögerung öffnen.
[DEBUG] 02:01:53: Die Rolladen werden um 18:11 zuzüglich einer zufälligen Verzögerung geschlossen
[DEBUG] 02:01:53: Rolladen-Controller startet das erste mal!
[DEBUG] 02:01:53: Es ist Nacht.
[DEBUG] 02:01:53: Other source.
[DEBUG] 08:30:02: Werktag = 0
[DEBUG] 08:30:02: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 08:30:02: Es ist 08:30Uhr, Öffne Rolladen
[DEBUG] 08:31:13: Rolladen wurden geöfnet.
[DEBUG] 08:31:13: Es ist Tag.
[DEBUG] 18:11:27: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 18:11:27: Sonnenuntergang… schließe Rolladen
[DEBUG] 18:11:27: Die zufällige Verzögerung beträgt 1 min.
[DEBUG] 18:14:41: Rolladen wurden geschlossen.
[DEBUG] 18:14:41: Es ist Nacht.
[DEBUG] 02:00:52: Neustart der Szene!
[DEBUG] 02:01:52: 07:37 … Sonnenaufgang
[DEBUG] 02:01:52: -15 min… Zeitverzögerung zum Sonnenaufgang.
[DEBUG] 02:01:52: 07:22 Öffnen der Rolladen.
[DEBUG] 02:01:52: 17:58 … SonnenUntergang
[DEBUG] 02:01:52: 15 min. Zeitverzögerung Sonnenuntergang.
[DEBUG] 02:01:52: 18:13 schließen der Rolladen
[DEBUG] 02:01:52: Die Rolladen werden um 07:22 zuzüglich einer zufälligen Verzögerung öffnen.
[DEBUG] 02:01:52: Die Rolladen werden um 18:13 zuzüglich einer zufälligen Verzögerung geschlossen
[DEBUG] 02:01:52: Rolladen-Controller startet das erste mal!
[DEBUG] 02:01:52: Es ist Nacht.
[DEBUG] 02:01:53: Other source.
[DEBUG] 08:30:02: Werktag = 0
[DEBUG] 08:30:02: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 08:30:02: Es ist 08:30Uhr, Öffne Rolladen
[DEBUG] 08:31:15: Rolladen wurden geöfnet.
[DEBUG] 08:31:15: Es ist Tag.
[DEBUG] 18:13:29: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 18:13:29: Sonnenuntergang… schließe Rolladen
[DEBUG] 18:13:29: Die zufällige Verzögerung beträgt 3 min.
[DEBUG] 18:18:28: Rolladen wurden geschlossen.
[DEBUG] 18:18:28: Es ist Nacht.
[DEBUG] 02:00:39: Neustart der Szene!
[DEBUG] 02:01:39: 07:35 … Sonnenaufgang
[DEBUG] 02:01:39: -15 min… Zeitverzögerung zum Sonnenaufgang.
[DEBUG] 02:01:39: 07:20 Öffnen der Rolladen.
[DEBUG] 02:01:39: 18:00 … SonnenUntergang
[DEBUG] 02:01:39: 15 min. Zeitverzögerung Sonnenuntergang.
[DEBUG] 02:01:39: 18:15 schließen der Rolladen
[DEBUG] 02:01:39: Die Rolladen werden um 07:20 zuzüglich einer zufälligen Verzögerung öffnen.
[DEBUG] 02:01:39: Die Rolladen werden um 18:15 zuzüglich einer zufälligen Verzögerung geschlossen
[DEBUG] 02:01:39: Rolladen-Controller startet das erste mal!
[DEBUG] 02:01:39: Es ist Nacht.
[DEBUG] 02:01:39: Other source.
[DEBUG] 08:30:48: Werktag = 0
[DEBUG] 08:30:48: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 08:30:48: Es ist 08:30Uhr, Öffne Rolladen
[DEBUG] 08:32:04: Rolladen wurden geöfnet.
[DEBUG] 08:32:04: Es ist Tag.
[DEBUG] 18:15:18: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 18:15:18: Sonnenuntergang… schließe Rolladen
[DEBUG] 18:15:18: Die zufällige Verzögerung beträgt 8 min.
[DEBUG] 18:25:16: Rolladen wurden geschlossen.
[DEBUG] 18:25:17: Es ist Nacht.
[DEBUG] 02:00:28: Neustart der Szene!
[DEBUG] 02:01:28: 07:33 … Sonnenaufgang
[DEBUG] 02:01:28: -15 min… Zeitverzögerung zum Sonnenaufgang.
[DEBUG] 02:01:28: 07:18 Öffnen der Rolladen.
[DEBUG] 02:01:28: 18:02 … SonnenUntergang
[DEBUG] 02:01:28: 15 min. Zeitverzögerung Sonnenuntergang.
[DEBUG] 02:01:28: 18:17 schließen der Rolladen
[DEBUG] 02:01:28: Die Rolladen werden um 07:18 zuzüglich einer zufälligen Verzögerung öffnen.
[DEBUG] 02:01:28: Die Rolladen werden um 18:17 zuzüglich einer zufälligen Verzögerung geschlossen
[DEBUG] 02:01:28: Rolladen-Controller startet das erste mal!
[DEBUG] 02:01:28: Es ist Nacht.
[DEBUG] 02:01:28: Other source.
[DEBUG] 08:30:37: Werktag = 0
[DEBUG] 08:30:37: Rolladen-Controller ist gestartet (Ver.2.3)
[DEBUG] 08:30:37: Es ist 08:30Uhr, Öffne Rolladen
[DEBUG] 08:31:57: Rolladen wurden geöfnet.
[DEBUG] 08:31:57: Es ist Tag.
hat sich da was geändert an der Prüfung? der Neustart der Scene funktioniert, aber Werktag ist noch immer auf 0…
nur wenn ich die Scene manuell neustarte erkennt er einmalig den Wochentag, ab dem nächsten Tag bleibt er dann aber wieder hängen…
danke
Mit freundlichen Grüßen
bademeister