Sunteți pe pagina 1din 35

Translated to: Romanian Show original Options ▼

(https://manuals. baro.com)
Please choose page

Home Center 3 - Scene Lua

Scene FIBARO Lua


Informatii generale
În Home Center 3 puteţi crea două tipuri de scene:

Scena de blocare - creată folosind interfaţa vizuală şi glisare


Scena Lua - creată folosind limbajul scriptului Lua în editorul de cod furnizat.

În acest document, vom aborda crearea scenei Lua.

Editor
Editorul este împărţit în 3 părţi:

CONDIŢIE - în această secţiune punem în aplicare declanşatoarele şi condiţiile, în care scena va pornită.
ACŢIUNE - în această secţiune implementăm acţiuni care ar trebui să e efectuate atunci când sunt
îndeplinite declanşările şi condiţiile.
Debugger - a şează mesajele de depanare trimise de codul dvs. Puteţi ltra mesajele după etichetele
alocate.

Pentru a crea o scenă Lua trebuie să adăugaţi cel puţin o acţiune. O astfel de scenă poate pornită numai
manual sau folosind o altă scenă. Nu va posibilă declanşarea automată (folosind declanşatoare).

Condiţii
Acţiunile pot declanşate automat (după ce apare condiţia de întâlnire a declanşatorului şi sunt îndeplinite
alte condiţii de scenă) sau manual. După ce un eveniment are loc în sistem (de exemplu, dispozitivul este
pornit), scena veri că declanşările. În continuare, sunt veri cate toate condiţiile cu operatorii logici care li se
alătură.
O singură condiţie poate arăta astfel:

1 {
2     type = "device",
3     id = 25,
4     property = "value",
5     operator = "==",
6     value = true,
7     duration = 20,
8     isTrigger = true
9 }

Descrierea câmpurilor individuale:

type - tipul de eveniment din sistem, scena aşteaptă. /


id - câmp opţional, în funcţie de tipul condiţiei, poate interpretat diferit.

proprietate - proprietatea pe care scena aşteaptă să e schimbată.


operator - modul de comparare a valorii curente a proprietăţii şi a valorii furnizate.
valoare - valoarea proprietăţii pe care scena o aşteaptă.
durata - timpul în secunde de cât timp trebuie setată valoarea pentru a se potrivi cu condiţia sau a
declanşa scena. 0 implicit.
isTrigger - indică dacă o anumită condiţie este, de asemenea, un declanşator. Valorile admise sunt
adevărate şi false.

Declanşările şi condiţiile sunt stocate într-un singur tablou. Exemplu:

1 {
2     operator = "any",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         },
12         {
13             type = "device",
14             id = 26,
15             property = "value",
16             operator = "==",
17             value = true,
18             isTrigger = false
19         }
20     }
21 }

Prima condiţie pentru dispozitivul cu ID 25 este un declanşator. A doua condiţie pentru dispozitivul cu ID 26
este doar o condiţie.

Pentru a vă alătura declanşatoarelor / condiţiei trebuie să utilizaţi câmpul „operator” Câmpul „operator” este
necesar chiar şi pentru scene cu un singur declanşator / condiţie:

1 {
2     operator = "any",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         }
12     }
13 }

Câmpul operator acceptă una dintre cele două valori:

oricare - cel puţin unul dintre declanşatoarele / condiţiile trebuie să e îndeplinite.


toate - toate declanşatoarele / condiţiile trebuie îndeplinite.

Condiţiile pot unite şi amestecate:

/
1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         },
12         {
13             operator = "any",
14             conditions = {
15                 {
16                     type = "device",
17                     id = 26,
18                     property = "value",
19                     operator = "==",
20                     value = true,
21                     isTrigger = true
22                 },
23                 {
24                     type = "device",
25                     id = 27,
26                     property = "value",
27                     operator = "==",
28                     value = true,
29                     isTrigger = true
30                 }
31             }
32         }
33     }
34 }

Exemplul de mai sus va începe scena dacă proprietatea „valoare” se modi că la true pentru dispozitivul cu id
25 şi pentru cel puţin unul dintre dispozitivele cu id 26 sau 27.

Stare declanşatoare vs.


Distincţia dintre declanşatoare şi condiţii se face prin setarea câmpului „isTrigger” în mod corespunzător, dacă
câmpul nu este setat, este implicit fals în mod implicit.

1. Trigger (isTrigger setat la true) - un eveniment din sistem, speci cat exact în scenă, care veri că condiţiile
rămase ale scenei.
2. Stare (isTrigger setat la false sau nu setat) - factorul de care depinde execuţia etapei.

1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         },
12         {
13             type = "device",
14             id = 26,
15             property = "value",
16             operator = "==",
17             value = true,
18             isTrigger = false
19         }
20     }
21 } /
21 }

Prima condiţie pentru dispozitivul cu ID 25 este un declanşator, în timp ce a doua condiţie pentru dispozitivul
cu ID 26 este doar o condiţie. Aceasta înseamnă că, dacă are loc un eveniment care schimbă proprietatea
„valorică” a dispozitivului 25 în adevărat, acelaşi eveniment va declanşa o veri care a tuturor declanşatorilor
utilizate în scene. Numai când declanşatorul este îndeplinit (ca în scena de mai sus), sunt veri cate alte
condiţii (isTrigger = false). Veri carea condiţiei înseamnă a veri ca dacă pentru dispozitivul 26 proprietatea
„valoare” este setată la adevărat. Dacă da, atunci toate condiţiile scenei de mai sus (declanşator + condiţie) au
fost îndeplinite şi acţiunea poate executată.

Poate , de asemenea, o situaţie în care proprietatea „valoare” este schimbată în adevărat pentru dispozitivul
26. Această situaţie va genera, de asemenea, în cazul modi cării valorii valorii pentru un dispozitiv dat. Cu
toate acestea, deoarece condiţia pentru dispozitivul 26 nu este declanşatoare, condiţiile scenelor nu vor
veri cate (chiar dacă proprietatea „valoare” din dispozitivul 25 a fost anterior setată la adevărat).

Tipuri de declanşatoare şi condiţii


Capitolul următor va discuta despre ecare tip de declanşator şi condiţiile disponibile în sistem.

Dispozitive
Pentru dispozitive, interpretarea câmpurilor condiţii este următoarea:

tip - ia valoare "device" .


id - preia ID-ul dispozitivului pentru care trebuie veri cat dacă proprietatea dată are valoarea dată.
proprietate - numele proprietăţii de veri cat.
valoare - valoarea proprietăţii pentru a compara valoarea curentă cu.
operator - în funcţie de tip:
tip de text:
"==" - textele sunt la fel
"!=" - textele sunt diferite
"anyValue" - potriviţi cu orice valoare
tip numeric:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
">" - este valoarea curentă mai mare decât cea din condiţie
">=" - este valoarea curentă mai mare sau egală cu cea din condiţie
"<" - este valoarea curentă mai mică decât cea din condiţie
"<=" - este valoarea curentă mai mică sau egală cu cea din condiţie
"anyValue" - potriviţi cu orice valoare
tip logic:
"==" - sunt aceleaşi valori
"!=" - sunt diferite valorile care
righează scena dacă valoarea unui dispozitiv cu ID 30
isTrigger - este condiţia şi un declanşator:
true - este un declanşator
false - este doar o condiţie (implicit)

Exemple:
Declanşează scena dacă valoarea dispozitivului cu ID 30 este mai mare de 25.

