Czujnik Shelly HT w HomeKit

W tym poradniku pokażę Wam jak można dodać bezprzewodowy czujnik temperatury i wilgotności do HomeKit.


Bardzo ciekawym czujnikiem, który trafił w mojej ręce kilka miesięcy temu jest Shelly HT. Ten miniaturowy czujnik mierzy 35 mm, komunikuje się przez WiFi, do tego nie potrzebuje stałego zasilania, a jedynie baterii CR123A. To jego duża zaleta, ponieważ możemy go w łatwy sposób przenosić między pomieszczeniami, a nawet wystawić za okno, pod warunkiem, że nie będzie narażony na bezpośredni kontakt z wodą. Obudowa nie jest wodoodporna. Proszę o tym pamiętać :-) Czujnik testowałem również w lodówce i zamrażarce lecz wskazanie poziomu naładowania baterii spadło o 20% :-) Producent podaje, że urządzenie działa przez 1 rok na jednej baterii. To bardzo dobry wynik, a to zasługa zarządzania energią. Moduły WiFi, które montowane są w większości smart urządzeń WiFi zużywają sporo energii i gdyby czujnik miał działać cały czas bateria rozładowała by się w ciągu jednego dnia. Shelly HT działa cały czas w stanie czuwania, monitoruje na bieżąco pomiary, a z siecią WiFi łączy się tylko wtedy, gdy temperatura lub wilgotność się zmieniła. Proces łączenia się, przekazania pomiarów do chmury trwa kilka sekund, po czym od razu jest usypiany. Dzięki takiemu rozwiązaniu jest wstanie działać bardzo długo.

    Czujnik nie ma wsparcia HomeKit i nie można go dodać bezpośrednio do aplikacji DOM. Nie jest też cały czas online i nie odczytamy z niego nic w momencie, gdy jest uśpiony. Jednak jest na to sposób. Skonfigurujemy go tak, żeby pomiary z czujników po wybudzeniu wysłał i zapisał trwale w Brokerze MQTT oraz nadpisywał te dane nowymi odczytami w przyszłości.

    Broker MQTT to taka "tablica ogłoszeń", na której urządzenia publikują swoje ogłoszenia na zasadzie:

    "Nazywam się Czujnik_Shelly, ogłaszam, że moja temperatura to 23 stopnie, a wilgotność 45%. Jak coś się zmieni, to dam znać. "

    Tylko tyle :-) Każde urządzenie może zerknąć na taką tablicę ogłoszeń i jeśli wie, jakich ogłoszeń szuka, to znajdzie potrzebne informacje. Broker MQTT zapytamy konkretnie o to, jakie pomiary zapisał Czujnik_Shelly na "tablicy ogłoszeń" pod pozycją temperatura i wilgotność. Proste prawda? :-)

    Z brokerem komunikować się będzie HomeBridge, a konkretniej mój ulubiony plugin homebridge-mqttting. Żeby nie było za trudno zajęliśmy się Brokerem MQTT, jego konfiguracją i plugin'em mqttting.

    W przygotowanym dla Was, gotowym obrazie HomeBridge RTU wszystko już jest. Gotowe do użycia. Nic nie musicie robić, poza ustawieniem samego czujnika i dodaniem nowego akcesorium w HomeBridge przez www. Tak, żeby gadały ze sobą. Jeśli nie masz jeszcze HomeBridge zapraszam do lektury HomeBridge w 10 minut.

    Konfiguracja czujnika Shelly HT

    Jeśli mamy nowe urządzenie, jeszcze nie podłączone do naszej sieci WiFi, to w pierwszej kolejności musimy je dodać. Możemy to zrobić przez aplikację Shelly Cloud, poducenta czujnika lub skonfigurować wszystko przez www. My skorzystamy z drugiego rozwiązania. Po uruchomieniu czujnika powinniśmy zobaczyć nową sieć WiFi o nazwie shellyht-xxxxx.

    Łączymy się z nią, a po połączeniu, w przeglądarce internetowej wpisujemy adres http://192.168.33.1

    Przechodzimy do ustawień WiFi na Shelly HT, wpisujemy nazwę naszej sieci WiFi, hasło i zapisujemy.

    Zostaniemy rozłączeni z siecią WiFi shellyht-xxxxx, ponieważ czujnik połączy się z naszą siecią WiFi, którą przed chwilą mu wskazaliśmy. My również możemy ponownie połączyć się z naszym WiFi.

    Teraz sprawdzamy na routerze jaki adres IP otrzymał czujnik i ponownie wchodzimy na web panel urządzenia (w pasku adresu przeglądarki wpisujemy adres IP czujnika np. http://192.168.99.148). 

    UWAGA: Od teraz nasz czujnik działa już w normalnym trybie, to znaczy, że jest dostępny online przez 3 minuty. W tym czasie na czujniku świeci się czerwona dioda. Gdy zgaśnie czujnik przechodzi w tryb uśpienia. Aby go wybudzić i móc dalej konfigurować go przez www należy nacisnąć przycisk w środku (1 klik).

    Przechodzimy do zakładki Internet & Security i w sekcji ADVANCED - DEVELOPER SETTINGS zaznaczamy Enable action execution via MQTT, wpisujemy Username: homebridge i Password: homebridge. Podajemy adres Brokera MQTT czyli IP lub host naszego HomeBridge homebridge.local oraz po dwukropu port 1883. Zaznaczamy opcję Retain. Nada on każdej wiadomości MQTT wysyłanej przez czujnik do brokera status przechowywania, zapisze ją na stałe na "tablicy ogłoszeń", a ponowne uruchomienie HomeBridge nie skasuje tego "ogłoszenia".

    Zanotujmy sobie również ID urządzenia. Potrzebne nam będzie później przy dodawaniu akcesorium do HomeBridge. Jest podany w polu Will Topic. Chodzi o 6 unikalnych znaków shellies/shellyht-5A8AFD/online. Każdy czujnik na inne ID.

    Możemy też ustawić hasło www do naszego czujnika Shelly HT, aby zwiększyć bezpieczeństwo i żeby nie raziła w oczy czerwona ikona na górze :-)

    Po stornie czujnika to wszystko. Zapisujemy i zamykamy WWW.

    Dodajemy nowe akcesorium do HomeBridge

    Teraz zajmiemy się dodaniem akcesorium. W tym celu logujemy się na HomeBridge przez przeglądarkę http://homebridge.local:8080, podając swoje dane logowania. Przechodzimy do zakładki konfiguracja i dodajemy wpis:

    {
        "accessory": "mqttthing",
        "type": "weatherStation",
        "name": "Shelly HT",
        "serviceNames": {
            "temperature": "temperatura",
            "humidity":    "wilgotność"
        },
        "url": "mqtt://localhost",
        "username": "homebridge",
        "password": "homebridge",
        "topics":
        {
            "getCurrentTemperature":        "shellies/shellyht-XXXXXX/sensor/temperature",
            "getCurrentRelativeHumidity":   "shellies/shellyht-XXXXXX/sensor/humidity",
            "getBatteryLevel": "shellies/shellyht-XXXXXX/sensor/battery" 
        },
        "history": true
    }

    Jedyne co musimy, to w miejsce XXXXXX wstawić zapisany wcześniej ID urządzenia. 

    Zapisujemy konfigurację i restartujemy HomeBridge.

    Na naszym iPhonie w aplikacji dom, w pokoju domyślnym pojawią się 2 nowe kafelki - z temperaturą i wilgotnością powietrza.