Wybierz Strona

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

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

  • 124
  • 18.03.2017
Jaromir Kopp

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.

O autorze

Jaromir Kopp

Użytkownik komputerów Apple od 1991 roku. Dziennikarz technologiczny, programista i deweloper HomeKit. Propagator przyjaznej i dostępnej technologii, wyczulony na potrzeby osób niepełnosprawnych i starszych. Tworzy w języku Swift aplikacje na platformy macOS, iOS, tvOS oraz systemy bazodanowe FileMaker. Prowadzi zajęcia z programowania dla dzieci i młodzieży. Autor książki o serwerach NAS „Mój QNAP”. Projektuje, programuje oraz samodzielnie wykonuje prototypy urządzeń Smart Home. Jeździ rowerem.

124 komentarze

  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.

    Odpowiedz
      • 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 😉

        Odpowiedz
        • Tomek

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

          Odpowiedz
          • 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?

        Odpowiedz
        • 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?

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

    Odpowiedz
  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 ?

    Odpowiedz
    • 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”.

      Odpowiedz
      • Piotrek

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

        Odpowiedz
          • 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?

      Odpowiedz
  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 😉

    Odpowiedz
  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 ??

    Odpowiedz
    • 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?

      Odpowiedz
      • Tomek

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

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

  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

    Odpowiedz
  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 😉

    Odpowiedz
    • 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”

      Odpowiedz
      • 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

        Odpowiedz
          • 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 ?

        Odpowiedz
        • Jaromir Kopp „MacWyznawca”

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

          Odpowiedz
  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 ?

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

      Odpowiedz
      • Piotrek

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

        Odpowiedz
        • Michał Czarkowski

          Moze byc ATV 3gen ale bez obslugi kamer 😉

          Odpowiedz
  9. piotrek

    … cholera i nic ! jakiś pomysł ?

    Odpowiedz
      • 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ć …

        Odpowiedz
        • 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)

          Odpowiedz
          • 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 ….

    Odpowiedz
    • 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ę.

      Odpowiedz
  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

    Odpowiedz
    • 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

      Odpowiedz
      • 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 🙂

        Odpowiedz
        • 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?

          Odpowiedz
          • 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

    Odpowiedz
      • 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

        Odpowiedz
  13. Michał Czarkowski

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

    Odpowiedz
  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 🙂

    Odpowiedz
  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 😉

    Odpowiedz
      • Michał Czarkowski

        A kiedy nastepne czesci? 🙂 🙂

        Odpowiedz
      • 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 🙁

        Odpowiedz
  16. escapers

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

    Odpowiedz
  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 …

    Odpowiedz
      • 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ł ??

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

    Odpowiedz
    • Jaromir Kopp „MacWyznawca”

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

      Odpowiedz
      • 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?

        Odpowiedz
  19. Paweł

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

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

      Odpowiedz
      • Paweł

        chodzi mi o cały zestaw z raspberry pi

        Odpowiedz
  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

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

    Odpowiedz
    • 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

      Odpowiedz
  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?

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

    Odpowiedz
  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ć?

    Odpowiedz
  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”
    }

    Odpowiedz
  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”)?

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

    Odpowiedz
  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,

    Odpowiedz
  29. Mukat

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

    Odpowiedz
  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!

    Odpowiedz
  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?

    Odpowiedz
    • 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;”
      }
      }
      }

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

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

          Odpowiedz
          • 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ł.

    Odpowiedz
    • Spajd

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

      Odpowiedz

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Zapisz się

i otrzymuj darmowy magazyn

Witaj w gronie czytelników. Dziękujemy!