Wywołanie usługi ais_ai_service.mob_notify z Node-RED

Podpowedzcie proszę jak wywołać usługę ais_ai_service.mob_notify bezpośrednio z Node_RED? Np. taką jak poniżej.

device_id: mobile_ais_dom-xxxxxxxxxxxxxxxx
message: ‘Hej, to jest test powiadomień.’
title: Powiadomienie z AiS.
say: true
notification_id: 1
click_action: /lovelace/ 0

Pokażesz jeszcze jak wygląda prawidłowa składnia w “Data” ?

Dzięki za pomoc, powiadomienia już działają. Dla innych co się uczą jak ja poniżej pełny wpis.

Czy dobrze rozumiem że w swoim powiadomieniu używasz dwóch zmiennych, w “messaage” to zapewne do powiadamiania co zabierają, a do czego ta zmienna w “notification_id” ?
Skąd bierzesz te zmienne?

Buduję je wcześniej. Notifocation_id mam inne dla każdej wiadomości, np. Śmieci Bio mają id 3 i nadpisują się, ale nie nadpisują śmieci resztkowych z id 4, itp.

Zrobił mi się bałagan w powiadomieniach z wykorzystaniem ais_ai_service.mob_notify, mam ich tak dużo że się gubię…
Ma ktoś może gotowca który wykorzystuje subflow na zasadzie jak w tym filmie ?
Co wpisać w noda function?

Mam chwile to postaram się opisać moje powiadomienia w Node-Red.
Korzystam z przygotowanego Subflow:

Założenia:

  • Wysyłając wiadomość zaznaczam w Properties do kogo ma być powiadomienie wybierając TRUE przy zadeklarowanym odbiorcy
    (bartek, weronika, system - czyli powiadomienia “persistent_notification”, jolka - powiadomienia tylko na głośnik)
  • Powiadomienia są uzależnione od lokalizacji. Jeśli jestem w domu powiadomienie usłyszę na głośniku, jeśli jestem poza domem dostane powiadomienie na aplikację
  • Każde z powiadomień do konkretnej osoby jest zapisywane na prywatnej liście (utworzona zmienna pomocnik typ: input_select.info_bartek) - kasowana jest codziennie w nocy
    3
    Mam dwie listy powiadomień i każdy użytkownik widzi tylko swoja listę (administrator oczywiście ma dostęp do wszystkich). Lista daje możliwość przejrzenia historii.

Poniżej zamieszczam gotowca do ściągnięcia do NR.
flows.json (17,8 KB)

Do poprawnego działania potrzebne będzie utworzenie dwóch pomocników
(aby byli widoczni w NR konieczny restart NR - u mnie bramki)

Utworzenie dwóch nowych widoków z URL (u mnie np. info_bartek)

Na każdym z widoków utworzenie kart Markdown

W subflow trzeba dodać adresy ID urządzeń na które ma być wysłane powiadomienie:
(np. 6asvb3f6e08922d17fe2ed2eafxxxxxx)
8

I zmienić ENCJE osoby na właściwą dla Waszego systemu:

I przypominam dla tych co mogą nie wiedzieć że po za importowaniu całego pliku FLOW.json kopiuje się adres mojego serwera HomeAssistant. Trzeba go usunąć i ustawić swój właściwy:
10

Przykładowe wywołanie - trzeba zaznaczyć TRUE w adresacie do którego ma trafić powiadomienie:
7

Treść funkcji:

msg.payload = “Testowa wiadomość”;
return msg;

Jeśli ma ktoś pomysł jakby można to usprawnić albo ciekawie rozbudować to chętnie wysłucham podpowiedzi.

1 polubienie

@bartas87poz dokładnie o to mi chodziło.
Kawał dobrej roboty :clap:
Zaczynam przerabiać Twoje flow na swoje potrzeby, dzięki za podzielenie się :+1:

Brakuje mi jeszcze żeby wykorzystać pozostałe opcje dla ais_ai_service.mob_notify tj. image i say:


ale mam nadzieje, że sobie poradzę a jak nie to będę prosił o pomoc :wink:

Na wykorzystanie image nie miałem pomysłu (nie wiem co miałoby przekazać takie zdjęcie, bo subflow wykorzystuje w każdej komunikacji). Natomiast przy say mam pytanie. Próbowałem wywoływać ais_ai_service.mob_notify z ustawionym parametrem true i false. I w żaden sposób nie było to czytane (u mnie na telefonie nie było różnicy). Czy u Was ten parametr działa?

image wykosztuje np. do przesłania zdjęcia z kamery

Wykorzystuje i działa ale ja mam zrobione inaczej a teraz chce po przerabiać wg Twojego flow.
Tak mam teraz:

Co się dzieje po wysłaniu powiadomienia z parametrem say: true?
Ja u siebie nie widzę różnicy między treu i false.

Telefon mówi powiadomienie i wszyscy do okoła słyszą jak Jolka mówi np ktoś dzwoni do drzwi

Testowałem na dwóch telefonach z Androidem (Samsung i Xiaomi) i powiadomienie wyskakuje, ale nie ma żadnej wiadomości głosowej. Czy trzeba “coś” włączyć w telefonie, aplikacji?

Nic nie trzeba włączać powinno działać od razu.

Problem rozwiązany: Na telefonie trzeba było wybrać język polski w Ustawieniach (Dostępność → Zainstalowane usługi → Przeczytaj na głos → Ustawienia → Ustawienia zmiany teksu na mowę)

Wybrałem język: polski i preferowany mechanizm: Zmiana teksu na mowę
Dziękuję za podpowiedz.

1 polubienie

@bartas87poz czy mógłbyś pokazać jak zmienić kod żeby wykorzystać image i say ?
Próbuje ale coś mi nie wychodzi :wink:

Nie wiem, czy jeszcze Tobie potrzebne, ale wystarczy dodać kod:

“say”:“true”,“image”:“http://ai-speaker.com/images/doorbell.jpg

W tym miejscu:

Całość będzie wyglądać następująco:

var wiadomosc = flow.get('text')||null;
var numer_powiad_bartek = global.get('numer_powiad_bartek')||null;
msg.payload = {"data":{"say":"true","image":"http://ai-speaker.com/images/doorbell.jpg","priority":"high","notification_id":numer_powiad_bartek,"device_id":"<numer_urzadzenia>","message":wiadomosc,"click_action":"/lovelace/info_bartek"}}
return msg;

Tyle to wiem :wink:
Chodzi mi o to jak zrobić żeby np. ustawiać wartość say lub image w nodzie który przywołuje subflow

Jak tyle już wiesz to reszta też nie będzie taka trudna :slight_smile:
Można to zrobić na 2 sposoby:

  1. Zamiast wysłać samo payload wysyłasz cały obiekt:
    Bez tytułu
    Ja mam powiadomienia podzielone na 2 osoby (mogę wysłać do jednej, drugiej, albo dwóch na raz). W ten sposób będzie trudniej podzielić do której osoby jakie zdjęcie ma dojść, czy każdej osobie ma czytać powiadomienie, czy tylko wybranej.

  2. Zmodyfikować subflow template np. w poniższy sposób i podczas przesyłania informacji zaznaczyć potrzebne opcje:

2 polubienia