Scen TimeOfDay

Post Reply
valneg
Medlem
Posts: 43
Joined: 30 May 2015, 05:46
8

Hej
Jag använder följande scen för att styra en variabel med olika parametrar för att styra belysning och annat. Den hämtar data från en ljussensor som "tittar ut".
Allt fungerar bra med ett litet undantag. När värdet ändras från t.ex. Day till Dawn så går den fram och tillbaks några gånger innan den stabiliseras, kan påverkas även av moln och annat. Det gör att min fasadbelysning kan blinka till ett par gånger innan allt kommer till ro :-)
Skulle egentligen vilja ha något i stil med: om värdet "Dark" inte har ändrats på 1 minut ändra variabel timeofday till "Dark"
Har själv försökt att få till det men utan större framgång, är det någon som hinner kasta en titt?

Code: Select all

--[[
%%autostart
%% properties 
13 value
%% globals
TimeOfDay
--]]

--Enable debug?
local debug = true;

--Fetch value from sensor
local lightlevel = tonumber(fibaro:getValue(13, "value"));

if (debug) then fibaro:debug("Lightcheck: " .. os.date());
  fibaro:debug("Value is: " .. fibaro:getValue(13, "value"));
end

if lightlevel > 201 then 
  if (debug) then fibaro:debug("It is Day"); end
  fibaro:setGlobal("TimeOfDay", "Day");

elseif ((lightlevel < 200) and (lightlevel > 50)) then
    if (debug) then fibaro:debug("It is Dawn"); end
    fibaro:setGlobal("TimeOfDay", "Dawn");

elseif lightlevel < 50 then
      if (debug) then fibaro:debug("It is Night"); end
      fibaro:setGlobal("TimeOfDay", "Night");
end
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Misstänker att du tänder belysningen när du kommer till Dawn, här skulle en Hysteres behövas om det kan jag tyvärr inte hjälpa dig med, men en fuling är att du ändrar Night till <=30 istället, då har du en egen Hysteres på ca 20 lux.
Sen skriver du "Dark" i texten men jag ser inte det i koden, du kanske menar "Dawn"
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
valneg
Medlem
Posts: 43
Joined: 30 May 2015, 05:46
8

sonnyboy wrote:Misstänker att du tänder belysningen när du kommer till Dawn, här skulle en Hysteres behövas om det kan jag tyvärr inte hjälpa dig med, men en fuling är att du ändrar Night till <=30 istället, då har du en egen Hysteres på ca 20 lux.
Sen skriver du "Dark" i texten men jag ser inte det i koden, du kanske menar "Dawn"
Hej, tack för snabbt svar. Jag tänder ljuset på Night och jag menar Dawn, fort och fel ibland :-)
Ska testa att leka med det också :-)
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Hur gick det för dig, fick du ordning på detta?
Hittade denna i min HC:2 som fortfarande snurrar på, är osäker om den ens används längre :shock:
Nästan allt snurrar via GEA nu.
Denna använder bara Natt och Dag men det funkade för mig tidigare iaf :)

Code: Select all

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


if (fibaro:countScenes() > 1) then fibaro:abort() end

version = "1.0.1"
-- version history
-- 1.0.1 2016-11-15 Bytte Volt till Lux som mäts via ESP easy

-- Give debug a fancy color
Debug = function ( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")) 
end

Debug( "magenta", "TOD - LUA Scripting by Sonnyboy 2015" )
Debug( "lightgreen", "Version: "..version)

local Solstralning = tonumber(fibaro:getGlobalValue("Sun"))
  Debug( "orange", "Sol: "..Solstralning)

if ( Solstralning ) <= 200--Lux när det ska bli natt
  then
   fibaro:setGlobal("Tod","Natt") -- Natt
     Debug( "brown", "TOD Natt")
 elseif ( Solstralning ) >= 250--Lux när det ska bli dag
  then
   fibaro:setGlobal("Tod","Dag") -- Dag
    Debug( "yellow", "TOD dag")
  
end
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
valneg
Medlem
Posts: 43
Joined: 30 May 2015, 05:46
8

Hur gick det för dig, fick du ordning på detta?
Hittade denna i min HC:2 som fortfarande snurrar på, är osäker om den ens används längre :shock:
Nästan allt snurrar via GEA nu.
Denna använder bara Natt och Dag men det funkade för mig tidigare iaf :)
Hej, inte hunnit så mycket mer ännu, ska försöka kolla lite mer i dagarna, matchen igår tog över :-)
BTW, har precis börjat titta på GEA också och har en som snurrar just nu men som inte gör så mycket mer ärt att Pusha ut ett meddelande när garagedörren har stått öppen för länge.
Hur gör du det här i GEA?
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Jag använder inte GEA till Tod, Det är bara något som jag glömt bort att ta bort

I GEA så ser min kodsnutt ut så här

Code: Select all

GEA.add({"Global-", "Sun", "200"}, 30, "Tänder Belysningen", {{"Time", "13:00", "21:35"}, {"Scenario", 242}})
GEA startar en scen om Globala variabeln "Sun" är mindre än 200 lux och klockan är emellan 13:00 & 21:35, samt skickar ett Push till min lur "Tänder Belysningen"
Jag har belysningen ligger i en Scen som tänder lamporna lite random och med olika intervaller emellan, så att inte alla lampor tänds på en gång (lite för att lura tjuven och för att det blir lite trevligare)
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
pos
Medlem
Posts: 89
Joined: 03 Feb 2017, 02:20
7

Addera lite hysteres som @Sonnyboy föreslog!

Du kan titta lite på https://www.incedo.eu/~sjoholmp/Fibaro_ ... wayLights/ där jag har addera delay på det sätt du behöver.


Mvh
Peo
valneg
Medlem
Posts: 43
Joined: 30 May 2015, 05:46
8

Tack Sonnyboy och Peo för era svar, ska testa vidare med både GEA och hysteres, GEA ser redan ganska lovande ut med lite inspiration från Sonnyboys kod ovan :-)
Post Reply