Hjälp med scen som styrs ifrån S2 på dimmer

Post Reply
Earplugged
Medlem
Posts: 135
Joined: 03 Feb 2016, 17:16

07 Oct 2018, 15:41

Har tre olika Fibaro dimmerpuckar i vardagsrummet som styrs separat via tre knappar på olika ställen i rummet, skulle nu vilja ha en knapp som styr alla när man önskar detta och smartast är väl att använda S2 på en av puckarna?

Någon som har tips på kod för att styra dessa ifrån S2 på ena pucken och helst klara sig med en scen...?

klick x1 = släck alla tre lamporna (bara om någon av lamporna redan är tända)
klick x1 = tänd alla tre lamporna (senast inställda värde på resp dimmer)

Klick x2 = alla tre lampor tänds på max

Håll inne knapp = alla tre lampor släcks (jag startar en sova scen som släcker/tänder diverse lampor)
sycorax
Ny medlem
Posts: 11
Joined: 04 Jan 2017, 22:05

13 Oct 2018, 12:00

Hej jag har gjort scene för att styra mysbelysning med hjälp av S2 på min ena brytare (se nedan). Byt ut "44 sceneActivation" till din dimmer som skall styra S2 funktionen.
På alla ställen där du ser "jT...." är egentligen bara ett ID, byt till de id:n du vill ha.
Ta bort första raden "local jT = json.decode(fibaro:getGlobalValue("jTable"))", detta är en egen lösning för hantering av ID:n.
Ta bort sista raden "fibaro:setGlobal("StadBelysningOn", "0");"
Raden "if (( tonumber(fibaro:getValue(jT.vardagsrum.spot, "sceneActivation")) == 24 ) or startSource["type"] == "other" ) then" är dubbel-klick på S2.

24 = Dubbel-klick
25 = Trippel-klick
26 = Enkel-klick

--[[
%% autostart
%% properties
44 sceneActivation
%% weather
%% events
%% globals
--]]

local jT = json.decode(fibaro:getGlobalValue("jTable")) -- get jTable with ID:n
local startSource = fibaro:getSourceTrigger();
if (( tonumber(fibaro:getValue(jT.vardagsrum.spot, "sceneActivation")) == 24 ) or startSource["type"] == "other" ) then

fibaro:call(jT.hall.spot, 'turnOff');
fibaro:call(jT.hall.wallplugnetwork, "turnOn");

fibaro:call(jT.kok.spot, "turnOff");
fibaro:call(jT.kok.bench_light, "turnOff");
fibaro:call(jT.kok.wall_light, "turnOff");

fibaro:call(jT.matsal.ceiling, "setValue", "50");

fibaro:call(jT.vardagsrum.spot, "turnOff");
fibaro:call(jT.vardagsrum.ceiling, "setValue", "30");
fibaro:call(jT.vardagsrum.wallplugl, "turnOn");
fibaro:call(jT.vardagsrum.wallplugr, "turnOn");

fibaro:setGlobal("StadBelysningOn", "0");
end

Jag kör tre olika scenActivations i mitt hem, en för NattiNatti (släcker allt med enkel-klick "26"), MysMode "24" och StädMode (Tänder hela hemmet till max "25").
För att anpassa scenen till din fråga får du använda dig av if/else-satser för att kontrollera om lampor är tända resp. släckta.

Lycka till
/Sycorax
Earplugged
Medlem
Posts: 135
Joined: 03 Feb 2016, 17:16

14 Oct 2018, 21:11

sycorax wrote:
13 Oct 2018, 12:00

Jag kör tre olika scenActivations i mitt hem, en för NattiNatti (släcker allt med enkel-klick "26"), MysMode "24" och StädMode (Tänder hela hemmet till max "25").
För att anpassa scenen till din fråga får du använda dig av if/else-satser för att kontrollera om lampor är tända resp. släckta.

Lycka till
/Sycorax
Tack för hjälpen, har nu fått ihop så att lamporna tänds/släcks varannan gång jag kör enkelklick så jag har kommit en bit närmare målet.

Vill även få in de andra "klickvarianterna" i samma scen, hur lägger jag in så att scenen även startar vid dubbelklick och att något annat då händer?
jompa68
Proffsmedlem
Posts: 721
Joined: 12 Aug 2012, 08:53
Location: Hofors

15 Oct 2018, 06:04

Så här kan man göra.

Code: Select all

--[[
%% autostart
%% properties
44 sceneActivation
%% weather
%% events
%% globals
--]]

local jT = json.decode(fibaro:getGlobalValue("jTable")) -- get jTable with ID:n
local startSource = fibaro:getSourceTrigger();
if (( tonumber(fibaro:getValue(jT.vardagsrum.spot, "sceneActivation")) == 24 ) then
fibaro:call(jT.hall.spot, 'turnOff');
fibaro:call(jT.hall.wallplugnetwork, "turnOn");
fibaro:call(jT.kok.spot, "turnOff");
fibaro:call(jT.kok.bench_light, "turnOff");
fibaro:call(jT.kok.wall_light, "turnOff");
fibaro:call(jT.matsal.ceiling, "setValue", "50");
fibaro:call(jT.vardagsrum.spot, "turnOff");
fibaro:call(jT.vardagsrum.ceiling, "setValue", "30");
fibaro:call(jT.vardagsrum.wallplugl, "turnOn");
fibaro:call(jT.vardagsrum.wallplugr, "turnOn");
fibaro:setGlobal("StadBelysningOn", "0");

elseif (( tonumber(fibaro:getValue(jT.vardagsrum.spot, "sceneActivation")) == 25 ) then
do your stuff here

elseif (( tonumber(fibaro:getValue(jT.vardagsrum.spot, "sceneActivation")) == 26 ) then
do your stuff here
end

--------------------------------------------------
http://jonnylarsson.se
Post Reply