Bramka MySensors w systemie Domoticz

wpis w: Domoticz | 30

W dzisiejszym wpisie będę chciał Wam przybliżyć jak w systemie Domoticz dodać bramkę MySensors.

Generalnie wszystko jest opisane na oficjalnej stronie https://www.mysensors.org/. Jednak nie każdy musi znać język a jako, że mam już trochę doświadczenia z kilkoma projektami tego typu będę chciał Wam je przybliżyć.

W tym wpisie opiszę tylko jak podłączyć bramkę MySensors do Raspberry Pi i zaimplementować ją w systemie Domoticz.

W kolejnych dwóch wpisach opiszę jak zrobić np. zdalny czujnik otwarcia drzwi lodówki i zamrażarki a następnie zdalny 4 przyciskowy sterownik do różnych scen (coś jak Fibaro Button tylko za kilka zł – ale o tym później).

Do zbudowania bramki MySensors potrzebne będą:

  1. Arduino Nano (może być mini czy inne ale ja używam Nano i na tym przykładzie mogę się wypowiadać)
    Arduino Nano

     

  2. Moduł nRF24L01+ 2.4GHz wireless (do kupienia np. w sklepie ElectroPark we Wrocławiu)
  3. Kable do podłączenia (żeńsko – żeńskie lub żeńsko – męskie o ile posiadacie płytkę stykową)
  4. 4.7uF/50V – Kondensator elektrolityczny
    Kondensator 4,7 uF

     

Następnie podłączamy nasz moduł Nrf24l do Arduino Nano jak na poniższym schemacie:

Schemat podłączenia

 

Należy pamiętać by kondensator podłączyć dłuższą nóżką do zasilania 3v3 a krótszą do GND (a nie na odwrót).

Następnie gdy już mamy wszystko podłączone należy wejść na stronę: https://www.arduino.cc/en/Main/Donate i na dole strony nacisnąć „Just Download”

Należy kliknąć w ściągnięty plik i zainstalować oprogramowanie.

W tym momencie proszę podłączyć swoje Arduino Nano odpowiednik kablem USB do komputera i sprawdzić czy system wykrywa urządzenie. Powinno się ono dodać w Menadżerze Systemu (czasami jest z tym problem ale w sieci jest dużo poradników jak zainstalować sterowniki do Arduino…myślę, że każdy sobie poradzi).

Gdy już wszystko jest zainstalowane odpalmy Nasze środowisko Arduino i przechodzimy do zakładki Narzędzia –> Płytka i wybieramy Arduino Nano. Wybieramy Procesor Atmega 328 (o ile w taki wyposażony jest Wasz model) i Port USB, do którego podpięte jest Wasze Nano.

Kolejnym krokiem będzie wejście na stronę: https://www.mysensors.org/download i ściągnięcie najnowszych bibliotek MySensors poprzez kliknięcie na przycisk Download (Powinniście ściągnąć plik Mysensors-master.zip.

Przechodzimy do Naszego środowiska Arduino do zakładki Szkic –> Dołącz bibliotekę –> Dodaj bibliotekę ZIP i znajdujemy Nasz nowo ściągnięty plik zatwierdzając Enterem.

Następnie gdy mamy wszystko podpięte do komputera i ustawiony odpowiedni port przechodzimy do zakładki Plik –> Przykłady –> MySensors–>GatewaySerial

 

Bramka MySensors

 

Gdy otworzy Nam się nowe okno z Naszym kodem naciskamy strzałkę w lewym górnym roku. Jeżeli wszystko będzie ok w lewym dolnym rogu po zakończeniu wgrywania otrzymamy stosowny komunikat.
 

Bramka MySensors

 

W tym momencie powinniśmy mieć już wszystko przygotowane by podłączyć Naszą bramkę do Raspberry Pi z zainstalowanym systemem Domoticz.

Aby to zrobić podpinamy Naszą bramkę do portu USB w Raspberry.

Logujemy się do Domoticz przez WWW i przechodzimy do zakładki Konfiguracja–>Sprzęt i wybieramy z rozwijanej listy na dole MySensors Gateway USB i ustawiamy pozostałe opcje tak jak na zdjęciu poniżej.

 

Bramka MySensors

 

Jeżeli wszystko pójdzie dobrze na liście powyżej pojawi się Nasza Bramka Mysensors z odpowiednim numerem wersji (u Was powinno to być 2.1.0).
 

Bramka MySensors

 

O do czego wykorzystać bramkę będę pisał w następnych wpisach.

 

