Powiadomienia za pomocą API

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Last edited by fracz on Sat Oct 28, 2017 7:55 pm, edited 2 times in total.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Przed wdrożeniem wersji takiej, której nie będę się wstydził pokazać, mam do Was kilka pytań. Przypadek użycia przedstawiony na filmiku to proste sprawdzanie co jakiś czas czy stan danego kanału jest zgodny z założonym i jeśli nie - powiadomienie jest pokazywane. Jeśli stan będzie spełniony - powiadomienie zniknie. Można tym realizować takie rzeczy jak przypominanie o zapalonym świetle, otwartej bramie itp, włączonym ogrzewaniu itp.

Podczas implementacji wpadło mi do głowy natomiast kilka innych pomysłów, np:
  1. warunki czasowe dla powiadomień (np. to że brama jest otwarta w dzień nie powinno skutkować powiadomieniem ale w nocy już tak)
  2. powiadomienia na podstawie temperatury wybranego kanału (np. rano "Ubierz dzieciom czapki" jak jest < 10 stopni)
  3. powiadomienia na podstawie jakichś bardziej skomplikowanych sytuacji (np. "Na zewnątrz jest cieplej niż w domu a masz zamknięte okno. Otwórz!" albo nawet kiler ficzur "Prognoza pogody mówi że będzie burza a okna są otwarte")
Dodatkowo, chyba fajnie byłoby móc uciszyć takie powiadomienie z poziomu telefonu w stylu "wiem że brama jest otwarta ale tak ma być przez najbliższą godzinę".

Czy macie jeszcze jakieś pomysły? Do czego (i czy w ogóle) korzystalibyście z takich powiadomień?

To co na pewno muszę poprawić to zużycie baterii, bo to co widzicie to (niestety) data polling, tj. urządzenie odpytuje co określony czas skrypty o powiadomienia które ma wyświetlić. Na filmiku trochę poczarowałem że to działa tak szybko (pyta się co 3s). Dziś testowałem u siebie przy odpytywaniu co 1 minutę i bateria mi się zużyła szybciej o około 20%. Ale już mam pomysł co z tym zrobić........ Tylko czasu nie ma od kogo pożyczyć.

Dlaczego nie powiadomienia PUSH? Z trzech powodów. Pierwszy: wszystkie rozwiązania na Androida, które są OOTB i nie trzeba pisać żadnej dedykowanej aplikacji są płatne. Po drugie, żadne z nich nie umożliwia sprawdzenia, czy dane powiadomienie zostało już wyświetlone po to by nie pokazywać go drugi raz. Po trzecie, nie można w tych aplikacjach ukrywać powiadomień jeśli zmieni się stan (to co widać na nagraniu), a bardzo mi na tym zależało.
User avatar
michael
Posts: 1320
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Post

Fajnie to działa. Nie mam na dzień dzisiejszy jakiś super pomysłów jak to można wykorzystać, ale tak jak pisałeś - powiadomienie, np. w nocy, że brama powinna być zamknięta, czy jakieś oświetlenie włączone, a nie jest - ma sens.
:mrgreen: :mrgreen: :mrgreen:
bicker
Posts: 483
Joined: Tue Feb 02, 2016 8:18 am

Post

czy dobrze rozumiem, że będzie wdrażane na serwerach produkcyjnych ???
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Nie. Powiadomienia oficjalne będą, ale na pewno nie tym sposobem.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Nadeszły takie czasy że komendy głosowe łatwiej zrobić od powiadomień...

Ale są, można testować. Instrukcja tutaj: https://github.com/fracz/supla-scripts/ ... ifications
andras
Posts: 636
Joined: Fri Dec 30, 2016 5:51 pm
Has thanked: 2 times
Been thanked: 4 times

Post

Witam

Zainstalowałem aplikację Automate , importowałem Flow SUPLA Notifications
gdy robię start to w logu mam błąd :

2017-06-03 21:46:18.705 INFO 13@1: Flow beginning
2017-06-03 21:46:18.706 INFO 13@39: File exists?
2017-06-03 21:46:18.715 INFO 13@40: File read text
2017-06-03 21:46:18.741 INFO 13@20: Variable set
2017-06-03 21:46:18.742 INFO 13@2: HTTP request
2017-06-03 21:46:18.760 FAIL 13@2: java.lang.IllegalArgumentException: Account not found: Supla
2017-06-03 21:46:18.761 INFO 13@2: Stopped by failure

jak można w SUPLA Notifications zmienic adres serwera , bo nie jestem pewien czy dobrze wpisałem
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Ha, o tym zapomniałem.

Trzeba raz wejść w edycję workflow i znaleźć pierwszy blok "HTTP Request" (czwarty od góry w pierwszej kolumnie). Następnie po jego wciśnięciu znaleźć pole "BASIC AUTHORIZATION ACCOUNT". Wcisnąć i wypełnić usera i hasło skonfigurowanego w skryptach.

Jeśli wpisałeś zły adres to przy próbie połączenia spyta o nowy.
andras
Posts: 636
Joined: Fri Dec 30, 2016 5:51 pm
Has thanked: 2 times
Been thanked: 4 times

Post

Wpisuję adres np https://xxxxxx.ddns.net/supla-scripts/ albo https://192.168.1.186/supla-scripts/
i za każdym razem wyrzuca żeby wpisać inny adres , tej ramce co wyskakuje zawsze jest https://yourserver.eu/supla-scripts/
jakby nie zapisywało mojego adresu , a w logu Invalid configuration .
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Poprawiłem nieco obsługę błędnego adresu URL. Spróbuj zaktualizować flow w Automate (pobrać jeszcze raz).

Sprawdź w przeglądarce który adres powinieneś wpisać: pod /supla-scripts/notifications/init powinna pokazać się liczba skonfigurowanych powiadomień.

Return to “Pomysły i koncepcje”