SMS z Home Assistant

Wpisz android, wybierz Android Device


Masz listę

/
Co ma zrobić:
Android SMS

Ja mam iphone i ta apka na iPhone jest chyba calkiem inna. Jak wpisuje android to nie ma nic, iphone tez nie ma nic



No niestety z tego co wiem na iphonie nie da się tego zrobić, nie ma żadnych połaczeń poza tymi:

Tylko na jakimś androidzie

Widzę, ze można dać skrót do wysłania SMSa i ta akcja zadziała.

zostaje w takim razie znalezienia wyzwalacza

Dziekuje, bede szukal jeszcze ale kupilem modul gsm wiec w razie czego bedzie ok

Wiem, że autor kupił już moduł GSM, ale ostatnio też się zastanawiałem jak wysyłać SMS-y z HA i wybrałem rozwiązanie, które może się komuś przydać. Mianowicie AWS SNS (Push Notification Service - Amazon Simple Notification Service (SNS) - AWS). Oczywiście można skorzystać z jakiegoś serwisu do wysłania SMS-ów, który oferuje API i też dałoby się to zrobić, ale polskie tego typu usługi albo mają abonament który jest stosunkowo drogi gdy mało wysyłąmy albo prepaid, z tym że środki są ważne np. przez kilka miesięcy, a mininalna kwota zasilenia konta to np. 50 zł, więc też wychodzi drogo. Ja akurat potrzebowałem tych SMS-ów do automatyzacji, gdy czujniki zalania wykryją wilgoć w kuchni albo łazience, a więc z założenia tych SMS-ów nie będzie dużo. W AWS SNS płaci się tylko za wysłane sztuki, wiec nie ma problemu.

O super, dzieki za info. Sprawdze jak to zintegrowac. Z modemem wcale nie taka prosta sprawa :wink:

Edit :slight_smile:

Chcialem poinformowac ze ten Amazon SNS dziala wspaniale. Zintegrowane z HA, skrypt i przycisk do wysylania.

Dlaczego SMSem wysyłasz takie powiadomienia? W jaki sposób czujniki zalania komunikują się z HA?

Czujniki przez ZigBee, ale to nie ma znaczenia. SMS-y wysłam dlatego, bo szybciej dotrą niż powiadomienie przez push-a, gdy z jakiegoś powodu ani ja, ani moja żona nie będziemy mieli dostepu do sieci lub po prostu wifi/transmisja mobilna będzie wyłączona na naszych telefonach. Oczywiście prócz SMS-a push na mój telefon też idzie, jak i odpowiednio głośny komunikat na głośniki w mieszkaniu :slight_smile:

Poniewaz admin wywalil poprzedniego posta pisze od nowa.

Jak pisalem wczesniej wysylanie SMS z HA poprzez AWS SNS dziala bardzo sprawnie ale pojawia sie problem. Poniewaz wysylane sa komendy sterujace nie moze w tresci pojawic sie sender ID podczas gdy proces wysylania SMS odbywa poprzez zdefiniowanie topica, ktore nazwa jest wyswietlana w SMS - cos takieg: brama>1234@OTWORZ#. Z tego co czytalem nie da sie usunac identyfikatora topica i pozostaje druga metoda tj osadzenie API SDK w HA ale nie wiem jak to zrobic.

link do API : Publishing to a mobile phone - Amazon Simple Notification Service

Czy ktos moze cos podpiwiedziec ?

Pozdrawiam
Wojtek

Znaczenie ma bo są sytuacje, w których czujnik Zigbe wykryje zalanie ale HA o tym nie będzie wiedziało i co najgorsze się o tym nie dowie, zaleje Ci dom a Ty się o tym nie dowiesz - taki urok działania czujników Zigbee na baterie, mam nadzieję, że jesteś tego świadomy.

Niezawodność powiadomień SMS, wg mnie, jest wysoka pod warunkiem, że są wysyłane bezpośrednio z HA (modem podłączony do HA) lub przez “bramkę”, która jest w sieci lokalnej, obok HA (pomijam awaryjne zasilanie tych urządzeń), tylko te warianty eliminują możliwe problemy w komunikacji HA → telefon odbiorcy SMSów.