30 Odpowiedzi

  1. Powiem jedno prowadzisz najlepszy blog o systemie domoticz w Polsce jeśli tak to się będzie rozwijać jak do tej pory to będzie najlepsze kompendium wiedzy dla takich „debili” jak ja którzy postawili się i chcą sobie udowodnić ,że sami zbudują średnio wymagany inteligentny dom Pozdrawiam i dziękuje !

    • Łukasz Kostrzewa

      🙂 Witam Serdecznie
      Powiem szczerze, że dzięki Twojemu komentarzowi pojawił się uśmiech na mojej twarzy 🙂 Bardzo dziękuję za miłe słowa. Staram się, w miarę czasu i możliwości pisać o tym co zajęło mi jakieś 4 miesiące mojego życia. Też jeszcze niedawno byłem tym „debilem”, który chciał coś sobie udowodnić mimo braku wiedzy z zakresu programowania i w ogóle… ale dzięki pomocy innych ludzi z zagranicznych forów a także dzięki swojej zawziętości mogę teraz napisać, że już trochę to wszystko „ogarniam”:) i chętnie się swoją wiedzą podzielę.

      PS: Polecam też zajrzeć na kulinarne popisy mojej Żony w odpowiedniej zakładce 🙂

      Pozdrawiam Serdecznie

  2. Przyłączam się do opinii kolegi Bodzia naprawdę dobra robota . Sam krok po kroku zgłębiam zagadnienie Domoticza i tematów z nim związanych i uczciwie pisząc bez takich poradników ciemno bym to widział… a tak na marginesie czy orientujesz się co jest przyczyną powolnego aktualizowania się stron Domoticza na różnych urządzeniach.
    pozdrawiam

    • Łukasz Kostrzewa

      Dzięki Wielkie za miłe słowa.
      Też niestety sam tego nie wymyśliłem a korzystałem z pomocy wielu osób z różnych zagranicznych forów (chociaż na kilka rzeczy udało mi się wpaść samemu:)
      Jeżeli chodzi o aktualizowanie się stron Domoticza to mam ten sam problem. Czasami bardzo długo muszę czekać na wejście w zakładkę „Przełączniki” (zwłaszcza jak wchodzę w nią kilka razy pod rząd).
      Mam 4 raspberry pi ( w każdym pokoju) i na każdym z nich Domoticz. Czasami nie jestem w stanie w ogóle się zalogować na któreś z nich…muszę próbować po kilka razy.
      Niestety nie mam pojęcia co może być tego przyczyną 🙁
      Pozdrawiam i życzę powodzenia w tworzeniu własnego „inteligentnego domu”:)

  3. Witam
    Podczas kompilacji szkicu pojawia mi się taki oto błąd czy może ktoś pomóc go wyelminować
    https://www.dropbox.com/s/u0d85zsw815yt1i/Zrzut%20ekranu%202017-02-21%2009.57.27.png?dl=0

    • Łukasz Kostrzewa

      Witam Serdecznie

      Na zdjęciu nie widać całego kodu ale z opisu błędu widać, że funkcja getConfig nie została zdeklarowana w kodzie. Proszę o wrzucenie całości kodu albo podaniu linka skąd Pan go wziął.

      Pozdrawiam

    • Łukasz Kostrzewa

      Wg opisu błędu ma Pan spację po metric = getConfig() .isMetric;
      Proszę ją usunąć i wpisać metric = getConfig().isMetric;
      i dać znać czy pomogło
      Pozdrawiam

  4. Tam nie ma spacji kod pochodzi z https://www.dropbox.com/s/3vcuqy8sxf70inz/cisnienie_DHT.rar?dl=0

    • Łukasz Kostrzewa

      Witam
      Niestety nie wiem jak Panu pomóc. Nie mam pomysłu. Może ktoś z odwiedzających będzie wiedział w czym tkwi problem.
      Pozdrawiam

  5. Witam.
    Mam pytanie Łukaszu, czy po zaniku zasilania na Raspberry i ponownym jego uruchomieniu domoticz wykrywa Ci samoistnie tą „bramę”?
    Ja u siebie muszę wyjąć i ponownie włożyć kabel USB, bez tego domoticz nie wykryje bramy.
    Trochę to kłopotliwe jak jest się w delegacji, podejrzewam, że brama musi startować dopiero po uruchomieniu systemu domoticz. Czy taki problem u Ciebie też występuje?

    • Łukasz Kostrzewa

      Witam
      U mnie nie zauważyłem tego problemu co nie znaczy, że nie mam problemów z Mysensors. Używam dwóch nadajników Mysensor (lodówka+zamrażarka) a drugi – mam 4 guzikowy nadajnik do sterowania scenami.
      Czasami bez powodu wszystko przestaje działać (nie wiem czy to wina zasięgu – bo są na skraju mieszkania) czy to może faktycznie wina Bramki (chociaż po jej restarcie niewiele się zmienia). Jak coś jest bezprzewodowe to jednak bywają z tym dziwne problemy. Najlepiej jak wszystko jest po kablu bezpośrednio podłączono do GPIO raspberry – wtedy działa bez zarzutu.
      Nie wiem kurcze jak pomóc.
      Ja też mam dobry problem (jak mam zanik prądu w mieszkaniu to wszystkie żarówki Milight się zapalają:)
      Pozdrawiam i jak znajdziesz rozwiązanie to opisz proszę na forum

  6. […] Bramka MySensors w systemie Domoticz […]

    • „[…] to wszystkie żarówki Milight się zapalają”
      He – mam ten sam problem 🙂

      Ale „mam pomysła”. Otóż korzystam do różnych celów ze skryptów pisanych w lua wg ttps://github.com/dannybloe/dzVents.
      Mam więc np. skrypty, które sprawdzają czy brama garażowa lub wjazdowa nie jest otwarta w jakimś zadanym przedziale czasu (np. od 22 do 6 rana) – a jeśli jest, i nie było na niej ruchu przez 30min, to system wysyła do niej polecenie zamknięcia.

      Wracam do Milight – mam 3 taśmy led i 4 punkty żarówkowe. Zatem chcę zastosować regułę, że jeżeli nagle świecą mi się wszystkie, i ten stan nie zmienia się np. przez minutę, to chyba mamy do czynienia z sytuacją po zaniku zasilania. Bo naraz tych wszystkich świateł raczej nie używam.
      I wtedy skrypt wyśle polecenie wyłączenia ich wszystkich.
      To na razie plan, na implementację nie było czasu…

      pozdrawiam

      • Łukasz Kostrzewa

        Witam Serdecznie
        Wszystko fajnie tylko skąd Domoticz będzie wiedział, że się zapaliły? Żarówki Milight są „głupie” i nie komunikują się z mostkiem tak jak np. Philips Hue. Działają na podstawie wysyłanych do nich kodów UDP przez mostek, którym steruje Dmoticz. Jeżeli włączą się same (albo np. z pilota) to Domoticz nie widzi ich stanu i skrypt nic nie pomoże 🙁
        (Zauważyłem, że u mnie po zaniku zasilania cały mostek Milight przestaje działać i muszę go odłączyć na chwilę od zasilania bo nie steruje żarówkami:( I tak nie jestem w stanie wyłączyć żarówek 🙁
        Najlepszy sposób to jakiś mały UPS albo powerbank (z funkcją ciągłego ładowania i zasilania w tym samym czasie – np. Xiaomi). Powinien starczyć na kilka godzin do zasilania całego raspberry w razie zaniku prądu.

        Pozdrawiam

  7. mozesz skryptem sprawdzic uptime i jesli jest nizszy niz 30min to wyslac polecenie wylaczenia zarowek

    p.s.

    dzieki za opisy domoticza, dopiero zaczynam sie nim bawic ale opisy sa naprawde extra pomocne

    • Łukasz Kostrzewa

      Wielkie Dzięki za miłe słowa.
      Zastanawiam się co opisać jako następne…i jeszcze znaleźć na to czas:)
      Pozdrawiam

  8. Hej Łukasz jak ci idzie w pisaniu skryptu męczę się żeby rozszerzyć ten skrypt o kolejne czujniki ruchu
    https://www.mysensors.org/build/motion

    udało mi się coś takiego 1 kontaktron i 2 czujniki ruchu
    https://pastebin.com/baMUK4zj

    działa kontaktron i działa pierwszy czujnik ruchu ale drugi nie
    chociaż domoticz wykrywa go jednak nie zmienia stanów

    mógłbyś zerknąć w wolej chwili

    • Agnieszka Kostrzewa

      Witam
      Nie jestem programista i srednio sie znam na pisaniu jakichkolwiek skryptów ale…
      Skrypt wydaje sie byc… Moze gdzies jest literowka? Rozumiem ze przy kompilacji bledow nie wyrzuca?
      Jezeli uklad nie jest zasilany bateryjnie to proponuje usunac funkcje sleep na koncu skryptu przy jednym i drugim czujniku ruchu (ja nialem z tym problemy w kilku przypadkach… Moze pomoze). Prosze o info czy sie udalo

  9. Hej! To jest centarlka?

  10. A nie lepiej zrobic to na esp?

    • Agnieszka Kostrzewa

      Nie wiem czy lepiej bo nie robilem:) Pewnie jeden i drugi sposob działa. Jezli uzywasz esp to napisz prosze jakie sa wady i zalety. Pozdrawiam

  11. GatewayEsp8266 mógłbyś opisać?

  12. Witam
    Też miałem ten problem u mnie pomogło rozwiązanie, które opisane jest tutaj: https://tomsipo.blogspot.com/2018/02/raspberry-pi-arduino-nano-problem-z.html

  13. Ile maksymalnie urządzeń obsłuży jedna brama USB?

    • Agnieszka Kostrzewa

      Powiem szczerze że nie wiem a infirmacji znaleźć nie mogę. Wydahe mi się jednak że ‚duzo’ 🙂 Wiem że to nie odpowiedź ale… Moze ma ktoś wiedzę w tym temacie?

  14. Szkic używa 13188 bajtów (42%) pamięci programu. Maksimum to 30720 bajtów.
    Zmienne globalne używają 723 bajtów (35%) pamięci dynamicznej, pozostawiając 1325 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x3b
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x32
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x35
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x35
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x3b
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x33
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x3b
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
    Podczas ładowania szkicu wystąpił błąd
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x3b

Zostaw Komentarz

*