Inteligentny dom tanim kosztem, HomeKit, MQTT… kolejny ważny odcinek, wręcz przełomowy. Dziś postaramy się uruchomić oraz skonfigurować brokera (serwer) MQTT i HomeBridge.
Pamiętajcie o innych częściach cyklu INTELIGENTNY DOM TANIM KOSZTEM, HOMEKIT.
Swoją instalację uruchomiłem na dysku sieciowym QNAP i taką konfigurację opiszę. Bez większych zmian będą z niej mogli skorzystać użytkownicy lepszych modeli Synology, a i osoby, które zapragną uruchomić HomeBridge na „malinkach” i ich klonach, również sporo skorzystają z opisu, zwłaszcza konfiguracji.
Podoba Ci się artykuł? Możesz zafundować mi piwo (lub kawę) 😉
Musimy zacząć od zainstalowania (jeżeli nie mamy) Container Station w QNAP za pomocą App Center.
Teraz możemy zabrać się za MQTT. Jest to bardzo „lekki” protokół wymiany informacji. Ze względu na prostotę i szybkość przyjął się w IoT, ale nie tylko. Teoretycznie moglibyśmy sobie poradzić, wysyłając komendy przez HTTP, jednak MQTT daje znacznie więcej możliwości i jest też pewną alternatywą dla HomeKit (gdyby Apple raczył zablokować niezgodne urządzenia).
W Container Station klikamy w „Utwórz kontener”, następnie wpisujemy, w szukaj: „MQTT”. W zakładce IoT powinien nam się pojawić „MQTT Mosquitto…”. Klikamy „Utwórz”. W oknie ustawień możemy zmniejszyć przydział pamięci (spokojnie 64-128MB wystarczy). Na dole klikamy w „Ustawienia zaawansowane”. Wybieramy po lewej „Sieć” i zmieniamy tryb sieci na „Host”. Jest to bardzo ważne, bo bez tego nasze urządzenia nie będą miały łatwego dostępu do brokera MQTT. Klikamy „Utwórz” i chwilę czekamy aż kontener z MQTT, zostanie utworzony i uruchomiony.
Poprawność jego pracy możemy sprawdzić już teraz. Wystarczy zalogować się do naszego przełącznika z wgranym firmware Sonoff-Tasmota, wejść w „Configuration”, dalej w „Configure MQTT”. Jeżeli nie mamy MQTT na liście, to należy sprawdzić w „Configure Other” czy klient MQTT jest włączony.
Zapisujemy, przechodzimy do menu głównego naszego Sonoffa lub Electrodragona i tam wchodzimy w Console. Jeżeli zobaczymy komunikaty podobne do tego: „21:24:22 MQTT: stat/sonoff205/POWER”, to oznacza, że Sonoff (Electrodragon) nawiązał połączenie z MQTT. Jeżeli widzimy coś podobnego do:
00:00:05 MQTT: Attempting connection... 00:00:06 mDNS: Query done with 0 mqtt services found
To znaczy, że połączenia brak. Winny może być zły adres, jaki wpisaliśmy w ustawieniach MQTT w Sonoffie (user i hasło na tym etapie nie mają znaczenia). Jeżeli adres jest OK, to sprawdźmy w Container Station czy kontener z MQTT pracuje i czy na pewno daliśmy mu tryb sieciowy Host.
Jeżeli akcja z MQTT się powiodła, to zabierzmy się za HomeBridge, będzie trudniej.
Przed dodaniem kontenera dobrze jest przygotować na QNAP miejsce, gdzie będziemy trzymać jego konfigurację. Może to być osobny zasób lub nasz ulubiony, ale z wydzieloną teczką np. HomeBridge.
W Container Station znów klikamy w „Plusa”. W „szukaj” wpisujemy HomeBridge. Tym razem w zakładce „Docker Hub” powinien nam się pojawić między innymi „marcoraddatz/home…”. Przy nim klikamy „utwórz”, wybieramy wersję „latest”. Znów możemy zmniejszyć ilość pamięci (lepiej nie mniej niż 128 MB) i przechodzimy do ustawień zaawansowanych. W sieci koniecznie wybieramy tryb „Host”, a w Foldery musimy „zamapować” utworzoną wcześniej teczkę do odpowiedniej ścieżki w kontenerze HomeBridge. W „Wolumin hosta” wybieramy naszą teczkę, a w „Punkt zamontowania” wpisujemy dokładnie tak jak tu „/root/.homebridge” (bez cudzysłowów oczywiście). Sprawdzamy, czy mamy dla tej pary włączony odczyt i zapis i klikamy w „Utwórz”.
Jeżeli kontener z HomeBridge się utworzy i uruchomi, to w Konsoli pojawi się komunikat o braku pliku konfiguracyjnego. Musimy go stworzyć i zainstalować dodatki (pluginy), bez których HomeBrudge nic nie potrafi.
Teraz musimy zacząć od dodania pierwszego „akcesorium” do pliku konfiguracyjnego oraz zainstalować dodatek do jego obsługi.
Opisane niżej pliki muszą znajdować się w katalogu głównym HomeBridge wskazanym podczas jego konfiguracji, czyli np. w wybranym zasobie sieciowym w teczce HomeBridge.
Wszystkie dane konfiguracyjne znajdują się w pliku „config.json”. Można go edytować TextWranglerem, darmową wersją jego następcy: BBEdit, edytorem Atom (tym od wgrywania firmwaru) lub po prostu systemowym TextEdit, ale koniecznie w trybie zwykłego tekstu (menu Format -> Zamień na zwykły tekst). Należy pilnować, aby nazwa pliku była „config.json” i nie pojawiły się za nią żadne dodatki typu .txt (sprawdzamy w Info, czy mamy włączone pokazywanie rozszerzenia dla tego pliku).
Drugi plik to „install.sh”. Jego również dotyczą wspomniane wyżej zasady edycji. Posiadacze „Malinek” mogą dodatki instalować ręcznie bez używania pliku install.sh komendą: „sudo npm install -g nazwa-pluginu” np. „sudo npm install -g homebridge-mqtt-switch-tasmota”.
Możecie pobrać gotowy przykładowy plik „install.sh” lub stworzyć go ręcznie. Jeżeli chcemy zainstalować dodatek do obsługi przełącznika, to plik powinien mieć treść:
#!/bin/bash npm install -g homebridge-mqtt-switch-tasmota
Konfigurację zrobimy na przykładzie mojego pluginu do obsługi przełącznika.
{ "bridge": { "name": "Homebridge", "username": "CC:22:3D:E3:CE:30", "port": 51826, "pin": "031-45-154" }, "description": "Chatka", "accessories": [ { "accessory": "mqtt-switch-tasmota", "switchType": "Switch", "name": "Drukarka", "url": "mqtt://10.6.12.13", "username": "ppp", "password": "ppp", "topics": { "statusGet": "stat/sonoff/POWER", "statusSet": "cmnd/sonoff/power", "stateGet": "tele/sonoff/STATE" }, "onValue": "ON", "offValue": "OFF", "activityTopic": "tele/sonoff/LWT", "activityParameter": "Online", "startCmd": "cmnd/sonoff/TelePeriod", "startParameter": "120", "manufacturer": "Itead", "model": "Sonoff WiFi", "serialNumberMAC": "00:01:94:07:4C:02" } ] }
Najważniejsze są linijki:
„accessory”: „mqtt-switch-tasmota”,
Tu wpisujemy nazwę dodatku obsługującego to akcesrium („homebridge-” możemy pominąć).
„url”: „mqtt://10.6.12.13”,
To adres naszego brokera MQTT, w tym przypadku adres NAS QNAP lub „Malinki” z mgtt:// na początku. Musi być on taki sam jak w konfiguracji przełącznika! Do MQTT, który przenosi komunikaty, łączy się zarówno HomeBidge, jak i „Sonoffy”.
„username”: „ppp”,
„password”: „ppp”,
Identyczne jak w ustawieniach Sonoffa!
Wszystkich linijek z nazwami Topików gdzie w przykładzie występuje „sonoff”, dotyczy jedna zasada: ma być dokładnie jak w przykładzie, jedynie „sonoff” (w środku pomiędzy „/”) możemy zmieniać. Jest to nazwa MQTT naszego urządzenia podana w konfiguracji MQTT przełącznika. W naszym przypadku jest to właśnie „sonoff”. Jeżeli będziemy mieli kilka przełączników, każdy musi mieć inną nazwę np. „sonoff001”, „sonoff002”, „salon1”. Ważne, że środek z topika w config.json ma być identyczny z nazwą MQTT w ustawieniach przełącznika.
Jeżeli ustawiliście nazwę „sonoff” dla tego pierwszego, to nic nie musicie zmieniać w przykładowej konfiguracji.
Linijki z „manufacturer”, „model”, „serial…” nie są obowiązkowe, to tylko informacja ułatwiająca identyfikację jak już będziecie mieć tych urządzeń kilkanaście.
W plikach json każdy przecinek ma znaczenie. Dobrze jest sprawdzić naszą konfigurację np. za pomocą serwisu: http://jsonlint.com, aby nie narażać się na poprawianie prostych błędów.
Przygotowane pliki install.sh i config.json wgrywamy do teczki HomeBridge i restartujemy lub uruchamiamy kontener z nim, sprawdzając, czy MQTT również pracuje.
Jeżeli nic nie popsuliśmy, to w konsoli kontenera z HomeBridge powinniśmy zobaczyć „pin” konieczny do sparowania z HomeKit. Jeżeli po uruchomieniu i instalacjo dodatków (może to chwilę potrwać, przebieg będzie widoczny w konsoli) widzimy ten pin i nie ma za nim błędów, a kontenery nadal pracują, to możemy w iPhone uruchomić aplikację „Dom”.
Przy dodawaniu poinformuje nas ona, że urządzenie jest niewspierane, ale nasz przełącznik powinien pojawić się w „domyślnym pokoju”.
Kolejne urządzenia dodajemy do pliku konfiguracyjnego, oddzielając je przecinkiem. Za ostatnim przecinka dodawać nie można.
Np. tak jak w tym pliku: config.json, który zawiera konfigurację dwóch przełączników.
Więcej o konfiguracji dowiecie się z moich profili na npm oraz github. Są tam również inne dodatki do obsługi temperatury, wilgotności, pomiaru mocy (Sonoff Pow), czy sensorów ruchu wraz z przykładowymi konfiguracjami.
W następnej części opiszę jak podłączać do Sonoffów i Electrodragonów dodatkowe sensory, czy przełączniki oraz więcej opcji konfiguracji HomeBridge.
Powodzenia!
Pamiętajcie o innych częściach cyklu INTELIGENTNY DOM TANIM KOSZTEM, HOMEKIT.
Markę Synology kojarzycie zapewne z urządzeniami NAS. Te świetne dyski sieciowe dają możliwość przechowywania bezpiecznie…
Na rynek wchodzą dwa nowe głośniki marki Sonos: Era 100 i Era 300. Model Era…
Akcesoriów, które możemy dodać do naszego inteligentnego domu jest coraz więcej. Do tego zacnego grona…
Wiecie, że jedna z najlepszych baz danych - FileMaker (obecnie zmieniana jest nazwa na Claris),…
Elon Musk wszedł na Twittera i zrobił rewolucje. Ostateczną ocenę jego poczynań w tym serwisie…
Ten produkt miał już nie istnieć. Kiedy pojawiły się informację, że Apple nie przedłuży życia „dużego”…
Serwis wykorzystuje pliki cookies. Korzystając ze strony wyrażasz zgodę na wykorzystywanie plików cookies.