Идеи за автоматизация, или от къде да започнем?

И така, вашата система е готова.
Всички модули са добавени на правилните места, кръстени са по подходящ начин, можете да ги контролирате от телефона си, от където си пожелаете.

ЧУДЕСНО! A СЕГА НАКЪДЕ?

В тази секция ви даваме примери за прости, но ефективни автоматизации, които можете да направите с вашата FIbaro система. За повечето графичният интерфейс на Home Center 2 и Home Center Lite е напълно достатъчен. За някои по-специфични се изисква LUA код, който е достъпен само за потребителите на Home Center 2.

Тук не разглеждаме примери за автоматизация с други контролери, като VeraEdge, или NеticHOME. Логиката на работа с тях е сходна, макар да има някои различия в интерфейса.


ПОСТОЯННА ОСВЕТЕНОСТ С FIBARO MOTION SENSOR + ДИМЕРИ

Fibaro motion sensor представлява 4 сензора в едно. Датчик за движение и трус, температурен датчик и датчик за осветеност. Можем да използваме датчика за осветеност в комбинация с Fibaro dimmer за да постигнем равномерно ниво на осветеност в помещението.

СУПЕР! НО КАК?

Списък с необходимото:
1 x Fibaro Motion Sensor 1 x Fibaro Dimmer

Логично, тези две устройства трябва да са в едно и също помещение.

Описание:

Ще направим две LUA сцени. Те ще използват глобална променлива, за да обменят информация помежду си.

Първата сцена ще следи ключ за осветление и ще взима стойност за глобална променлива, всеки път, когато осветлението се включи.

Втората сцена ще работи непрекъснато, и ще следи стойностите подадени от датчика за осветеност и от димера. Ако глобалната променлива се включи, тя ще увеличи или намали стойността на димера в опит да поддържа постоянно ниво на осветеност.

ДА ДЕЙСТВАМЕ!

Когато добавите Fibaro Motion Sensor към Home Center 2, три различни устройства ще се появят в интерфейса:
1. Датчик за движение
2. Температурен сензор
3. Датчик за осветеност

Нас ни интересува само номер 3.

По подразбиране, нивото на осветеност в помещението ще трябва да се промени с 200lux за да получи Home Center 2, сигнал от датчика за осветеност. За нашите нужди ще е необходимо да намалим тази стойност, за да получим по-прецизно отчитане на осветеността. Обратната страна на медала е, че колкото по-ниска е тази стойност, толкова по-често датчика ще иска да изпраща информация на контролера, т.е. толкова по-често ще се включва. Тъй като датчика работи на батерии, това означава, че толкова по-бързо ще ги изразходва. За примера по-долу, ще променим въпросната стойност на 20lux, но е вероятно тази стойност да не отговаря на вашите нужди. Променете я по свое усмотрение.

Как да я променим?

За да промените описаната по-горе променлива, следвайте следните стъпки:
1. Отидете на Devices в основното меню.
2. Намерете датчика за движение, чиято стойност искате да промените.
Забележка: Тъй като се гласите да промените Z-Wave параметър, на вас ви трябва Главното устройството, което е самият Датчик за движение, а не Подчиненото устройството, което е датчика за осветеност!
3. Натиснете иконата с гаечен ключ в десния горен ъгъл, за да влесете в страницата за конфигурация.
4. Отидете на Advanced.
5. Слезте надолу докато видите Параметър 40.
6. Променете бялата цифра 200 вдясно от плъзгача на 20.
7. Натиснете бутона Save.
8. Датчика за движение вероятно ще е „заспал”, затова трябва да го „събудите” ръчно, за да получи новата си конфигурация. Това става като натиснете три пъти В-бутона в неговата черупка.

Вече вашият датчик ще подава информация на контролера при промяна на осветеността с 20lux.

Разрешете активирането на сцени.

Следващото, което трябва да се направи, е да се промени параметър на димера, който да позволява активиране на сцени.

По подразбиране тази опция е изключена. Ние ще я включим, за да можем да разберем, кога лампата е ръчно изключена, за да не осветяваме автоматично стаята през нощта.

За да разрешите активиране на сцени следвайте следните стъпки:
1. Отидете на Devices в основното меню.
2. Намерете димера, чиято стойност искате да промените
3. Натиснете иконата гаечен ключ горе вдясно, за да влезете в характеристиките на устройството.
4. Отидете на Advanced.
5. Слизате най-долу на страницата, докато намерите Параметър 41.
6. Натиснете втората опция ‘activation of the functionality’
7. Натиснете синият бутон Save вдясно.

Димерът, за разлика от датчика, е постоянно захранен и няма нужда от „събуждане”.

Да създадем глобалната променлива.

Тя ще следи състоянието на лампите в стаята. Дали са включени или изключени.

