Page 1 of 1

Solnedgång - Tänd 30min före solnedgång

Posted: 11 Feb 2013, 09:36
by jompa68
När man skapar ny scen med grafiska blocks så finns det ej möjlighet att ställa in så man utför något xx min före solnedgång samt soluppgång (bara efter solnedgång resp före soluppgång)

Med lite LUA kan man fixa det enkelt ;)

Nedan sätter jag variabel och tänder 30min före solndnedång

Code: Select all

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

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do

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 os.date("%H:%M", os.time()+30*60) == fibaro:getValue(1, "sunsetHour")) )
)
then
	fibaro:setGlobal("Solnedgång", "1");
	fibaro:setGlobal("Soluppgång", "0");
	fibaro:call(26, "turnOn");
	fibaro:call(27, "turnOn");
	fibaro:call(17, "turnOn");
end

fibaro:sleep(60*1000);
end
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
	fibaro:setGlobal("Solnedgång", "1");
	fibaro:setGlobal("Soluppgång", "0");
	fibaro:call(26, "turnOn");
	fibaro:call(27, "turnOn");
	fibaro:call(17, "turnOn");
end
end

Nedan sätter jag variabel och släcker 30min efter soluppgång

Code: Select all

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

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
while true do

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 os.date("%H:%M", os.time()-30*60) == fibaro:getValue(1, "sunriseHour")) )
)
then
	fibaro:setGlobal("Solnedgång", "0");
	fibaro:setGlobal("Soluppgång", "1");
	fibaro:call(26, "turnOff");
	fibaro:call(27, "turnOff");
	fibaro:call(17, "turnOff");
end

fibaro:sleep(60*1000);
end
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
	fibaro:setGlobal("Solnedgång", "0");
	fibaro:setGlobal("Soluppgång", "1");
	fibaro:call(26, "turnOff");
	fibaro:call(27, "turnOff");
	fibaro:call(17, "turnOff");
end

end

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 15 Feb 2013, 01:13
by jompa68
Lite enklare LUA kod för soluppgång och solnedgång, sätter ett variabel värde som kan användas till att släcka belysning om Natt variabeln är = 0 eller tända om Natt variabeln = 1

Code: Select all

while true do 
local sunUp = os.date("%H:%M", os.time()-25*60)  --Aktiveras 25min efter soluppgång
local sunDown = os.date("%H:%M", os.time()+25*60) --Aktiveras 25min före solnedgång
local currentDate = os.date("*t"); 

if ( sunUp == fibaro:getValue(1, "sunriseHour") ) 
then 
    fibaro:setGlobal("Natt", "0"); 
elseif ( sunDown == fibaro:getValue(1, "sunsetHour") ) 
then 
    fibaro:setGlobal("Natt", "1"); 
end 

fibaro:sleep(60*1000); 
end

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 22 Jan 2014, 14:54
by Mackan3972
Ny på detta :oops: kan du förklara hur jag lägger till den i en scen? Vart "sätter man en variabel"?

Mvh

Mackan

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 02 Feb 2014, 00:20
by iSnobben
Jag har två scener som ser till att fönsterlamporna tänds och släcks med hjälp av solen.

Scen1: Tänder vid en fast tid på morgonen samt en timme före solnedgång på kvällen
Scen2: Släcker en timme efter soluppgång samt vid en fast tid på kvällen.

Just nu funkar ju detta klockrent men hur blir det när solen börjar gå upp tidigare än min fasta tid? Jag menar det behöver ju inte tändas om det redan är ljust.

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 02 Jun 2014, 13:43
by nohed
jompa68 wrote:Lite enklare LUA kod för soluppgång och solnedgång, sätter ett variabel värde som kan användas till att släcka belysning om Natt variabeln är = 0 eller tända om Natt variabeln = 1

Code: Select all

while true do 
local sunUp = os.date("%H:%M", os.time()-25*60)  --Aktiveras 25min efter soluppgång
local sunDown = os.date("%H:%M", os.time()+25*60) --Aktiveras 25min före solnedgång
local currentDate = os.date("*t"); 

if ( sunUp == fibaro:getValue(1, "sunriseHour") ) 
then 
    fibaro:setGlobal("Natt", "0"); 
elseif ( sunDown == fibaro:getValue(1, "sunsetHour") ) 
then 
    fibaro:setGlobal("Natt", "1"); 
end 

fibaro:sleep(60*1000); 
end

om man vill att den skall ändra en till variabel var lägger jag in den någonstans
har en variabel som heter sensor

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 02 Jun 2014, 14:13
by jompa68
Vid någon av antingen uppgång eller nedgång. Natt == 0 eller 1


Jonny sent this from his iPhone using Tapatalk

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 03 Jun 2014, 10:34
by nohed
jompa68 wrote:Vid någon av antingen uppgång eller nedgång. Natt == 0 eller 1


Jonny sent this from his iPhone using Tapatalk
kan man skriva så här ?

if ( sunUp == fibaro:getValue(1, "sunriseHour") )
then
fibaro:setGlobal("Natt", "0");
fibaro:setGlobal("Sensor", "0");

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 03 Jun 2014, 10:34
by nohed
jompa68 wrote:Vid någon av antingen uppgång eller nedgång. Natt == 0 eller 1


Jonny sent this from his iPhone using Tapatalk
kan man skriva så här ?

if ( sunUp == fibaro:getValue(1, "sunriseHour") )
then
fibaro:setGlobal("Natt", "0");
fibaro:setGlobal("Sensor", "0");

Re: Solnedgång - Tänd 30min före solnedgång

Posted: 03 Jun 2014, 10:45
by jompa68
Javisst, det går utmärkt.