Powiadomienia Twilio w systemie SCADA

Wiktor Susfał Alarmy i Powiadomienia, Łączność i Zarządzanie Tagi: , , , , , ,
Powiadomienia Twilio w systemie SCADA od ICONICS - główne

Dowiedz się, jak skonfigurować powiadomienia w systemie SCADA wykorzystując platformę komunikacyjną Twilio.

Jeśli nie otwierają Ci się pełne rozmiary obrazków, klikaj w nie PPM i wybieraj „Otwórz w nowej karcie”.

O czym tu przeczytasz?

Wpis ten dodano, w celu przybliżenia nowej funkcjonalności w systemie SCADA ICONICS, jaką są powiadomienia Twilio. Czytając tę publikację dowiesz się, w jaki sposób – krok, po kroku – skonfigurować alerty przy użyciu zewnętrznej platformy komunikacyjnej.

Na przykładzie pokażemy, jakie działania należy podjąć w celu wysyłania powiadomień SMS do operatorów. Wszystko wprost z systemu SCADA. Dlatego, że powiadomienia SMS to nie jedyna funkcjonalność Twilio, opowiemy też o innych korzyściach płynących z integracji z tym serwisem.

Opcja integracji systemu SCADA od ICONICS z platformą Twilio jest dostępna od wersji 10.96 pakietu GENESIS64.

Czym jest Twilio?

Twilio to założona w 2008 roku platforma komunikacyjna, mająca na celu umożliwienie wykonywania połączeń (SMS, głosowych lub video) przy użyciu własnych programów. Platforma ta udostępnia użytkownikom własną infrastrukturę, która szybko i skutecznie pozwala połączyć się z każdym odbiorcą na całym świecie.

Użytkownicy mogą „wykupić” w serwisie Twilio numery telefonów, które następnie mogą być użyte w ich własnych aplikacjach. Aplikacje należące do użytkowników końcowych wykorzystują te numery, w celu wysyłania powiadomień do innych odbiorców.

Oprócz usług komunikacyjnych, platforma Twilio oferuje także inne, związane na przykład z uwierzytelnianiem, czy monitorowaniem ruchu sieciowego. Uwierzytelnianie za pośrednictwem:

  • loginu i hasła,
  • numeru telefonu,

a także możliwość użycia bezpiecznego protokołu https w komunikacji z programami użytkowników sprawiają, że jest to sposób na bezpieczne alerty w systemie SCADA.

Aby niepotrzebnie nie przedłużać wstępu teoretycznego, w celu zdobycia większej wiedzy o platformie Twilio, obejrzyj Webinarium na stronie tej firmy.

Powiadomienia Twilio w systemie SCADA GENESIS64

Co możemy uzyskać korzystając z technologii Twilio w systemie SCADA od firmy ICONICS?

System SCADA – „GENESIS64” składa się z wielu usług. Jedną z nich jest „AlertWorX”, która odpowiada za obsługę alertów w systemie. Od wersji 10.96 całego systemu, rozbudowano ją o obsługę interfejsu REST API. Pozwala to jej w prosty sposób integrować się z usługami internetowymi – właśnie takimi, jak Twilio.

Za pomocą modułu alertów w systemie GENESIS64 wyślemy lub odbierzemy:

  • powiadomienie SMS,
  • wiadomość głosową,
  • wiadomość za pośrednictwem WhatsApp.

Przydatną funkcjonalnością jest również możliwość logowania danych o aktywności powiadomień z Twilio do bazy danych na serwerze SCADA.

Jak zacząć pracę z Twilio w GENESIS64?

Po pierwsze należy wspomnieć, że do stabilnej konfiguracji systemu SCADA z tym rodzajem powiadomień potrzebujemy:

  • płatnego (stałego) konta na platformie Twilio – sposób naliczania opłat można znaleźć pod tym linkiem;
  • zewnętrznego IP dla serwera SCADA, tak aby był on osiągalny z poziomu innych urządzeń z dostępem do internetu.

Na potrzeby tego wpisu pokażemy natomiast jak w darmowy sposób przetestować omawianą tu funkcjonalność.

Konto w serwisie Twilio

Na potrzeby naszych testów musimy założyć konto trialowe na platformie Twilio. Pamiętamy oczywiście, że do stabilnego działania systemu należy wykonać jego upgrade do konta płatnego. W celu założenia testowego konta przechodzimy do poniższego linku.

