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ą:
- Arduino Nano (może być mini czy inne ale ja używam Nano i na tym przykładzie mogę się wypowiadać)
Arduino Nano - Moduł nRF24L01+ 2.4GHz wireless (do kupienia np. w sklepie ElectroPark we Wrocławiu)
- Kable do podłączenia (żeńsko – żeńskie lub żeńsko – męskie o ile posiadacie płytkę stykową)
- 4.7uF/50V – Kondensator elektrolityczny
Kondensator 4,7 uF
Następnie podłączamy nasz moduł Nrf24l do Arduino Nano jak na poniższym schemacie:

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

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

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).
O do czego wykorzystać bramkę będę pisał w następnych wpisach.
30 Odpowiedzi
Bodzio
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
wojtek
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”:)
Herigo
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
Herigo
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
pawel
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
Kontroloer Scen - Mysensors w systemie Domoticz - bAniaLuki
[…] Bramka MySensors w systemie Domoticz […]
Tomek
„[…] 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
Czujnik otwarcia lodówki i zamrażarki - Mysensors w systemie Domoticz - bAniaLuki
[…] Bramka MySensors w systemie Domoticz […]
tomek
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
Jacek
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
Szymon
Hej! To jest centarlka?
Agnieszka Kostrzewa
O ile dobrze rozumiem pytanie to… TAK:)
Szymon
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
Szymon
GatewayEsp8266 mógłbyś opisać?
Agnieszka Kostrzewa
Witam Serdecznie. Niestety nie mam doświadczenia z tym modulem (poki co:) Na ten moment widze ze tu jest wszgstko ladnie opisane https://majsterkowo.pl/esp8266-i-sterowanie-przekaznikiem-przy-pom
Agnieszka Kostrzewa
Tu jest swiezutkie video jak wgrac espeasy do esp8266:)
https://youtu.be/bgkyHB1U0cA
tomsip
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
Arek
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?
Szybki946
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