Po co zajmować się sterowaniem głosem? Bo się da! Odkąd pojawiły się urządzenia pełniące funkcję asystentów głosowych radzących sobie z interpretacją języka mówionego, wykorzystanie ich w automatyce domowej było tylko kwestią czasu.
Do połączenia Amazon Echo z systemem automatyki opartej o PLC użyłem najnowszego modelu Echo nabytego na amazon.de (od paru dni przesyłka do PL jest możliwa!) oraz Raspberry Pi. Na RPi zainstalowałem system pimatic (tylko dlatego, że na ten moment jako jedyny znaleziony przeze mnie oferuje wtyczkę do obsługi nowego Echo, która działa). System pimatic jest używany do automatyki domowej opartej o RPi, ale w sumie może być wykorzystywany do sterowania PLC. W tym celu dopisałem 2 wtyczki:
- pimatic-wago, tworzącą nowe urządzenia w systemie pimatic
- wago-common, jako uniwersalny moduł dla nodejs do komunikacji ze sterownikiem PLC.
Nie jest to na pewno jedyne i najlepsze rozwiązanie, ale na moment pisania tego artykułu wdało mi się najprostsze.
Co więc należy zrobić?
{
"plugin": "echo",
"port": 80,
"active": true
}
{
"plugin": "wago",
"addressPLC": "192.XXX.XXX.XXX,
"visuFile": "nazwa_wizualizacji",
"active": true
}
Pierwsze uruchomienie zajmie dobrych kilka minut bo pimatic musi pobrać i zainstalować dodatkowe elementy, z których sqlite pochłania większość czasu. Propouję uważnie analizować komunikaty dotyczące wersji zainstalowanych wtyczek. Jeśli pimatic nie zainstaluje najnowszej wersji wtyczki pimatic-wago można to zrobić ręcznie z katalogu pimatic-XXX komendą 'npm install pimatic-wago'.
Gdy system wystartuje, w przeglądarce pod adresem naszego RPi (adres można sprawdzić np komendą 'ifconfig'), czyli np. 192.168.1.200:8011 zobaczymy stronę systemu pimatic.
Po zalogowaniu się przechodzimy do menu, Devices -> Add device. W polu Class wybieramy WagoSwitch i wypełniamy:
W części "Echo" wypałniamy
Po kliknięciu save urządzenie zostaje zapamiętane. Wychodzimy z menu Devices przyciskiem 'Back'. Aby dodać nowe urządzenie do ekranu, należy w parwym górnym rogu wybrać ikonkę koła zębatego, wybrać 'Add new item', wskazać linię z nowym urządzeniem (pojawi się ptaszek). Oto jak wygląda przykłądowy ekran działającego systemu pimatic:
Kolejnym krokiem jest sprawdzenie, czy nowe urządzenie widziane jest przez Echo. Logujemy się na stronę alexa.amazon.com, wybieramy Smart Home, klikamy Devices i nastęnie Discover. Równocześnie na stronie pimatic po wybraniu z menu Devices, w prawym górnym rogu klikamy "Discover devices". Po 20 sekundach Echo zakończy poszukiwania, a my po ponownym kliknięciu Smart Home - Devices powinniśmy zobaczyć nowo-wykryte urządzenia
Jeśli nasze nowe urządzenie znajduje się na liście, jesteśmy gotowi do testowania komend głosowych tj. "Alexa, turn on/off XXX", czyli np. "Alexa, turn on dining room". Jeśli wszystko pójdzie dobrze, Alexa odpowie "OK" a światło się włączy.
* * *
Dla przypomnienia dodam jeszcze kilka słów o tym, jak przygotować program w CoDeSysie do komunikacji.
Pierwszym krokiem jest stworzenie nowej wizualizacji (np. "example"). W nowej wizualizacji należy umieścić wszystkie elementy, do których chcemy mieć dostęp czyli np:
Wizualizacja taka powinna być dostępna przez www (prawym klawiszen na nazwę wizualizacji -> Object Properties i checkbox przy Use as... Web-Visualization)
Wizualizacje powinny też być spakowane - zakładka Resources -> Target Settings -> zakładka Visualization -> checkbox przy Compression.
Po skompilowaniu programu i przejścia w tryb on-line plik example_xml.zip umieszczany jest na sterowniku w katalogu plc.
Plik ten z pamięci sterownika pobierany jest przez wtyczkę wago-common, jest rozpakowywany i analizowany. Każdej zmiennej (np. PLC_PRG.Light1_VIS) przypisany zostaje dokładny adres w pamięci (np. 4,101240,2,1), który jest wykorzystywany do dalszej komunikacji.