W załączeniu urządzenie wirtualne weryfikujące stan bateterii. Urządzenie powiadamia nas Pushem (iOS) o niskim poziomie baterii. Weryfikuje jedynie urządzenia nadrzędne, więc dla MotionSensora będzie to jedno powiadomienie a nie 3.
1) Wymagane jedynie stworzenie zmiennej globalnej Phone_M_ID z ID telefonu, który ma być powiadomiony o niskim stanie baterii.
Dodatkowo zamieszczam kod, gdyby ktoś chciał wykorzystać w scenie.
-- ustaw poziom informowania o stanie baterii
battery_level_notify = 10;
-- pobierz tel, który należy poinformować
notify_phone = fibaro:getGlobalValue("Phone_M_ID");
-- pobierz dane o urzadzeniach z HC2
HC2 = Net.FHttp("127.0.0.1", 11111);
response ,status, errorCode = HC2:GET("/api/devices/")
if (tonumber(status) == 200) then
jsonTable = json.decode(response);
for key,value in pairs(jsonTable) do
-- wybierz urzadzenia nadrzedne i takie ktore moga posiadac atrybut battery
if jsonTable[key].interfaces ~= nil and tonumber(jsonTable[key].parentId) == 1 then
interfaceTable = jsonTable[key].interfaces;
for ikey, ivalue in pairs(interfaceTable) do
propertiesTable = jsonTable[key].properties;
-- weryfikacja czy urządzenie jest bateryjne
if interfaceTable[ikey] == "battery" then
notifier = jsonTable[key].name .. " - battery level: " .. jsonTable[key].properties.batteryLevel;
fibaro:debug(notifier);
if tonumber(jsonTable[key].properties.batteryLevel) < battery_level_notify then
notifier = "Warning - " .. notifier;
fibaro:log(notifier);
fibaro:call(tonumber(notify_phone), "sendPush", notifier);
end;
end;
end;
end;
end;
end;