^

Inteligentny dom tanim kosztem, HomeKit, MQTT „zrób to sam”, cz. 4 „Robimy HomeBridge”

Jaromir Kopp

18 marca 2017

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ę) 😉 Donate a coder

Inteligentny dom tanim kosztem, HomeKit, MQTT, HomeBridge.

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

MQTT w QNAP

HomeBridge na QNAP konfiguracja 1

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.
HomeBridge na QNAP konfiguracja - Container Stationustawienia sieciowe
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.
HomeBridge na QNAP konfiguracja - ustawienia MQTT przełącznika

  • W ustawieniach MQTT wpisujemy:
  • Host — adres IP naszego brokera MQTT, czyli IP QNAP-a lub „malinki”.
  • Port: 1883,
  • Client Id nie zmieniamy.
  • User i hasło: dowolnie. Będą musiały być zgodne ze wpisanymi w konfiguracji akcesoriów w HomeBridge.
  • Topic: nazwę (identyfikator) naszego urządzenia np. sonoff. Po niej będzie rozpoznawane.

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.
HomeBridge na QNAP konfiguracja - MQTT jest połączenie!
Jeżeli akcja z MQTT się powiodła, to zabierzmy się za HomeBridge, będzie trudniej.

HomeBridge w QNAP

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.
HomeBridge na QNAP konfiguracja - Container Station dodajemy kontener z 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”.
HomeBridge na QNAP konfiguracja - Container Stationustawienia sieciowe HomeBridge na QNAP konfiguracja - Container Station mapowanie dysku
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.

HomeBridge – konfiguracja

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.
HomeBridge na QNAP konfiguracja - restart HomeBridge na QNAP konfiguracja - konsola
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”.
HomeBridge na QNAP konfiguracja - działa!
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.

Jaromir Kopp

Użytkownik komputerów Apple od 1991 roku. Dziennikarz technologiczny, programista i deweloper HomeKit. Propagator przyjaznej i dostępnej technologii. Lubi programować w Swift i czystym C. Tworzy rozwiązania FileMaker. Prowadzi zajęcia z IT i programowania dla dzieci oraz młodzieży, szkoli też seniorów. Współautor serii książek o macOS wydanych przez ProstePoradniki.pl. Projektuje, programuje oraz samodzielnie wykonuje prototypy urządzeń Smart Home. Jeździ rowerem.
Komentarze (125)
L

