Asi mnohí z Vás sa stretli so situáciou, že pri odchode z vlastného príbytku nevedeli, či náhodou nenechali otvorené niektoré z okien. Museli ste tak ísť skontrolovať okno do konkrétnej miestnosti. V tomto blogu bude prezentovaný krátky a jednoduchý LUA skript, ktorý Vám pošle PUSH notifikáciu s informáciou o okne alebo dverách, ktoré ostali otvorené.
Tento LUA skript sa môže spustiť napr.:
Spustenie skriptu môžete naviazať na ľubovoľnú podmienku, ktorá Vám vyhovuje.
V nižšie uvedenom LUA skripte je potrebné urobiť pár úprav aby fungoval aj na Vami používanej riadiacej jednotke.
Potrebné je poznať:
1. ID hodnoty Okenných a Dverových senzorov, ktoré chcete kontrolovať. (8. riadok v LUA)
Tieto hodnoty následne vložte v LUA skripte na 8. riadok, ktorý vyzerá nasledovne -> sensors = {33, 37, 59}
2. ID hodnoty Mobilných Zariadení, na ktoré chcete posielať PUSH notifikácie. (9. riadok v LUA)
Tieto hodnoty následne vložte v LUA skripte na 9. riadok, ktorý vyzerá nasledovne -> phones = {205, 206}
--[[
%% properties
%% weather
%% events
%% globals
--]]
sensors = {33, 37, 59} -- IDs of Windows or Door sensors
phones = {205, 206} -- IDs of Mobile Devices for PUSH Notifications
local sensor_triggered = 0;
local sensor_name = 0;
local sensor_room = 0;
local message1 = "Okno miestnost: "; -- content of PUSH notification for Room Name, can be changed
local message2 = "Okno zariadenie: "; -- content of PUSH notification for Device Name, can be changed
local message3 = "Vsetko zatvorene!"; -- content of PUSH notification when no sensor is triggered
function sensors_check()
for i=1, #sensors do
if(tonumber(fibaro:getValue(sensors[i], "value")) > 0) then
sensor_triggered = 1;
sensor_name = fibaro:getName(sensors[i]);
sensor_room = fibaro:getRoomNameByDeviceID(sensors[i]);
message1 = message1 .. sensor_room .. " | ";
message2 = message2 .. sensor_name .. " | ";
end
end
end
function message_push()
if (sensor_triggered == 1) then
for j=1, #phones do
fibaro:call(phones[j], "sendPush", message1);
fibaro:call(phones[j], "sendPush", message2);
end
fibaro:debug(message1);
fibaro:debug(message2);
elseif (sensor_triggered == 0) then
for j=1, #phones do
fibaro:call(phones[j], "sendPush", message3);
end
fibaro:debug(message3);
end
end
-- main code
sensors_check()
message_push()
Push notifikácia na mobilnom telefóne vyzerá napr. takto v pôvodnej aj novej aplikácii pre FIBARO riadiace jednotky.
Pozn. 1: Uvedený LUA skript slúži ako inšpirácia, zmeny si môžete zakomponovať podľa seba. napr. notifikáciu neposielať len ako PUSH notifikáciu ale ako email.
Pozn. 2: Ak chcete do PUSH notifikácie posielať len názov miestnosti – zakomentujte ( -- ) všetky riadky v LUA skripte obsahujúce reťazec „message1“.
Pozn. 3: Ak chcete do PUSH notifikácie posielať len názov konkrétneho zariadenia – zakomentujte ( -- ) všetky riadky v LUA skripte obsahujúce reťazec „message2“.
ID Z-Wave okenných a dverových senzorov / zariadení viete získať viacerými spôsobmi:
ID mobilných zariadení viete získať viacerými spôsobmi:
Použitie Aeon Labs Minimote vo Fibaro HC2
Ako použiť Aeon Labs Minimote vo Fibaro HC2 pomocou LUA scény.
LUA Skript: Kontrola Batérií - Fibaro Home Center 2
Jednoduchý LUA skript na kontrolu stavu batériových zariadení.
Realizácie a nastavenie zariadenia na spúšťanie scén Fibaro Swipe pomocou LUA skriptu.
2 Komentáre
Norbert Kovács 25.12.2020 Odpovedať
Hello,the scene runs on the controller, but no push notification comes
- I entered phone IDs
do I need to change anything else?
thank you and merry christmas!
SmarterHOME Team 26.12.2020 Odpovedať
Hello,thank you for comment.
Are you sure that you entered correct IDs of mobile/smart devices?
If yes then - Are you able to connect to your HC2 trough cloud (FIBARO ID service)?
If yes, try to reboot your HC2.
Have a nice day.