Alexa i problem z odczytywaniem zmian po stronie HABridge

Usssss… 

Ostatnie godziny spędzone z Alexą i HABridge były bardzo stresujące…
Przeniosłem cały system Home Assistant w nowe miejsce, na nowej instalacji DietPi, w kontenerze Dockerowym. Chciałem dodać nowe elementy w HABridge, trochę porządku zrobić. I zaciąłem się na dwa dni :/
Skasowałem listę przystkich urządzeń, wybrałem Discover zaczęły się cuda. Czego bym nie robił, jak nie kombinował – Alexa ciągle odczytywała mi poprzednie urządzenia, podpinała dziwne ID pod nie – ogólnie dramat. Poprosiłem nawet mojego dobrego kolegę (pozdrawiam Arka), speca od sieci i Linuxa aby pomógł mi zidentyfikować problem, bo myślałem, że gdzieś, jakimś cudem zainstalowałem osobną instancję, albo konfiguracja HABridge jest odczytywana ze złego miejsca. Sprawdziliśmy każde IP w moim domu – nic.
Bliski rozpaczy wpadłem na pomysł, aby ręcznie skasować te kilka starych urządzeń przypisanych w konfiguracji Alexy jedno po drugim i nagle pomogło! Poprawnie zaczytała kilka testowych urządzeń dodanych do HABridge.

Mission accomplished. Dziękuję Arkowi za pomoc!

Aktualizacja HABridge

Kilka dni temu wszedłem na stronę habridge i zauważyłem, że jest nowa wersja. Wypadałoby w takim razie zaktualizować to, co już mam. Nasunęło się pytanie – Jak?

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…

W kolejnym (długim!) poście pozwolę sobie zająć się przygotowaniem Raspberry Pi do działania.

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

Po około 1.5 godziny mamy kompletny system.

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!

Alexa – iż Polacy nie gęsi, iż swój język mają…

Alexa mówi. To jest jej główna cecha. Ale mówi albo po niemiecku, albo angielsku. Powoli jednak zaczyna się to, na szczęście, zmieniać. Jest pierwsza 'jaskółka’, która może zapoczątkować więcej naszych, lokalnych 'skilli’.

Mam tu na myśli skill, który udostępnił Onet. Dostępny jest do dodania na przykład pod Flash Briefing.

Wystarczy znaleźć skill Onet:

Dodać go w Settings -> Flash Briefing jako jeden (lub jedyny) z dostępnych źródeł:

I od tej pory Alexa, po wydaniu polecenia 'Alexa, flash’, 'Alexa, tell me flash briefing’ lub innych jak uważacie, będzie nam podawała ostatnie wiadomości udostępnione przez Onet. Jedyną moją obiekcją jest to, że mówi jakoś tak ciszej niż inne serwisy, nawet przy maksymalnej głośności

Korzystając z okazji: polskie radia dostępne są przez TuneIn Radio i tu na szczęście wybór jest duży. Antyradio, RMF, Zet, PR3 – bez problemu dostępne.

Miejmy nadzieję, że będzie ich coraz więcej. W końcu Alexa jest tworzona głównie w Gdańsku, szkoda wielka, że tak mało na razie jest lokalnych skilli. Może pora samemu spróbować 😉

Serwis Alexa – integracja z Domoticz

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 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.

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.

Amazon Echo Dot – konfiguracja

Dzień dobry.
Zanim podzielę się prywatnymi opiniami o Amazon Alexa – szybka instrukcja.
NA DZIEŃ DOBRY INFORMACJA – Echo Dot działa wyłącznie w dwóch językach: angielskim i niemieckim. Przynajmniej na dzień 01.11.2017.
Jak bardzo blisko jesteśmy Europy i świata ciągle słyszymy w TV. Jeżeli ktoś ogląda…
Okazało się jednak, że czasem nam daleko. Tak jest w przypadku aplikacji Alexa na telefony, czy to z Androidem, czy iPhone’y – po prostu jej u nas nie ma…
Dlatego przy konfiguracji serwisu musimy skorzystać za strony:
Ten dokładnie link odnosi się do instalacji nowego urządzenia w naszym domu. Zakładania konta na Amazon opisywał nie będę, na tym skupiać się nie warto.
W sumie ciężko mi było łapać ekrany, bo chciałem jak najszybciej przejść do używania, ale czego się nie robi dla Szanownych czytelników!
Po pierwsze musimy wybrać nasze urządzenie. Ja mam Echo Dot, to mniejsze, je musiałem wybrać. Niczym (no, oprócz słabszych głośników) nie różni się jednak od tego większego. Jeżeli chodzi oczywiście o konfigurację 😉

Wybieramy język. Tutaj 'oczywiście’ ze świecą szukać polskiego. Dostępne opcje to angielski US, angielski UK oraz niemiecki. Mnie bliżej do angielskiego, taki wybrałem…

Teraz, podobnie jak przy konfiguracji Yeelight, kamer, itp. podłączamy się do sieci Echo Dot. Tylko na chwilę, musimy mu wskazać z jakiej sieci w naszym domu ma skorzystać.

Echo powie nam o tym, że jest gotowe do instalacji i zaświeci pomarańczowym światłem.

Nazwa sieci do której się mamy podłączyć będzie czymś w stylu Amazon-XXX. U mnie Amazon-871.
JEZDĘ PODŁĄCZONY!

Kolej na wybranie naszej sieci WiFi

Podanie hasła…

I nasze Echo zacznie się przygotowywać do zaoferowania nam swoich usług!

Pozostaje połączyć się powtórnie na laptopie (czy innym urządzeniu na którym konfigurujecie) ze swoją siecią domową.

TADAM! Koniec konfiguracji. Tej wstępnej przynajmniej…

Pora na krótką instrukcję używania. Jak odtwarzać muzykę…

Jak zadawać pytania…

Oczywiście oferta Amazon Prime…

I koniec.

Można szaleć.

Alexa się sama szybko zaktualizowała i mogłem przystąpić to zabawy.

Tak naprawdę jednak 'robota’ dopiero się zaczyna. Alexa sama w sobie faktycznie ma wiele możliwości, ale główna jej siła tkwi w systemie 'Skill’i, oferowanych przez firmy zewnętrzne (Spotify, Roomba, Yeelight, serwisy TuneInRadio, Google, itp.). I tutaj warto będzie poświęcić osobny wpis wyłącznie na te elementy.

Na razie jednak: 'Alexa, play Rotting Christ on Spotify’ i do sprzątania domu!