Ha! Dzisiaj samo sedno – połączenie serwisu Alexa z Domoticz. Wersja trudniejsza, przez HABridge. Jest skill w postaci Controlicz, ale nie mam wystawionego Domoticz w prosty sposób na 'świat’, dlatego zrobiłem połączenie w inny sposób. Wydaje mi się, że lepszy…
Instalacja HABridge (system emulujący oświetlenie Philips Hue) jest banalnie prosta.
Najpierw musimy się upewnić, że odpowiednia wersja Java jest zainstalowana. Powinna być, ale w razie czego:
sudo apt-get update && sudo apt-get install oracle-java8-jdk
Jaka jest najnowsza wersja HABridge możemy dowiedzieć się tutaj:
https://github.com/bwssytems/ha-bridge/releases
Później kilka komend:
cd /home/pi/
mkdir habridge
cd habridge
wget https://github.com/bwssytems/ha-bridge/releases/download/<your version1>/ha-bridge-<your version2>.jar
Czyli w przypadku dla aktualnej wersji na 01.11.2017 wygląda to tak:
wget https://github.com/bwssytems/ha-bridge/releases/download/v4.5.6/ha-bridge-4.5.6.jar
Edit: lepiej będzie na przyszłość (w przypadku aktualizacji) zrobić jak poniżej.
mv ha-bridge-{VERSION}.jar ha-bridge.jar
Przed startem musimy stworzyć plik konfiguracyjny:
sudo nano starthabridge.sh
cd /home/pi/habridge
rm /home/pi/habridge/habridge-log.txt
nohup sudo java -jar /home/pi/habridge/ha-bridge.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
chmod 777 /home/pi/habridge/habridge-log.txt
WAŻNE. Z tego co wyczytałem, HABridge powinien się uruchomić na porcie 8080, ale z jakiegoś powodu zrobił to na 80, a tam mam Domoticz. Musiałem podać port ręcznie, używając parametru:
-Dserver.port=8080
Czyli u mnie zawartość pliku wygląda tak:
cd /home/pi/habridge
rm /home/pi/habridge/habridge-log.txt
nohup sudo java -jar -Dserver.port=8080 /home/pi/habridge/ha-bridge.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
chmod 777 /home/pi/habridge/habridge-log.txt
Ustawienie praw do uruchomienia:
sudo chmod u+x starthabridge.sh
Serwis uruchamiamy komendą
sudo ./starthabridge.sh
Sprawdzić czy działa możemy poleceniem
tail -f habridge-log.txt
Dobrze by było również, aby uruchamiał się przy starcie, to możemy zrobić edytując:
cd /etc/systemd/system
sudo nano habridge.service
I tam wstawić:
[Unit]Description=HA BridgeWants=network.targetAfter=network.target
[Service]Type=simpleWorkingDirectory=/home/pi/habridgeExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge.jar
[Install]WantedBy=multi-user.target
Później po kolei:
sudo systemctl daemon-reload
sudo systemctl start habridge.service
sudo systemctl enable habridge.service
Po wystartowaniu musimy przejść do przeglądarki i teraz zaczyna się prawdziwa zabawa!
Wita nas pusta strona HABridge, którą będziemy teraz wypełniać.
Przechodzimy na Bridge Control
Przechodzimy na dół do sekcji Domoticz Names and IP Addresses:
Tam dodajemy swoje dane serwera Domoticz:
I, BARDZO WAŻNE, wracamy na górę i zapisujemy.
Jeżeli wszystko dobrze zrobiliście (wierzę w Was, także na pewno tak 😉 ), na zakładce Domoticz Devices znajdą się Wasze urządzenia. To już ogromny sukces!
Teraz, po wejściu za pomocą przycisku Build na konkretny element (lub, jeżeli macie urządzenia nazwane po angielsku – można je zaznaczyć i wybrać Bulk Add), na początek wybieramy jego nazwę w polu Name, którą będziemy używać z Alexą.
Czyli, coś przyjaznego do wymówienia 😀
Najpierw zabrałem się do opisywania tego dość bogato, kończąc jednak na prostych, szybkich frazach. Inaczej mówi się 'Alexa, turn living room lights on’, a inaczej 'Alexa, living on’. Ale akurat tutaj Alexa jest nam bardzo pomocna i w większości wypadków rozpozna różne frazy. W sumie 'Alexa, living room on, 'Alexa, turn living room on’, 'Alexa turn living room lights on’ – da ten sam efekt.
W tym przykładzie integruję Yeelight, którą mam dodaną w Domoticz z HABridge.
HABridge rozpozna typ i zaproponuje komendę JSON do włączenia i wyłączenia urządzeń.
Miałem przez godzinę zgryz z komendą 'dim’, czyli rozjaśnianiem i ściemnianiem. Może coś źle zrobiłem przy definicji w Domoticz, może jakiś inny powód, ale w HABridge musiałem podać w Dim Items, komendę w Target Item ręcznie. Jak poniżej na zrzucie ekranu. Dzięki parametrowi ${intensity.percent} możemy zadać Alexie żądany poziom jasności.
Chwilowo tyle. Przechodzimy do serwisu Alexa albo wydajemy jej polecenie 'Alexa, discover devices’. Dla jasności przestawiam również proces rozpoznawania na stronie, który ogranicza się do wybrania Discover.
TADAM! Już można wołać 'Alexa, left light on’, 'Alexa, left light off,’ 'Alexa, dim left light to 20′. W tym ostatnim przykładzie odnosimy się do procentów, czyli efekt ten sam jak przy ’20 percent’.
Warto również od razu zrobić backup bazy danych HABridge. Jest dostępny na dole strony, przy pracy z ekranem Home.
Ja dodałem sobie również komendę do skryptu, który co noc robi ma na pendrive backup bazy, skryptów i folderu www Domoticz.
Identycznie jak żarówki zintegrowałem sobie zdalne gniazdka sieciowe. Nieważne czy 433MHz, Xiaomi, czy inne – po prostu działa po wypowiedzeniu komendy.