Gniazdka 433MHz w systemie Domoticz

wpis w: Domoticz | 45

W tym wpisie będę chciał przybliżyć sposób podłączenia nadajnika i odbiornika działającego na częstotliwości 433Mhz do sterowania min. zewnętrznymi gniazdkami (w moim przypadku będą to gniazdka firmy KEMOT model URZ1229). Są sprawdzone i na pewno działają.

Gniazdka KEMOT
Gniazdka KEMOT

 

Prawdopodobnie poradnik będzie ten działał również z innymi gniazdkami działającymi w tej częstotliwości ale gwarancji nie daję:)

 

Oprócz gniazdek potrzebne nam będą:

Nadajnik i odbiornik 433MHz
Nadajnik i odbiornik 433MHz

 

Przewody żeńsko-żeńskie
Przewody żeńsko-żeńskie

 

  • Lutownica do przylutowania anteny do nadajnika.
lutownica-40w_snapseed
Lutownica 40W

 

Następnym krokiem będzie zainstalowanie bibliotek WiringPi (o ile wcześniej już ich nie zainstalowaliście). Aby to zrobić:

W linii komend wpisujemy kolejno:

Jeżeli nie mamy zainstalowanego GIT:

  • sudo apt-get install git-core

Aktualizujemy Nasze Raspberry:

  • sudo apt-get update
  • sudo apt-get upgrade

Klonujemy bibliotekę przez polecenie:

  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • git pull origin
  • sudo ./build

Biblioteki WiringPi powinny być w tym momencie zainstalowane

 

Następnie musimy podłączyć Nasz odbiornik Raspberry Pi:

Odbiornik RF 433Mhz
Odbiornik RF 433Mhz

 

Podłączamy:

  • VCC – do 5V Raspberry Pi
  • GND – do GND Raspberry Pi
  • DATA – do wiringPI 2 (czyli GPIO02) – w zależności od wersji Raspberry

Rozpiska GPIO w Wiring Pi dostępna jest pod tym adresem.

 

Kolejnym krokiem będzie podłączenie nadajnika do Raspberry Pi:

Nadajnik RF 433MHz
Nadajnik RF 433MHz

 

Podłączamy:

  • VCC – do 5V Raspberry Pi
  • GND – do GND Raspberry Pi
  • DATA – wiringPi 0 (czyli GPIO 0, BCM GPIO 17) – w zależności od wersji Raspberry

Do nadajnika za pomocą lutownicy i odrobiny cyny należy przylutować w zaznaczonym na czerwono miejscu antenę z drutu (dokładnie 17 cm zwinięte np. na ołówku w sprężynę). Ewentualnie możemy zakupić gotową (zdjęcie poniżej).

Sprężyna
Sprężyna

 

Kolejnym krokiem jest zainstalowanie odpowiednik bibliotek:

W linii komend poprzez SSH wpisujemy kolejno:

  • git clone --recursive git://github.com/ninjablocks/433Utils.git
  • cd 433Utils/RPi_utils
  • make all

W tym momencie wszystko powinno być poprawnie zainstalowane.

Ważne by podłączyć nadajnik i odbiornik do tych konkretnych pinów DATA z tego poradnika. Jeżeli PINy te będą zajęte można spróbować podłączyć je do innych ale najpierw należy w katalogu 433Utils/RPi_utils zmodyfikować plik codesend.cpp (nadajnik) i RFSniffer.cpp (odbiornik). Robimy to za pomocą komendy:

  • nano codesend.cpp
  • nano RFSniffer.cpp

W plikach tych należy zmienić linię:

  • int PIN = 0;

Zamiast wartości 0 w przypadku nadajnika i 2 w przypadku odbiornika należy wpisać odpowiednie PINy z Raspberry mając na uwadze oznaczenia PINów z WiringPi.

Po tym zabiegu raz jeszcze należy wywołać polecenie:

  • make all

Jeżeli wszystko zostało zainstalowane i podłączone poprawnie przygotowujemy Naszego pilota do gniazdek KEMOT.

Następnie będąc nadal w katalogu 433Utils/RPi_utils

  • sudo ./RFSniffer

Następnie na Naszym pilocie wciskamy kolejne przyciski i spisujemy kody które się tam powinny wyświetlać.

Powinno to wyglądać następująco:

 

Starting Up..

Received 89923

Received 89935

Received 83745

Received 89233

Received 82345

 

Kody te oczywiście będą inne.

Należy spisać kody dla Włączenia i Wyłączenia każdej z grup.

Następnie trzeba sprawdzić, które kody pasują do którego z gniazdek.

