Aplikacja mobilna w wersji 1.6.0 NFC+

Aplikacja mobilna 1.6.0 NFC+

:warning: Ta funkcjonalność wymaga aplikacji mobilnej AIS dom w wersji >= 1.6.0 NFC+ (jeszcze testujemy przed dodaniem do Google Play) oraz aplikacji Asystent domowy w wersji >= 0.114.4b2 (też jeszcze testujemy przed oficjalnym wydaniem)

Opis możliwości skanowania tagów NFC.

Idea jest taka, żeby wykorzystać tagi NFC, które mamy w domu, do wykonywania automatyzacji na bramce.

Algorytm po zeskanowaniu taga NFC jest teraz taki:

  1. Sprawdzamy, czy tag ma rekord typu text i jeżeli tak, to wysyłamy do bramki treść tego tekstu jako komendę do wykonania (wywołujemy usługę ais_ai_service.process, która wykonuje komendę powiązaną z przesłaną sentencją)

  2. Jeżeli w zeskanowanym tagu NFC nie ma rekordu typu text, to wysyłamy do bramki identyfikator zeskanowanego taga NFC

Punkt 1. jest dość oczywisty - tak to działa od wersji 1.5.0.NFC.

Jeżeli chodzi o punkt 2. to istotne jest to, że po zeskanowaniu identyfikatora wyzwalamy na bramce zdarzenie (event) typu tag_scanned a w danych tego zdarzenia (w event_data) przekazujemy identyfikator taga tag_id.
Pozwala to na dodanie automatyzacji, której wyzwalaczem jest zdarzenie skanowanie taga NFC.

2 przykłady:

1. Po wystąpieniu zdarzenia tag_scanned Jolka mówi "Zeskanowano kod NFC {{ trigger.event.data.tag_id }}

Dodajemy automatyzację “Skan taga NFC z identyfikatorem”:

Wyzwalacz tej automatyzacji to zdarzenie (event) typu tag_scanned

Akcja do wykonania to uruchomienie serwisu mówiącego tekst. Tekstem jest informacja o zeskanowanym identyfikatorze:

service: ais_ai_service.say_it
data_template:
  text: Zeskanowano kod NFC {{ trigger.event.data.tag_id }}

2. Po wystąpieniu zdarzenia tag_scanned z konkretnym identyfikatorem (np. z karty płatniczej) przełączamy światło

Dodajemy automatyzację “Włącz światło w salonie po skanie karty płatniczej”:

Wyzwalacz tej automatyzacji to zdarzenie (event) typu tag_scanned z określonym tag_id

Akcja do wykonania to uruchomienie przełączenia (toggle) światła w salonie:

Powyższe przykłady dostępne są na instancji dom-demo:
https://dom-demo.paczka.pro

Tu można zobaczyć jak to działa:

5polubień

Czyli możemy wykorzystać starą kartę płatniczą, którą w normalnie niszczyliśmy?

Tak, możemy zeskanować dowolny tag NFC który jest czytany przez telefon (tag NFC w zegarku, głośniku itd…), może to być też działająca karta płatnicza.
Wszystko co się dzieje po skanie to wysłanie (bezpośrednio) do bramki w domu identyfikatora zeskanowanego taga NFC.

Jeżeli dodamy na bramce automatyzację wyzwalaną zdarzeniem zeskanowania taga o identyfikatorze xxx-yyy-zzz, to po wystąpieniu tego zdarzenia na bramce, uruchomimy tą automatyzację i wykonamy “całą magię” w domu.

Dokumentacja do tego jest właśnie uzupełniana i będzie dzisiaj opublikowana wraz z wersją 0.114.5 na kanale stabilnym.

PS
To dopiero początek tej funkcjonalności.W wersji 0.115 będzie jeszcze łatwiej:

2polubienia

jak dodać “nieaktywna/starą” kartę kredytowa aby działała jak na filmiku ? bo w nfc tools nie mogę nawet zapisać nic na niej bo mam komunikat “błąd zapisu”

Na karcie nic nie zapisujesz. Wykorzystujesz jedynie jej identyfikator do wywołania automatyzacji.

Nie można zapisywać na karcie kredytowej - też bym chciał tak doładować sobie konto :wink:
Karty bankowe możesz jedynie czytać - a w zasadzie dostaniesz tylko ID, które później używasz w automatyzacji jako wyzwalacz:
image
i łączysz z dowolną akcją w AIS.

Raz, dwa, trzy byłem :1st_place_medal:

Przecież w instrukcji było napisane że trzeba pobrać apke oraz mieć dowolny tag i na nim trzeba zapisać tekst jawny z poleceniem a nie było nic napisane aby odczytać id karty płatniczej a czy da się bez automatyzacji dodać zadanie typu włącz urządzenie xyz oraz gdzie znajdę to id potrzebne ?