1 {
2     type = "device",
3     id = 30,
4     property = "value",
5     operator = ">",
6     value = 25,
7     isTrigger = true
8 }
/
Declanşează scena dacă valoarea dispozitivului cu ID 30 este adevărată timp de 20 de secunde.

1 {
2     type = "device",
3     id = 30,
4     property = "state",
5     operator = "==",
6     value = true,
7     duration = 20,
8     isTrigger = true
9 }

rigger scena dacă valoarea dispozitivului cu ID 30 a fost modi cată la orice valoare.

1 {
2     type = "device",
3     id = 30,
4     property = "value",
5     operator = "anyValue",
6     isTrigger = true
7 }

Data si ora
Pentru oră şi dată, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "date" .


proprietate - ia valoare "cron" .
valoare - este o serie de valori text ale căror elemente ulterioare iau următoarele:
minute - ia valoarea de la 0 la 59,
ore - ia valoarea de la 0 la 23,
ziua lunii - ia valoarea de la 1 la 31,
lună - ia valoarea de la 1 la 12,
ziua săptămânii - ia valoarea de la 1 la 7,
an
operator - pentru diferite tipuri:
"match" - dacă data se potriveşte cu data în condiţie, în acest operator putem folosi "*" care
înseamnă orice potrivire.
"match==" - datele sunt aceleaşi.
"match!=" - datele sunt diferite.
"match>" - este data ulterioară datei din condiţie.
"match>=" - este aceeaşi dată sau data ulterioară datei în condiţie.
"match<" - este data anterioară datei din condiţie.
"match<=" - este data aceeaşi sau anterioară datei din condiţie.
isTrigger - este condiţia şi un declanşator:
true - este un declanşator
false - este doar o condiţie (implicită)
Cu condiţiile de timp, ar trebui să folosiţi isTrigger cu atenţie, în special pentru intervale de timp.
În ecare minut, sistemul emite un eveniment care are ca rezultat veri carea declanşărilor scenelor.
Utilizarea necorespunzătoare a cronometrului poate declanşa scena în ecare minut.

Exemple: în
ecare zi la 15:30.

1 {
2     type = "date",
3     property = "cron",
4     operator = "match",
5     value = {"30", "15", "*", "*", "*", "*"},
6     isTrigger = true
7 }

13.06.2018 ora 12:30. /


1 {
2     type = "date",
3     property = "cron",
4     operator = "match",
5     value = {"30", "12", "13", "6", "1", "2018"},
6     isTrigger = true
7 }

În ecare luni şi miercuri, la 15:30.

1 {
2     type = "date",
3     property = "cron",
4     operator = "match",
5     value = {"30", "15", "*", "*", "1,3", "*"},
6     isTrigger = true
7 }

În ecare luni, miercuri şi vineri.

1 {
2     type = "date",
3     property = "cron",
4     operator = "match",
5     value = {"*", "*", "*", "*", "1,3,5", "*"}
6 }

25 de zile din ecare lună.

1 {
2     type = "date",
3     property = "cron",
4     operator = "match",
5     value = {"*", "*", "25", "*", "*","*"}
6 }

În ecare zi între 9:00 şi 10:00. No isTrigger înseamnă că este fals.

1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "date",
6             property = "cron",
7             operator = "match>=",
8             value = {"0", "9", "*", "*", "*","*"}
9         },
10         {
11             type = "date",
12             property = "cron",
13             operator = "match<",
14             value = {"0", "10", "*", "*", "*","*"}
15         }
16     }
17 }

Interval
Pentru intervale, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "date" .


proprietate - ia valoare "cron" .
valoare - constă din 2 câmpuri:
data - este data de început a intervalului şi este un tablou de valori text ale căror elemente ulterioare
iau următoarele:
minute - ia valoarea de la 0 la 59,
/
ore ia valoarea de la 0 la 23
ore - ia valoarea de la 0 la 23,
ziua lunii - ia valoarea de la 1 la 31,

lună - ia valoarea de la 1 la 12,


ziua săptămânii - ia valoarea de la 1 la 7,
an
interval - timp în secunde între ecare execuţie.
operator - ia valoare "matchInterval" .
isTrigger - este condiţia şi un declanşator:
true - este un declanşator (recomandat)
false - este doar o condiţie (implicit)

Exemple:
condiţie valabilă la ecare 5 minute, începând cu ora 12.04.2019

1 {
2     type = "date",
3     property = "cron",
4     operator = "matchInterval",
5     value = {
6         date = { "0", "12", "5", "4", "*", "2019" },
7         interval = 300
8     },
9     isTrigger = true
10 }

Rasaritul si apusul soarelui


Pentru răsărit şi apus de soare, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "date" .


proprietate - are una dintre cele două valori:
"sunrise" - răsărit,
"sunset" - apusul soarelui.
valoare - timp în câteva minute înainte / după răsărit / apus de soare:
Valorile mai mici de 0 indică câte minute înainte de răsărit / apus de soare ar trebui să înceapă scena.
Valoarea 0 înseamnă că scena trebuie să aibă loc la răsărit / apus.
Valorile mai mari de 0 indică câte minute după răsărit / apus de soare ar trebui să înceapă scena.
operator - ia valoare "==" .
isTrigger - este condiţia şi un declanşator:
true - este un declanşator (recomandat)
false - este doar o condiţie (implicit)

Exemple:
zilnic cu 60 de minute înainte de apusul soarelui.

1 {
2     type = "date",
3     property = "sunset",
4     operator = "==",
5     value = -60,
6     isTrigger = true
7 }

În ecare zi la 120 minute după apusul soarelui.

1 {
2     type = "date",
3     property = "sunrise",
4     operator = "==",
5     value = 120,
6     isTrigger = true
7 }

În ecare zi la răsărit. /
1 {
2     type = "date",
3     property = "sunrise",
4     operator = "==",
5     value = 0,
6     isTrigger = true
7 }

Vreme
Pentru vreme, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "weather" .


proprietate - ia una dintre aceste valori:
"Temperature" - temperatura,
"Wind" - viteza vântului,
"WeatherCondition" - starea vremii,
"Humidity" - umiditatea aerului.
valoare - valorile depind de proprietatea folosită, valorile disponibile:
Temperatură - valoare numerică, unitatea de temperatură depinde de setările sistemului. Dacă
unitatea este schimbată după crearea scenei, scena trebuie corectată de către utilizator, deoarece
după schimbarea unităţii din sistem, valoarea nu va recalculată automat.
Vânt - valoare numerică, unitatea de vânt depinde de setările sistemului. Dacă unitatea este
schimbată după crearea scenei, scena trebuie corectată de către utilizator, deoarece după schimbarea
unităţii din sistem, valoarea nu va recalculată automat.
WeatherCondition - valoarea textului condiţiei meteo selectate:
"cloudy"
"rain"
"snow"
"storm"
"clear"
"fog"
"unavailable"
Umiditate - valoare numerică.
operator - în funcţie de tip:
tip de text:
"==" - textele sunt la fel
"!=" - textele sunt diferite
"anyValue" - potriviţi cu orice valoare
tip numeric:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
">" - este valoarea curentă mai mare decât cea din condiţie
">=" - este valoarea curentă mai mare sau egală cu cea din condiţie
"<" - este valoarea curentă mai mică decât cea din condiţie
"<=" - este valoarea curentă mai mică sau egală cu cea din condiţie
"anyValue" - potriviţi cu orice valoare
isTrigger - este condiţia şi un declanşator:
true - este un declanşator
false - este doar o condiţie (implicit)

