LUA schedulerare för din HC2

jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

robmac från forum.fibaro.com har utvecklat ett sjuhelsike skript som klarar en hel del, och jag har varit med och hjälpt till med några saker och varit beta testare. Skriptet är väldigt komplett och fungerar riktigt bra. Jag har tagit bort en hel del scener och inkluderat det som varit i dom i detta skript istället.

Har ni några frågor, fråga på :D

Code: Select all

-- TimeOfDay
luaDaySchedule:add("05:29","TimeOfDay", "Morning" , "setGlobal", {"Weekday"},true )
luaDaySchedule:add("08:30","TimeOfDay", "Morning" , "setGlobal", {"Weekend"},true ) 
luaDaySchedule:add("12:00","TimeOfDay", "Midday" , "setGlobal", {"All"},true ) 
luaDaySchedule:add("18:00","TimeOfDay", "Evening" , "setGlobal", {"All"},true )
luaDaySchedule:add("23:29","TimeOfDay", "Night" , "setGlobal", {"All"},true )
luaDaySchedule:add("Sunset","NightTime", "1" , "setGlobal", {"All"},true , -30)
luaDaySchedule:add("Sunrise","NightTime", "0" , "setGlobal", {"All"},true  , 30 )

-- TurnON some lights
luaDaySchedule:add("05:30","81", "" , "startScene", {"Weekday"},true )

-- TurnON lights outside
luaDaySchedule:add("14:00","82", "" , "startScene", {"All"},true,36,15 )

-- Set RGB Color to white and 100%
--luaDaySchedule:add("09:20","106", { 255, 255, 255, 100 } , "setRGBColor", {"All"} )

-- TurnOff Altan RGBW controller
luaDaySchedule:add("04:00","106", "turnOff" , "call", {"All"},true )

-- Doorsensors Armed
luaDaySchedule:add("23:59","83", "" , "startScene", {"All"},true )
-- Doorsensors Disarmed 
luaDaySchedule:add("05:30","84", "" , "startScene", {"Weekday"},true )
luaDaySchedule:add("07:00","84", "" , "startScene", {"Weekend"},true )

-- TurnON cam recording.
luaDaySchedule:add("18:00","102", 1 , "pressButton", {"All"},true )
luaDaySchedule:add("18:01","102", 3 , "pressButton", {"All"},true )
-- TurnOff cam recording.
luaDaySchedule:add("06:00","102", 2 , "pressButton", {"All"},true )
luaDaySchedule:add("06:01","102", 4 , "pressButton", {"All"},true )

-- TurnON wallplug for TV and mediaplayers
luaDaySchedule:add("05:30","66", "turnOn" , "call", {"Weekday"},true )
luaDaySchedule:add("09:00","66", "turnOn" , "call", {"Weekend"},true )

-- TestZone
--luaDaySchedule:add("09:25","75", 20 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:26","75", 40 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:27","75", 80 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:28","75", 100 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:29","75", 50 , "setValue", {"Weekday"} ) 

--luaDaySchedule:add("09:30","75", "turnOff" , "call", {"All"},5,2 )
--luaDaySchedule:add("09:52","127", {1,10} , "setSlider", {"Thursday"} ,5,2 ,10)
--luaDaySchedule:add("09:43","128", 1 , "pressButton", {"Thursday"} ,5,2 )

Har lagt med dom saker som jag kör i detta skript som live exempel.
boz
Medlem
Posts: 41
Joined: 18 Dec 2013, 23:33
10

Hej,

Kan man styra lamporna värden utifrån i detta LUA skript?
Tänkte om det blev till ex rörelse eller att en TV är på så skjut på släcktiden?
Går det med detta skript

Mvh Boz
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

boz wrote:Hej,

Kan man styra lamporna värden utifrån i detta LUA skript?
Tänkte om det blev till ex rörelse eller att en TV är på så skjut på släcktiden?
Går det med detta skript

Mvh Boz
Hejsan Boz
det borde fungera men då måste du använda dig utav den senaste versionen 1.3.0 som innehåller ytterligare en scen för att starta om LUA scheduleraren.
För att få detta kompett så behöver du skapa en scen utanför LUA scheduleraren som triggas på rörelse/aktiverade pluggar etc och sätta ett värde i en variabel och sen starta om schedueraren som då läser in nya tiden och släcker lampa/plugg etc.