Przeczytaj jeszcze raz ten temat od początku i postaraj się zrozumieć jak to działa.

Mam problem gdy chce dodać do automatyzacji z kartą aby powiedziało że zeskanowano mam taki komunikat “Message malformed: extra keys not allowed @ data[‘service’]” więc jak zrobić aby po zeskanowaniu karty np włączyło światło i powiedziało że włącza światło ?

Wyglada na to ze podales niepotrzebne parametry. Przetestowales usluge mowienia za pomoca konsoli developerskiej? Tam znajdziesz podpowiedz jakie powinienes podac parametry do uslugi. Ew wklej kod/screenshota z automatyzacji.

Chciałem zrobić tego typu jak na filmiku z ostatnią kartą że coś się dzieje i gada według tego co jest napisane tutaj więc po prostu przekopiowalem całość a że tak się dziwnie wkleiło a w telefonie nie mogę usunąć tych pustych lini

Pisales ta automatyzacje recznie? Dziwnie wyswietla sie formatowanie a yaml jest wrazliwy na wciecia i znaki nowej linii :confused: Probowales wywolac to polecenie uzywajac narzedzia developerskie? To bardzo pomocna funkcjonalnosc, mozesz przetestowac wolanie roznych uslug, mozesz zobaczyc przykladowe wywolania.

Sama akcja tez jest dziwnie opisana, wywolanie uslugi say_it to raptem 3 linijki tekstu

service: ais_ai_service.say_it
data:
  text: test

image

Jesli chcesz wywolac kilka polecen, np zapal swiatlo + powiedz tekst, to dla kazdego polecenia powinienes dodac osobno akcje.
Last but not least - podanie device_id sugeruje ze chcesz aby powiadomienie zostalo odczytane na konkretnym telefonie a nie na bramce. Wtedy powinienes uzyc uslugi ais_ai_service.mob_notify

Ręcznie to tylko dodałem ten fragment odpowiedzialny za gadanie a nawet gdy wybiorę z listy i dodam osobno akcję to i tak nic nie gada czy jest przed czy za tym co ma się wykonać

a te notify nie jest jak nazwa wskazuje to wyświetlenie powiadomienia na telefonie ?

No tak, dlatego napisalem Last but not least - podanie device_id sugeruje ze chcesz aby powiadomienie zostalo odczytane na konkretnym telefonie a nie na bramce. Automatyzacja wklejona przez Ciebie nie byla dla mnie jasna, nie wiedzialem czy chcesz powiadomienie na bramce ccy na telefonie.
Jesli automatyzacja z prostym say_it nie dziala to:

  1. Sprawdz czy masz bledy w logach
  2. Uruchom usluge say_it w konsoli developerskiej

Te device_id to urządzenie które ma zostać włączone po zeskanowaniu karty a jak to sprawdzić ? Bo ja chyba nie umiem jeszcze testować usług gdyż nic nie słyszę jak daje uruchom usługę z wartościami domyślnymi

Dobra, krok po kroku.

  1. Wejdz w narzedzia developerskie, wywolaj usluge say_it i daj znac czy cos slyszysz w glosnikach
  2. Zrob prosta automatyzacje - ustaw sobie wyzwalacz jaki potzrebujesz (np odczyt karty NFC), w akcjach daj tylko i wylacznie wywolanie say_it
  • uruchom automatyzacje recznie (na liscie automatyzacji jest przycisk uruchom)
  • uruchom automatyzacje poprzez faktyczne wykonanie akcji wyzwalajacej, np przylozenie karty z tagiem NFC)
  1. Za pierwszym razem gdy wywołuje usluge to słyszę na telefonie(tylko) oraz Na głośnikach słyszę za każdym razem.
  2. Przyciskiem uruchom jest identycznie jak przez narzędzia deweloperskie, i po przyłożeniu karty jest to samo nawet gdy zmienię hasło które ma wypowiadać to na telefonie nic nie słychać a na bramce za każdym razem dowolne słowo słyszę
  1. Jesli slyszysz na telefonie tylko raz, to musialbys popatrzec w logach czy jest cos niepokojacego
  2. Rozumiem ze masz dzialajaca automatyzacje w postaci: jesli karta NFC zostanie odczytana to bramka informuje o tym glosno. Teraz dodaj kolejny krok - zalaczenie urzadzenia.
  1. gdzie ich szukać czemu telefon tylko raz gada a bramką cały czas
    2.widze że niema znaczenia czy say_it jest jako pierwsze czy drugie bo utworzyłem nowa automatyzację na innej karcie i telefon nie wypowiedział ani słowa a bramką za każdym razem choć na 2 kartach mam inne słowa

Czyżby jest jakiś diley czy coś skoro nawet w narzędziach deweloperskich telefon (Xiaomi) gada tylko za pierwszym wywołaniem