Exemple:
Adevărat, când temperatura scade sub 20 ° C sau 20 ° F (în funcţie de setări).

/
1 {
2     type = "weather",
3     property = "Temperature",
4     operator = "<",
5     value = 20,
6     isTrigger = true
7 }

Adevărat, când viteza vântului este mai mare de 15 [km / h] sau 15 [mph] (în funcţie de setări).

1 {
2     type = "weather",
3     property = "Wind",
4     operator = ">",
5     value = 15,
6     isTrigger = true
7 }

Adevărat, când vremea devine tulbure.

1 {
2     type = "weather",
3     property = "WeatherCondition",
4     operator = "==",
5     value = "cloudy",
6     isTrigger = true
7 }

Este adevărat, când umiditatea creşte peste 80%.

1 {
2     type = "weather",
3     property = "Humidity",
4     operator = ">",
5     value = 80,
6     isTrigger = true
7 }

Locaţie
Pentru locaţie, interpretarea câmpurilor condiţii este următoarea:

tip - ia valoare "location" .


proprietate - ID-ul locaţiei în care utilizatorul intră / pleacă (numeric).
id - ID-ul utilizatorului (numeric).
valoare - ia una dintre cele două valori:
"leave" - utilizatorul paraseste locatia
"enter" - utilizatorul intră în locaţie
operator - în funcţie de tip:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
"anyValue" - potriviţi cu orice valoare
isTrigger - este condiţia şi un declanşator:
true - este un declanşator
false - este doar o condiţie (implicit)

Exemple:
Adevărat, când utilizatorul 36 intră în locaţia 2.

/
1 {
2     type = "location",
3     id = 36,
4     property = 2,
5     operator = "==",
6     value = "enter",
7     isTrigger = true
8 }

Evenimente personalizate
Pentru evenimente personalizate, interpretarea câmpurilor condiţii este următoarea:

tip - ia valoare "custom-event" .


proprietate - numele evenimentului personalizat (text).
isTrigger - ia valoare true .

Exemple:
adevărat, când "event_name" apare un eveniment personalizat cu nume .

1 {
2     type = "custom-event",
3     property = "event_name",
4     operator = "==",
5     isTrigger = true
6 }

alarme
Pentru alarme, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "alarm" .


proprietate - ia una dintre aceste valori:
"armed" - veri caţi dacă zona cu id-ul dat este armată
"breached" - veri caţi dacă este încălcat zona cu id-ul dat
"homeArmed" - veri caţi dacă alarma pentru întreaga casă este armată
"homeBreached" - veri caţi dacă a fost încălcată alarma în casă
ID - zona ID, necesară numai pentru proprietăţi "armed" şi "breached" .
valoare - ia una dintre aceste valori:
true - dacă alarma este armată / încălcată pentru zonă / casă
false - dacă alarma NU este armată / încălcată pentru zonă / casă
operator - în funcţie de tip:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
"anyValue" - potriviţi cu orice valoare
isTrigger - este condiţia şi un declanşator:
true - este un declanşator
false - este doar o condiţie (implicit)

Exemple:
Adevărat, când zona 1 a fost înarmată.

1 {
2     type = "alarm",
3     property = "armed",
4     id = 1,
5     operator = "==",
6     value = true,
7     isTrigger = true
8 }

Adevărat, când zona 1 a fost dezarmată. /


Adevărat, când zona 1 a fost dezarmată.

1 {
2     type = "alarm",
3     property = "armed",
4     id = 1,
5     operator = "==",
6     value = false,
7     isTrigger = true
8 }

Adevărat, când alarma din zona 1 a fost încălcată.

1 {
2     type = "alarm",
3     property = "breached",
4     id = 1,
5     operator = "==",
6     value = true,
7     isTrigger = true
8 }

Adevărat, când alarma din zona 1 a fost dezactivată.

1 {
2     type = "alarm",
3     property = "breached",
4     id = 1,
5     operator = "==",
6     value = false,
7     isTrigger = false
8 }

E adevărat, când toată casa era înarmată.

1 {
2     type = "alarm",
3     property = "homeArmed",
4     operator = "==",
5     value = true,
6     isTrigger = true
7 }

E adevărat, când toată casa a fost dezarmată.

1 {
2     type = "alarm",
3     property = "homeArmed",
4     operator = "==",
5     value = false,
6     isTrigger = true
7 }

Adevărat, când alarma a fost încălcată.

1 {
2     type = "alarm",
3     property = "homeBreached",
4     operator = "==",
5     value = true,
6     isTrigger = true
7 }

Adevărat, când alarma în casă a fost dezactivată.

1 {
2     type = "alarm",
3     property = "homeBreached",
4     operator = "==",
5     value = false, /
6     isTrigger = true
7 }

Pornirea gateway-ului
Pentru pornirea gateway-ului, interpretarea câmpurilor condiţii este următoarea:

tip - ia valoare "se-start" .


proprietate - ia valoare "start" .
valoare - ia valoare "true" .
operator - ia una dintre aceste valori:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
isTrigger - este condiţia şi un declanşator:
true - este un declanşator (recomandat)
false - este doar o condiţie (implicit)

Exemple:
Declanşare la ecare pornire.

1 {
2     type = "se-start",
3     property = "start",
4     operator = "==",
5     value = true,
6     isTrigger = true
7 }

Pro luri
Pentru pro luri, interpretarea câmpurilor de condiţii este următoarea:

tip - ia valoare "profile" .


proprietate - ia valoare "activeProfile" .
valoare - ID-ul pro lului de veri cat.
operator - ia una dintre aceste valori:
"==" - sunt aceleaşi valori
"!=" - valorile sunt diferite
"anyValue" - potriviţi cu orice valoare
isTrigger - este condiţia şi un declanşator:
true - este un declanşator (recomandat)
false - este doar o condiţie (implicit)

Exemple:
adevărat, când pro lul 1 a fost setat ca activ.

1 {
2     type = "profile",
3     property = "activeProfile",
4     operator = "==",
5     value = 1,
6     isTrigger = true
7 }

stoc
Acţiunile sunt executate una după alta (cu excepţia „ baro.setTimeout” - descrisă în continuare). Sunt
disponibile următoarele acţiuni:

sourceTrigger
Variabila stochează obiectul declanşator care a început scena. Rezultă direct din declanşatoarele de nite în
secţiunea anterioară, dar este extins printr-o pornire manuală. Tipul declanşatorului este identi cat după
/
proprietatea tip care poate una dintre următoarele:
proprietatea tip , care poate una dintre următoarele:

manual
alarma
personalizat-eveniment
Data
dispozitiv
la nivel mondial-variabilă
Locaţie
panică
pro l
SE-start
vreme
climat

Exemple valori ale variabilei sourceTrigger.

Pornire manuală
1 {
2     type = "manual",
3     property = "execute"
4 }

Declanşare bazată pe schimbarea proprietăţii dispozitivului


Proprietatea centralSceneEvent pentru dispozitivul cu id 298 a declanşat scena.

1 {
2     type = "device",
3     value = {
4         keyId = 1,
5         keyAttribute = "Pressed"
6     },
7     property = "centralSceneEvent",
8     id = 298
9 }

Timpul declanşator
Ora şi data speci că au declanşat scena.