Po wypełnieniu krótkiego formularza, należy użyć linku aktywacyjnego otrzymanego w wiadomości wysłanej na podany adres e-mail. Kolejnym krokiem jest natomiast weryfikacja numeru telefonu (fizycznego – służbowego lub prywatnego), który będzie przypisany do tego konta.

Po przejściu do właściwego interfejsu platformy Twilio, należy wybrać domyślny numer testowy.

Zmienne środowiskowe na serwerze SCADA

Usługa składowa oprogramowania SCADA – AlertWorX komunikuje się z platformą Twilio z wykorzystaniem tzw. zmiennych środowiskowych Windows. Są to pewne wartości przypisywane dla użytkowników lub całego systemu.

W tym przypadku należy utworzyć 4 nowe zmienne środowiskowe. Należy również pamiętać, aby utworzyć zmienne środowiskowe dla użytkownika, pod którym działają usługi oprogramowania SCADA.

To, pod jakim użytkownikiem one działają, możemy sprawdzić na przykład wpisując „Usługi” (lub „Services”) w menu start.

Usługi systemu SCADA od ICONICS - sprawdzanie użytkownika
Usługi systemu SCADA od ICONICS – sprawdzanie użytkownika

Jeśli obecnie zalogowanym użytkownikiem jest inny, niż w rubryce „Logowanie jako”, należy przelogować się na właściwego użytkownika, w celu wykonania kolejnego kroku.

Kolejnym krokiem jest natomiast wpisanie frazy „Ustawienia” w menu „Start”, a następnie wyszukanie opcji „Edytuj zmienne środowiskowe dla konta”.

Otworzy się nowe okno. W nim natomiast, w sekcji poświęconej użytkownikowi, należy dodać 4 nowe zmienne (za pomocą opcji „Nowa..”):

  • Ico_Twilio_AccountSid – wartość SID skopiowana z interfejsu platformy Twilio;
  • Ico_Twilio_AuthToken – token uwierzytelniający skopiowany z interfejsu platformy Twilio;
  • Ico_Twilio_UserName – dowolna nazwa użytkownika (potem utworzymy użytkownika w systemie SCADA o takiej nazwie);
  • Ico_Twilio_Password – hasło dla powyższego użytkownika (również należy zapamiętać na późniejsze potrzeby).

Nie dodawaj żadnych specjalnych znaków do nazwy użytkownika lub jego hasła.

Nowy użytkownik w systemie SCADA

Zagadnienie dodawanie nowego użytkownika do systemu SCADA było już omawiane w jednym z poprzednich wpisów na naszym blogu.

W tym miejscu można zaznaczyć jedynie, aby nadać temu użytkownikowi taką samą nazwę oraz takie samo hasło, jakie wprowadziliśmy w zmiennych środowiskowych. Należy pamiętać, aby nadać użytkownikowi uprawnienia co najmniej do wykonywania metod w systemie SCADA.

Następnie aktywujemy moduł „Security” w Workbench, aby zabezpieczenia działały.

Pamiętaj, aby zawsze mieć co najmniej jednego użytkownika – „administratora”, który posiada pełnię praw w systemie SCADA.

Zewnętrzny adres IP dla serwera SCADA

Jest to ponadprogramowa sekcja, która prezentuje, w jaki sposób udostępnić swój serwer SCADA w sieci – do testów. Jeśli posiadasz już zewnętrzne IP dla swojego serwera – możesz ją pominąć.

W celu testowego udostępnienia serwera w sieci (w wersji trialowej możliwe jest posiadanie przez ok. 7 godzin zewnętrznego adresu), należy pobrać program ngrok. Można to zrobić używając poniższego linku.

Załóżmy, że plik .exe programu (w odpowiedniej wersji dla naszego systemu Windows) wypakowaliśmy po pobraniu do folderu „Pobrane”.

W celu rozpoczęcia udostępniania naszego serwera lokalnego w internecie, uruchamiamy konsolę Windows – polecenie „cmd” w menu Start. Następnie wpisujemy:

  • cd Downloads – w tym przypadku tak wygląda przejście do katalogu z plikiem .exe programu ngrok;
  • ngrok http 80 – spowoduje to uruchomienie programu i przypisanie nam dwóch zewnętrznych adresów (dla protokołu http i https), które będą przekierowywały ruch bezpośrednio na nasz lokalny serwer, na port 80.