125 komentarzy

  1. Michał Czarkowski

    Mam pytanie co do czujnika temperatury. Czy to normalne że poza siecią jest problem z aktualizacją temp na homekit? Wszystko inne działa, wilgotność nie daje błędów a temperatura owszem.

      • Michał Czarkowski

        Uzywam tej Twojej konfiguracji. Do mqqt wysyla raczej ok. Bledow nie widze w logu. Bledy pojawiaja sie tylko poza siecia. Hmm musze to przeinstalowac chyba wszystko zeby bylo na czysto 😉

        • Tomek

          Pytanie czy stawiałes może tego homebridge na raspberry?

          • Michał Czarkowski

            Tak. I homebridge i mosquito (mqqt).

            • Tomek

              A Korzystałeś z jakiejś sprawdzonej instrukcji jak to pod malina uruchomić bo przetestowałem kilka z internetu i narazie kiepsko u mnie z tym ?

              • Michał Czarkowski

                Zadziałało. Żeby uruchomić Orvibo S20 trzeba pokolei wykonać instrukcje z tego postu:
                https://smartapfel.de/anlei
                potem z tego
                http://pochemuto.com/2016-1
                U mnie wreszcie zadziałało co podrzucam na screenie. (S20 smigaja, Allone nie ale wiadomo to troche inne użądzenie i nie ma go obsługiwanego pod homekit)
                Do tego zainstalowany mosquito z oficjalnej strony wg instrukcji i skrypty dzialajace na mqqt leca wg instrukcji Jaromira. Nic wiecej nie robilem

      • Michał Czarkowski

        17:21:58 MQTT: tele/sonoff/STATE = {„Time”:”2017-03-20T17:21:58″, „Uptime”:119, „POWER”:”OFF”, „Wifi”:{„AP”:1, „SSID”:”Agata One”, „RSSI”:84}}
        17:21:58 MQTT: tele/sonoff/SENSOR = {„Time”:”2017-03-20T17:21:58″, „DHT22”:{„Temperature”:19.9, „Humidity”:46.5}}
        17:21:58 MQTT: stat/sonoff/RESULT = {„POWER”:”OFF”}
        17:21:58 MQTT: stat/sonoff/POWER = OFF
        17:22:58 MQTT: tele/sonoff/STATE = {„Time”:”2017-03-20T17:22:58″, „Uptime”:119, „POWER”:”OFF”, „Wifi”:{„AP”:1, „SSID”:”Agata One”, „RSSI”:84}}
        17:22:58 MQTT: tele/sonoff/SENSOR = {„Time”:”2017-03-20T17:22:58″, „DHT22”:{„Temperature”:19.9, „Humidity”:46.4}}
        17:22:58 MQTT: stat/sonoff/RESULT = {„POWER”:”OFF”}
        A ustawienia inne takie jak w ustawieniach podawanych przez Ciebie tu nic nie zmieniałem. W config.json się to ustawia jakos?

        • Michał Czarkowski

          A w config.json jest tak
          „accessories”: [{
          „accessory”: „mqtt-temperature-tasmota”,
          „name”: „Temperatura”,
          „url”: „mqtt://192.168.1.14”,
          „username”: „ppp”,
          „password”: „ppp”,
          „topic”: „tele/sonoff/SENSOR”,
          „activityTopic”: „tele/sonoff/LWT”,
          „activityParameter”: „Online”,
          „startCmd”: „cmnd/sonoff/TelePeriod”,
          „startParameter”: „60”
          },
          Tylko teraz patrze na log z homebridge i widze ze sprawdza status tylko
          [2017-3-20 17:45:35] [Przelacznik] Przelacznik – Status get z POWERa : false
          [2017-3-20 17:46:35] [Przelacznik] Przelacznik – Status get z POWERa : false
          [2017-3-20 17:47:35] [Przelacznik] Przelacznik – Status get z POWERa : false
          [2017-3-20 17:48:35] [Przelacznik] Przelacznik – Status get z POWERa : false
          [2017-3-20 17:49:35] [Przelacznik] Przelacznik – Status get z POWERa : false
          A nie sprawdza statusu temperatury i wilgotnosci. Tak ma byc?

            • Michał Czarkowski

              Ok, ale w ktorym miejscu. W config.json jest tak jak wpisalem, po stronie sonoffa tez nie wiem gdzie mialbym to sprawdzic. Ktory plik „sprawdzac”

  2. Michał Czarkowski

    W sonoffie w mqqt ? wiem ze glupio pytam ale nie mam pojecia gdzie tego szukac a juz chwile szukam.

  3. Piotrek

    u mnie też sukces 😉 wielkie dzięki za pomysł i instrukcje ! jak by ktoś coś to mogę się podzielić wiedzą w temacie homebridge na Synology. Mam jedno pytanko: czy jest możliwe zdalne połączenie ?

    • Jaromir Kopp „MacWyznawca”

      Masz na myśli zdalne połączenie do HomeKit?
      Jeżeli tak, to tak… pod warunkiem, że masz ATV lub iPad, które pełnią rolę „zarządcy domu”.

      • Piotrek

        tak o tym myślałem, ale nie mam AppleTV a iPad nie ma najnowszego iOS-a ;(

          • Piotrek

            dokładnie 2

            • Tomek

              Działa bardzo fajnie z Apple TV 4 i dochodzi wtedy możliwość automatyzacji – generalnie świetna sprawa możesz np o zachodzie słońca wyłączać dane urządzenia itp

    • Mikolaj

      Cześć, szukam pomocy w stworzeniu całości na Synology. Możesz mi podesłać jakas instrukcje jakim programem to zrobiłeś na synology?

  4. Piotrek

    a i jeszcze jedno, w artykule jest mały błąd w części dotyczącej opisu zawartości pliku install.sh
    Napisane jest:
    „#!/bin/bash
    npm install homebridge-mqtt-switch-tasmota”
    a powinno być:
    „#!/bin/bash
    npm install -g homebridge-mqtt-switch-tasmota”
    chwilę mi to zajęło zanim do tego doszedłem 😉

  5. Tomek

    Mam pytanie czy ktoś konfigurowal to na malince ?? Udało mi się postawic HAP Node z filmu z YouTube wg
    https://youtu.be/3RmuXn8eS9s
    i działało fajnie łącznie ze zdalnym sterowaniem i automatyzacją poprzez Apple TV i po przeinstalowaniumaliny na czysto niby wszystko działa mqtt i serwer tez startuje i homekit tez wykrywa NodeBridge ale za nic nie chce sparować się z Sonofem.
    Może ktoś ma sprawdzony przepis krok po kroku w terminalu na samego Homebridge na Raspberry pi 3 ???
    Pomożecie ??

    • Jaromir Kopp „MacWyznawca”

      Czy czasem nie masz problemu z adresami w konfiguracji Sonoffa i HomeBridge? Sonoff w logach konsoli www podaje, ze się połączył do MQTT?

      • Tomek

        Tak łączy się ładnie i rozmawia z mqtt

          • Tomek

            W końcu ruszyło coś prawdopodobnie miałem wcześniej nie tak teraz już jest ok i działa. Twój poradnik Jaromir był baaardzo pomocny. Dzieki

            • Michał Czarkowski

              Jest jeszcze szansa ze mial jakis problem z username w config.json raz 2h homekit nie widzial w ogole mostka zmienilem na inny i smignelo.

      • Tomek

        Korzystałem z tej instrukcji
        https://youtu.be/3RmuXn8eS9s
        oraz tej
        https://youtu.be/M4qHXoAyrRs
        i za pierwszym razem śmigało ładnie a po przeinstalowaniu teraz nie działa. Może jakieś biblioteki dostały upgrade i coś nie współgra ?

  6. Tomek

    Super czekam na następne odcinki. Próbowałeś może sterować jakoś roletami? Ciekawe czy jest szansa jakoś to spiąc do Homebridga? Co do piwa daj znać co i jak to dogadamy szczegóły 🙂 Pzdrw

  7. Piotrek

    Jaromir, mam pytanie. Jaki typ sensora wybrać do podłączenia na GPIO14 czujnika ruchu ? Model który mam to HC-SR501. DHT22 działa poprawnie 😉

    • Jaromir Kopp „MacWyznawca”

      Czujnik ruchu to przecież przełącznik… czyli Switch. Pamiętaj, że on działa odwrotnie – nie daje GND podczas wykrycia ruchu, a 3,3V czyli ustawiaj „invertert”

      • Piotrek

        na czujniku jest możliwość ustawienia za pomocą zworki, czasu generowania stanu wysokiego w trakcie wykrycia ruchu, gdzie mam ustawić „inverteret” ? w konfiguracji modułu ? nie znalazłem takiej opcji

          • Piotrek

            pls HELP ! podpiąłem czujnik ruchu; GPIO14 ustawione na SWITCH; w konsoli zmieniłem SWITCHMODE na wartość INVERTED (Set switch mode to inverted FOLLOW (0 = On, 1 = Off)) i niestety nie działa. Zmiana czułości i czasu stanu wysokiego nic nie dała ;(

            • piotrek

              ok, już chyba wiem, zasiliłem go napięciem z programatora a on pracuje na zakresie 4.5-20V
              już sprawdzam …

      • Tomek

        Czy te czujki trzeba spiąć z sonoff TH czy może być zwykły tez ??
        Drugie pytanie jaki jest zasięg praktycznie tej czujki ?

        • Jaromir Kopp „MacWyznawca”

          Ze zwykłym bez problemu (jak wlutujesz piny lub gniazdka).
          Producent podaje, że kilka metrów, praktyka to potwierdza.

  8. Piotrek

    Zastanawia mnie jeszcze kwestia, jak to wszystko teraz połączyć w logiczną całość.
    Mam na myśli zaplanowane działania typu temp. spada poniżej określonego przedziału (jak go zdefiniować), to wykonywana jest akcja pt. włącz grzejnik itp.. Jak i czy wogóle jest taka możliwość w HomeKit ?

    • Jaromir Kopp „MacWyznawca”

      Jest, ale musisz użyć aplikacji Elgato Eve. Systemowa DOm nie ma tak złożonych akcji, ale jak ustawisz je za pomocą Eve to ATV4 lub iPpad w roli „zarządcy” będzie je wykonywał w ramach HomeKit.

      • Piotrek

        ok, spróbuje 😉 AppStore chwilowo niedostępny 🙁

        • Michał Czarkowski

          Moze byc ATV 3gen ale bez obslugi kamer 😉

  9. piotrek

    … cholera i nic ! jakiś pomysł ?

      • piotrek

        a widzisz, o tym nie pomyślałem. Czujkę zasililem w 100% z zasilacza i z pinu OUT podpiąłem się GPIO14 w SONOFF …
        Jak to powinno być ostatecznie połączone ?, nie do końca czuje to wspólne GND a nie chcę bałaganu narobić …

        • Jaromir Kopp „MacWyznawca”

          Aby prąd popłynął musi być obwód czyli dwa przewody. Bez podpięcia do masy Sonoffa nie będzie obwodu i nie sprawdzi różnicy potencjałów. Masa (minus) zasilacza musi być połączona z masą Sonoffa, ale tylko masa (i linia danych – czujnika)

          • Piotrek

            aktualne podłączenie:
            —– 5V———————————–VCC (czujka)
            OUT (czujka)——|
            —-GND—-|—————————–GND (czujka) |
            | |
            | |
            —-GND—-|—————————–GND (sonoff) |
            GPIO14 (sonoff)——|
            —-3.3V———————————-VCC (sonoff)
            … i niestety nie działa ;( Już nie mam pomysłu. Co robię nie tak ?

                • piotrek

                  nie widzę różnicy ;(

                  • Jaromir Kopp „MacWyznawca”

                    A skąd wiesz, że dobrze skonfigurowałeś Sonoffa?
                    Sprawdzałeś czy przełączanie działa, gdy podłączasz od pinu GPIO14 3,3V?
                    Sprawdź też co się dzieje jak 14 zwierasz do GND.

                    • piotrek

                      no i jasne, konfiguracja czujnika ruchu na GPIO12 Sonoffa jako „SWITCH” powoduje aktywację oświetlenia skonfigurowanego też na tym sonoffie po podaniu GND na GPIO14
                      I tak sie działo sama zapalała mi się lampka i nie wiedziałem dlaczego – to czujnik ją wyzwalał, ale nie miałem informacji o wykryciu ruchu.
                      Jeżeli podam VCC nic się nie dzieje.
                      Pytanie jak skonfigurować ten czujnik ?

  10. piotrek

    oczywiście GPIO14, czeski błąd ….

    • Jaromir Kopp „MacWyznawca”

      Czyli najpierw musisz tak pokombinować z konfiguracją (sprawdź wszystkie tryby switcha) aby po załączaniu 3,3V na GPIO14 załączał się włącznik. Jak to osiągniesz dopiero podpinaj czujkę.

      • piotrek

        jest lepiej niż było, ale w dalszym ciagu nie ma sygnalizacji ruchu na przycisku w telefonie
        poniżej krótki filmik obrazujący problem
        http://gofile.me/3oxPY/fMRdAMWcE

  11. Michał Czarkowski

    A mam pytanie czy ten switch
    https://www.itead.cc/sonoff-touch.html
    Tak samo mozna zrobic update firmware?
    I pytanie czy jest w sumie sens, bo widzialem ze sonoff chwali sie ze na ich sofice wspolpracuje to to z alexa i nestem. Pewnie tasmota ma fajniejszy firmware w sumie nadal pytanie czy w takim gniazdku dalej sie go da wgrac

    • Jaromir Kopp „MacWyznawca”

      Ta… współpracuje przez ich chiński serwer. Wyłączy Ci się net i wszystko siądzie. Nie czytałeś I części?
      Na stronie Github Tasmota jest opisane z czym działa. Ten jest na liście. Pamiętaj, ze wymaga zasilania. Sprawdź czy masz w gniazdku przełącznika pełne zasilanie, czy tylko kabel do żyrandola

      • Michał Czarkowski

        No pelne, w sensie jakbym zamiast przelacznika dal kontakt to by smigalo. 😉 a jak mozna inaczej zamontowac przelacznik? A jesli chodzi o obsluge Alexy to wydaje mi soe ze wczesniej o tym nie pisali ztad moje zdziwienie 🙂 fajnie ze dziala mozna cos pomyslec 🙂

        • Jaromir Kopp „MacWyznawca”

          Pełna, że z masą i 23V oraz kablem do żyrandola, a nie tylko kable z 230V i do żyrandola.
          Dodali obsługę na serwerze to napisali. Zresztą po co komu alexia?

          • Michał Czarkowski

            Niewiem, moze ktos bedzie szczesliwy. 🙂 to ok tak mam to zamawiam.

  12. Michał Czarkowski

    No tak, tylko w Twoim wypadku chyba musisz uzywac telefonu a nie mozesz przelaczac przelacznikiem fizycznym. A u mnie jednak przelaczanie fizyczne by sie przydalo

    • Jaromir Kopp „MacWyznawca”

      Przecież napisałem: podpinam przełącznik między masę a GIPO… ścienny przełącznik. 😉

      • Tomek

        Narobiłeś smaka że już paczka z Chin już jedzie 🙂 A tak przy okazji kiedy się spodziewać części V ? Mam też pytanie czy planujesz może jakaś wzmianke jak podpiąc rolety pod homekita? Drugie pytanie czy trudno napisac jest swój plugin do homebridga np potrzbuje pod kamerke Foscam ale te gotowe nie działaja tak jak chce? Pzdrw

  13. Michał Czarkowski

    A czekaj, czyli jest opcja normalnego przelacznika i sonoffa? Ooo masz moze jakis schemat pod reka?

  14. Michał Czarkowski

    To poczekam do nastepnego odcinka bo az tak mi sie nie spieszy. Jak pisalem kiedys ja jestem laik do potegi n-tej w zwiazku z czyn wole sam nie sprawdzac tylko poczytac od madrzejszych 🙂

  15. escapers

    super artykuł! Dzięki!
    malinka zamówiona… bo w chacie niestety tylko time capsule, a tego nie wykorzystam.. :/
    ale sonoffy podpięte, działają i czekają na homebridge bo chinole niebezpieczni 😉
    browarek poszedł bo się należy 😉

      • Michał Czarkowski

        A kiedy nastepne czesci? 🙂 🙂

      • Tomek

        Od ostatniego wpisu 4 części minęło już 21 dni a stronę odświeżam po 3 x dzienniew oczekiwaniu na 5 cześć ahhh 🙁

  16. escapers

    czy takiego HomeBridge’a da rade postawić na windowsie10? Stawiał może ktoś? 🙂

  17. piotrek

    czy komuś udało się z powodzeniem uruchomić czujnik ruchu, tak aby otrzymywać powiadomienia i pokazywał się komunikat na ikonie ? nie chodzi nawet o samo podłączenie czujnika, bo to można zasymulować bez niego …

      • piotrek

        sam nie wiem,teoretycznie wszystko działa mqtt skonfigurowane, switch przypisany do GPIO, steruje się bez problemu, w consoli widać zmiany stanu, switch mode tez skonfigurowany i przetestowany na wszystkich trybach, już nawet nie podłączałem czujnika tylko podawałem odpowiedni sygnał na GPIO i ciągle nie ma efektu w postaci zmiany stanu ikony …
        masz jakiś pomysł ??

        • Jaromir Kopp „MacWyznawca”

          Jaki plugin i jego konfiguracja? Bo jedynie tu można czegoś szukać, jak reszta działa?

          • piotrek

            co masz na myśli w sensie plugina ? aplikacje ? uruchomione mam to na applowej aplikacji Home

              • piotrek

                takie same jak na Twoim npm

                  • piotrek

                    sprawdzałem to 100 razy , raczej nie bo inne rzeczy działają …

                    • piotrek

                      możemy przejść na imessage ?

                    • Jerry Kunert

                      Hello 🙂
                      To ja tez dołączę sie do pytania – widzę ze to już 5 miesięcy temu więc jest szansa , że to rozwiązaliście ;).
                      Plugin załadowany , konfig napisany – nie ma błędów – MQTT dostaje komunikaty a ikonka szara. Niema zadnych powiadomień. Patrzałem na wiki i na git’a ale jak dla mnie to mało tych danych. Chyba ze nie widziałem wszystkiego. Np dalej niewiem jak sterowac reszt.a pinow tego samego wemosa. Power 1 , 2 itd – ok ale niewiem jak je umiescic w konfigu który ma dotyczyć przecież tego samego wemosa.Pisanie drugiego z tą samą nazwą ( id urządzenia ) a innym pinem do sterowania konczy sie wysypaniem homebridge’a przy starcie. przydaloby się cos tak szczegółowego jak man w linuxie.Przykładowy konfig rozpisany co i jak i poco. Wiedzę na npm , że są przykłady ale nigdzie niema całości.Moze w nastepnej części to rozwiniesz. Na razie muszę uporać się z tym motion det. Dzieki bardzo za pomoc – dawno nic takiego nie robilem. W czasach Ami miałem ogrzewanie w domu sterowane z A500 a program napisałem w Blitz Basicu , który był rewelacyjny. Amos nie dorastał mu do pięt. A ludki się dziwowały , że komp odczytuje temperature portem joya a steruje dwoma pompami i piecem poprzez parallel port… 🙂

  18. escapers

    mam pytanko czy wykrywa Wam sonoffa gdy jest niepodłączony?
    Bo mam taki problem, że gdy sonnoff jest niedostępny (np wyłączony) to homebridge nie rozpoznaje jego stanu i go normalnie obsługuje – włącza/wyłącza, w aplikacji homie się zaświeca i gasi mimo że jest niedostępny – nie pokazuje żadnego błędu.

    • Jaromir Kopp „MacWyznawca”

      Taka specyfika HomeBridge. Jak używasz aplikacji Elgato Eve i skonfigurowałeś w konfigu parametr Activity to pokaże Ci wykrzyknik

      • escapers

        dzięki:)
        czyli w appce home od apple nie zobaczę i nie rozróżnię sonoffa, który np. nie działa lub jest wyłączony z prądu?

  19. Paweł

    Czy jest możliwość zakupu u Pana gotowego sonoffa współpracującego z home kit?

    • Jaromir Kopp „MacWyznawca”

      To nie takie proste… jak byś poczytał to byś wiedział że potrzeby jest jeszcze HomeBridge, który działa na jakimś serwerze np. QNAP lub „Malince, czy innym komputerze.

      • Paweł

        chodzi mi o cały zestaw z raspberry pi

  20. Paweł

    Jaki byłby koszt takiego zestawu? Na początek chodziło by mi o jeden przełącznik włącz/wyłącz, termometr i sterownik do ledów rgb

  21. escapers

    Mam pytańko, gdyż na nowo instalowałem homebridge (na windzie) i wszystko poszło bez problemy, dodanie switcha również, ale gdy chce dodać już kolejne akcesorium np temperatury to wywala mi błedy, wcześniej jakoś w ogóle nie miałem z tym problemów, jakoś specyficznie się dodawało te akcesoria? Miał ktoś może taki błąd po dodaniu akcesorium (npm install -g homebridge-mqtt-temperature-tasmota):
    npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning ENODATA: Cache input stream was empty
    npm WARN registry Using stale package data from https://registry.npmjs.org/ due to a request error during revalidation.
    npm ERR! code EINTEGRITY
    npm ERR! errno EINTEGRITY
    npm ERR! Invalid response body while trying to fetch https://registry.npmjs.org/process-nextick-args: Integrity verification failed for sha512-FRHhKDkqvbO4VsBHyPSajV4vu6JIKv8CWqn/ZFxn8b9AshxHDmG4dgW5UzTBbwNUFxcdAObS+Uh5NzS6YOggrg== (C:UsershomeAppDataRoamingnpm-cache_cacachecontent-v2sha5121511e128392abdb3b856c047c8f49a8d5e2fbba2482aff025aa9ff645c67f1bf40b21c470e61b87605b95334c16f035417171d00e6d2f948793734ba60e820ae)

    • escapers

      Jakby ktoś miał podobny problem to znalazłem rozwiązanie:
      npm config set package-lock false
      jeśli to nie pomoże to pozostaje:
      npm cache clear –force && npm install –no-shrinkwrap –update-binary
      tylko niestety po tym trzeba dokonać reinstalacji pluginów

  22. Marcin Řekin

    Mam pytanie, zastanawiam się nad zakupem jako dysk sieciowy WD My Cloud 2TB. Czy na nim da się zainstalować ContainerStation i działać jak z Qnap’a?

  23. MIENTKI

    Wie ktoś może jak zmienić ikonki w aplikacji DOM ?? Chciałbym sobie ustawić 3 różne ikony w sytuacji, gdy mam 3 włączniki światła: 1 – lampa sufitowa (sonoff touch), 2 -lampa podłogowa (sonoff basic) i 3 – lampka na biurku (sonoff basic). Na google grafika znajduje wiele screenów, na których są właśnie takie ikonki. Oczywiście w edycji akcesorium a aplikcji mam do wyboru tylko włącznik, światło, wentylator. Nie ma nic innego.

  24. grinderman

    Jaromir!
    Jest moc!
    Mam Pi 3+ na nim homebridge, mosquitto + oczywiście Twój plugin homebridge-mqtt-switch-tasmota , sanoff basic + firware Sonoff-Tasmota. Wszystko działa jak należy (prawie), i w związku z tym mam jedno pytanie. Jak rozwiązać problem braku powiadomienia do hb niedostępności sanoffa po jego wyłączeniu „z prądu”. W HomeKitcie przełącznik jest nadal dostępny (bez żadnego alertu) i można nim dowolnie „sterować” (włączać/wyłaczać). Brak jest informacji o faktycznym stanie urządzenia (w tym wypadku spodziewałem się zobaczyć ikonkę wykrzyknika na kafelku tego przełącznika). Czy da się to jakoś rozwiązać?

  25. Zefir

    To ja jeszcze dodam od siebie, bo właśnie się doktoryzowałem z tematu, konfigurację Sonoff 4CH z firmwarem Tasmota. Ponieważ mqtt nie współpracuje z „friendly names” nadanym przez www, tylko bierze pod uwagę główną nazwę modułu, konfiguracja kolejnych kanałów w pliku config.json wygląda nieco inaczej:
    Kanał 1
    {
    „accessory”: „mqtt-switch-tasmota”,
    „switchType”: „Switch”,
    „name”: „sonoff4CH”, #To jest nasza nazwa nadana modułowi przez www
    „url”: „mqtt://X.X.X.X”,
    „username”: „username”,
    „password”: „password”,
    „topics”: {
    „statusGet”: „stat/sonoff4CH/POWER”,
    „statusSet”: „cmnd/sonoff4CH/POWER”,
    „stateGet”: „tele/sonoff4CH/STATE”
    },
    „onValue”: „ON”,
    „offValue”: „OFF”,
    „activityTopic”: „tele/sonoff4CH/LWT”,
    „activityParameter”: „Online”,
    „startCmd”: „cmnd/sonoff4CH/TelePeriod”,
    „startParameter”: „60”,
    }
    Kanał drugi i kolejne
    {
    „accessory”: „mqtt-switch-tasmota”,
    „switchType”: „Switch”,
    „name”: „sonoff4CH_2”, #nasza dowolna nazwa drugiego kanału
    „url”: „mqtt://x.x.x.x”,
    „username”: „username”,
    „password”: „password”,
    „topics”: {
    „statusGet”: „stat/sonoff4CH/POWER2”, # tutaj odwołujemy się do nazwy głównej modułu ale po POWER dodajemy nr przekaźnika
    „statusSet”: „cmnd/sonoff4CH/POWER2”, # tutaj odwołujemy się do nazwy głównej modułu ale po POWER dodajemy nr przekaźnika
    „stateGet”: „tele/sonoff4CH/STATE2” # tutaj odwołujemy się do nazwy głównej modułu ale po STATE dodajemy nr przekaźnika
    },
    „onValue”: „ON”,
    „offValue”: „OFF”,
    „activityTopic”: „tele/sonoff4CH_1/LWT”,
    „activityParameter”: „Online”,
    „startCmd”: „cmnd/sonoff4CH_1/TelePeriod”,
    „startParameter”: „60”,
    „manufacturer”: „ITEAD”,
    „model”: „Sonoff 4CH”,
    „serialNumberMAC”: „EC-FA-BC-00-D5-4B”
    }

  26. GRINDERMAN

    Zestaw: Apple HomeKit+Homebridge+Tasmota+AFE (T5) Firmaware
    1. Uruchamiam przekaźnik z AFE T5 z poziomu aplikacji Dom.
    2. On zwiera na określony czas wyjście.
    3. W aplikacji stan przycisku zmienia się na włączony,
    4. Następnie klikam ponownie, przekaźnik zwiera, w aplikacji stan przycisku wyłączony.
    Jaki forumowicze polecacie zastosować plugin do homebrige aby status urządzenia (chwilowo zwarty) prezentowany był prawidłowo w HomeKitcie (czyli zawsze „wyłączony”)?

  27. Zefir

    https://www.npmjs.com/package/homebridge-delay-switch
    Ten plugin dodaje wirtualny włącznik oraz wirtualny czujnik ruchu.
    Robisz dwie automatyzacje:
    1. uruchomienie Twojego przekaźnika uruchamia wirtualny włącznik, wirtualny włącznik aktywuje z opóźnieniem wirtualny czujnik ruchu
    2. aktywacja wirtualnego czujnika ruchu wyłącza przekaźnik
    Mało eleganckie, ale działa.

  28. GRINDERMAN

    Zefir!
    To jest to! Dzięki! Jak piszesz nie zbyt eleganckie 😉 , ale działa! Jest jeden warunek. W konfiguracji pluginu Jaromira mqtt-switch-tasmota trzeba dezaktywować sekcję OffValue. W przeciwnym razie przełącznik zwierał ponownie w sekwencji automatycznej gdy wirtualny czujnik ruchu wyłącza przekaźnik.
    Jeszcze raz dziękuję!
    Pozdrawiam,

  29. Mukat

    Czy można zainstalować HomeBridge na WD MY CLOUD?

  30. GRINDERMAN

    Jak uruchomić automatyzację „gdy wilgotność powyżej 70%”?
    Mam: Sonoff RF + Tasmota 6.4.1 + AM2301 + Homebridge + homebridge-mqtt-humidity-tasmota + Apple Home
    Jak rozumiem nie można tego zrobić wyłącznie w aplikacji Home. Zrobiłem więc automatyzację w aplikacji Fibaro. Scena reaguje mi na „jakąkolwiek zmianę wilgotności”, nie mogę uzyskać efektu uruchomienia sceny „gdy wilgotność powyżej 70%”.
    Gdzie jest błąd? Czego, jakiej aplikacji używacie do budowania automatyzacji tego typu?
    Pozdrawiam!

  31. Spajd

    Może ktoś jest ma metodę na poprawienie wyników z czujników sonoffa, mam th16 z si7021 i działa bardzo dobrze, tylko zawsze zawyża wartość temperatury oraz wilgotności o stałą wartość. Ma ktoś może metodę jak to zmienić, żeby zawsze podawał np. -5% wilgotności i -0,6 C?

    • GRINDERMAN

      Myślę, że możesz (przetestowałem) zrobić to w taki sposób

      {
      „accessory”:”mqttthing”,
      „type”:”temperatureSensor”,
      „name”:”lazienka temperatura”,
      „caption”:”Sonoff Lazienka N”,
      „topics”:{
      „getCurrentTemperature”:{
      „topic”:”tele/sonoff_06/SENSOR”,
      „apply”:”return JSON.parse(message).AM2301.Temperature.toFixed(1)-10.5;”
      }
      }
      }

      • Spajd

        Dzięki wielkie za odpowiedź, dodałem to jako dodatkowe akcesorium, niestety przy uruchamianiu homebridge, występuje błąd z topikiem. Podmieniłem tylko oznaczenie czujnika AM2301 na swój SI7021.

        • GRINDERMAN

          Rozumiem, że zainstalowałeś na swoim serwerze https://www.npmjs.com/package/homebridge-mqttthing

          To co jest w tym parserze odnosi się do tego w jaki sposób twoje urządzenie melduje się na kolejce MQTT.

          U mnie dla tego przykładu (podglądając np. log konsoli tasmoty na sonoffie) wygląda to tak:
          20:39:20 MQT: tele/sonoff_06/SENSOR = {„Time”:”2019-03-21T20:39:20″,”AM2301″:{„Temperature”:22.3,”Humidity”:53.8},”TempUnit”:”C”} – to jest cała zawartość message. Z niej wyciągamy właśnie interesującą nas wartość tym parserem.

          • SPajd

            Tak zainstalowałem mqttthing, ciągle ten nowy „czujnik” pokazuje mi 0 stopni, mój message z consoli tasmoty to: 21:33:14 MQT: tele/sonoff_th16_1/SENSOR = {„Time”:”2019-03-22T21:33:14″,”SI7021″:{„Temperature”:22.4,”Humidity”:59.2},”TempUnit”:”C”}

            do jsona wpisałem:

            {
            „accessory”:”mqttthing”,
            „type”:”temperatureSensor”,
            „name”:”lazienka temperatura”,
            „caption”:”Sonoff Lazienka N”,
            „topics”:{
            „getCurrentTemperature”:{
            „topic”:”tele/sonoff_th16_1/SENSOR”,
            „apply”:”return JSON.parse(message).SI7021.Temperature.toFixed(1)-2.0;”
            }
            }
            },

  32. GRINDERMAN

    Spajd

    Wygląda to prawidłowo.

    Spróbuj na stronie http://try.jsonata.org/ zweryfikować czy config.json ze swojego homebridga masz prawidłowy (chociaż gdyby nie był to by nie wstał, ale warto sprawdzić).

    Po lewej wklejasz całą zawartość config.json, w prawym górnym wpisujesz znak $. Jeżeli w prawym dolnym rogu pojawi się twój json znaczy, że jest OK. Jeżeli nie trzeba poprawić strukturę, aby się zwalidował.

    • Spajd

      Zapomniałem dodać adresu, użytkownika i hasła:) Wszystko działa poprawnie, dzięki bardzo za pomoc:)

  33. Robert

    Czy w plugin switch jest możliwość sprawdzania stanu sensora? Np. do sprawdzania stanu otwarcia bramy (GPIO14 Sensor)