1 {
2     type = "date",
3     property = "cron",
4     value = { "47", "11", "19", "12", "4", "2019" }
5 }

Declanşare bazată pe schimbarea stării de alarmă


Zona de armare cu id 4 a declanşat scena.

1 {
2     value = true,
3     id = 4,
4     type = "alarm",
5     property = "armed"
6 }

api.delete
api.delete (uri)
Ştergeţi resursa folosind API-ul gateway. parametri:

uri - calea către resursă fără /api pre x.


/
R ă id i {d d ă d HTTP d ă }
Returnări de acţiune: {date de răspuns, cod HTTP de răspuns}.

Exemple:
Ştergeţi variabila globală cu numele „test”.

1 local data, status = api.delete('/globalVariables/test')

api.get
api.get (uri)
Obţineţi resurse folosind API-ul gateway. parametri:

uri - calea către resursă fără /api pre x.

Returnări de acţiune: {date de răspuns, cod HTTP de răspuns}.

Exemple:
Obţineţi valoarea variabilei globale cu numele „test”.

1 local data, status = api.get('/globalVariables/test')

api.post
api.post (uri, dane)
Trimiteţi cererea metodei POST către API-ul gateway. parametri:

uri - calea către resursă fără /api pre x,


dane - date de trimis cu cererea.

Returnări de acţiune: {date de răspuns, cod HTTP de răspuns}.

Exemple:
Creaţi o variabilă globală cu numele „test” şi valoarea „sampleValue”.

1 local requestData = {
2     name = 'test',
3     isEnum = false,
4     readOnly = false,
5     value = 'sampleValue'
6 }
7 local responseData, status = api.post('/globalVariables', requestData)

api.put
api.put (uri, dane)
Trimiteţi solicitarea metodei PUT către API-ul gateway. parametri:

uri - calea către resursă fără /api pre x,


dane - date de trimis cu cererea.

Returnări de acţiune: {date de răspuns, cod HTTP de răspuns}.

Exemple:
Modi caţi valoarea variabilei globale cu numele „test” în valoare „sampleValue2”.

1 local requestData = {
2     value = 'sampleValue2'
3 }
4 local responseData, status = api.put('/globalVariables/test', requestData)

baro.call
baro.call (id, nume acţiune, argumente)
Execută o acţiune pe dispozitiv. /
parametri:

id - identi catorul dispozitivului pe care dorim să executăm acţiunea.


nume_acţiune - numele acţiunii pe care dorim să o executăm.
argumente - listă de argumente acceptate de acţiune.

Exemple:

Executaţi acţiunea „turnOn” pe dispozitivul cu id-ul 30.

1 fibaro.call(30, "turnOn")

Executaţi acţiunea „setCon guration” pe dispozitiv cu id 31 cu argumente:


numărul parametrului - 11
dimensiunea parametrului în octeţi - 1
valoarea parametrului de setat - 128

1 fibaro.call(31, "setConfiguration", 11, 1, 128)

baro.call (ID-uri, nume_ acţiune, argumente)


Execută o acţiune asupra dispozitivelor.
parametri:

ids - lista identi catorilor de dispozitiv pe care să execute acţiunea.


nume_acţiune - numele acţiunii pe care dorim să o executăm.
argumente - listă de argumente pe care acţiunea o acceptă.

Exemplu:
Executaţi acţiunea „turnOn” pe dispozitivele cu id 30 şi 32.

1 fibaro.call({30, 32}, "turnOn")

baro.callGroupAction
baro.callGroupAction (nume acţiune, argumente)
Execută o acţiune asupra dispozitivelor.
parametri:

nume_acţiune - numele acţiunii pe care dorim să o executăm.


argumente - listă de argumente acceptate de funcţie şi ltru de dispozitiv.

Acţiunea returnează o listă de dispozitive pe care a fost executată.

Exemple:
Apelarea acţiunii turnOn pe dispozitivele com. baro.zwaveDevice care nu au interfaţa bateriei.

1 local body = {
2 "args": [],
3 "filters":
4 [
5   {
6    "filter": "type",
7    "value": ["com.fibaro.zwaveDevice"]
8   },
9   {
10    "filter": "not",
11    "value":
12     {
13      "filter": "interface",
14      "value": ["battery"]
15     }
16   }
17 ]
18 }
/
19
19  
20 fibaro.callGroupAction("turnOn", body)

baro.get
baro.get (id, nume_proprietate)
Obţine valoarea proprietăţii dispozitivului şi data la care a fost modi cată ultima dată.
parametri:

id - ID dispozitiv pentru care dorim să preluăm valoarea proprietăţii.


nume_ proprietate - numele proprietăţii care este valoarea pe care dorim să o preluăm.

Returnări ale acţiunii: {valoare, ultima modi care}.

Exemple:
Obţineţi valoarea şi data ultimei modi cări pentru proprietatea valorii pentru dispozitivul 54

1 local value, modificationTime = fibaro.get(54, "value")

baro.getValue
baro.getValue (id, nume_proprietate)
Obţine valoarea proprietăţii date.
parametri:

id - ID dispozitiv pentru care dorim să preluăm valoarea proprietăţii.


nume_ proprietate - numele proprietăţii care este valoarea pe care dorim să o preluăm.

Acţiunea returnează numai valoarea proprietăţii.

Exemple:
Preluarea valorii proprietăţii valorii pentru id 54 de dispozitiv

1 local value = fibaro.getValue(54, "value")

baro.getType
baro.getType (id)
Obţine tipul dispozitivului.
parametri:

id - ID dispozitiv pentru care dorim să preluăm tipul acestuia.

Acţiunea returnează tipul dispozitivului.

Exemple:
Retrageţi tipul de dispozitiv 54

1 local type = fibaro.getType(54)

baro.getName
baro.getName (id)
Obţine numele dispozitivului.
parametri:

id - ID dispozitiv pentru care dorim să-i extragem numele.

Acţiunea returnează numele dispozitivului.

Exemple:
Obţineţi numele dispozitivului 54

1 local type = fibaro.getName(54) /


baro.getRoomID
baro.getRoomID (id)
Obţine ID-ul camerei căreia i se atribuie dispozitivul.
parametri:

id_urządzenia - ID-ul dispozitivului pentru care dorim să preluăm ID-ul camerei.

Acţiunea returnează ID-ul camerei căruia i se atribuie dispozitivul.

Exemple:
Obţineţi ID-ul camerei pentru dispozitivul 54

1 local roomId = fibaro.getRoomID(54)

baro.getSectionID
baro.getSectionID (id)
Obţine ID-ul secţiunii căreia i se atribuie dispozitivul.
parametri:

id_urządzenia - ID-ul dispozitivului pentru care dorim să preluăm ID-ul secţiunii sale.

Acţiunea returnează ID-ul secţiunii căreia i se atribuie dispozitivul.

Exemple:
Obţineţi ID-ul secţiunii pentru dispozitivul 54

1 local sectionId = fibaro.getSectionID(54)

baro.getRoomName
baro.getRoomName (id)
Obţine numele camerei.
parametri:

id - ID de cameră pentru care dorim să preluăm numele.

Acţiunea returnează numele camerei.

Exemple:
Obţineţi numele pentru camera 219

1 local roomName = fibaro.getRoomName(219)

baro.getRoomNameByDeviceID
baro.getRoomNameByDeviceID (id)
Obţine numele camerei căreia i se atribuie dispozitivul.
parametri:

id - ID dispozitiv pentru care dorim să preluăm numele camerei sale.

Acţiunea returnează numele camerei.

Exemple:
Obţineţi numele camerei pentru dispozitivul 54

1 local roomName = fibaro.getRoomNameByDeviceID(54)

baro.wakeUpDeadDevice
baro.wakeUpDeadDevice (id) /
Treziţi dispozitivul.
parametri:

id - ID dispozitiv de trezit.

Exemple:
dispozitiv de trezire 54

1 fibaro.wakeUpDeadDevice(54)

baro.getDevicesID
baro.getDevicesID ( ltru)
Returnează o listă de ID-uri de dispozitiv care se potrivesc cu ltrele date.
parametri:

ltre - modul în care dorim să ltrăm dispozitivele.

baro.getAllDeviceIds
baro.getAllDeviceIds ()
Returnează o listă de obiecte ale tuturor dispozitivelor.

1 local devices = fibaro.getAllDeviceIds()

baro.getIds
baro.getIds (dispozitive)
Returnează o listă de ID-uri pentru dispozitivele date.

dispozitive - acceptă lista obiectelor dispozitivului.

1 local devices = fibaro.getAllDeviceIds()


2 local devicesId = fibaro.getIds(devices)

baro.homeCenter.systemService.reboot
baro.homeCenter.systemService.reboot ()
Reporniţi gateway-ul.

1 fibaro.homeCenter.systemService.reboot()

baro.homeCenter.systemService.suspend
baro.homeCenter.systemService.suspend ()
Puneţi gateway-ul în modul Sleep.

1 fibaro.homeCenter.systemService.suspend()

baro.homeCenter.noti cationService.publish
baro.homeCenter.noti cationService.publish (cerere)
Publicaţi noti carea.
parametri:

cerere - obiect pe baza căruia va creată noti carea:


tip - tip de noti care, unul dintre următoarele:
"FirmwareUpdateNotification"
"GenericDeviceNotification" /
"GenericSceneNotification"
"GenericSystemNotification"
"MobilePopupNotification"
"ZwaveReconfigurationNotification"
prioritate - prioritate de noti care, una dintre următoarele:
"info" - cea mai mică prioritate
"warning" - prioritate medie
"alert" - cea mai mare prioritate
date - date de noti care, în funcţie de tip:
FirmwareUpdateNoti cation
deviceId - ID dispozitiv
progress - progrese de con gurare (valoare numerică)
info - informaţii despre actualizare (valoarea textului)
status - una dintre următoarele:
"Available"
"QueuedForUpdate"
"Downloading"
"WaitingForCommunication"
"Updating"
"UpdateOk"
"UpdateFail"
"UpToDate"
"QueuedForCheck"
GenericDeviceNoti cation
deviceId - ID dispozitiv
title - titlul noti cării (valoarea textului)
text - descrierea noti cării (valoarea textului)
pictogramă - pictogramă de noti care (opţional), obiect, acceptând următoarele câmpuri:
calea - calea către icoană
sursă - sursa pictogramei
GenericSceneNoti cation
sceneId - ID scenă.
title - titlul noti cării (valoarea textului)
text - descrierea noti cării (valoarea textului)
GenericSystemNoti cation
subtip - unul dintre următoarele:
"Generic"
"EmailInvalid"
"DeviceNotConfigured"
"DeviceNoTemplate"
"NoFibaroPartitionInAlarm"
"ZwavePollingTime"
"UserNameDuplicated"
nume - titlul noti cării (valoarea textului)
text - descrierea noti cării (valoarea textului)
url - valoarea textului
urlText - valoarea textului
MobilePopupNoti cation
title - titlul noti cării (valoarea textului)
text - descrierea noti cării (valoarea textului)
buton - tabel de obiecte care descrie butoanele şi funcţionarea acestora. Obiectul are
următoarele câmpuri:
buttonId - ID buton,
type - buton tip, unul dintre următoarele: /
"STANDARD"
"CALL_112"
"CANCEL"
legendă - valoarea textului,
onPressedAction - acţiune efectuată la apăsarea butonului
ZwaveRecon gurationNoti cation
taskId - ID-ul sarcinii (valoare numerică)
deviceId - ID dispozitiv
status - una dintre următoarele:
"Pending"
"WaitingForWakeup"
"Reconfiguring"
"Failed"
"Canceled"
"Successful"
"Aborted"
nume - titlul noti cării (valoarea textului)

Exemple:
Publicaţi o noti care GenericDeviceNoti cation .

1 local body = {
2     type = "GenericDeviceNotification",
3     priority = "info",
4     data = {
5         deviceId = 54,
6         title = "sampleTitle",
7         text = "sampleText",
8         icon =  {
9            path = "fibaro/icons/com.fibaro.FGT001/com.fibaro.FGT001-off.png",
10            source = "HC"
11        }
12     }
13 }
14 local response, code = fibaro.homeCenter.notificationService.publish(body)

baro.homeCenter.noti cationService.update
baro.homeCenter.noti cationService.update (id, cerere)
Actualizează noti carea.
parametri:

id - ID-ul noti cării pentru actualizare


cerere - obiect pe baza căruia va actualizată noti carea. O descriere detaliată a întregii cereri poate
găsită în punctul baro.homeCenter.noti cationService.publish (cerere) .

Exemple:
actualizare noti care 10.

1 local body = {
2     type = "GenericDeviceNotification",
3     priority = "info",
4     data = {
5         deviceId = 54,
6         title = "sampleTitle",
7         text = "sampleText",
8         icon =  {
9            path = "fibaro/icons/com.fibaro.FGT001/com.fibaro.FGT001-off.png",
10            source = "HC"
11        }
12     }
13 }
14 local response, code = fibaro.homeCenter.notificationService.update(10, body)
/
baro.homeCenter.noti cationService.remove
baro.homeCenter.noti cationService.remove (id)
Şterge noti carea. parametri:

id - ID-ul noti cării de şters

Exemple:
Ştergeţi noti carea 60.

1 local response, code = fibaro.homeCenter.notificationService.remove(60)

baro.alert (tip_ alert, user_ids, noti care_content)


Trimiteţi o noti care personalizată.

alert_type - unul dintre tipurile de noti cări: „e-mail”, „sms” sau „push”
user_ids - lista identi catorilor de utilizator la care să trimiteţi noti carea
noti cation_content - conţinutul noti cării de trimis

Exemple:
Trimiteţi noti care cu conţinut „Noti care testare” folosind e-mail utilizatorilor cu id 2, 3 şi 4.

1 fibaro.alert("email", {2,3,4}, "Test notification")

baro.emitCustomEvent
baro.emitCustomEvent (EVENT_NAME)
Emiterea unui eveniment personalizat cu numele speci cat.
parametri:

name_name - numele evenimentului pe care dorim să îl emitem

Exemple:
Emiterea evenimentului cu numele „TestEvent”.

1 fibaro.emitCustomEvent("TestEvent")

baro.debug
baro.debug (etichetă, mesaj)
A şarea mesajului text la nivel de depanare în consola de depanare.
parametri:

tag - etichetă de mesaj, poate utilizat pentru a ltra mesaje


mesaj - conţinutul mesajului care apare în fereastra de depanare

Exemple:
A şaţi „Mesaj de testare” într-o fereastră de depanare cu eticheta „TestTag”:

