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

Hjälp varandra att vara kreativa för att göra hemmet mer bekvämt.
Post Reply
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

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
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

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
Mackan3972
Medlem
Posts: 44
Joined: 07 Dec 2013, 22:28
10

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
iSnobben
Medlem
Posts: 105
Joined: 27 Dec 2013, 20:39
10

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.
nohed
Medlem
Posts: 88
Joined: 20 Apr 2013, 14:10
11

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
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Vid någon av antingen uppgång eller nedgång. Natt == 0 eller 1


Jonny sent this from his iPhone using Tapatalk
nohed
Medlem
Posts: 88
Joined: 20 Apr 2013, 14:10
11

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");
nohed
Medlem
Posts: 88
Joined: 20 Apr 2013, 14:10
11

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");
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Javisst, det går utmärkt.
Post Reply