środa, 29 listopada 2017

Aaaaaa. Rozsypała mi się baza Domoticz! Co robić, co robić?

A 'rozsypać' się może z różnych powodów. Błąd zapisu na kartę, zanik napięcia, przejście w Domoticz z wersji stable na beta i z powrotem na stable.

Jaki jest objaw? W logach Domoticz widzimy informację

'...Database is malformed...'.

U mnie konkretnie był problem z LightingLog - odpowiada on za przetrzymywanie danych archiwalnych o czujnikach - błąd był przy nocnym czyszczeniu tej tabeli. A to skutkowało zwiększoną wielkością bazy danych. U Was może być różnie. Jest to w końcu baza plikowa, bez serwisu który dba o integralność danych, itp.

Najpierw
sudo apt-get install sqlite3

Trzeba też zatrzymać serwis Domoticz

sudo service domoticz stop

Następnie

cd domoticz
sqlite3 domoticz.db
pragma integrity_check;

Nie jest dobrze! Błędy, jak widać, są i to dość dużo. Spróbujemy poradzić sobie z nimi na razie najprostszą metodą - zrzucenie struktury bazy i danych do pliku ponowne załadowanie. W 99% przypadków powinno pomóc.


Skoro jest źle - trzeba działać!

Startujemy:

sqlite3 domoticz.db
.mode insert
.output dump.sql
.dump
.exit

Co zrobiliśmy? Poleciliśmy SQLite, aby wyeksportował całą naszą bazę (wraz ze strukturą) do pliku dump.sql

Teraz załadujemy ten plik już do nowej bazy. Jak to może nam pomóc? Ano wyeksportowana została poprawna struktura tabel oraz danych z bazy, także teraz tą dobrą wrzucimy do nowej. Wszystkie dane powinny zostać poprawne. W moim konkretnym przypadku tak było - mam nadzieję, że i u Was nie będzie to nic poważniejszego.

sqlite3 domoticz1.db < dump.sql


Załadowaliśmy nasze dane do bazy domoticz1.db.

Sprawdźmy, dla pewności, czy faktycznie nam to pomogło.


Wygląda dobrze, wystarczy zastąpić domoticz.db plikiem domoticz1.db i uruchomić domoticz.

sudo service domoticz start

Gotowe!

środa, 22 listopada 2017

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!



Kopia bezpieczeństwa bazy, folderu Domoticz oraz innych elementów

Jak mówią, ludzie dzielą się na tych, którzy backupy robią i na takich, którzy będą robić.

Żeby za późno nie znaleźć się w tej drugiej grupie - szybki skrypt do tworzenia backupu (na przykład Domoticz i HABridge) na zewnętrzny dysk. W moim przypadku pendrive, z którego do dane czasem zgrywam na osobny dysk zewnętrzny. Jest co prawda mechanizm wbudowany w Domoticz, ale osobiście mi on nie odpowiadał - robi backup na tą samą kartę, na której jest Domoticz, więc sensu to nie ma...



Raz, dwa trzy, skrypt piszesz Ty. Nie ukrywam - jest to zmieniony pod moim kątem skrypt z Wiki Domoticz. Ale po to jest Wiki...

Zaczynamy więc od:

sudo nano /home/pi/domoticz/scripts/domoticz_backup.sh 

Wpisujemy (oczywiście zmieniając dane do Domoticz oraz foldery, na które chcecie kopiować). Ja, jak widać, dodatkowo robię sobie backup HABridge pod kątem Alexa.

DOMO_IP="192.168.1.200"  # Domoticz IP 
DOMO_PORT="80"        # Domoticz port 
TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
BACKUPFILE="domoticzbackup_$TIMESTAMP.db" # backups will be named "domoticz_YYYYMMDDHHMMSS.db.gz"
BACKUPFILEGZ="$BACKUPFILE".gz

#Create backup and make tar archives
/usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /media/Dysk/Domoticz_backup/database/$BACKUPFILE
tar -zcvf /media/Dysk/Domoticz_backup/scripts/domoticz_scripts_$TIMESTAMP.tar.gz /home/pi/domoticz/scripts/
tar -zcvf /media/Dysk/Domoticz_backup/www/domoticz_wwwfolder_$TIMESTAMP.tar.gz /home/pi/domoticz/www/
tar -zcvf /media/Dysk/HABridge/HABridge_$TIMESTAMP.tar.gz /home/pi/habridge/data/