Får du inte ihop kan jag göra ett exempel åt dig.

//Jonny
jens
Medlem
Posts: 329
Joined: 22 Apr 2013, 17:09
10

jompa68 wrote:
boz wrote:Hej,

Kan man styra lamporna värden utifrån i detta LUA skript?
Tänkte om det blev till ex rörelse eller att en TV är på så skjut på släcktiden?
Går det med detta skript

Mvh Boz
Hejsan Boz
det borde fungera men då måste du använda dig utav den senaste versionen 1.3.0 som innehåller ytterligare en scen för att starta om LUA scheduleraren.
För att få detta kompett så behöver du skapa en scen utanför LUA scheduleraren som triggas på rörelse/aktiverade pluggar etc och sätta ett värde i en variabel och sen starta om schedueraren som då läser in nya tiden och släcker lampa/plugg etc.

Får du inte ihop kan jag göra ett exempel åt dig.

//Jonny

Har du möjlighet till det Jompa så gör gärna det, kör detta till mitt hus funkar super bra, men denna funktionen hade varit bra...

//Jens
boz
Medlem
Posts: 41
Joined: 18 Dec 2013, 23:33
10

Ok.

Vad är för fördel att ropa på restart scenen än att ha samma kod i en egen scen som gör samma sak?
När triggas omstart scenen?
MrL
Medlem
Posts: 43
Joined: 24 Dec 2013, 00:04
10

jompa68 wrote:robmac från forum.fibaro.com har utvecklat ett sjuhelsike skript som klarar en hel del, och jag har varit med och hjälpt till med några saker och varit beta testare. Skriptet är väldigt komplett och fungerar riktigt bra. Jag har tagit bort en hel del scener och inkluderat det som varit i dom i detta skript istället.

Har ni några frågor, fråga på :D

Code: Select all

-- TimeOfDay
luaDaySchedule:add("05:29","TimeOfDay", "Morning" , "setGlobal", {"Weekday"},true )
luaDaySchedule:add("08:30","TimeOfDay", "Morning" , "setGlobal", {"Weekend"},true ) 
luaDaySchedule:add("12:00","TimeOfDay", "Midday" , "setGlobal", {"All"},true ) 
luaDaySchedule:add("18:00","TimeOfDay", "Evening" , "setGlobal", {"All"},true )
luaDaySchedule:add("23:29","TimeOfDay", "Night" , "setGlobal", {"All"},true )
luaDaySchedule:add("Sunset","NightTime", "1" , "setGlobal", {"All"},true , -30)
luaDaySchedule:add("Sunrise","NightTime", "0" , "setGlobal", {"All"},true  , 30 )

-- TurnON some lights
luaDaySchedule:add("05:30","81", "" , "startScene", {"Weekday"},true )

-- TurnON lights outside
luaDaySchedule:add("14:00","82", "" , "startScene", {"All"},true,36,15 )

-- Set RGB Color to white and 100%
--luaDaySchedule:add("09:20","106", { 255, 255, 255, 100 } , "setRGBColor", {"All"} )

-- TurnOff Altan RGBW controller
luaDaySchedule:add("04:00","106", "turnOff" , "call", {"All"},true )

-- Doorsensors Armed
luaDaySchedule:add("23:59","83", "" , "startScene", {"All"},true )
-- Doorsensors Disarmed 
luaDaySchedule:add("05:30","84", "" , "startScene", {"Weekday"},true )
luaDaySchedule:add("07:00","84", "" , "startScene", {"Weekend"},true )

-- TurnON cam recording.
luaDaySchedule:add("18:00","102", 1 , "pressButton", {"All"},true )
luaDaySchedule:add("18:01","102", 3 , "pressButton", {"All"},true )
-- TurnOff cam recording.
luaDaySchedule:add("06:00","102", 2 , "pressButton", {"All"},true )
luaDaySchedule:add("06:01","102", 4 , "pressButton", {"All"},true )

-- TurnON wallplug for TV and mediaplayers
luaDaySchedule:add("05:30","66", "turnOn" , "call", {"Weekday"},true )
luaDaySchedule:add("09:00","66", "turnOn" , "call", {"Weekend"},true )

