Obsługa zdarzeń w Domoticzu przez SMS

Możliwości komunikacyjnych Domoticz ma bardzo dużo, od maila, poprzez powiadomienia na telefon Pushbullet czy Pushover, kombajn IFTTT czy komunikator Telegram. W takiej ilości możliwości komunikacja SMS wydaje się już trochę archaiczna,  jednakże jak dla mnie warta zastosowania. Mam np. piec centralnego ogrzewania działający na GSM, który ma możliwość obsługi przy użyciu komend SMS. Dzięki temu mogę z głównego Domoticza uruchamiać i wyłączać urządzenie jednym przyciskiem, korzystając z planów czasowych i zdarzeń.

W Domoticzu domyślnie jest dodana usługa SMS Clickatell, która powinna odpowiadać za powyższą komunikację. Jednak jak to często bywa, nie jest tak łatwo. Po długich zmaganiach  i braku sukcesu w uruchomieniu doczytałem, że po zmianie API, od jakiegoś czasu usługa nie jest dostępna dla nowych użytkowników. Pozostawiono ją w systemie, iż podobno cały czas działa ze starymi kluczami. Tak łatwo nie można się jednak poddawać. Z pomocą oczywiście przychodzi LUA.

  1. Zakładanie konta w usłudze SMS Clickatell.

Bez tego się oczywiście nie obejdzie. Przechodzimy na https://www.clickatell.com/. Rejestrujemy się i logujemy.  Po zalogowaniu się w pierwszej kolejności musimy dostać się do API.

Screenshot_2018-07-23 https portal clickatell com.png

2. Uruchomienie usługi

Wchodzimy w zakładkę CONNECT.

Bez tytułu

Otrzymaliśmy API key. To jednak tylko początek. Usługa jest oczywiście płatna. Na szczęście jest też opcja testowa. Pozwala na wysłanie chyba 30 SMS dziennie i jak na razie nie zauważyłem, żeby była ograniczona czasowo. Mam ją już uruchomioną 2 miesiące i nadal działa. Ilość SMS jest dla mnie wystarczająca, więc nie planuję przejścia na wersję płatną. Dodajemy więc nasz telefon testowy.

Bez tytułu1.png

Bez tytułu2

Na podany numer telefonu dostaniemy kod SMS, który wpisujemy w kolejnym oknie, wpisujemy i mamy dodany nasz testowy numer telefonu. Następnie ustawiamy nową integracje.

Bez tytułu3

Przeklikujemy do końca, jeżeli domyślne ustawienia nam pasują. I już możemy przetestować czy wszystko działa.

Bez tytułu12.png

Testujemy naszą integracje.

Bez tytułu6.png

Wybieramy podaną wcześniej integracje, numer testowy telefonu ( doda nam się automatycznie ) i wpisujemy tekst wiadomości. Bez tytułu7.png

I pięknie. Przyszedł SMS o treści TEST, na podany wcześniej numer. Jesteśmy w domu. Teraz przechodzimy do Domoticza.

3. Konfiguracja Domoticza.

Pozostaje mam tylko napisać skrypt LUA, który wyślę nam SMS po zmianie stanu przełącznika. Tworzymy standardowy przełącznik w systemie.

Bez tytułu8

W Zdarzeniach tworzymy skrypt LUA.

 
commandArray = {}
if (devicechanged['SMS'] == 'On') then
os.execute ('curl "https://platform.clickatell.com/messages/http/send?apiKey=xxxxxxxxxxxxxxxxxxx==&to=48xxxxxxxx&content=Przełacznik włączony"')
end
return commandArray 

Pamiętajmy aby nazwa urządzenia była prawidłowa. A skąd wziąć „curl” ? Wygenerował nam się w okienku CURL podczas testowania integracji ( 3 obrazy wyżej ).

Teraz po naciśnięciu przełącznika, zmienia się jego stan na ON i wykonywana jest komenda curl wysyłająca SMS na testowy numer telefonu o treści podanej za &content=. Oczywiście możemy treść modyfikować już ze skrypcie. Nie ma konieczności testowania integracji za każdym razem.

Przełącznik możemy wykorzystać w bardziej złożonych zdarzeniach np. jeżeli temp. w salonie spadnie poniżej 18 st. to włącz przełącznik SMS. Ustawiamy tylko odpowiednią treść „Temperatura w salonie za niska” i mamy powiadomienie SMS o zmianie temperatury w salonie.

Dla mnie bomba.