1 fibaro.debug("TestTag", "Test message")

baro.trace
baro.trace (etichetă, mesaj)
A şarea mesajului text la nivel de urmărire în consola de depanare.
parametri:

tag - etichetă de mesaj, poate utilizat pentru a ltra mesaje


mesaj - conţinutul mesajului care apare în fereastra de depanare

Exemple:
/
A şaţi Mesaj de testare” într o fereastră de depanare cu eticheta TestTag”:
A şaţi „Mesaj de testare într-o fereastră de depanare cu eticheta „TestTag :

1 fibaro.trace("TestTag", "Test message")

baro.warning
baro.warning (etichetă, mesaj)
A şare mesaj text la nivel de avertizare în consola de depanare. parametri:

tag - etichetă de mesaj, poate utilizat pentru a ltra mesaje


mesaj - conţinutul mesajului care apare în fereastra de depanare

Exemple:
A şaţi „Mesaj de testare” într-o fereastră de depanare cu eticheta „TestTag”:

1 fibaro.warning("TestTag", "Test message")

baro.error
baro.error (etichetă, mesaj)
A şare mesaj text la nivel de eroare în consola de depanare.
parametri:

tag - etichetă de mesaj, poate utilizat pentru a ltra mesaje


mesaj - conţinutul mesajului care apare în fereastra de depanare

Exemple:
A şaţi „Mesaj de testare” într-o fereastră de depanare cu eticheta „TestTag”:

1 fibaro.error("TestTag", "Test message")

baro.alarm
baro.alarm (partition_id, acţiune)
Execută acţiunea speci cată pe o partiţie.
parametri:

partition_id - partiţia pe care dorim să executăm acţiunea,


acţiune - acţiunea pe care vrem să o executăm. Acţiuni disponibile: „braţ”, „dezarmare”

Exemple:
Partiţia armă nr. 1:

1 fibaro.alarm(1, "arm")

baro.alarm (acţiune)
Execută acţiunea speci cată pe toate partiţiile.
parametri:

acţiune - acţiune care trebuie executată pe toate partiţiile. Acţiuni disponibile: „braţ”, „dezarmare”

Exemple:
dezarmaţi toate partiţiile:

1 fibaro.alarm("disarm")

baro.scene
baro.scene (acţiune, scene_ide)
Execută acţiune dată pe o scenă.
parametri: /
acţiune - acţiunea pe care dorim să o realizăm pe scene, una dintre următoarele:

"execute" - lansarea scenei


"kill" - oprirea scenei
scene_ids - lista ID-urilor scenelor pentru a efectua acţiunea

Exemple:
Executaţi scene cu ID-uri 1, 2, 3.

1 fibaro.scene("execute", {1, 2, 3})

Opriţi scenele cu ID-urile 1, 2, 3

1 fibaro.scene("kill", {1, 2, 3})

baro.setSkin
baro.setSkin (user_ids, tema)
Setează tema de culoare a interfeţei selectate pentru utilizator.
parametri:

user_ids - lista ID-urilor de utilizator pentru care ar trebui activată tema selectată
tema - tema de culoare care trebuie setată, una dintre următoarele:
"light" - tema uşoară
"dark" - temă întunecată

Exemple:
Setaţi tema de culoare închisă pentru utilizatorii 2 şi 3:

1 fibaro.setSkin({2, 3}, "dark")

baro.setSkin (temă)
Setează tema de culoare a interfeţei selectate pentru toţi utilizatorii.
parametri:

tema - tema de culoare care trebuie setată, una dintre următoarele:


"light" - tema uşoară
"dark" - temă întunecată

Exemple:
Setaţi temă de culoare închisă pentru toţi utilizatorii:

1 fibaro.setSkin("dark")

baro.pro le
baro.pro le (pro l_id, acţiune)
Execută acţiunea speci cată pe pro lul de utilizator.
parametri:

pro l_id - ID-ul pro lului pe care dorim să executăm acţiunea


acţiune - acţiunea pe care dorim să o executăm pe pro l. În prezent, "activateProfile" este
disponibilă doar o acţiune (activarea pro lului)

Exemple:
Activaţi pro lul cu ID 1.

1 fibaro.profile(1, "activateProfile")

baro.getGlobalVariable
baro getGlobalVariable (variable name)
/
baro.getGlobalVariable (variable_name)

Obţineţi valoarea variabilei globale.


parametri:

variabilă nume - numele variabilei pentru a obţine valoarea de

Exemple:
Obţineţi valoarea variabilei testVariabil .

1 local value = fibaro.getGlobalVariable("testVariable")

baro.setGlobalVariable
baro.setGlobalVariable ( nume variabil, valoare variabilă )
Setaţi valoarea variabilei globale.
parametri:

nume_ variabilă - numele variabilei pe care dorim să o actualizăm


variable_value - noua valoare pentru variabilă

Exemple:
Modi caţi valoarea testVariabilă la testValue .

1 fibaro.setGlobalVariable("testVariable", "testValue")

baro.getSceneVariable
baro.getSceneVariable (variable_name)
Obţineţi valoarea variabilei de scenă.
Variabilele de scenă sunt variabile care sunt transmise între instanţele aceleiaşi scene şi sunt şterse doar dacă
sunt setate la null .
parametri:

variabilă nume - numele variabilei pentru a obţine valoarea de

Exemple:
Obţineţi valoarea variabilei testVariabil .

1 local value = fibaro.getSceneVariable("testVariable")

baro.setSceneVariable
baro.setSceneVariable ( nume variabil, valoare variabilă )
Setaţi valoarea variabilei de scenă. Dacă variabila nu există, ea va creată.
Variabilele de scenă sunt variabile care sunt transmise între instanţele aceleiaşi scene şi sunt şterse doar dacă
sunt setate la null .
parametri:

nume_ variabilă - numele variabilei pe care dorim să o actualizăm


variable_value - noua valoare pentru variabilă

Exemple:
Modi caţi valoarea testului Variabilă la 1.

1 fibaro.setSceneVariable("testVariable", 1)

baro.setTimeout
baro.setTimeout (întârziere, funcţie)
Efectuează funcţia asincron cu o întârziere. parametri: /
întârziere - întârziere în milisecunde după care se va îndeplini funcţia speci cată,

funcţie - funcţie, care va executată cu întârziere.

Exemple:
Executaţi funcţia cu întârziere de 30 de secunde care porneşte dispozitivul (ID 40) şi setează pro lul 1 ca activ.

1 fibaro.setTimeout(30000, function()
2     fibaro.call(40, "turnOn")
3     fibaro.profile("activateProfile", 1)
4 end)

baro.sleep
baro.sleep (întârziere)
Întrerupe execuţia scriptului pentru timpul setat (în milisecunde).

Exemple:
După 30 de secunde, porniţi dispozitivul (ID 30) şi setaţi pro lul 1 ca activ.

1 fibaro.sleep(30000)
2 fibaro.call(30, "turnOn")
3 fibaro.profile("activateProfile", 1)

json.encode
json.encode (tabel)
Convertiţi tabelul Lua în textul reprezentat în format JSON.
parametri:

table – Lua table

Exemple:
A şare sursă Trigger în consola de depanare.

1 fibaro.debug("", json.encode(sourceTrigger))

json.decode
json.decode (tekst)
Convertiţi textul reprezentat în format JSON în tabela Lua.
parametri:

text - date în format JSON

Exemple:

1 local tmp = "{\"test\":11}"