Nie neguję Twojego rozwiązania tylko pokazuję jego słabe strony, jeżeli jesteś tego świadomy i akceptujesz ryzyko z tym związane, to rozwiązania jest dobre :slight_smile:, też używam czujników Zigbee na baterie ze wszystkimi tego konsekwencjami.

Używanie AWS SNS do wysyłania SMS to jak strzelanie z armaty do komara. Podobne ceny znajdziesz w bramkach api SMS a porównując do nauki AWS dla zielonych to inny poziom wejścia.
Oczywiście nikt nie zabroni biednemu żyć bogato :wink: ale tak na poważnie jeśli ktoś ma zamiar iść tą drogą to polecam ustawić budżety w AWS by się nie zdziwić przypadkiem - mówię to ja, który wywoływał zagniezdzone lambdy, które koniec końców kosztowały 10K USD. AWS na prośbę umorzył tą sumę, ale była to cenna lekcja :wink:

Żaden szanujący się provider nie pozwoli na spoofing nadawcy ze względów bezpieczeństwa.

Dziękuje za odpowiedź ale co w takim razie?

Ten sns jest na razie free a smsów będzie mało.
Kupowanie u dostawców bramek jest wielokrotnie droższe.

AWS ma 2 formy wysyłki SMS - bezpośredni push i przez subskrybuje Ropica. HA ogarnia to drugie przez funkcje notify. Gdyby ogarniało zwykły push to nie byłoby problemu a przy topicu jest w treści nazwa topicu. Rozumiem to bo po to jest topić aby go wykorzystać ale mnie akurat przeszkadza.

Aby zaimplementowac zwykły push jest SDK ale na to za mało wiem a poddawać się nie chce więc każda podpowiedź się liczy.

Ogólnie to chodzi mi o to, że AWS nie powinieneś ruszać w ten sposób w jaki to robisz (sorry, ale akurat wchodzisz w moją działkę więc pozwolę sobie napisać jak to powinno mniej więcej wyglądać).

  1. Musisz sobie zdeklarować pierw konto IAM, działanie na roocie jest bardzo odważnym (by nie powiedzieć głupim) pomysłem.

  2. Musisz zdeklarować resource w SNS

  3. Zdeklarować rolę i IAM policy i podpiąć je do roli

  4. Podpiąć rolę do konta IAM

  5. Skrypt w Python jak już zauważyłeś będzie wymagał boto3, więc musisz to odpalić w osobnym kontenerze (Dockerfile + build w jakimś docker-compose tu starczy)

  6. Ogólnie to by później wywołać sobie te funkcje na node red to musisz sobie zrobić jeszcze wystawić API w tym skrypcie np przy pomocy flask.

Alternatywnie:
5. Wystawiasz sobie lambde do wywołania sns
6. Podpinasz api gateway do lambda
7. Aktualizujesz IAM policy z punktu 3 o powyższe resource

Nie będzie drogo, ale nie za free. SNS też nie jest za free, po prostu raz w miesiącu AWS obciąży Ci kartę - tyle.

Dzięki za uwagi. Zdaję sobie sprawę z tych słabych punktów i akceptuję ryzyko. Gdyby HA robił u mnie coś poważniejszego, to pewnie skończyłoby się na modemie, ale w tej chwili nie mam takiej potrzeby.

Tak samo z Zigbee - traktuję to jako coś ekstra, co ma dużą szanse zadziałać gdy coś faktycznie się stanie. Wiadomo że lepiej byłoby po kablu, ale póki co dodałem monitorowanie czy Zigbee2MQTT działa oraz czy bateria w czujnikach się nie kończy.

Co masz na myśli, piszesz że wykryje, a potem że nie. masz na myśli awarie HA?

