Usssss…
HABridge
Home Assistant, Alexa oraz HABridge. Ufff – uruchomiłem!
Pierwsza sprawa do zrobienia – wygenerowanie klucza w Home Assistant, który można później używać w HABridge. Taki uniwersalny, coś w stylu tokenów Google App. Ten to wygenerowany klucz wstawiamy w sekcję konfiguracji HABridge.
Aktualizacja HABridge
Po pierwsze – najnowsza wersja jest tutaj: https://github.com/bwssytems/ha-bridge/releases
Zatrzymujemy habridge.
Jeżeli trzymaliście się instrukcji (po poprawkach!) przedstawionej tutaj: https://cezarowy.blogspot.com/2017/11/serwis-alexa-integracja-z-domoticz.html
to wystarczy zrobić poniższe czynności.
sudo systemctl stop habridge
cd habridge
Powyższe – zależnie od tego gdzie zainstalowaliście habridge. U mnie w /home/pi/.
wget https://github.com/bwssytems/ha-bridge/releases/download/v{VERSION}/ha-bridge-{VERSION}.jar
Czyli w przypadku wersji 5.2 będzie to:
wget https://github.com/bwssytems/ha-bridge/releases/download/v5.2.0/ha-bridge-5.2.0.jar
mv ha-bridge-{VERSION}.jar ha-bridge.jar
sudo systemctl start habridge
I mamy aktualizację gotową.
Aktualizacja! Jeżeli z jakiegokolwiek powodu stracicie połączenie na linii Alexa <-> HABridge – w pierwszej kolejności sprawdźcie jaki macie podany adres UPNP w konfiguracji HABridge. Czasem dopisuje się tam inny adres Raspberry Pi – u mnie tak jest w przypadku podania sztywnego adresu IP. Nie wiem czemu Malina zgłasza się pod dwoma – ale to podobno znany błąd.
Raspberry Pi, Raspbian, Domoticz – od zera do bohatera…
Pomocy na różnych stronach jest mnóstwo, przesadą byłby kolejny szczegółowy poradnik, skupię się więc wyłącznie na esencji i najważniejszych tematach, ważnych dla mnie z punktu widzenia prostej automatyki domowej za pomocą Malinki. Z czasem wpis się może zmieniać, ponieważ ciągle coś nowego dochodzi. Ostatnio na przykład HABridge, skoro już Alexa się zadomowiła.
Wpis jest długi i opisuje wiele tematów, może znajdziecie coś dla siebie.
Kwestia wyboru sposobu instalacji Raspbiana zależy już od Was, swego czasu korzystałem z NOOBS LITE, który wszelkie potrzebne do instalacji komponenty pobiera na bieżąco z sieci.
Ostatnio wolę jednak mieć przygotowany obraz jako plik .img i za pośrednictwem Win32 Disk Imager szybko wrzucić go na kartę.
Chwila podstaw, która mam nadzieję pomoże innym wkroczyć w ten świat.
Instrukcja – jak szybko postawić system, zrobić podstawową konfigurację, zrobić kopię bezpieczeństwa na przyszłość.
Podstawowa strona: raspberrypi.org. Tam powinien się udać każdy początkujący. W zależności od potrzeb mamy:
1. Możliwości ściągnięcia instalatora Noobs
– wersja pełna z danymi systemów od razu dostępnymi
– wersja Lite, zajmująca 40 Mb, resztę danych potrzebnych dla różnych systemów ściąga bezpośrednio z sieci
2. w przypadku instalacji Raspbiana – ostatnia dostępna stabilna wersja (w czasie pisania posta – Stretch), pełna ze środowiskiem graficznym albo Lite
Ja opieram się na pełnym obrazie Jessie (czyli poprzednim do Stretch) – jest to dla mnie osobiście najwygodniejsze i w mojej opinii ta wersja jest najbardziej stabilna. Wszelkie opisane tutaj programy i instalacje działają na każdej z wersji. Oprócz SSL w Domoticz na wersji Stretch, bez czego nie uruchomimy go! Wszystkie obrazy Raspbiana można pobrać z: http://downloads.raspberrypi.org/raspbian/images/.
W tym wpisie zajmiemy się:
– ogólnymi komendami do wykonania
– raspi-config
– Interface sieciowy
– Mapowanie pendrive + ntfs-3g
– Konfiguracja Samba
– Instalacja FTP
– Win32DiskImager
Nie opisuję każdej komendy dokładnie – poradników w sieci jest na tyle dużo, że mija się to z celem.
Jak zaczynamy?
– Pobieramy obraz systemu ze strony Raspberry Pi
– rozpakowujemy
– ja używam Win32 Disk Imager aby wrzucić do na kartę SD
– po zgraniu podłączam klawiaturę i kabel HDMI do TV
Do pierwszych dwóch punktów musimy podpiąć klawiaturę bezpośrednio do Raspberry – ssh (do zdalnego połączenia) jest domyślnie wyłączone za względów bezpieczeństwa. Później możemy się przenieść na komputer – będzie bardziej komfortowo.
1. Najważniejsza sprawa zanim cokolwiek rozpoczniemy. Zawsze, gdziekolwiek – zmiana hasła!
passwd
2. Konfiguracja
sudo raspi-config
Domyślnie (od pewnego czasu, ze względów bezpieczeństwa) SSH jest wyłączone, musimy je włączyć. Przynajmniej jeżeli chcemy dostać się do Pi zdalnie, nie klęcząc przed telewizorem czy monitorem.
Następnie dobrze ustawić strefę czasową.
Wybieramy Europe -> Warsaw
Ja jeszcze osobiście ustawiam Memory split na minimum.
Oraz Hostname na swój.
3. Kolejny temat to aktualizacja Raspbiana i komponentów, które mamy zainstalowane. Oczywiście, z wpiętym kablem z routera.
sudo apt-get update
sudo apt-get upgrade
4. Następnie – konfiguracja sieci WiFi, bo głupio tak z kablami Malina wygląda 😉 …
Ja osobiście używam edytora nano. Przy wyjściu, w celu zapisu – Ctrl + X, Y(es), potwierdzamy nazwę pliku.
sudo nano /etc/network/interfaces
Ja chciałem mieć połączenie przez Wifi na stałym adresie IP (192.168.1.200, czyli warto to skonfigurować na routerze!), a w przypadku podłączenia kabla sieciowego adres z DHCP (czyli z automatu), wpakowałem tam więc:
auto wlan0
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.100
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
Konfiguracja połączenia z routerem odbywa się w pliku wpa_supplicant.conf.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
I tutaj:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid=”Cezar”
psk=”TwojeHaslo”
proto=RSN
key_mgmt=WPA-PSK
}
5. Warto byłoby teraz zainstalować dodatkowe programy. Mnie się przydaje Samba (dostęp do udostępnionych plików), obsługa NTFS, FTP, Midnight Commander oraz (do Domoticz) arp-scan i speedtest.
sudo apt-get install samba samba-common-bin cifs-utils ntfs-3g mc proftpd arp-scan speedtest-cli -y
6. Skoro już mam czego potrzebuję – najwyższa pora na Domoticz! Przypominam, że instaluję na Jessie, także nie mam problemu z ssl na wersji Stretch!
sudo curl -L install.domoticz.com | bash
7. Tworzenie wirtualnych folderów. Mam podpięty pendrive, na który nie dość, że lądują backupy Domoticz, to jeszcze są piosenki córki i syna. Trzeba go podpiąć, jeżeli Raspbian sam go nie wykrywa.
Możemy się wspomóc:
sudo fdisk -l
oraz
df -h
Tworzenie wirtualnego folderu:
sudo mkdir /media/Dysk
U mnie pendrive pojawił się na sda, więc:
sudo mount -t auto /dev/sda /media/Dysk
Edycja fstab, gdzie znajdują się informacje o mapowanych dyskach, folderach.
sudo nano /etc/fstab
Dodaję na końcu
/dev/sda /media/Dysk ntfs-3g nofail,defaults 0 0
8. Konfiguracja Samba (czyli dostępu do plików)
Zainstalowaliśmy ją już wcześniej (punkt 5), teraz trzeba skonfigurować. Ot, taki prosty NAS. Bardzo prosty…
Dodajemy użytkownika/użytkowników:
sudo useradd Cezar
sudo smbpasswd -a Cezar
Uruchamiamy:
sudo nano /etc/samba/smb.conf
I konfigurujemy. Oczywiście wszelkie foldery, nazwy – dostosowujemy do siebie.
[global]
#PL znaki w SMB
display charset = utf-8
unix charset = utf-8
dos charset = 852
workgroup = DOM
server string = Serwer NAS
wins support = yes
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
####### Authentication #######
security = user
map to guest = Bad User
[homes]
comment = Home Directories
browseable = no
read only = no
valid users = %S
[dysk_public]
comment = Server NAS 4 All
path = /media/Dysk/
public = yes
only guest = no
writable = yes
Ostatnie trzy parametry to: Publiczny – tak, Tylko goście – nie, Zapisywalny – tak.
Oczywiście dostosujcie go pod siebie, można definiować foldery dla użytkowników, nadawać uprawnienia, itp. itd. Dla mnie było ważne, aby każdy w domu mógł tam łatwo się dostać.
Restart serwisu i powinno działać:
sudo /etc/init.d/samba restart
8. Następnie nadanie praw do wykonania dla skryptu robiącego kopię baz i folderu www Domoticz.
sudo chmod +x /home/pi/domoticz/scripts/domoticz_backup.sh
9. Bez Dashticz sobie już życia nie wyobrażam…
10. Zdalny dostęp do Raspberry i Domoticz, czyli Dataplicity. Ale to już opisywałem wcześniej.
11. bluez – potrzebny do Xiaomi Mi Flora
12. Logitech, a dokładnie instalacja odtwarzacza Squeezelite
13. HABridge
Teraz sudo poweroff, kopia karty w Win32 Disk Imager i jesteśmy bezpieczni. W razie rozsypania się danych na karcie – szybki restore i jesteśmy gotowi do działania.
WAŻNE! Komenda Czytaj zapisuje dane Z KARTY NA DYSK, Zapisz – odwrotnie – Z DYSKU NA KARTĘ, czyli Zapisz może Wam namieszać, jeżeli nie używacie jej rozważnie!
Serwis Alexa – integracja z Domoticz
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
sudo chmod u+x starthabridge.sh
sudo ./starthabridge.sh
tail -f habridge-log.txt
sudo nano habridge.service
I tam wstawić:
Description=HA Bridge
Wants=network.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/pi/habridge
ExecStart=/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.
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.