-- TestZone
--luaDaySchedule:add("09:25","75", 20 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:26","75", 40 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:27","75", 80 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:28","75", 100 , "setValue", {"Weekday"} ) 
--luaDaySchedule:add("09:29","75", 50 , "setValue", {"Weekday"} ) 

--luaDaySchedule:add("09:30","75", "turnOff" , "call", {"All"},5,2 )
--luaDaySchedule:add("09:52","127", {1,10} , "setSlider", {"Thursday"} ,5,2 ,10)
--luaDaySchedule:add("09:43","128", 1 , "pressButton", {"Thursday"} ,5,2 )

Har lagt med dom saker som jag kör i detta skript som live exempel.
Jag börjar få kläm på schemaläggaren och nu triggas enheter och scener. Verkar flyta på bra. En sak som jag dock inte har så bra koll på är globala variabler. Överst i din kod så har du TimeOfDay och här sätter du oilka variabler. Hur jobbar jag me dessa? Jag förstår syftet men är tanken att jag skall skapa dessa variabler i variabelpanelen. Ser att du har morgon, middag, kväll och natt som sätts efter dina tider. Skall jag då skapa fördefinierad variabel med namn TimeOfDay och sedan skapa dessa värdena Morgon, middag, kväll osv? Samma med NightTime 1/0.

Tycker man läser om globala värde när man kollar på fibaros forum. Är det då dessa variabler man menar?
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Hejsan MrL

TimeOfDay variabeln använder jag i andra scener, bla Morgon används för att tända vissa lampor, Natt sätter jag när vi går och lägger oss och använder den i min smartphone scene för att inte trigga så lamporna tänds när vi sover. Telefonerna loggar ju på lokala nätverket med jämna mellanrum ändå fastän det är natt :)

NightTime variabeln använder jag inte mer så den kan du förbise.
Skärmavbild 2014-01-02 kl. 09.24.09.png
Skärmavbild 2014-01-02 kl. 09.24.09.png (37.78 KiB) Viewed 22396 times
MrL
Medlem
Posts: 43
Joined: 24 Dec 2013, 00:04
10

Då är jag med. Gillar enkelheten i att schemalägga variablerna och så triggar man scenerna och kollar om det är dag eller natt. Då kan man tända vissa lampor och starta stereon om man kommer hem och det är dagtid. På kvällen tänder man fler. Kommer man hem på natten så skall man inte starta stereon och tända hela huset ;) Bygger man detta i en scen med if/else eller skapar man olika? Alltså om jag kommer hem dagtid görs en sak, kommer jag hem natt görs en annan. Sen bör man väl ändra variable för hemma/borta.

Nu är det väl bara att klura ut vad man skall schemalägga och när.
maxxar
Medlem
Posts: 126
Joined: 06 Sep 2012, 13:30
11

Hur idag nedanstående skript på en del lampor men vill kombinera så det endast körs om solen inte är uppe. Jag har en befintlig varibel som sätter sol uppe/nere
Men går det att få in så dessa två kombineras?
Jag vill ju inte att lampan ska tändas om solen är uppe vid 06:00

--turnOn device id 7 (Kök fönster) every weekday at 06:00 with catchup
luaDaySchedule:add("06:00","7", "turnOn" , "call", {"Weekday"} , true )
boz
Medlem
Posts: 41
Joined: 18 Dec 2013, 23:33
10

Hej,

Byt ut 06:00 till Sunrise eller Sunset..
Och som sista parameter kan du lägga på 10 för 10 minuter innan eller -10 för efter...


Sent from my iPad using Tapatalk HD
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

maxxar wrote:Hur idag nedanstående skript på en del lampor men vill kombinera så det endast körs om solen inte är uppe. Jag har en befintlig varibel som sätter sol uppe/nere
Men går det att få in så dessa två kombineras?
Jag vill ju inte att lampan ska tändas om solen är uppe vid 06:00

--turnOn device id 7 (Kök fönster) every weekday at 06:00 with catchup
luaDaySchedule:add("06:00","7", "turnOn" , "call", {"Weekday"} , true )
Du får skapa en egen scen för detta(som tänder om solen är nere) och sen starta den scenen klockan 06:00 från LUA scheduler. På så vis så kommer inte lampan tändas om solen har gått upp innan klockan 06:00
Mek
Medlem
Posts: 38
Joined: 26 Dec 2013, 17:30
10

Har börjat kika lite på denna, men skulle gärna vilja ha en liten instruktion om hur man lägger in den i HC2.
Kollade på Fibaros forum, men blev inte riktigt klok.

