Asi mnozí z Vás se setkali se situací, že při odchodu z vlastního příbytku nevěděli, zda náhodou nenechali otevřené některé z oken. Museli jste tak jít zkontrolovat okno do konkrétní místnosti. V tomto blogu bude prezentován krátký a jednoduchý LUA skript, který Vám pošle PUSH notifikaci s informací o okně nebo dveřích, které zůstaly otevřené.
Tento LUA skript lze spustit např.:
Spuštění skriptu můžete navázat na libovolnou podmínku, která Vám vyhovuje.
V níže uvedeném LUA skriptu je třeba udělat pár úprav aby fungoval i na vámi používané řídící jednotce.
Potřebné je znát:
1. ID hodnoty okenních a dveřních senzorů, které chcete kontrolovat. (8. řádek v LUA)
Tyto hodnoty následně vložte v LUA skriptu na 8. řádek, který vypadá následovně -> sensors = {33, 37, 59}
2. ID hodnoty Mobilních Zařízení, na které chcete posílat PUSH oznámení. (9. řádek v LUA)
Tyto hodnoty následně vložte v LUA skriptu na 9. řádek, který vypadá následovně -> 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 notifikace na mobilním telefonu vypadá např. takto v původní i nové aplikaci pro FIBARO řídící jednotky.
Pozn. 1: Uvedený LUA skript slouží jako inspirace, změny si můžete zakomponovat podle sebe. např. notifikaci neposílat pouze jako PUSH notifikaci ale jako email.
Pozn. 2: Pokud chcete do PUSH oznámení posílat pouze název místnosti - zakomentujte (-) všechny řádky v LUA skriptu obsahující řetězec "message1".
Pozn. 3: Pokud chcete do PUSH oznámení posílat jen název konkrétního zařízení - zakomentujte (-) všechny řádky v LUA skriptu obsahující řetězec "message2".
ID Z-Wave okenních a dveřních senzorů / zařízení víte získat několika způsoby:
ID mobilních zařízení víte získat několika způsoby:
Použití Aeon Labs minimoto ve Fibaro HC2
Jak použít Aeon Labs minimoto ve Fibaro HC2 pomocí LUA scény.
LUA Skript: Kontrola Batérií - Fibaro Home Center 2
Jednoduchý LUA skript pro kontrolu stavu bateriových zařízení.
Realizace a nastavení zařízení pro spouštění scén Fibaro Swipe pomocí 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.