Hallo, ich bin absolut neu hier und hoffe das mir jemand meinen Fehler zeugen kann.
Ich habe versucht mir ein ganz einfaches Script zu schreiben bei dem die Rollläden bei Sonnenaufgang nur bis zu den Schlitzen geöffnet wird und dann um 07:00 ganz geöffnet wird. Beim zumachen sollen die Rollläden bei Sonnenuntergang geschlossen werden.
Das Script funktioniert auch soweit, wenn ich es manuell zum Debuggen starte.
Nur wie krieg ist das Ding AUTOMATISCH zum laufen? grrrr. Leich die Nerven verloren.
Ich hoffe das mir jemand meinen Fehler zeigen kann.
--[[
%% autostart
%% properties
%% globals
%% events
--]]
-- Roller Shutter
-- Version: 1.0
-- benötigt wird eine Variable "rollershutter_runs" mit dem Wert 0
-- doppelte Szene werden abgebrochen
if (fibaro:countScenes()>1) then
fibaro:debug('Doppelte Szene - wird abgebrochen.')
fibaro:abort();
end
-- formatierung der debug ausgaben
local function Debug( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end
local sourceTrigger = fibaro:getSourceTrigger();
-- Sensoren definieren
local TempSensorID = 66
-- Rollläden
local rollerID = {151} -- Rolläden zB {151,160,170}
-- Öffnungsstatus
local posQuarter = 20 -- viertel offen
local posHalf = 50 -- halb offen
local pos3Quarter = 70 -- 3/4 offen
local posOpen = 99 -- ganz offen
local posClose = 0 -- zu
local TimeToFullOpen = '07:00'
-- Debugging
local debug = true -- keine debug ausgaben
local debugonce = true -- | false
local version = "1.0"
local newSunrise = fibaro:getValue(1,"sunriseHour");
local newSunset = fibaro:getValue(1,"sunsetHour");
local currentDate = os.date("*t");
local actionTime = (string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min));
temperatur = tonumber(string.format("%.2f",fibaro:getValue(TempSensorID, "value")));
local function shutter(pos)
Debug('orange','enter function shutter() with pos:' ..pos);
fibaro:setGlobal("rollershutter_runs", "1");
for r=1, #rollerID do
if rollerID[r] ~= nil then
fibaro:call(rollerID[r],'setValue', pos )
end
fibaro:sleep(math.random(2000,4000)) ;
end --for
fibaro:setGlobal("rollershutter_runs", "0");
end
function rollershutter()
Debug('red','Sonnenaufgang:' ..newSunrise);
Debug('red','Sonnenuntergang:' ..newSunset);
Debug('red','aktuelle Zeit:' ..actionTime);
Debug('red','Zeit zum öffnen:' ..TimeToFullOpen);
Debug('skyblue','Temperatur: ' .. temperatur .. '° um ' .. os.date('%H:%M'));
if (actionTime == newSunrise) then
Debug('yellow','jump to funktion shutter with pos:' ..posQuarter);
shutter(posQuarter);
elseif (actionTime >= TimeToFullOpen) then
Debug('yellow','It is time ti fully open:' ..TimeToFullOpen);
shutter(posOpen);
elseif (actionTime == newSunset) then
Debug('yellow','jump to function shutter with pos:' ..posClose);
shutter(posClose);
end
end
if (sourceTrigger["type"] == "autostart") then
rollershutter();
end
mfg
Johannes