Detta skulle uppskattas! :D

//Mattias
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Jag kan göra en instruktion under helgen. Har ju varit med på ett hörn och bidragit till utvecklingen ;)
Mek
Medlem
Posts: 38
Joined: 26 Dec 2013, 17:30
10

Det skulle vara riktigt grymt! :D

//Mattias
johed
Ny medlem
Posts: 2
Joined: 03 Apr 2014, 19:27
9

Har kör detta ett tag nu och det fungerar utmärkt men jag skulle vilja ha en extra koll om ex tv mm är igång tex wallplug:9 förbrukar mer watt än xx släck inte lamporna kolla igen om ex 15 min
är det någon som kan hjälpa mig lite med detta?
maxxar
Medlem
Posts: 126
Joined: 06 Sep 2012, 13:30
11

jompa68 wrote:
maxxar wrote:Hur idag nedanstående skript på en del lampor men vill kombinera så det endast körs om solen inte är uppe. Jag har en befintlig varibel som sätter sol uppe/nere
Men går det att få in så dessa två kombineras?
Jag vill ju inte att lampan ska tändas om solen är uppe vid 06:00

--turnOn device id 7 (Kök fönster) every weekday at 06:00 with catchup
luaDaySchedule:add("06:00","7", "turnOn" , "call", {"Weekday"} , true )
Du får skapa en egen scen för detta(som tänder om solen är nere) och sen starta den scenen klockan 06:00 från LUA scheduler. På så vis så kommer inte lampan tändas om solen har gått upp innan klockan 06:00
Har märkt att detta inte funkar för mig, denna scen startas via LUA scheduler.
Men verkar köras oavsett om variabeln Sol står som "Nere" eller "Uppe"

Varför gör den det?

Code: Select all

--[[
%% properties
%% globals
Sol
--]]

local startSource = fibaro:getSourceTrigger();
if (
 ( fibaro:getGlobalValue("Sol") == "Nere" )
or
startSource["type"] == "other"
)
then
	fibaro:call(7, "turnOn");
end

larron
Ny medlem
Posts: 24
Joined: 15 Oct 2013, 21:41
10
Location: Halmstad
Contact:

Hej Jompa.
Är det möjligt att få del av den instruktionen som du gjorde för att få in lua scheduleraren i HC2?

Inga svårigheter att lägga upp TOD i variabelpanelen med morgon, dag, skymning och kväll. Men...är jag rätt på det om LUA Scheduleraren sedan ger dessa variabler"värden" dvs närmare anger när det råder kväll?
Tacksam för hjälp!
Fibaro Home Center 2 with door/window sensors and motion sensors, also some D-Link 932L cams. LUA-Newbie...
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Javisst, kommer en instruktion strax
jompa68
Proffsmedlem
Posts: 735
Joined: 12 Aug 2012, 08:53
11
Location: Hofors

Så här kan man göra:

Code: Select all

luaDaySchedule:add("Sunrise","TimeOfDay", "Morgon", "setGlobal", {"All"}  ,false,30) 
luaDaySchedule:add("12:00","TimeOfDay", "Dag", "setGlobal", {"All"}  ,false) 
luaDaySchedule:add("Sunset","TimeOfDay", "Skymning", "setGlobal", {"All"}  ,false,-30) 
luaDaySchedule:add("00:00","TimeOfDay", "Natt", "setGlobal", {"All"}  ,false)
Ska försöka förklara lite :)

"Sunrise" ja det är ju soluppgång
"TimeOfDay" är namnet på variabel
"Morgon" är värdet som jag vill att den ska ändra till
"false" är att jag inte vill att den ska utföra raden om jag till exemel startar om scenen (bara göra vid Sunrise)
30 är att den ska göra detta 30 minuter före soluppgång.
larron
Ny medlem
Posts: 24
Joined: 15 Oct 2013, 21:41
10
Location: Halmstad
Contact:

Hej Jompa och tack för ditt svar. Har försökt att lägga in raderna men får felmeddelande enligt nedan. Visst ska jag väl bara lägga in raderna som en ny scen?

[ERROR] 19:40:25: line 6: attempt to index global 'luaDaySchedule' (a nil value)
Fibaro Home Center 2 with door/window sensors and motion sensors, also some D-Link 932L cams. LUA-Newbie...
Post Reply