Ако ще контролирате повече от една стая ще имате необходимост от по една глобална променлива за всяко помещение. Името на променливата трябва да отговаря на името на помещението. В примерът по-долу глобалната променлива се казва OfficeLights.

1. Натиснете бутона Panels в основното меню.
2. Натиснете Variables Panel в менюто отляво.
3. В под-меню variables натиснете бутона Add.
4. За име използваме OfficeLights
5. Натиснете бутона Save.

Вече имате глобална променлива със стойност по подразбиране 0.

Създайте първата сцена.

Първо ще създадем сцена в LUA, която да следи включването на димера и да изпраща глобалната променлива, която създадохме със стойност отговаряща на състоянието на осветлението. Това е важно, защото когато създадем сцена отговаряща на осветеността в помещението, всеки път щом се опитаме да загасим лампата, сцената ще реши че е много тъмно и ще я запали. Тоест няма да разполагаме с възможност да гасим лампите, особено през нощта, когато поради липса на естествено осветление, сцената ще кара лампите да светят непрекъснато на 100%.

1. Натиснете бутона Scenes в основното меню.
2. Натиснете Add Scene в лявото меню.
3. Дайте име на новата сцена и я добавете към помещението, в което ще следим осветеността.
4. Натиснете Advanced.
5. Натиснете бутона Save намиращ се под Add scene in Lua.
6. Копирайте следният код, подменяйки автоматично създадения такъв.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
--[[
%% properties
328 sceneActivation
%% globals
--]]
 
--[[
 
 Light switch state monitor
 
 This scene has been created by and is copyright (c) 2014, Fibaro UK Ltd
 
 You may use this scene for personal or commercial purposes however
 please respect our intellectual property and leave this comment block intact
 and unmodified.
 
]]
 
-- VERSION 1.0
-- change log at bottom of scene
 
--[[
 
  This scene uses a global variable to monitor the status of a switch. You must
  create the global variable in panels->variables in order to use this scene.
  By default the global variable should be called 'OfficeLights' but this
  can be changed if this scene is used in a different location and MUST be
  changed if the scene is duplicated for use in different rooms.
 
]]
 
-- Change this value to meet your requirements
local lampID = 328 -- the device ID of the dimmer to be monitored
                   -- don't forget to change the number in the triggers
                   -- section at the top too!
 
-- get the value of the global variable and the dimmer switch's sceneActivation
local ol = fibaro:getGlobalValue('OfficeLights')
local sa = fibaro:getValue(lampID, 'sceneActivation')
 
if (sa == '16') then          -- if the switch is clicked once...
  if (ol == '1') then                     -- if the global variable is 1
    fibaro:setGlobal('OfficeLights', '0') --   make it 0
  else                                   -- otherwise
    fibaro:setGlobal('OfficeLights', '1') --   make it 1
  end
end
 
--[[
 
Change log
 
1.0
- Initial release
 
]]

7. Променете стойността на ред 34 да отговаря на ID-то на вашият димер.
8. Променете същото и на ред 3.
9. Натиснете бутона Save вдясно.

Тази сцена ще започне да работи незабавно. Нейната единствена задача е да променя стойността на глобалната променлива, когато ключа на лампата е натиснат. Ако е 1 да стане 0 ако е 0 да стане 1.

Създайте втората сцена.

Следва да се създаде нова сцена, която да следи нивото на осветеност и да увеличава или намалява стойността на димера.

1. Натиснете бутона Scenes от главното меню
2. Натиснете Add Scene в лявото меню.
3. Дайте име на новата сцена и я добавете към помещението, в което ще следим осветеността.
4. Натиснете Advanced.
5. Натиснете бутона Save намиращ се под Add scene in Lua.
6. Копирайте следният код, подменяйки автоматично създадения такъв.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
--[[
%% properties
%% autostart
%% globals
--]]
 
--[[
 
 Light level monitor
 
 This scene has been created by and is copyright (c) 2014, Fibaro UK Ltd
 
 You may use this scene for personal or commercial purposes however
 please respect our intellectual property and leave this comment block intact
 and unmodified.
 
]]
 
-- VERSION 1.0
-- change log at bottom of scene
 
--[[
 
  This scene uses a global variable to monitor the status of a switch. You must
  create the global variable in panels->variables in order to use this scene.
  By default the global variable should be called 'OfficeLights' but this
  can be changed if this scene is used in a different location and MUST be
  changed if the scene is duplicated for use in different rooms.
 
]]
 
-- Change these values to meet your requirements
local setLevel = 300 -- the lux level that should be maintained
local hysteresis = 40 -- the amount of leeway allowed either side of setLevel
                      -- this stops the light pulsing
