AIS dom
Wprowadzenie
To nasza główna aplikacja, która działa zarówno na bramce jak i na innych urządzeniach, w tym: tablety, telefony oraz Android TV.
Podstawowa funkcjonalność aplikacji mobilnej to wyświetlanie internetowej aplikacji Asystent domowy działającej na bramce, tej samej aplikacji, którą możemy uruchamiać i konfigurować w przeglądarce internetowej Aplikacja internetowa.
Przejście do ustawień aplikacji.
Sygnalizacja trybu połączenia z bramką (lokalnie / tunel).
Mikrofon do komunikacji z asystentem głosowym.
Wskaźnik poziomu dźwięku w mikrofonie - obrazuje to jak asystent nas słyszy.
uruchomienie trybu gestów.
Aplikacja jest czymś w rodzaju ramki/przeglądarki do aplikacji internetowej działającej na bramce. Dostarcza też nam interfejs do API systemu Android oraz konsolę środowiska Linux (zawierającego minimalny system podstawowy wraz z interpreterem języka Python, Node.js oraz Clang).
Instalacja
Aplikacja dostępna jest za darmo (bez reklam, mikropłatności itp) w sklepie Google Play pod nazwą AIS dom. Możesz zeskanować telefonem poniższy kod, by przejść do instalacji aplikacji w Google Play:
Kod źródłowy aplikacji dostępny jest w naszym publicznie dostępnym repozytorium Podpisane wersje publikujemy też na naszym serwisie ze składowymi systemu
Konfiguracja za pomocą kreatora
Po pierwszym uruchomieniu aplikacji pojawi się kreator, który przeprowadzi nas krok po kroku przez prosty proces konfiguracji

Dostęp do mikrofonu
W pierwszym kroku kreatora możemy włączyć dostęp do mikrofonu.

Dostęp do dysku
W kolejnym kroku kreatora możemy włączyć dostęp do plików na urządzeniu mobilnym.

Dostęp do lokalizacji
W kolejnym kroku kreatora możemy włączyć dostęp do lokalizacji.

Dostęp do kamery
W kolejnym kroku kreatora możemy włączyć dostęp do kamery.

Skanowanie identyfikatora bramki
Na koniec możemy zeskanować identyfikator naszej bramki lub połączyć się z bramką demo.