2 local array = json.decode(tmp)

Exemple
Pornirea dispozitivului atunci când un alt dispozitiv este pornit:
Condiţii:

/
1 {
2     operator = "any",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         }
12     }
13 }

acţiuni:

1 fibaro.call(30, "turnOn")

Pornirea dispozitivului cu o întârziere de 30 de secunde şi


trimiterea unui e-mail către utilizator 2 cu textul Noti care de
testare atunci când un alt dispozitiv este pornit între orele 9:00 şi
10:00
Condiţii:

1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "device",
6             id = 25,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         },
12         {
13             operator = "all",
14             conditions = {
15                 {
16                     type = "date",
17                     property = "cron",
18                     operator = "match>=",
19                     value = {"0", "9", "*", "*", "*","*"}
20                 },
21                 {
22                     type = "date",
23                     property = "cron",
24                     operator = "match<",
25                     value = {"0", "10", "*", "*", "*","*"}
26                 }
27             }
28         }
29     }
30 }

acţiuni:

1 fibaro.setTimeout(30000, function()
2     fibaro.call(30, "turnOn")
3 end)
4 fibaro.alert("email", {2}, "Test notification")

Se inversează starea dispozitivului


Condiţii: /
1 {}

acţiuni:

1 local deviceValue1 = fibaro.get(241, "value")


2 if tonumber(deviceValue1) > 0 then
3     fibaro.call(241, "turnOff")
4 else
5     fibaro.call(241, "turnOn")
6 end

Porniţi lumina (dispozitivele 51, 52, 53) când senzorul de mişcare


(dispozitivul 54) este încălcat, dar numai noaptea
Condiţii:

1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "device",
6             id = 54,
7             property = "value",
8             operator = "==",
9             value = true,
10             isTrigger = true
11         },
12         {
13             operator = "any",
14             conditions = {
15                 {
16                     type = "date",
17                     property = "sunset",
18                     operator = ">=",
19                     value = 0
20                 },
21                 {
22                     type = "date",
23                     property = "sunrise",
24                     operator = "<=",
25                     value = 0
26                 }
27             }
28         }
29     }
30 }

acţiuni:

1 fibaro.call({51, 52, 53}, "turnOn")

La răsărit, deschideţi jaluzelele la 50% şi porniţi dimmerii la 50%


1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "date",
6             property = "sunrise",
7             operator = "==",
8             value = 0,
9             isTrigger = true
10         }
11     }
12 }

acţiuni:

/
1 local rollerShutterBody = {
2     args = { 50 },
3     filters = {
4         {
5             filter = "type",
6             value =  { "com.fibaro.rollerShutter" }
7         }
8     }
9 }
10  
11 local dimmerBody = {
12     args = { 30 },
13     filters = {
14         {
15             filter = "type",
16             value = { "com.fibaro.multilevelSwitch" }
17         }
18     }
19 }
20  
21 fibaro.callGroupAction("setValue", rollerShutterBody)
22 fibaro.callGroupAction("setValue", dimmerBody)

Când utilizatorul 36 părăseşte locaţia 2, închideţi jaluzelele şi


armaţi alarma
1 {
2     operator = "all",
3     conditions = {
4         {
5             type = "location",
6             id = 36,
7             property = 2,
8             operator = "==",
9             value = "enter",
10             isTrigger = true
11         }
12     }
13 }

acţiuni:

1 local rollerShutterBody = {
2     args = { },
3     filters = {
4         {
5             filter = "type",
6             value =  { "com.fibaro.rollerShutter" }
7         }
8     }
9 }
10  
11 fibaro.callGroupAction("close", rollerShutterBody)
12 fibaro.alarm("arm")

Obţineţi informaţii despre senzori de mişcare vizibili şi lumini în


camera implicită
1 {
2     operator = "all",
3     conditions = {
4     }
5 }

acţiuni:

1 local roomId = 219 /