local luxID = 327 -- the device ID of the light sensor
local lampID = 328 -- the device ID of the dimmer to be controlled
local changeDelay = 100 -- the speed at which the dimmer will change value
                        -- larger = slower
 
-- Only allow one instance of the current scene to run at a time
if (fibaro:countScenes() > 1) then
end
 
-- Keep doing this forever!
while true do
  -- Get the value of the global variable.  1 = on, 0 = off
  local lightsOn = tonumber(fibaro:getGlobalValue('OfficeLights'))
  -- Read the values of the dimmer and light sensor
  local lampValue = tonumber(fibaro:getValue(lampID, 'value')) -- dimmer
  local level = tonumber(fibaro:getValue(luxID, "value")) -- light level
 
  -- If the light level is lower than what we want then...
  if (level < (setLevel - hysteresis)) then
    fibaro:debug('Lux: ' .. level .. ' (low)   Dimmer value: ' .. lampValue)
 
    -- Can we get brighter? 99 is the brightest we can go.
    if (lampValue < 99) then
      -- Yes we can!  But if lightsOn = 0  (off) then we'll set the value to 0
      fibaro:call(lampID, 'setValue', (lampValue + 1)*lightsOn)
      fibaro:sleep(changeDelay)
    else
      fibaro:sleep(1000)
    end
 
  -- If the light level is higher than what we want then...
  elseif (level > (setLevel + hysteresis)) then
    fibaro:debug('Lux: ' .. level .. ' (high)  Dimmer value: ' .. lampValue)
 
    -- Can we get dimmer? 0 is off - the darkest we can go.
    if (lampValue > 0) then
      -- Yes we can!  But if lightsOn = 0  (off) then we'll set the value to 0
      fibaro:call(lampID, 'setValue', (lampValue - 1)*lightsOn)
      fibaro:sleep(changeDelay)
    else
      fibaro:sleep(1000)
    end
 
  -- Otherwise the light level must be correct (give of take the leeway)...
  else
    fibaro:debug('Lux: ' .. level .. ' (ok)')
    fibaro:sleep(1000)
  end
end
 
--[[
 
Change log
 
1.0
- Initial release
 
]]

7. Променете всички ID като започнете от ред 34, така че да отговарят на вашата система. luxID и lampID трябва да отговарят съответно на датчика за осветеност и димера.
8. Натиснете бутона Save вдясно.

КАК РАБОТИ?

В началото на сцената ще видите:

%% autostart

Този код кара сцената да започне работа веднага след като бъде записана, или в случай на рестарт, веднага след като Home Center 2 се стартира.

Между редове 43 и 45 сцената се указва да бъде стартирана само веднъж, в случай че бъде ръчно стартирана.

След като сцената работи, тя започва, от ред 48, да се превърта непрекъснато, което е от редове 50 до 53.

Стойностите на димера и датчика се вземат от редове 56, 69 и 82.

Проверка дали нивото на осветеност е твърде ниско, твърде високо или колкото трябва. Всеки от тези тестове има блок от код.
• Ако е твърде ниско – увеличава стойността на лампата с 1, стига лампата да не е вече напълно запалена.
• Ако е твърде високо – намалява стойността на лампата с 1, стига да не е вече изгасена.
• Ако е точно не прави нищо, до следващата проверка.

Редове 62 и 75 се използват да задават стойността на димера. Новата стойност се умножава по стойността на глобалната променлива. Тя, както казахме по-горе, може да бъде или 1 или 0. Следователно, както знаем от математиката, каквато и да е стойност умножена по 0 е равна на 0 и лампата остава изключена. Обратно, каквато и да е стойност умножена по 1 дава същата стойност, което определя нивото на димера. .

Някои забележки и допълнителни идеи.

Има няколко фактора оказващи влияние на настройките на тази сцена:
• Разликата в нивото на осветеност, която датчика ще подава (Параметър 40). Колкото по-малка е стойността, по прецизна, че е работата, но по-бързо ще се изчерпи батерията.
• Стойността на setLevel (ред 34 от основната сцена). Това е глобалното ниво на осветеност и ще бъде с различна стойност за различни помещения. Трябва опитно да се наблюдава работата на сцената в тестов режим, за да се настрои точно този параметър.
• Стойността на hysteresis (ред 35 от основната сцена). Това ще определи обхвата около setLevel, в който сцената ще възприема стойността като „достатъчно близка”. Колкото е по голяма тази стойност, толкова по-малко вероятно е лампата да пулсира. Ако, обаче, стойността е твърде голяма, осветеността ще скача осезаемо от едно ново на друго, а няма да остава сравнително равномерна.

За нас


Адрес:
България, София 1407, бул. “Банат” 19

Контакти

Телефон:
+359 888252576
Е-мейл:
sales@intellihome.bg