#Delete backups older than 31 days
/usr/bin/find /media/Dysk/Domoticz_backup/database/ -name '*.db' -mtime +31 -delete
/usr/bin/find /media/Dysk/Domoticz_backup/scripts/ -name '*.tar.gz' -mtime +31 -delete
/usr/bin/find /media/Dysk/Domoticz_backup/www/ -name '*.tar.gz' -mtime +31 -delete
/usr/bin/find /media/Dysk/HABridge/ -name '*.tar.gz' -mtime +31 -delete

Nadajemy uprawnienia do uruchamiania:

sudo chmod +x /home/pi/domoticz/scripts/domoticz_backup.sh

Efekt:



Ja ustawiłem sobie uruchamianie go na 1:30 w nocy w cron (czyli crontab -e):

30 1 * * * sudo /home/pi/domoticz/scripts/domoticz_backup.sh

Oby się Wam backup nigdy nie przydał... Ale niestety, podczas pracy z Raspberry Pi widzę, że nie jest to widzimisię, a konieczność! 

Oczywiście można go zmienić, aby backupy lądowały na zewnętrznym FTP, czy też dysku NAS. Dla mnie jednak ta forma jest wystarczająca.

Xiaomi Mi Flora i ogólnie BLE

Dzień dobry w ten pochmurny i deszczowy dzień!

Mimo że deszczowo, ale w domu sucho. A jak sucho, to i kwiatki podlewać trzeba.

A do tego się przyda Xiaomi mi flora - czujnik wilgoci, temperatury oraz światła. Ten wpis zacząłem pisać jakieś pół roku temu i tak sobie wisiał nie skończony (poradniki jak czujnik połączyć z Domoticz są również na innych blogach, więc parcia nie było), ale pod kątem mojego kolejnego wpisu postanowiłem go skończyć.

Wpis oparty jest na Raspberry Pi 3, czyli Bluetooth mamy już na pokładzie.



Po wpisaniu

apt-cache policy bluez


dostaniemy zapewne informację wersji 5.23. Trochę stara, nie obsługuje Bluetooth Low Energy. Musimy zainstalować nowszą, przynajmniej 5.3x

Po pierwsze oczywiście, jak zawsze

apt-get update
apt-get upgrade

i instalujemy potrzebne bilbioteki

sudo apt-get install libglib2.0-dev libdbus-1-dev libical-dev libreadline-dev libudev-dev

Później

cd /home/pi

Na moment pisania przeze mnie aktualna wersja bluez to 5.47

wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.47.tar.gz
tar -xvf bluez-5.47.tar.gz
cd bluez-5.47

Ustawiamy zmienne systemowe

sudo ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-tools --disable-test --disable-systemd --enable-deprecated

I kompilujemy wersję

sudo make all

sudo apt-get install python-bluez python-requests

sudo cp attrib/gatttool /usr/bin/ 

lub (wykonanie obu nie zaszkodzi)

sudo cp attrib/gatttool /usr/local/bin/

export PATH=$PATH:~/bluez-5.47/attrib/

I ściągamy kod odpowiedzialny za komunikację z Mi Flora

cd ~ && git clone https://github.com/Tristan79/miflora.git

Kopiujemy folder do folderu ze skryptami Domoticz.

cp -R ~/miflora/ ~/domoticz/scripts/python/miflora

I lecimy dalej:

sudo aptitude install python3 python3-pip
sudo pip3 install pygatt
sudo pip3 install requests

Wchodzimy do folderu bluez:

cd bluez-5.47/

I wykonujemy

sudo tools/btmgmt le on
sudo tools/btmgmt connectable on
sudo tools/btmgmt power on

Dla pewności restartujemy 

sudo hciconfig hci0 down 
sudo hciconfig hci0 up
hciconfig


Później sprawdzamy jaki jest adres MAC naszego modułu Bluetooth
sudo hcitool lescan


Kopiujemy adres MAC naszego modułu Bluetooth, za chwilę się przyda.

W międzyczasie przygotujmy Domoticz. Dodajemy, w sekcji Hardware czujnik MiFlora, jako Dummy.


Następnie, do niego tworzymy Virtual Sensors. Cztery, tak jak poniżej. Uważajcie na typy.


