Page 1 of 1

Scen med variabler funkar dåligt

Posted: 27 Jul 2018, 21:26
by engehov
Hej!
Har ett antal scener som innehåller både exempelvis klockslag och en eller fler variabler.

T ex. Tända ett antal lampor när de blir mörkt, men ej efter en viss tid, alltså beroende av Variabeln TimeOfDay = Day/Evening.

Själva tändscenen funkar oftast, problemet blir då variabeln ändrar tillstånd, ex på morgonen när TimeOfDay = Day så triggar detta tändscenen jag har på kvällen.

Tycker att om jag lägger in en eller flera variabler, som "när solen gått ner" "och" om variabeln är rätt så skall inte den ena delen trigga hela scenen då jag begär att båda delarna skall vara uppfylld innan något skall ske.

tips på detta?

MVH
Fredrik

Re: Scen med variabler funkar dåligt

Posted: 28 Jul 2018, 10:40
by RH_Dreambox
Kan du lägga in scenen här så vi kan kolla på den. Det kanske är något villkor som som behöver justeras lite.

Re: Scen med variabler funkar dåligt

Posted: 28 Jul 2018, 20:08
by engehov
RH_Dreambox wrote: 28 Jul 2018, 10:40 Kan du lägga in scenen här så vi kan kolla på den. Det kanske är något villkor som som behöver justeras lite.
Detta är en av dem, men om ni ser nåt fel i denna kanske jag klara att fixa de andra själv :lol:

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
TimeOfDay
LightOrDark
--]]

local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue("TimeOfDay") == "Evening" )
or
( fibaro:getGlobalValue("TimeOfDay") == "Day" )
and
( fibaro:getGlobalValue("LightOrDark") == "Dark" )

)
then
fibaro:call(57, "turnOn");
fibaro:call(200, "turnOn");
fibaro:call(31, "turnOn");
end

Re: Scen med variabler funkar dåligt

Posted: 29 Jul 2018, 09:05
by RH_Dreambox
Scenen ser ju riktig ut. Kan det vara så att det är variabeln "LightOrDark" som spökar? Vad visar den då TimeOfDay växlar?
Jag antar att TimeOfDay har dessa parametrar "Day, Night, Dawn, Dusk" (Dag, Natt, Gryning, Skymning). Att "Day" och "Night" styrs av klockslag och att det är solens upp och nedgång som triggar "Dawn" och "Dusk" (om du nu använder engelska parametrar), samt att "LightOrDark" triggas av en ljussensor.

Re: Scen med variabler funkar dåligt

Posted: 31 Jul 2018, 22:47
by Bamsefar
Du behöver parantes runt de två första, annars blir testet x or (y and z) rent automagiskt.... Dvs (x or y) and z.

Re: Scen med variabler funkar dåligt

Posted: 02 Aug 2018, 22:08
by engehov
RH_Dreambox wrote: 29 Jul 2018, 09:05 Scenen ser ju riktig ut. Kan det vara så att det är variabeln "LightOrDark" som spökar? Vad visar den då TimeOfDay växlar?
Jag antar att TimeOfDay har dessa parametrar "Day, Night, Dawn, Dusk" (Dag, Natt, Gryning, Skymning). Att "Day" och "Night" styrs av klockslag och att det är solens upp och nedgång som triggar "Dawn" och "Dusk" (om du nu använder engelska parametrar), samt att "LightOrDark" triggas av en ljussensor.
"LightOrDark" triggas av solen upp respektive nedgång.
"TimeOfDay" triggas av olika klockslag,

alltså kväll 18.30 vilket då triggar tändning av lamporna trots att "LightOrDark" ej har ändrat till "Dark"

"LightOrDark" ändrar som de är tänkte vilket också "TimeOfDay" gör..

Re: Scen med variabler funkar dåligt

Posted: 02 Aug 2018, 22:13
by engehov
Bamsefar wrote: 31 Jul 2018, 22:47 Du behöver parantes runt de två första, annars blir testet x or (y and z) rent automagiskt.... Dvs (x or y) and z.

--[[
%% autostart
%% properties
%% weather
%% events
%% globals
TimeOfDay
LightOrDark
--]]

local startSource = fibaro:getSourceTrigger();
if (
(( fibaro:getGlobalValue("TimeOfDay") == "Evening" )) <------- så?
or
(( fibaro:getGlobalValue("TimeOfDay") == "Day" )) <--------- ?
and
( fibaro:getGlobalValue("LightOrDark") == "Dark" )

)
then
fibaro:call(57, "turnOn");
fibaro:call(200, "turnOn");
fibaro:call(31, "turnOn");
end

Re: Scen med variabler funkar dåligt

Posted: 03 Aug 2018, 08:41
by RH_Dreambox
Om jag inte har helt fel så är det så har Bamsefar menar.
En parentes som innesluter båda TimeOfDay.

if (
( ( fibaro:getGlobalValue("TimeOfDay") == "Evening" )
or
( fibaro:getGlobalValue("TimeOfDay") == "Day" ) )
and