Każda bramka posiada swój unikalny identyfikator, jest on losowo wygenerowany przy pierwszym uruchomieniu i pozostanie stały przez cały okres użytkowania urządzenia. Identyfikator bramki znajdziemy klikając w pozycję "Przydatne linki", w menu po lewej stronie w aplikacji webowej Asystent domowy:
Konfiguracja ustawień apliacji
W każdej chwili możemy przejść do ustawień aplikacji naciskając przycisk z trzema kropkami po lewej stronie na dolnej belce w aplikacji
W ustawieniach możemy ręcznie wybrać parametry aplikacji lub uruchomić ponownie kreator ustawień
Adres URL lub identyfikator bramki
Najważniejszy parametr to adres URL lub identyfikator bramki, należy poprawnie ustawić adres lub identyfikator bramki, by komunikacja z bramką była możliwa. Jeżeli chcemy łączyć się z naszą bramką będąc poza siecią domową to należy pamiętać o włączeniu dostępu z Internetu.
Funkcjonalność aplikacji
Aplikacja Asystent domowy
Podstawowa funkcjonalność aplikacji mobilnej to wyświetlanie internetowej aplikacji Asystent domowy działającej na bramce, tej samej aplikacji, którą możemy uruchamiać i konfigurować w przeglądarce internetowej Aplikacja internetowa.
Wysyłanie komend głosowych do bramki
Po naciśnięciu przycisku mikrofonu możemy powiedzieć komendę i przesłać ją do wykonania do bramki.
Skanowanie tagów NFC
Jeżeli nasz telefon ma wbudowany czytnik kodów NFC, to możemy przesyłać do bramki komendy zapisane w kodach NFC lub identyfikatory zeskanowanych tagów NFC.
Komenda w tagu NFC
Zamiast mówić komendę lub wpisywać ją w okienko czatu z Asystentem domowym możemy przyłożyć odblokowany telefon do taga NFC i przesłać do bramki komendę zapisaną tekstowo w tagu NFC.
Do zapisu tekstu do tagów NFC polecamy darmową aplikację NFC Tools.
Aplikacja ta jest bardzo intuicyjna. Po jej uruchomieniu w pierwszej zakładce możemy odczytać tag NFC i sprawdzić, czy jest odblokowany do zapisu. Jeżeli tag jest zapisywalny, to przechodzimy do zakładki ZAPIS i wybieramy opcję Dodaj pozycję. Następnie wybieramy pozycję typu Tekst i wprowadzamy tekst polecenia/komendy, która ma być wykonana na bramce, np. Włącz radio Eska Rock
i zatwierdzamy OK.
Po zapisie tekstu komendy do naszego taga NFC wychodzimy z aplikacji NFC Tools.
Teraz zeskanowanie tego taga NFC spowoduje przesłanie zapisanej w nim komedy bezpośrednio do naszej bramki.
Co spowoduje uruchomienie akcji powiązanej z komendą
W ten sposób możemy wykonywać dowolne rzeczy na bramce - uruchamiać automatyzację, sceny, sterować urządzeniami, pytać o status czujników, odtwarzać audio itd..
Skan identyfikatora NFC
Jeżeli w zeskanowanym tagu NFC nie ma rekordu typu text, to wysyłamy do bramki sam identyfikator zeskanowanego taga NFC. W ten sposób wyzwalamy na bramce zdarzenie (event) typu tag_scanned a w danych tego zdarzenia (w event_data) przekazujemy identyfikator taga tag_id. Ta funkcjonalność pozwala na wykorzystanie tagów NFC, które mamy w domu, do wykonywania automatyzacji na bramce.
Przykład, w jaki sposób można skorzystać z tej funkcjonalności, opisany jest szczegółowo w Automatyzacja wyzwalana tagiem NFC.
Sterowanie gestami
Ikona z prawej strony na dolnym pasku aplikacji, pozwala na przełączanie aplikacji w tryb sterowania gestami - by przełączyć w tryb sterowania gestami należy nacisnąć i przytrzymać tę ikonę.
Definiowanie gestów
Gesty możemy definiować w ustawieniach aplikacji.
Z menu dostępnego w ustawieniach wybieramy opcję "Definiowanie gestów"
Klikamy przysisk "Dodaj" by przejść do definiowania nowego gestu
Rysujemy na ekranie gest i zapisujemy go wraz z komendą
Definiowanie gestów
Klikamy na ikonkę po lewej stonie na dole aplikacji, żeby przejść do ustawień aplikacji.
Z menu dostępnego w ustawieniach wybieramy opcję "Definiowanie gestów"
Klikamy przysisk "Dodaj" by przejść do definiowania nowego gestu
Rysujemy na ekranie gest i zapisujemy go wraz z komendą
Synchronizacja z bramką
Opcja raportowania do bramki uruchomi serwis który okresowo będzie przesyłał do bramki lokalizację urządzenia oraz informacje o stanie niektórych czujników w telefonie.
To ile statusów zostało wysłanych do bramki, możemy zobaczyć w powiadomieniu aplikacji.
Takie dane w powiązaniu z osobą w systemie pozwalają odpowiedzieć na pytanie typu: "Gdzie jest Jolka" oraz na uruchamianie automatyzacji w zależności statusu czujników w telefonie czy też od lokalizacji osoby - szczegóły w Automatyzacje - wykrywanie obecności
Powiadomienia z bramki
Na bramce dostępna jest usługa ais_ai_service.mob_notify
, która umożliwia wysłanie z bramki powiadomienia do aplikacji mobilnej AIS dom.
Dzięki temu za pomocą automatyzacji możemy informować o zdarzeniach w naszym domu wybraną aplikację mobilną.
Powiadomienia są nielimitowane, mogą zawierać zdjęcie oraz tekst do przeczytania. Przykład, w jaki sposób można skorzystać z tej funkcjonalności, opisany jest w dokumentacji integracji Galeria, w sekcji "Wysyłanie zdjęcia w powiadomieniu"
Komendy wysyłane z bramki do aplikacji mobilnej
Na bramce dostępna jest usługa ais_ai_service.mob_request
, która umożliwia wysłanie z bramki komendy (zapytania/żądania) do aplikacji mobilnej AIS dom.
Dzięki temu za pomocą automatyzacji możemy zdalnie z bramki włączyć mikrofon na urządzeniu mobilnym lub zapytać o aktualną lokalizację urządzenia.
info
Na przykładach na forum pokazujemy jak wykorzystać tę funkcjonalność, poniżej znajduje się opis serwisów jakie są dostępne.
komenda | dane/parametry | opis |
---|---|---|
micOn | Zdalne włączenie mikrofonu na urządzeniu w celu odebrania komendy głosowej | |
locationUpdate | Wysłania żądania aktualizacji lokalizacji, uruchomienie serwisu lokalizacji na 30 sekund | |
locationServiceOn | Zdalne włączenie serwisu lokalizacji na telefonie | |
locationServiceOff | Zdalne wyłączenie serwisu lokalizacji na telefonie | |
hotWordServiceOn | Zdalne włączenie serwisu nasłuchiwania słowa aktywującego komendę głosową na telefonie | |
hotWordServiceOff | Zdalne wyłączenie serwisu nasłuchiwania słowa aktywującego komendę głosową na telefonie | |
audioServiceOn | Zdalne włączenie serwisu odtwarzacza audio na telefonie | |
audioServiceOff | Zdalne wyłączenie serwisu odtwarzacza audio na telefonie | |
sayIt | { "text": "Cześć co słychać" } | Przesłanie do telefonu tekstu do powiedzenia |
playAudio | { "url": "https://an.cdn.eurozet.pl/ant-kat.mp3" } | Przesłanie do telefonu adresu audio do odtwarzania |
stopAudio | Zdalne zatrzymanie odtwarzania audio na telefonie | |
findPhone | Zdalne włączenie wyszukiwania telefonu - telefon zwiększa głośność na 100%, mówi "Tu jestem" i dzwoni |
UWAGA
Można z bramki (do której jesteśmy zalogowani) wysłać komendę do urządzenia mobilnego i zdalnie "zmusić" je do jej wykonania, tylko jeśli włączony jest stosowny dostęp (do mikrofonu i/lub lokalizacji) na urządzeniu mobilnym.
Pokazujemy w powiadomieniu, że taka zdalna komenda jest uruchomiona - żeby było to jasne dla właściciela urządzenia.
Opis techniczny działania aplikacji
Podstawowa funkcjonalność to wyświetlanie internetowej aplikacji Asystent domowy działającej na bramce, tej samej aplikacji, którą możemy uruchamiać i konfigurować w przeglądarce internetowej Aplikacja internetowa. Aplikacja wyświetlana jest w komponencie WebView systemu Andorid, komponent ten umożliwia wyświetlanie treści aplikacji webowej jako aktywności w aplikacji. W Android od wersji 7.1.2 komponent WebView może używać tego samego silnika co przeglądarka Chrome, co umożliwia bardzo responsywne działanie aplikacji.
Dodatkowo na dolnej belce w aplikacji mamy następujące przyciski:
przejście do ustawień aplikacji
sygnalizacja trybu połączenia z bramką (lokalnie / tunel)
mikrofon do komunikacji z asystentem głosowym. Mikrofon używa wbudowanego w system Android mechanizmu SpeechRecognizer
uruchomienie trybu gestów
Połączenie z bramką
Możesz ręcznie wpisać adres URL do aplikacji webowej działającej na bramce, np:
w takim przypadku aplikacja AIS dom będzię łączyła się tylko z podanym przez Ciebie adresem URL.
Możesz zeskanować QR kod z unikalnym identyfikatorem swojej bramki, kod ten dostępny jest w aplikacji webowej Asystent domowy jako pierwsza pozycja w menu "Przydatne linki":
Diagram połączenia
Jeśli podasz identyfikator, to aplikacja sama będzie próbowała ustalić, czy połączenie z bramką ma być lokalne, czy przez szyfrowany tunel. Ustalenie połączenia z bramką działa wg następującego schematu:
Priorytet ma połączenie lokalne, jeśli jest dostępne.