W tym momencie możemy odłączyć Nasz odbiornik bo do niczego już nie będzie Nam potrzebny (chyba, że będziecie dodać kolejne gniazdka lub inne urządzenia działające w tej częstotliwości)

 

Dla sprawdzenia czy wszystko działa spisujemy sobie kod Wł/Wył. do konkretnego gniazdka (które wpinamy do sieci elektrycznej):

W linii komend wpisujemy:

  • sudo ./codesend 89923

Oczywiście zamiast tych cyfr wpisujemy te, które wcześniej zaczytaliśmy za pomocą odbiornika) i sprawdzamy czy gniazdka reagują.

 

W tym momencie pozostaje Nam już tylko dodanie wirtualnego przełącznika do Domoticz (o czym pisałem w poprzednich artykułach)

Gdy już mamy utworzony wirtualny Przełącznik wchodzimy w jego Edycję i wpisujemy odnośnik do Naszego pliku codesend w pozycji Włącz i Wyłącz akcję pamiętając o wpisaniu odpowiednich, zaczytanych wcześniej przez odbiornik kodów.

 

Edycja Przełącznika
Edycja Przełącznika

 

W Waszym przypadku ścieżka dostępu może być inna. Wszystko zależy od tego, w jakim katalogu zainstalowaliście biblioteki 433Utils.

Zmieniamy ikoną na Wall Socket.

W tym momencie powinniśmy mieć możliwość sterowania Wł/Wył. gniazdka za pomocą systemu Domoticz.

