Battery check

  • 16 Odpowiedzi
  • 6972 Wyświetleń

0 użytkowników i 2 Gości przegląda ten wątek.

*

Offline marecki_0luk1

  • Administratorzy
  • ***** 430
  • 26
  • Nazwa i wersja ID: HC3 5.070.42 / HC2 4.600
Battery check
« dnia: Marzec 31, 2015, 09:50:56 pm »
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;
« Ostatnia zmiana: Marzec 31, 2015, 10:38:15 pm wysłana przez marecki_0luk1 »
Odp: Battery check
« Odpowiedź #1 dnia: Grudzień 24, 2016, 01:40:42 am »
Skopiowałem wszytsko co tu podałes, nawet ikonke zaimportowałem. W zmienych utowrzylem co podales, ale po naduszeniu przycisku na wirtualnym urzadzeniu nic sie nie dzieje i dodatkowo znika ikonka baterii:)
*

Offline confesor

  • ** 82
  • 1
  • Nazwa i wersja ID: Hc2 4.056/4.100 HCLite/ bluboc/Samsung
Odp: Battery check
« Odpowiedź #2 dnia: Luty 16, 2017, 01:58:39 am »
witam - nie dochodza mi powiadomienia push - zastanawiam sie - moze zle id telefonu podaje w zmiennej globalnej ( czy to chodzi o numer urzadzenia czy nazwe ktora moge znalezc w opcjach przydzielanych uprawnien??)
*

Offline marecki_0luk1

  • Administratorzy
  • ***** 430
  • 26
  • Nazwa i wersja ID: HC3 5.070.42 / HC2 4.600
Odp: Battery check
« Odpowiedź #3 dnia: Luty 22, 2017, 04:13:18 pm »
wrzuc co wypluwa debug
*

Offline amis

  • * 14
  • 0
  • Nazwa i wersja ID: AMiS
Odp: Battery check
« Odpowiedź #4 dnia: Listopad 13, 2017, 02:51:23 pm »
Cześć,
jestem w tym trochę zielony ...
u mnie też nic się nie dzieje.
w scenie debug pisze:
"[DEBUG] 14:49:33: line 14: attempt to index global 'Net' (a nil value)"
natomiast w urządzeniu wirtualnym debug wypisuje urządzenia, ale nie przychodzi powiadomienie
Prośba o info.
Pozdr.
« Ostatnia zmiana: Listopad 13, 2017, 03:53:40 pm wysłana przez amis »
*

Offline tom3sko

  • ** 94
  • 1
  • Nazwa i wersja ID: HC 2 4.110
Odp: Battery check
« Odpowiedź #5 dnia: Listopad 20, 2017, 08:26:41 pm »
nie przychodzi ci powiadomienie gdyż nie masz slabszej bateri niż 10 %.
W pierwszej linijce zwiększ minimalny poziom bateri na np 98 i zobaczysz ile Ci przyjdzie powiadomień.
*

Offline bsmart

  • ** 37
  • -3
Odp: Battery check
« Odpowiedź #6 dnia: Listopad 21, 2017, 10:13:00 pm »
Witam,
a skąd wziąć ID telefonu i jak wpisać do zmiennej oraz czy zadziała to na androidzie?
notify_phone = fibaro:getGlobalValue("Phone_M_ID");

i kolejne pytanie, skąd wziąć dane połączenia Net.FHttp?
-- pobierz dane o urzadzeniach z HC2
HC2 = Net.FHttp("127.0.0.1", 11111);

z góry dzięki za info.
*

Offline tom3sko

  • ** 94
  • 1
  • Nazwa i wersja ID: HC 2 4.110
Odp: Battery check
« Odpowiedź #7 dnia: Listopad 22, 2017, 08:58:33 am »
Najprostszą metodą poznania kodu bądź niektórych danych jak w twoim przypadku jest stworzenie sceny bloczkowej, zapisanie jej a potem przeksztalcenie w scenę LUA.
Zrób scenę chwilowa np opartą na jakimś interwale
Następnie z dalszej akcji wybierz "To"
Potem użyj powiadomienia i wybierz z listy swój telefon.
Zapisz scene, przełącz ją w tryb edycji i podejzyj swoje ID.

Oczywiście że dziala na androidzie.
Wartości do pobrania danych nie zmieniasz.
« Ostatnia zmiana: Listopad 22, 2017, 12:09:08 pm wysłana przez tom3sko »
*

Offline bsmart

  • ** 37
  • -3
Odp: Battery check
« Odpowiedź #8 dnia: Listopad 23, 2017, 12:10:43 am »
a jak dokładnie ma wyglądać ta zmienna jeśli w kodzie lua mam fibaro:call(7, "sendDefinedPushNotification", "302")?
*

Offline tom3sko

  • ** 94
  • 1
  • Nazwa i wersja ID: HC 2 4.110
Odp: Battery check
« Odpowiedź #9 dnia: Listopad 23, 2017, 01:25:37 pm »
7 to ID telefonu
302 to wiadomość która utwozyles w panelu powiadomień.
Ciebie interesuje tylko ID które musisz wpisać w panelu zmiennych w utworzonej przez Ciebie zniennej Phone_M_ID
*

Offline bsmart

  • ** 37
  • -3
Odp: Battery check
« Odpowiedź #10 dnia: Listopad 24, 2017, 12:31:39 am »
A czy ta część kodu powinna pozostać bez zmian?

-- pobierz dane o urzadzeniach z HC2
HC2 = Net.FHttp("127.0.0.1", 11111);
*

Offline kvothe

  • * 6
  • 0
Odp: Battery check
« Odpowiedź #11 dnia: Listopad 25, 2017, 10:44:38 am »
Działa :) świetne i przydatne urządzenie virtualne.

Próbowałem trochę to przerobić aby HC2 wysyłał powiadomienie "Wszystkie baterie OK"  w przypadku gdy stan baterii wszystkich urządzeń jest wyższy niż założony w zmiennej, ale niestety wymiękłem, za cienki jestem w tym.

Ale może kiedyś znajdzie się ktoś, komu się to uda i będzie miał chęci:)
*

Offline bsmart

  • ** 37
  • -3
Odp: Battery check
« Odpowiedź #12 dnia: Grudzień 01, 2017, 12:07:30 am »
A czy jest opcja aby stworzyć podobny kod do sprawdzania sterowników rolet a dokładniej poziomu ich zamknięcia?
*

Offline bsmart

  • ** 37
  • -3
Odp: Battery check
« Odpowiedź #13 dnia: Grudzień 19, 2017, 11:02:49 pm »
Ponawiam zapytanie ;)

A czy jest opcja aby stworzyć podobny kod do sprawdzania sterowników rolet a dokładniej poziomu ich zamknięcia?
*

Offline viperlodz

  • Moderator Globalny
  • ***** 838
  • 23
  • Nazwa i wersja ID: HC3 / HC2/ HC3L / Yubii
Odp: Battery check
« Odpowiedź #14 dnia: Grudzień 20, 2017, 08:43:06 am »
Ponawiam zapytanie ;)

A czy jest opcja aby stworzyć podobny kod do sprawdzania sterowników rolet a dokładniej poziomu ich zamknięcia?
Tak