Scen sätta "dimmernivå" Fibaro Dimmer 2

Diskussioner runt hur den tänkta funktionaliteten nås
Fredrik B
Wannabe
Inlägg: 16
Blev medlem: 26 okt 2016, 06:45
Ort: Hässelby

Scen sätta "dimmernivå" Fibaro Dimmer 2

Inlägg av Fredrik B »

Hej,

Jag vill skapa en scen som gör att om en dimmer triggas av en rörelsesensor, det är mörkare än x lux och klockan är efter 23 men före 07 så ska lampan tändas nerdimrad. Se bifogat skärmklipp. Men vad är det egentligen jag anger under "Sätt värde" längst ner till höger? Logiskt för mig som inte kan detta hade varit t ex 50 för 50 % eller möjligtvis t ex 25 för 25 watt. Har testat 1 och 2 om det nu är något sorts av eller på som är kopplat till en siffra och har även testat en massa andra siffror inklusive t ex 0,5. När jag skrev ett högt värde hoppade den automatiskt till 255 så det är uppenbarligen det högsta man kan ange.

Någon som har en idé? Är jag kanske helt fel på det? Går kanske inte att göra så som jag vill?

Tack på förhand!
Dimmer sättvärde.JPG
pos42
Gillar hemautomation
Inlägg: 28
Blev medlem: 04 mar 2017, 23:14
Ort: Täby

Re: Scen sätta "dimmernivå" Fibaro Dimmer 2

Inlägg av pos42 »

En dimmer sätts 0-100, men begränsas av de boundarys du satt i konfen på dimmern (t ex minst 3% på lägsta för att inte flimmra och kanske max 97%). *TROR* dock Fibaro sätter 97% om det är det som är max konfat även fast du sätter 100%.

Posta LUA coden till scenen

Posta en scen svenska ser skumt ut... :D

Du kan ju själv prova LUA kod i ett VD eller en scen

dimmerID = <NUM>
dimmerLEVEL = <LEVEL>
fibaro:call(dimmerID, 'setValue', dimmerLEVEL)


/Peo
Fredrik B
Wannabe
Inlägg: 16
Blev medlem: 26 okt 2016, 06:45
Ort: Hässelby

Re: Scen sätta "dimmernivå" Fibaro Dimmer 2

Inlägg av Fredrik B »

Hej,

Tack för svar! Jag är tyvärr alldeles för kass på detta för att förstå särskilt mycket av LUA. Så här ser den koden ut i alla fall om jag skriver in 50 som värde. Men det händer ändå inte ett smack, lampan förblir släckt.

--[[
%% autostart
%% properties
20 value
22 value
%% weather
%% events
%% globals
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(20, "value")) > 0 )
and
( tonumber(fibaro:getValue(22, "value")) < 150 and (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "23", "00")) or tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "07", "00"))) and (math.floor(os.time()/60)-math.floor(1513288800/60))%0 == 0 )
)
then
fibaro:call(37, "setValue", "50");
end

setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(20, "value")) > 0 )
and
( tonumber(fibaro:getValue(22, "value")) < 150 and (tonumber(os.date("%H%M")) >= tonumber(string.format("%02d%02d", "23", "00")) or tonumber(os.date("%H%M")) <= tonumber(string.format("%02d%02d", "07", "00"))) )
or
startSource["type"] == "other"
)
then
fibaro:call(37, "setValue", "5");
end

end
ovenystas
Wannabe
Inlägg: 9
Blev medlem: 20 nov 2015, 00:49
Ort: Lerum

Re: Scen sätta "dimmernivå" Fibaro Dimmer 2

Inlägg av ovenystas »

Bra att du postade LUA koden. Tyvärr genererar HC2 ingen lättförståelig kod precis. Jag kan dock se att den här har genererat kod som dividerar med 0 vilket definitivt inte är bra för det leder till att scenen kraschar. Orsaken är att du lämnat intervall-fältet "Varje ' ' Timmar" i timer blocket tomt. Divisionen med 0 är dock i en del av koden som du ändå inte vill köra. Det är i en del av koden som kommer triggas av en timer varje minut.

Vad jag kan förstå så vill du att scenen enbart triggas av rörelse och då kollar om ljusstyrkan är mindre än 150 lux OCH klockan är mellan 23:00 och 07:00. För att få till det och för att undvika division med 0 problemet samt undvika ett annat problem som du kan få med att flera instanser av scenen körs samtidigt, borde du kunna göra så här.

* Ovanför block-koden hittar du Titeln "Utlösande enhet" och under den två rutor med checkboxar, en för "MS1 rörelse" och en för "MS1 ljus". Endast "MS1 rörelse" ska vara checkad. (Det hindrar att scenen triggas av förändring i ljusstyrka.)
* Gå till scenens "Allmänt"-flik och se till så att "Starta när Home Center 2 startar" inte är checkad. (Det hindrar att en timer sätts upp och kör scenen varje minut och hindrar att koden med division med 0 körs.)

Jag hoppas att det hjälper, men jag är inte säker.

Orsaken till att du inte fick det att fungera när du ändrade dimmer värdet i LUA-koden från 5 till 50 kan ha varit division med 0 problemet, men det kan också vara att du ändrade värdet till 50 på ett ställe men det behöver faktiskt ändras på två ställen. Några rader från slutet hittar du raden "fibaro:call(37, "setValue", "5");", där behöver det också ändras.
Skriv svar