Jeżeli w momencie zalania, Z2M jest niedostępne albo broker MQTT, to HA nie wie o zalaniu i już sie nie dowie bo czujnik Zigbee wysyła powiadomienie tylko w momencie zalania (nie powtórzy więcej komunikatu). Wiekszość z nas ma wszystko zainstalowane w ramach HA (jako dodatki), jeżeli w czasie restartu całego hosta z HA nastąpi zalanie, również sie o tym nie dowiesz. Zrób prosty test: masz czujniki otwarcia Zigbee na oknach, okno jest zamknięte, stan okna w HA jest również “zamknięte”, teraz zrób power off hosta HA (takie uproszczenie awarii systemu), otwórz okno, w tym momencie czujnik Zigbee wysyła powiadomienie ale nic go nie odbierze, nastęnie power on hosta HA i sprawdź stan czujnika otwarcia okna - wszędzie bedzie stan “zamknięte” (a okno masz otwarte) i taki stan nie zmieni się, nie uaktualni się. Dopiero jak zamkniesz okno to stan czujnika odświeży się w Z2M i w HA.

Jak najbardziej, bateryjne czujniki są skuteczne, tylko jak ma kto odebrać dokładnie w tym momencie sygnał.
Oczywiście sytuacji w których coś nie zadziała można mnożyć, idąc tropem Praw Murphiego, jak ma coś pójść źle to zapewne tak się właśnie stanie :stuck_out_tongue:

Ostatnio właśnie poustawiałem kilka czujników zalania, automatyzacje mam w NR, bo HA prędzej będzie tą chwilę niedostępny, restarty hosta to marginalne sytuacje, ale restart HA już prędzej
Zamontowałem od razu siłownik na zaworze głównym, bo co mi z tego jak dostanę powiadomienie, a jestem gdzies daleko :frowning:
Działa doskonale (w kontrolowanym teście :P) wykrycie wycieku, 5sekund i woda odcięta.
Muszę zrobić jeszcze tylko regułę tasmoty w zaworze aby subskrybował temat czujników zalania, to węzeł NR nie będzie potrzebny. Ale do tego trzeba skompilować swoja binarkę tasmoty, poterzbe jest SUPPORT_MQTT_EVENT, nie miałem jeszcze czasu na to.

Dziękuje. To bardzo rzeczowa informacja i dzięki temu bardzo wartościowa mniejsza o to czy to co robię jest głupie czy nie. Możliwe że jest bo bladze na ślepo a to moje hobby więc nie mam wiedzy ani praktyki.

Zakładając, że miesięcznie będzie ok 1000 SMS to co wybrać bo to co piszesz być może nawet bym ogarnął choć nawet nie znalazłem źródeł do dockera dla boto3 ale mniejsza o to. Boje się też że zaplatam się konfiguracji bo pythona tylko liznąłem a flash to nawet z niczym mi się nie kojarzy :wink:

Na razie zrobiłem template SMS z telefonu ok działa ale to mało eleganckie i nie zintegrowane rozwiązanie. Może jednak wykupić jakaś usługę tylko która mi się ląd IE zintegruje z HA ?

jak chcesz 1000SMS to możesz iść z SNS, zobacz sobie jednak na koszty SNS tak na wszelki wypadek i sam zdecyduj:
SNS: $0.03222 za SMS do PL - co daje nam sumę 32,22$ za 1000SMS ~ 130 PLN
Pierwsze z brzegu API HTTP od PL dostawcy (nie chcę robić reklamy) - 130 PLN = 1300SMS (postpaid) lub 1083 (prepaid)
Przy API dostawcy wystarczy, że użyjesz node-red z nodem http-post i jest po temacie (sam tak używam, tylko ja ślę 5sms/mies.).
Przy SNS masz więcej zabawy ale też czegoś pożytecznego się nauczysz, choć jak w tym nie siedzisz to taka trochę zbędna wiedza, która się częściowo z czasem przeterminuje.
Nie znajdziesz dockera z boto3. Musisz użyć Dockerfile z base image python + zainstalować boto3 przez requirements.txt lub pip.

Dzięki. Przetestuje justsms bo mają najtańsze pakiety z tego co widziałem