I teraz ważny moment - edycja pliku konfiguracyjnego dla Mi Flora.

sudo nano /home/pi/domoticz/scripts/python/miflora/domoticz.py

Najpierw adres serwera i swoje dane logowania:

domoticzserver   = "192.168.1.200:80"
domoticzusername = "User"
domoticzpassword = "YourPassword"

I na samym końcu możecie zastąpić przykładowe czujniki Waszym adresem MAC i IDX założonych czujników w Domoticz.

print("\n1: Salon")
update("C4:7C:8D:62:A9:57","132","133","134","135")

i sprawdzamy

sudo /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py



Pozostaje wrzucić do cron, aby skrypt automatycznie się wykonywał, na przykład co godzinę.

crontab -e

@hourly sudo /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py

Działa!


NIC nie stoi na przeszkodzie, aby skrypt rozszerzyć o odczyt wartości baterii. Dodatkowo, osobiście zrealizowałem kiedyś skrypt sprawdzający obecność domowników na podstawie urządzeń Bluetooth - w moim przypadku opaski, ale w sumie każde urządzenie z Bluetooth da się pod to zaadaptować. Nie podobał mi się jednak dość mały zasięg sygnału Bluetooth. Możliwości jednak są!

Życzę powodzenia w ich odkrywaniu.

środa, 15 listopada 2017

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ć ;)




czwartek, 9 listopada 2017

Czujnik temperatury/wilgotności/baro Xiaomi Aqara

Dzień dobry!

Jako że testować lubiłem i lubię, po prostu musiałem sprawdzić drugi termometr od Xiaomi. Tym razem z serii Aqara, oprócz temperatury i wilgotności posiada również czujnik ciśnienia.

Mały, szybki test poniżej.

Jak każdy do tej pory sprzęt Xiaomi dotarł w schludnym, małym opakowaniu.


Tak tylko poglądowo - na górze przycisk do synchronizacji z Gateway.


W aplikacji MiHome musimy wybrać odpowiedni typ.


Po czym rozpocznie się pobieranie wtyczki do tego modelu.


Parowanie odbywa się za pomocą pokazanego wcześniej przycisku.


Gotowe. Po chwili zostanie wykryty przez Domoticz i możemy go dodać do odpowiednich zakładek.

Temperatura i wilgotność standardowo.


Różnicę widzimy na zakładce Utility, gdzie pojawił się czujnik ciśnienia.


Teraz już wiecie, na co możecie zrzucić winę, jeżeli boli Was głowa :D

piątek, 3 listopada 2017

Amazon Alexa - połączenie kalendarza Google

Dzień dobry! Dobry, bo piątek ;) Jednak dla rodzica to w sumie wszystko jedno ;)

Dzisiaj krótko - jak połączyć konto kalendarzowe - w moim przypadku Google z kontem Amazon Alexa. W sumie to już sam nie wiem jak to pisać - Amazon? Amazon Alexa? Alexa? Nieważne - ważne, że wiadomo o co chodzi...

Skoro już mamy asystenta domowego, który wiele spraw może dla nas przetworzyć - to wypada, aby nasze ustawione przez Alexę spotkanie 'Alexa, set the meeting on Friday at 5pm' zadziałało.

A bez połączenia tego z kalendarzem nie zadziała :(

To jednak tylko kilka szybkich ruchów i jesteśmy gotowi.

Po pierwsze, logujemy się do konta Amazon Alexa.


Przechodzimy to Settings -> Calendar


Wybieramy konto Google, które chcemy powiązać, logujemy się


Potwierdzamy:




WAŻNE, aby po skończeniu łączenia wybrać na dole strony kalendarz, w którym Alexa będzie DODAWAŁA nasze wydarzenia. Odczytywać może również z innych, ale ważne, gdzie dodaje.


No, to teraz można szaleć! Jako, że mamy w domu wspólny kalendarz rodzinny, który na tablecie wyświetla nam Dashticz, zaczyna się to wszystko zgrywać.

O kwestii +5 do respektu w domu, gdy gadasz po angielsku (szczęścia życzę przy wstawianiu 'Alexa, set the meeting with fryzjer at 5pm'...) nie wspominam...


czwartek, 2 listopada 2017

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 :D

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.