W dalszych krokach używać będziemy adresu domeny dla protokołu http – konfiguracja szyfrowanego protokołu wymaga poczynienia dodatkowych ustawień w IIS Manager.

Konfiguracja powiadomień w module AlertWorX

W końcu przygotowaliśmy wszystkie prerekwizyty potrzebne do dodanie konfiguracji powiadomień Twilio dla modułu AlertWorX.

W celu dostosowania jego opcji, przechodzimy do programu „Workbench” (podobnie jak dla modułu „Security”) i przechodzimy do poniższej lokalizacji w sekcji „Project Explorer”. Tam natomiast wybieramy PPM pozycję „Twilio Configurations” i używamy opcji „Add…”.

Konfiguracja modułu AlertWorX w systemie SCADA do wysyłania powiadomień Twilio
Konfiguracja modułu AlertWorX w systemie SCADA do wysyłania powiadomień Twilio

W ustawieniach nowej konfiguracji przechodzimy do zakładki „Phone Numbers” i dodajemy nowy numer telefonu. Jego nazwa jest dowolna, gdyż obowiązuje tylko w obrębie systemu GENESIS64.

Należy zwrócić uwagę, że:

  • podawany tu numer telefonu to wirtualny numer skopiowany z serwisu Twilio – to nim posługiwać się będzie system SCADA;
  • w polu „Callback URL” podaje się jedynie nazwę domeny / adres IP – bez żadnych dodatkowych prefiksów. Nazwę domeny wygenerowano w tym przypadku przy użyciu programu ngrok (patrz – sekcja wyżej).

Następnie, przechodzimy do zakładki „General Settings”, oznaczamy tę konfigurację jako domyślną (opcja „Is Default…”) i wybieramy domyślny numer telefonu („Default Phone Number”) spośród wcześniej dodanych.

Kontynuacja konfiguracji modułu AlertWorX do wysyłania powiadomień Twilio z systemu SCADA
Kontynuacja konfiguracji modułu AlertWorX wysyłającego powiadomienia Twilio z systemu SCADA

Przed przystąpieniem do kolejnej części warto wiedzieć, że aktywności dotyczące AlertWorX (w tym również jego usług związanych z Twilio) mogą być logowane do bazy danych. Może to być zarówno domyślna baza, jak i wskazana przez użytkownika.

W celu określenia bazy danych na posiadanym serwerze SQL, należy przejść do gałęzi „General Settings” pod modułem AlertWorX i zaznaczyć opcję „Use a custom database for logging”.

W tym przypadku utworzyliśmy nową bazę (po prostu wpisując pożądaną nazwę) o nazwie „BAZA_ALERTWORX”.

Logowanie danych o pracy modułu AlertWorX do bazy SQL
Logowanie danych o pracy modułu AlertWorX do bazy SQL

Końcowa konfiguracja konta Twilio

Podczas dostosowywania ustawień AlertWorX podaliśmy tzw. „Callback URL”. Jest to, innymi słowy, kanał komunikacji, dzięki któremu platforma Twilio może powiadamiać nasz system SCADA o aktualnych zdarzeniach. Bez tej komunikacji, system SCADA nie miałby informacji zwrotnej na przykład o statusie dostarczenia danej wiadomości SMS.

Podobne ustawienie musimy również poczynić w serwisie Twilio. W tym celu należy przejść do menu zarządzania numerami telefonów na tej platformie. Można to zrobić, na przykład klikając w poniższy link.

Po wybraniu numeru używanego przez system SCADA z dostępnej listy, przeniesiemy się do kolejnej strony z jego ustawieniami. Tam, w celu konfiguracji powiadomień SMS dla systemu SCADA, należy przewinąć stronę do sekcji „Messaging”. Wszystkie opcje z rozwijanych list należy ustawić jak na zdjęciu poniżej, natomiast pole z adresem URL (oznaczone na zielono) trzeba odpowiednio uzupełnić.

Ustawienia Messaging w serwisie Twilio
Ustawienia Messaging w serwisie Twilio

W zielone pole oznaczone powyżej należy wprowadzić adres URL zbudowany w poniższy sposób:

http://<Nazwa_Użytkownika_SCADA>:<Hasło>@<Domena_lub_IP>/fwxapi/twilio/sms 

W tym przypadku, adres URL powinien więc wyglądać, jak poniżej.

http://AplikacjaICONICS:a@41ca5c35.ngrok.io/fwxapi/twilio/sms

Pamiętaj, że nazwa użytkownika w systemie SCADA, jego hasło oraz nazwa domeny prawdopodobnie różnią się w Twoim przypadku.

Jak wysłać powiadomienie Twilio z systemu SCADA?

Jeśli dokonaliśmy wszystkich potrzebnych konfiguracji, opisanych wyżej, pierwszy, krokiem jest restart usług:

  • ICONICS Alert REST Service,
  • ICONICS Web API Service.

Można to zrobić na przykład z poziomu okna „Usługi” w systemie Windows. Co więcej, usługi te należy restartować po każdorazowej zmianie zmiennych środowiskowych w systemie.

Przechodząc dalej należy wiedzieć, że do wysyłania powiadomień AlertWorX używa wstępnie przygotowanych metod bazujących na architekturze REST.

Na potrzeby tego wpisu, użyjemy jednej z nich – służącej do wysyłania wiadomości SMS. Nosi ona nazwę „TwilioSendSmsMsg”. Przyjmuje ona 2 lub 11 argumentów, w zależności od tego, w jaki sposób jest używana.

Na nasze potrzeby – proste wywołanie powiadomienia SMS – wykorzystamy wersję dwuargumentową. Przyjmie ona:

  • numer telefonu docelowego odbiorcy wiadomości;
  • treść wiadomości (w formacie tekstowym).

Drugi sposób użycia tej metody (11 argumentów) odnosi się do używania jej z modułem CFSWorX – do inteligentnego powiadamiania kadry pracującej w terenie. Pozostałe argumenty dotyczą np. alarmu, który wywołał wysłanie powiadomienia itp. Tym przypadkiem teraz jednak się nie zajmiemy.

Zapamiętać należy jedynie fakt, że aby metoda działała poprawnie musi przyjąć 2 lub 11 argumentów – nie ma wartości pośrednich.

Prosty interfejs SCADA – wysyłanie powiadomienia

Zbudujemy teraz prosty interfejs SCADA. Będzie on zawierał tylko jeden przycisk. Przycisk realizuje komendę „Call Method”. W ustawieniach komendy podajemy, jaka metoda ma zostać wywołana oraz uzupełniamy listę atrybutów.

Pierwszy z atrybutów – numer telefonu – powinien być podany w następującym formacie (dla Polski):

48-XXX-XXX-XXX
Wykonywanie metody do powiadomień Twilio SMS

Podsumowanie

W tym miejscu kończy się ten całkiem obszerny wpis pokazujący, jak ustawić powiadomienia w systemie SCADA w integracji z zewnętrzną platformą Twilio.

Oczywiście nie pokazaliśmy wszystkich dostępnych funkcji w praktyce. Powiadomienia Twilio pozwalają na wysyłanie alertów w postaci wiadomości tekstowych, głosowych oraz WhatsApp z poziomu systemu SCADA do operatorów w terenie.

Co więcej, powiadomienia Twilio można integrować z nowym rozwiązaniem od ICONICS – CFSWorX do inteligentnego powiadamiania kadry serwisowej. Co za tym idzie, taki pracownik terenowy może również zatwierdzać alarmy odpowiadając na przychodzące do niego alerty.

Kolejną rzeczą jest fakt, że istnieje możliwość dostosowania swojego serwera tak, aby używał bezpiecznego (szyfrowanego) protokołu https do komunikacji z platformą Twilio.

Następnym zagadnieniem jest sposób, w jaki można automatycznie wpływać na zawartość wiadomości tekstowej wysyłanej za pomocą metody „TwilioSendSmsMsg”. Aby podstawić zmienną w miejsce statycznego tekstu, należy posłużyć się Globalnymi Aliasami. Zapisując do nich np. wartości zmiennych przekonwerterowane na typ tekstowy można dynamicznie budować treść SMS.

Trochę tego dużo, prawda? Dlatego też możesz przetestować funkcje systemu GENESIS64 osobiście, pobierając darmowe DEMO ze strony producenta.

W razie pytań, napisz do nas na adres: iconics@elmark.com.pl .