45 Odpowiedzi

  1. Jaki zasieg z taka antenka?

    • Łukasz Kostrzewa

      Witam Serdecznie
      Szczerze powiem, że nie wiem. Mi w mieszkaniu 62m2 się sprawdza aczkolwiek czasami zdarza się, iż sygnał nie dochodzi do gniazdek (zwykłe radio bardzo zakłóca sygnał).
      Pozdrawiam

  2. Witam,
    czy taką metodę (odczytanie pilota i implementacja jego sygnałów sterujących w DOmoticzu) można zastosować dla bram garażowych , np. Nice Spido? Pracuje to rozwiązanie na 433MHz, więc „na oko” to taka sama technologia.
    pozdrawiam

    • Łukasz Kostrzewa

      Witam Serdecznie
      Powiem szczerze, że nie wiem ale wydaje mi się, iż nie powinno być z tym problemu skoro działają na 433MHz.
      Proszę spróbować…wydaje mi się, że powinno się bez problemu udać.
      Pozdrawiam

  3. Dam znać, na razie czekam na zestaw nadawczo-odbiorczy 🙂
    Walczę jednak z innym tematem (Mi-Light), o czym piszę w innym pana wątku i proszę o pomoc.

  4. Cześć,
    super poradniki 🙂
    Potrzebuje pomocy, ponieważ wszystko robię jak opisałeś. Dochodzę do momentu uruchomienia sudo ./RFSniffer i nic się nie dzieje. Nic nie pisze w konsoli nawet jak wciskam przyciski na pilocie.
    Jakieś pomysły co źle robie?

    • Łukasz Kostrzewa

      Witam
      Bardzo dziękuję za miłe słowa:)
      Jak wpiszesz sudo ./RFSniffer to wyświetla się komunikat: Starting Up… czy nic się nie dzieje?
      Wpisałeś – „Zamiast wartości 0 w przypadku nadajnika i 2 w przypadku odbiornika należy wpisać odpowiednie PINy z Raspberry mając na uwadze oznaczenia PINów z WiringPi”
      I po tym zabiegu wywołałeś polecenie „make all”?
      Ciężko mi kurcze powiedzieć co jest nie tak skoro nie mam żadnej informacji o błędzie 🙁
      Pozdrawiam i czekam na info

    • miałem to samo…
      zmiana w kodzie

      int pulseLength = 0;
      na
      int pulseLength = 207;

      i u mnie zaczyło działać

      • Łukasz Kostrzewa

        Witam
        Dzięki za podpowiedź Fernando…
        Zbyt dawno robiłem to u siebie i nie wszystko pamiętam ale…wiem, że faktycznie było coś z tą długością sygnału.
        Można wpisać komendę sudo ./RFSniffer 207 by odpalić RFSniffera z długością 207. Można próbować różne wartości.
        Kolejnym rozwiązaniem może być dodanie do pliku RfSniffer.cpp linijki —> pullUpDnControl(PIN, PUD_OFF);
        Później raz jeszcze trzeba wpisać komendę –> make all
        Marku bardzo bym prosił o info czy pomogło

        • w którym miejscu trzeba wpisać tę komendę, próbuje już różnych rzeczy, a kodów dalej mi nie czyta. W ogóle nie wyświetla komunikatu Starting up…

  5. Witam,
    Zakupiłem nadajnik i odbiornik, podłączyłem wszystko prawidłowo, zainstalowałem wszystko również prawidłowo (sprawdzałem to z 5 razy).
    Podczas testu pilota sniffer nie zbiera żadnych kodów (test na dwóch systemach, Home Easy firmy Elro oraz Smart Living firmy ORNO).
    Zanim kupię kolejny odbiornik chcę ewentualnie poszukać ewentualnych źródeł błędów.
    Przychodzi Panu może do głowy gdzie szukać powodu braku sczytywania kodów?

    Pozdrawiam

    • Łukasz Kostrzewa

      Witam
      Robiłem to bardzo dawno temu i ciężko mi teraz powiedzieć co może być nie tak…
      Proszę spróbować porad, które są w komentarzach powyżej. Podejrzewam, że może być problem z pulseLength o czym pisał Fernando. Prosiłbym o sprawdzenie.
      Czasami też może być uszkodzony odbiornik, który Pan zakupił (ja jak robiłem swój projekt miałem aż 3).
      Jest jeszcze możliwość zaczytania kodów z pilota za pomocą Arduino Nano (też próbowałem i działa) o czym postaram się napisać w przyszłych postach.
      Pozdrawiam i czekam na info czy wpisanie innego pulseLenght zadziałało. Ewentualnie proszę spróbować pullUpDnControl(PIN, PUD_OFF); o czym pisałem powyżej.

      • Kłaniam,
        więc mamy połowiczny sukces 🙂 Przeinstalowałem RPI i wszystko zaczęło działać, być może podczas instalacji coś popsułem. Generalnie obecnie kody czyta mi prawidłowo. Kolejny problem w tym, że chcąc nadać ten kod sudo ./codesend 00000000 z wcześniej odczytanym kodem przełączniki nie odczytują tego. Informacyjnie – dysponuję systemem Home Easy firmy Elro.
        Nadając kod zostaje on normalnie odczytany przez odbiornik w Rpi, natomiast sama przełącznik cisza… 🙁

        • Łukasz Kostrzewa

          Witam…
          Fajnie, że połowa już za Nami:)
          Rozumiem, że kodu Pan ładnie zaczytał. Następnie odłączył Pan odbiornik od RPi i podłączył Nadajnik (albo miał Pan podłączone jedno i drugie urządzenie do płytki stykowej od samego początku?)
          Rozumiem, że int PIN =… ma Pan nastawiony zgodnie z Pinem w RPi?
          Antenę ma Pan przylutowaną i czy jest ona o odpowiedniej długości (najlepiej jakby miała 17 cm i była zwinięta (można to zrobić np. na długopisie) – proszę pokombinować z tą anteną..-w moim przypadku to miało znaczenie.
          Proszę o info czy zrobił Pan wszystko o czym napisałem?
          Pozdrawiam

    • Łukasz Kostrzewa

      Witam raz jeszcze
      Jak nie będzie za żadne skarby chciało działać na Raspberry i zanim sam o tym napiszę tu jest piękny poradnik jak to zrobić na Arduino Nano –> http://www.princetronics.com/how-to-read-433-mhz-codes-w-arduino-433-mhz-receiver/
      Pozdrawiam

  6. Witam, odczytałem kody za pomocą Arduino, malina potrafi wysłać podany kod, ale jak zmienić protokół? Pilot wysyła kod z protokołem 6 a malina z protokołem 1. Jest jakieś rozwiązanie?

    • Łukasz Kostrzewa

      Witam Serdecznie
      Powiem szczerze, że mnie Pan zaskoczył.
      Trzeba pewnie zmodyfikować plik RCSwitch.cpp
      W pewnym miejscy w tym pliku jest coś takiego jak –> Sets the protocol to send i powyżej this->setProtocol(1);

      Proszę pokombinować ze zmianą protokołu w tym miejscu i dać ewentualnie znać czy pomogło.
      Pozdrawiam

  7. Niestety nic nie mogę wymyślić. Przy użyciu komendy sudo ./codesend 123456 x, zamiast x podaje numer protokolu. Jak podam 1 to wysyła 1, jak 2 to 2, jak 3 to 5, jak 4 to nic nie wysyła, jak 5 to 2, jak podam 6 to wysyła 1. Nie wiem o co chodzi.

    • Łukasz Kostrzewa

      Witam
      Kurcze…
      A może warto dopisać do kodu codesend.cpp linijkę:
      mySwitch.setProtocol(6);
      Trzeba po edycji wywołać raz jeszcze –> make all
      Pozdrawiam

  8. Niestety to samo.

    • Łukasz Kostrzewa

      🙁
      Niestety nie mam pomysłu.
      Pozdrawiam i jeżeli się Panu uda bardzo bym prosił o info jak Pan tego dokonał

      • Mam dokładnie ten sam problem 🙁

        • Łukasz Kostrzewa

          Witam
          Używa Pan tych samych gniazdek co w poradniku?
          PS: Próbuje wymyślić jak obejść problem protokołu ale nie jest łatwo 🙁
          Pozdrawiam

  9. Witam.

    Instaluje gniazdka 433Mhz wg w/w projektu.
    Wcześniej wszystko działało jak trzeba ale chciałem upożądkować wszystko i instaluje od nowa.
    Mam problem przy tworzeniu wirtualnego przełącznika.
    Podczas jego tworzenia, gdy wybiore „utwórz wirtualne czujniki”, uzupełnie nazwę oraz wybiore np. „przełącznik” i potwierdze OK pojawia się komunikat „problem podczas tworzenia czujnika”.
    RPi mam zaaktualizowane, domoticz też zaktualizowany.
    Gdzie jest problem?
    Dodam iż jest też problem z wyświetlaniem czujników-przerłączników które dodałem jako ulubione.
    W zakładce pulpit jest pusto.
    Z góry dziękuje za pomoc.

    • Agnieszka Kostrzewa

      Witam. Nie przychodzi mi nic do glowy jak tylko reinstalacja Domoticz. Ja uzywam wersji sprzed roku i z premedytacją nie aktualuzuje w obawie o nowe bledy. Nie powinien wyskakiwac blad przy tworzeniu czujnika o ile wszystko robione jest wg. Instrukcji (zreszta… Filozofii z tym nie ma). Oz tego co czytam wczesniej dzialalo takze musi to byc problem nowej wersji.

  10. „W tym momencie pozostaje Nam już tylko dodanie wirtualnego przełącznika do Domoticz (o czym pisałem w poprzednich artykułach)”

    Odnośnik by się przydał …

  11. Próbowałem zintegrować gniazda URZ3143 ale mam taki problem, że kody udało mi się odczytać tyko wtedy gdy pilot był dosłownie 2-3 cm od odbiornika, gdy był dalej to odbiornik nic nie rejestrował. Po wysłaniu tych kodów transmiterem, odbiornik je odczytuje (obydwa znajdują się blisko siebie) ale żadne z gniazd nie reaguje mimo, że znajdują się kilka centymetrów od nadajnika.
    Macie jakieś pomysły co jest nie tak? Czy inny model gniazd może być przyczyną?

    • Agnieszka Kostrzewa

      Witam. Nadajnik musi byc za slaby skoro gniazdka nie otrzymuja sygnalu. Moze trzeba pokombinowac z antena. Ja mialem z tym spory problem metoda prob i bledow udalo mi sie znalezc optymalne dla mnie rozwiazanie. Jezeli mam w domu wlaczone radio to praktycznie nic nie działa zwyklr bo zakłóca sygnal… Pozdrawiam

  12. Witam,

    Kupiłem taki przycisk:
    https://allegro.pl/pilot-rf-433-mhz-1-przycisk-dobry-do-sonoff-z-plfv-i7403185923.html

    postąpiłem tak jak na początku poradnika (do momentu zczytywania kodu) i wszystko działa
    tzn. wiem jaki jest kod przycisku gdy go nacisnę.

    Chciałbym teraz móc np. czymś sterować za pomocą tego przycisku.
    dokładnie chodzi mi o zmianę utworu na następny w kodi playerze działającym na innym urządzeniu.

    Będę wdzięczny za pomoc.

    btw. bardzo fajny i tani ten przycisk, który kupiłem.

    Generalnie robię urządzenie dla dziecka niepełnosprawnego i chcę mieć przycisk, który działa „szybko”; kupiłem wcześniej xiaomi gateway i xiaomi smart button, ale jest zbyt duże opóźnienie po naciśnięciu przycisku.

    Pozdrawiam,
    mm

    • Łukasz Kostrzewa

      Witam Serdecznie
      Powiem szczerze, że nie bardzo wiem jak wykorzystać ten odczytany kod do sterowania czymkolwiek w Domoticz.
      Jeżeli chodzi o sterowanie Kodi to mogę podpowiedzieć, że żeby np. zmienić utwór na następny należy w utawieniach danego przełącznika w Domoticz w zakładce Włącz akcję wpisać:
      http://192.168.0.10:8080/jsonrpc?request={„jsonrpc”:”2.0″,”method”:”Player.GoTo”,”id”:0,”params”:{„playerid”:0,”to”:”next”}}
      Oczywiście nr IP to numer do waszego urządzenia z KODI. W kodzie „id”:0 „playerid”:0 może być u Was – 1.
      Żeby sprawdzić czy będzie 1 czy 0 pisujemy w przeglądarkę: http://192.168.0.10:8080/jsonrpc?request={„jsonrpc”: „2.0”, „method”: „Player.GetActivePlayers”, „id”: 1} i sprawdzamy jaką odpowiedź odnośnie playera da Nam przeglądarka.
      NA tej sronie jest rozpiska komend do sterowania KODI – http://habitech.s3.amazonaws.com/PDFs/STR/STREAM_Box%20Note%20-%20JSON%20API%20Examples%20for%20ContentPlayer%20(Isengard).pdf

    • Witam,
      MM – jak rozumiem masz wirtualny przełącznik (np. „push on button”), który jest powiązany z fizycznym przyciskiem. Zatem każde przyciśnięcie tego przycisku Domoticz rejestruje jako zdarzenie.
      A wtedy, pisząc prosty skrypt dZvents, ustalasz akcje jakie mają się wykonać, kiedy ten przycisk zostanie przyciśnięty.
      To było chyba coś takiego:
      return {
      on = {
      devices = {‚*’},
      },

      local przycisk = ‚Nazwa Twojego przycisku – pilota 433 z Domoticza’
      local zmien_utwor = ‚Nazwa Twojego przełącznika w Domoticz który ma url zmieniający utwór’

      execute = function(domoticz, device)
      if domoticz.devices(przycisk).changed then domoticz.devices(zmien_utwor).switchOn()
      end
      end
      }

      Generalnie jeśli ktoś chce używać więcej urządzeń sterowanych 433MHz, polecam gateway RFlink: https://www.nodo-shop.nl/nl/rflink-gateway/127-rflink-arduino-antenne-.html.
      To urządzenie czyta i rozpoznaje setki urządzeń, co pozwala na ich przypisanie do Domoticz.
      Mam kilka typów gniazdek 433, ale także przełączniki naścienne Conrada (seria RSL). RFlink czyta rozpoznał także nadajniki temperatury i wilgotności, które przesyłają takie dane do domowej stacji meteo – dzięki temu te same dane mam w Domoticz. Wreszcie RFLink pozwala sterować żarówkami RGBW systemu Milight.

  13. Problem w tym, że nie mogę tego przycisku „zaprogramować/wykryć” w domoticzu tzn.
    Plugin RFswitches tworzy Learn switch – gdy nacisnę ON, to mam 10 sekund, żeby wcisnąć na pilocie przycisk ON, potem 10 sekund, żeby wcisnąć OFF (tak by było w przypadku standardowego pilota który ma 2 przyciski – jeden ON, drugi OFF). Ja mam jeden przycisk wysyłający jeden stały, 7-cyfrowy kod.

  14. innymi słowy, chodzi mi o to, aby móc wykorzystać pilota RF w domoticzu wykorzystując prosty odbiornik RF

  15. zapomniałem dodać, że w DOMOTICZU jest plugin RFswitches, który powinien robić podobne cuda jak te robione za pomoca codesend i snifer

    • Agnieszka Kostrzewa

      Powinien czy robi? 🙂 Ja używam bardzo starej wersji Domoticza więc nie byłem tego świadomy. Faktycznie to działa?

  16. gdy używam snifera (tego z opisu) to mogę odczytać kod (więc hardware jest ok). gdy używam dodatku z domoticza to nic nie działa.

    • Agnieszka Kostrzewa

      Czyli ze sniffer lepszy:) Kurcze… Myslalem wczoraj jak ten kod wykorzystać ale nie mam pomysłu. Nie znam żadnego dodatku do Domoticza co by umiał odczytać kody. Można by moze użyć sniffera i napisać jakiś skrypt w Pythonie… Ze jak odczyta ten konkretny kod to niech uruchomi jakiś wirtualny przelacznik przez curl i komende json. Tyle że ja programista nie jestem i nie wiem jak to zrobić 🙁 Pozdrawiam

  17. Witam,
    Czy zasilanie odbiornika z 5V jest bezpieczne?

    • Agnieszka Kostrzewa

      W moim przypadku nic się złego nie wydarzyło. Chociaż z tego co pamietam do odczytywania kodów używałem też Arduino a tam jest 3V. Juz niestety dokładnie nie pamiętam 🙁

Zostaw Komentarz

*