2  
3 function tableLength(table)
4     local count = 0
5     for _ in pairs(table) do count = count + 1 end
6     return count
7 end
8  
9 function getRoom()
10     local result = api.get('/rooms/' .. roomId)
11     roomID = result.id
12     return roomID
13 end
14  
15 function getLights(roomID)
16     local IDs = {}
17     local result = api.get('/devices?roomID=' .. roomID .. '&isTypeOf=com.fibaro.binarySwitch&vi
18     for k,v in pairs(result) do
19         table.insert(IDs, v.id)    
20     end  
21     return IDs
22 end
23  
24 function getMotions(roomID)
25     local IDs = {}
26     local result = api.get('/devices?roomID=' .. roomID .. '&isTypeOf=com.fibaro.motionSensor&vi
27     for k,v in pairs(result) do
28         table.insert(IDs, v.id)    
29     end  
30     return IDs
31 end
32  
33 function headerLights(inputArray)
34     output = ""
35     for key,value in pairs(inputArray) do
36         output = output .. value .. ' value '
37     end
38     return output
39 end
40  
41 function headerMotions(inputArray)
42     output = ""
43     for key,value in pairs(inputArray) do
44         output = output .. value .. ' value '
45     end
46     return output
47 end
48  
49 function headerLights(inputArray)
50     output = ""
51     for key,value in pairs(inputArray) do
52         output = output .. value .. ' value '
53     end
54     return output
55 end
56  
57 function arrayMotions(inputArray)
58     output = ""
59     for key,value in pairs(inputArray) do
60         output = output .. value .. ', '
61     end
62     text = output
63     text = text:sub(1, -3)
64     return text
65 end
66  
67 function arrayLights(inputArray)
68     output = ""
69     for key,value in pairs(inputArray) do
70         output =  output .. value .. ', '
71     end
72     text = output
73     text = text:sub(1, -3) /
74 t t t
74     return text
75 end
76  
77  
78 --print("Room ID: " .. getRoom())
79  
80 print("ONLY VISIBLE Motion Sensors and Lights in default room!!! ")
81 print("roomID = " .. roomId)
82 print(" ")
83 print("HEADERS: // put under %%properties")
84 print("for lights: " .. headerLights(getLights(getRoom())))
85 print("for Motions: " .. headerMotions(getMotions(getRoom())))
86 print(" ")
87 print("VARIABLES:")
88 print("lightsIDs = " .. "{" .. arrayLights(getLights(getRoom())) .. "}")
89 print("motionsIDs = " .. "{" .. arrayMotions(getMotions(getRoom())) .. "}")

Activaţi udarea după apăsarea butonului cu ID 2066 sau după


îndeplinirea uneia dintre următoarele condiţii: luni, miercuri sau
vineri la ora 6:00, temperatura este peste 3 grade şi este una
dintre următoarele condiţii meteorologice: ceaţă, senin sau
înnorat
Condiţii:

/
1 {
2   conditions = { {
3       id = 2066,
4       isTrigger = true,
5       operator = "==",
6       property = "centralSceneEvent",
7       type = "device",
8       value = {
9         keyAttribute = "Pressed",
10         keyId = 1
11       }
12     }, {
13       conditions = { {
14           isTrigger = false,
15           operator = "match",
16           property = "cron",
17           type = "date",
18           value = { "*", "*", "*", "*", "1,3,5", "*" }
19         }, {
20           isTrigger = true,
21           operator = "match",
22           property = "cron",
23           type = "date",
24           value = { "00", "06", "*", "*", "*", "*" }
25         }, {
26           isTrigger = true,
27           operator = "<",
28           property = "temperature",
29           type = "weather",
30           value = 3
31         }, {
32           conditions = { {
33               isTrigger = true,
34               operator = "==",
35               property = "weatherCondition",
36               type = "weather",
37               value = "fog"
38             }, {
39               isTrigger = true,
40               operator = "==",
41               property = "weatherCondition",
42               type = "weather",
43               value = "clear"
44             }, {
45               isTrigger = true,
46               operator = "==",
47               property = "weatherCondition",
48               type = "weather",
49               value = "cloudy"
50             } },
51           operator = "any"
52         } },
53       operator = "all"
54     } },
55   operator = "any"
56 }

acţiuni:

1 local wateringTime = 20
2 fibaro.call(2055, 'turnOn')
3 fibaro.setTimeout(wateringTime * 60 * 1000, function()
4 fibaro.call(2055, 'turnOff')
5 end)

Activaţi udarea după apăsarea butonului cu ID 2066 sau după


îndeplinirea uneia dintre următoarele condiţii: luni, miercuri sau
vineri la ora 6:00, temperatura este peste 3 grade, senzorul de /
vineri la ora 6:00, temperatura este peste 3 grade, senzorul de

umiditate al solului cu ID 35 detectează umiditatea sub 20% şi


este unul dintre următoarele condiţii meteorologice: ceţos, senin
sau înnorat
Condiţii:

1 {
2   conditions = { {
3       id = 2066,
4       isTrigger = true,
5       operator = "==",
6       property = "centralSceneEvent",
7       type = "device",
8       value = {
9         keyAttribute = "Pressed",
10         keyId = 1
11       }
12     }, {
13       conditions = { {
14           id = 35,
15           isTrigger = false,
16           operator = "<",
17           property = "value",
18           type = "device",
19           value = 20
20         }, {
21           isTrigger = false,
22           operator = "match",
23           property = "cron",
24           type = "date",
25           value = { "*", "*", "*", "*", "1,3,5", "*" }
26         }, {
27           isTrigger = true,
28           operator = "match",
29           property = "cron",
30           type = "date",
31           value = { "00", "06", "*", "*", "*", "*" }
32         }, {
33           isTrigger = true,
34           operator = "<",
35           property = "temperature",
36           type = "weather",
37           value = 3
38         }, {
39           conditions = { {
40               isTrigger = true,
41               operator = "==",
42               property = "weatherCondition",
43               type = "weather",
44               value = "fog"
45             }, {
46               isTrigger = true,
47               operator = "==",
48               property = "weatherCondition",
49               type = "weather",
50               value = "clear"
51             }, {
52               isTrigger = true,
53               operator = "==",
54               property = "weatherCondition",
55               type = "weather",
56               value = "cloudy"
57             } },
58           operator = "any"
59         } },
60       operator = "all"
61     } },
62   operator = "any" /
63 }

acţiuni:

1 local wateringTime = 20
2 fibaro.call(2055, 'turnOn')
3 fibaro.setTimeout(wateringTime * 60 * 1000, function()
4 fibaro.call(2055, 'turnOff')
5 end)

Activaţi udarea după apăsarea butonului cu ID 2066 sau după


îndeplinirea uneia dintre următoarele condiţii: luni, miercuri sau
vineri la ora 6:00
Condiţii:

1 {
2   conditions = { {
3       id = 2066,
4       isTrigger = true,
5       operator = "==",
6       property = "centralSceneEvent",
7       type = "device",
8       value = {
9         keyAttribute = "Pressed",
10         keyId = 1
11       }
12     }, {
13       conditions = { {
14           isTrigger = false,
15           operator = "match",
16           property = "cron",
17           type = "date",
18           value = { "*", "*", "*", "*", "1,3,5", "*" }
19         }, {
20           isTrigger = true,
21           operator = "match",
22           property = "cron",
23           type = "date",
24           value = { "00", "06", "*", "*", "*", "*" }
25         } },
26       operator = "all"
27     } },
28   operator = "any"
29 }

acţiuni:

1 local wateringTime = 20
2 fibaro.call(2055, 'turnOn')
3 fibaro.setTimeout(wateringTime * 60 * 1000, function()
4 fibaro.call(2055, 'turnOff')
5 end)

Închideţi supapele şi trimiteţi un e-mail cu noti care dacă unul


dintre senzorii de apă a fost activat
Condiţii:

/
1 {
2   conditions = { {
3       id = 2073,
4       isTrigger = true,
5       operator = "==",
6       property = "value",
7       type = "device",
8       value = true
9     }, {
10       id = 2074,
11       isTrigger = true,
12       operator = "==",
13       property = "value",
14       type = "device",
15       value = true
16     } },
17   operator = "any"
18 }

acţiuni:

1 local users = {2,3,4} -- users ids


2 local valvesIds = {204, 205}; -- IDs of all valves
3 local usePushNotifications = true -- true if push notification should be send with push
4 local valveNO = true; -- "true" if valve is normally open, "false" if NC
5  
6 function closeValves()
7     if valveNO == true then
8         fibaro.call(valvesIds, "turnOn")
9     else
10         fibaro.call(valvesIds, "turnOff")
11     end
12 end
13  
14 closeValves(); -- closing valves
15 fibaro.alert('email', users, "You're drowning")
16 if usePushNotifications == true then
17     fibaro.alert('push', users, "You're drowning")
18 end

A SUSTINE
Forum FIBARO (https://forum. baro.com/)

Întrebări frecvente (https://manuals. baro.com/faq/)

Garanţie (https://www. baro.com/ les/FIBARO_Guarantee.pdf)

Politica de con denţialitate (https://www. baro.com/en/privacy-policy/)


CLIENT
FIBARO ID (https://id.cloud. baro.com/)

Marketplace (https://marketplace. baro.com/)

Compatibilitate (https://compatibility. baro.com/)

Smart Home Aplicaţie (https://www. baro.com/en/smart-home-app/)

FIBARO Android Aplicaţie (https://play.google.com/store/apps/details?id=com. baro.homecenter&hl=en)

FIBARO iOS Aplicaţie (https://itunes.apple.com/us/app/ baro-intercom/id1304252727?mt=8)


/
FIBARO Intercom (https://play.google.com/store/apps/details?id=com. baro.intercom)

HomeKit (https://www. baro.com/en/homekit/)


B2B
Distribuitor (https://www. baro.com/en/partnership/distributor/)

Instalator (https://www. baro.com/en/partnership/installer/)

Arhitect (https://www. baro.com/en/partnership/architect/)

Dezvoltare imobiliară (https://www. baro.com/en/partnership/developer/)

FIBARO Instalator iOS App (https://itunes.apple.com/us/app/ baro-installer/id1414461902?ls=1&mt=8)

FIBARO Installer Android App (https://play.google.com/store/apps/details?id=com. baro.installer&hl=en)


DESPRE
(http://newsroom. baro.com/en/)Sala de (https://www. baro.com/en/why- baro/)ştiri

(http://newsroom. baro.com/en/)

Despre noi (https://www. baro.com/en/about-us/)

De ce FIBARO (https://www. baro.com/en/why- baro/)

lucrează cu FIBARO (https://www. baro.com/en/compatibility/)

De unde să cumpere (https://www. baro.com/en/where-to-buy/)

Contact (https://www. baro.com/en/contact/)

© 2020. FIBAR GROUP SA Toate drepturile rezervate.