Podłączenie kontaktronu do Raspberry Pi w systemie Domoticz

wpis w: Domoticz | 77

W dzisiejszym wpisie opiszę jak podłączyć do Raspberyr Pi czujnik otwarcia drzwi i okien (kontaktron).

Kontaktron HO-03B
Kontaktron HO-03B

 

W swoim przypadku użyłem kontaktronu HO-03B.

Moim zdaniem jest to jeden z ciekawszych modeli. Jest bardzo mały. Posiada wbudowane dwa kable przyłączeniowe. Ma możliwość montażu na śruby jak i taśmę, która jest dołączona do zestawu a cena nie przekracza 6 zł. Dostępny również w kolorze białym.

Dane techniczne:

  • Napięcie pracy: do 40V
  • Prąd (maksymalny): 100mA
  • Szczelina: do 25mm
  • Rodzaj styku: NC (brak magnesu – styki rozwarte)
  • Kolor : brązowy
  • Długość przewodów: 30cm
  • Wytrzymałe na warunki atmosferyczne (IP65)
  • Wymiary:
    • Czujnik: 27x13x7mm
    • Magnes: 27x13x7mm
  • W zestawie:
    • 4 śruby mocujące
    • Czujnik
    • Magnes
    • Taśma dwustronna

 

Poniżej schemat podłączenia kontaktronu do Raspberry:

 

Schemat podłączenia kontaktronu do Raspberry Pi
Schemat podłączenia kontaktronu do Raspberry Pi

 

Aby Nasz kontaktron odczytywał stan niski i wysoki (styki zwarte/rozwarte) należy utworzyć poniższy skrypt za pomocą polecania:

  • sudo nano kontaktron.py

Następnie w nowo utworzonym pliku wklejamy poniższy kod:

Jeżeli nie macie zainstalowanego modułu urllib i urllib2 należy go zainstalować poprzez komendę:

  • sudo pip install urllib urllib2

Następnie dodajemy plikowi uprawnienia poprzez komendę:

  • sudo chmod +x kontaktron.py

W tym momencie możemy sprawdzić czy Nasz skrypt działa poprzez uruchomienie go za pomocą polecenia:

  • sudo python kontaktron.py

Jeżeli wszystko jest w porządku po połączeniu ze sobą magnesów kontaktronu powinien pojawić się napis „DRZWI ZAKMNIĘTE” a po rozwarciu „DRZWI OTWARTE”

Aby Nasz kontaktron był widoczny w systemie Domoticz – tworzymy wirtualny czujnik (jak to zrobić opisałem TU). Przy tworzeniu czujnika – ustawiamy jego typ na – Przełącznik.

Gdy już wszystko utworzyliśmy zapamiętujemy idx Naszego nowo utworzonego Przełącznika (Zakładka Konfiguracja/Urządzenia).

W skrypcie zamiast xxx.xxx.xxx.xxx – wpisujecie IP do swojego systemu Domoticz oraz odpowiedni port – w moim przypadku 8080.

W skrypcie zamiast XX – wpisujecie idx swojego nowo utworzonego Przełącznika.

Wychodzimy z edytora poprzez komendę:

  • CTRL + x

Zapisujemy zmiany poprzez komendę ENTER.

Jeżeli wszystko zrobiliśmy poprawnie Nasz przełącznik powinien zmieniać swój status w zależności od tego czy połączymy ze sobą magnesy kontaktronu czy też będą one rozwarte.

Metoda druga:

Istnieje druga (myślę, że może nawet łatwiejsza) metoda na zainstalowanie kontaktronu w systemie Domoticz.

Podłączamy wszystko tak samo jak w poradniku powyżej.

Następnie w konsoli instalujemy biblioteki wiringPi (jak to zrobić opisałem na przykładzie instalacji Gniazdek 433Mhz w TYM artykule).

Następnie w konsoli wpisujemy:

  • sudo nano /etc/init.d/domoticz.sh

Na końcu pliku wpisujemy:

/usr/local/bin/gpio export 23 in
/usr/local/bin/gpio edge 23 both

Jeżeli podłączyliście wasz kontaktron do innego pinu niż w tym poradniku (a był to PIN 23 – wtedy wpisujecie nie gpio export 23 i gpio edge 23 tylko Piny zgodnie z wartościami z tabeli po wpisaniu komendy): gpio readall

 

kont

 

Naciskamy Ctr+x i zapisujemy zmiany.

Następnie restartujemy Domoticz za pomocą komendy:

  • sudo service domoticz.sh restart

Teraz zostaje już tylko dodanie przełącznika do Domoticz i odpowiednia konfiguracja.

Logujemy się do Domoticz przez WWW.

Tworzymy wirtualny przycisk wchodząc do Konfiguracja–>Sprzęt i wybieramy parametry jak na poniższym zdjęciu.

 

gpio-kont

 

Następnie wchodzimy w zakładkę Przełączniki i w górnym lewym rogu wybieramy „Ręczne świat./przeł.”

 

kontaktronprzelacznik1

 

W nowo otwartej tabelce wypełniamy odpowiednio:

  • Sprzęt – wybieramy nasz wirtualny czujnik GPIO, który utworzyliśmy wcześniej
  • Nazwa – dowolna nazwa
  • Typ przełącznika – Contact
  • Typ: GPIO
  • GPIO: Wasze Gpio 23 (powinno być jako IN)

 

kont1

 

Naciskamy przycisk „Dodaj urządzenie”

Od tego momentu wszystko powinno już działać poprawnie.

Gdyby coś nie działało pod tym adresem znajdziecie gotowy plik.

77 Odpowiedzi

  1. Błąd w komendzie jest: sudo pip urllib urllib2 powinno być: sudo pip install urllib urllib2
    Pozdrawiam

    • Agnieszka Kostrzewa

      Witam Serdecznie
      Bardzo dziękuję za informacje.
      Zaraz zmienię na poprawną komendę.
      Pozdrawiam

  2. Wpisując kod:

    #!/usr/bin/python

    import RPi.GPIO as GPIO
    import time
    import urllib
    import urllib2

    sensor = 5

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(sensor, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    previous_state = False
    current_state = False

    while True:
    time.sleep(0.1)
    previous_state = current_state
    current_state = GPIO.input(sensor)
    if current_state != previous_state:
    if current_state:
    httpresponse = urllib.urlopen(‚http://10.229.0.15:8081/json.htm?type=command&param=switchlight&idx=19&switchcmd=On’)
    else:
    httpresponse = urllib.urlopen(‚http://10.229.0.15:8081/json.htm?type=command&param=switchlight&idx=19&switchcmd=Off’)

    Otrzymuję następujący błąd:
    httpresponse = urllib.urlopen(‚http://10.229.0.15:8081/json.htm?type=command&param=switchlight&idx=19&switchcmd=On’)
    File „/usr/lib/python2.7/urllib.py”, line 87, in urlopen
    return opener.open(url)
    File „/usr/lib/python2.7/urllib.py”, line 213, in open
    return getattr(self, name)(url)
    File „/usr/lib/python2.7/urllib.py”, line 364, in open_http
    return self.http_error(url, fp, errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 377, in http_error
    result = method(url, fp, errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 689, in http_error_401
    errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 386, in http_error_default
    raise IOError, (‚http error’, errcode, errmsg, headers)
    IOError: (‚http error’, 401, ‚Unauthorized’, )

    Oczywiście gdy wprowadzam samo:

    http://10.34.0.200:8081/json.htm?type=command&param=switchlight&idx=19&switchcmd=On

    I

    http://10.34.0.200:8081/json.htm?type=command&param=switchlight&idx=19&switchcmd=Off

    Stan przełącznika w domoticzu się zmienia.

    Co robię nie tak?

    Pozdrawiam!

    • Łukasz Kostrzewa

      Witam Serdecznie

      W przykładzie używa Pan adresu: http://10.229.0.15:8081 a później w opisie http://10.34.0.200:8081. Może ten pierwszy adres IP jest niepoprawny?
      ewentualnie czy zainstalował Pan: sudo pip install urllib urllib2 ?
      Ewentualnie można spróbować drugiej metody, którą opisałem na dole posta.

      Pozdrawiam i czekam na info

  3. Oczywiści przeoczyłem adres powinien być http://10.34.0.200:8081 – jednak dalej ten sam problem. Malinka jest wystawiona na dwóch adresach w sieci LAN i WLAN – dlatego próbowałem również pod innym adresem.

    Właśnie jeśli chodzi o instalację biblioteki to jest mały problem. Dostaję następujący komunikat: sudo pip install urllib urllib2
    Downloading/unpacking urllib
    Could not find any downloads that satisfy the requirement urllib
    Cleaning up…
    No distributions at all found for urllib
    Storing debug log for failure in /root/.pip/pip.log

    Moja wersja pythona to:

    Python 2.7.9 (default, Sep 17 2016, 20:26:04)
    [GCC 4.9.2] on linux2

    Gdy dam:
    apt-cache search urllib
    python-m2crypto – a crypto and SSL toolkit for Python
    python-multipartposthandler – handler for urllib2 to enable multipart form uploading
    python-ndg-httpsclient – enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
    python-pysocks – socket-like interface for tunneling through SOCKS – Python 2.x
    python-requests – elegant and simple HTTP library for Python2, built for human beings
    python-requests-whl – elegant and simple HTTP library for Python, built for human beings
    python-urllib3 – HTTP library with thread-safe connection pooling for Python
    python-urllib3-whl – HTTP library with thread-safe connection pooling
    python3-pysocks – socket-like interface for tunneling through SOCKS – Python 3.x
    python3-requests – elegant and simple HTTP library for Python3, built for human beings
    python3-urllib3 – HTTP library with thread-safe connection pooling for Python3

    Czy te biblioteki nie są już dostępne? Za bardzo nie rozumiem o co chodzi.

    Być może trzeba to przebudować na bibliotekę urllib3?

  4. Gdy wejdę w /usr/lib/python2.7

    Wydaje się, że biblioteki są!

    -rw-r–r– 1 root root 52407 Sep 18 03:44 urllib2.py
    -rw-r–r– 1 root root 46992 Feb 13 15:56 urllib2.pyc
    -rw-r–r– 1 root root 20480 Mar 2 14:01 .urllib2.py.swp
    -rw-r–r– 1 root root 58498 Mar 2 13:57 _urllib.py
    -rw-r–r– 1 root root 58498 Mar 2 14:19 urllib.py
    -rw-r–r– 1 root root 50208 Feb 13 15:56 urllib.pyc
    -rw——- 1 root root 60404 Mar 2 14:08 urllib.py.save
    -rw-r–r– 1 root root 15164 Sep 18 03:44 urlparse.py

  5. Ok – po wielu godzinach szukania i kombinowania wszystko się wyjaśniło…. Sprawa dosyć głupia i prosta.

    Chodziło o nieautoryzowany dostęp. Do panelu domoticza miałem ustawione login i hasło. Dopóki nie dodałem swojej sieci do zaufanych – nie wymagających loginu i hasła – program nie miał prawa działać (zapewne można było to gdzieś zapisać w bibliotece ). Na chwilę obecną problem uznaje za rozwiązany.

    • Łukasz Kostrzewa

      Witam Serdecznie
      Bardzo dziękuję, że opisał Pan na czym polegał problem oraz jego rozwiązanie, na które na pewno bym nie wpadł 🙂
      W przypadku budowania inteligentnego mieszkania na systemie Domoticz i raspberry pi najważniejsze jest żeby kombinować 🙂 Bo zawsze coś nie działa tak jak trzeba mimo, że robi się krok po kroku jak z poradnika. Każdy ma trochę inny system i mogą występować różne problemy.
      Pozdrawiam i życzę miłego dnia

  6. Witam,
    sposób podany przez Pana generalnie działa – aktualny stan pokazuje mi dobry, ale mam problem z logami – nie wsyztstko się w nich znajduje. Wiem że dziś drzwi były otwierane, niestety nie ma tego w logu. Czy ma Pan może pomysł co może być nie tak?

    • Okazuje się że otwarcie lub zamknięcie drzwi nie zmienia statusu. Problem pojawia się gdy zabraknie prądu i RPi zostanie nagle wyłączona. Po ponownym uruchomieniu kontakton już nie reaguje, aż do momemntu ponownego rozłączenia i podłączenia samego urządzenia. Można to jakoś obejść?

      • Łukasz Kostrzewa

        Witam
        Niestety też mam ten problem, że jak nie ma prądu to nie zawsze odpali się skrypt (nie wiem od czego to zależy bo przeważnie się odpala) przez crontab i nie jest wykonywany. Muszę często raz jeszcze zrestartować malinę żeby wszystko wróciło do normy. Nie do końca to rozumiem 🙁 Na szczęście prądu brakuje bardzo rzadko 🙂
        Pozdrawiam

  7. Dzień dobry.
    Wszystkie polecenia odnośnie wprowadzenia kodu i podłączeniu kontaktronu wykonałem. Kiedy próbuję wykonać polecenie sudo python kontaktron.py otrzymuję komunikat:
    File „kontaktron.py”, line 17
        time.sleep (0.1)
    ^
    SyntaxError: invalid syntax

    Jak to ugryźć.
    Proszę o pomoc. Pozdrawiam

    • Łukasz Kostrzewa

      Witam
      A ściągał Pan cały plik z kodem ze strony czy wklejał z opisu?
      Jak z opisu to mogą występować błędy kodowania. Najlepiej użyć pliku, który udostępniłem na końcu wpisu.
      Proszę ewentualnie usunąć wszystkie spacje przed nazwą time.sleep i wstawić je od nowa (miejsce strzałki pokazuje gdzie jest błąd).
      Pozdrawiam i proszę dać znać czy pomogło

  8. Niestety żadna metoda nie działa.
    Robię wszystko jak w opisach ale lipa.
    Proszę o pomoc, jakie informacje podesłać żeby ktoś mógł sprawdzić co jest nie tak?

  9. Po wpisaniu komendy, otrzymuje taki wynik:
    pi@raspberrypi:~ $ sudo python kontaktron.py
    File „kontaktron.py”, line 17
    SyntaxError: Non-ASCII character ‚\xc2’ in file kontaktron.py on line 17, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    • Agnieszka Kostrzewa

      Witam. Zamiast wklejac tekst ze strony prosze pobrac plik ktory umiescilem na dole. Wrzucic go na raspberry prze, np. Filezilla i tam go edytowac. To jest prawdopodobie blad kodowania znakow.
      Ewentualnie prosze dodac na poczatku pliku ktorego Pan uzywa linijke:
      # -*- coding: utf-8 -*-

      Pozdrawiam i prosze o info czy pomoglo

  10. Witam, po kolejnych testach dostaje taką odpowiedz po uruchomieniu skrypty kontaktron.py
    pi@raspberrypi:~ $ sudo python kontaktron.py
    Traceback (most recent call last):
    File „kontaktron.py”, line 24, in
    httpresponse = urllib.urlopen („http://192.168.8.145:8080/json.htm?type=command&param=switchlight&idx=15&switchcmd=On”)
    File „/usr/lib/python2.7/urllib.py”, line 87, in urlopen
    return opener.open(url)
    File „/usr/lib/python2.7/urllib.py”, line 213, in open
    return getattr(self, name)(url)
    File „/usr/lib/python2.7/urllib.py”, line 364, in open_http
    return self.http_error(url, fp, errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 377, in http_error
    result = method(url, fp, errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 689, in http_error_401
    errcode, errmsg, headers)
    File „/usr/lib/python2.7/urllib.py”, line 386, in http_error_default
    raise IOError, (‚http error’, errcode, errmsg, headers)
    IOError: (‚http error’, 401, ‚Unauthorized’, )

    • Agnieszka Kostrzewa

      Skrypt Pan kopiowal ze strony czy sciagal Pan plik? Jak byl kopiowany to moga wystepowac błędy. Bibliiteki urllib sa zainstalowane?

      • Witam, skopiowalem z dropboxa.
        biblioteki sa zainstalowane.
        Dlaczego kiedy stosuje sposób srugi tez nie działa, mam poinstalowane szystko co trzeba gdyż mam zainstalowany i działający projekt gniazdek 433mhz

        • Agnieszka Kostrzewa

          Witam. Powodów moze byc wiele ale nie jestem w stanie wymyślić o co dokladnie moze chodzic:(

          • Witam,
            Nareszcie ruszyło, metoda druga działa.
            Problemem były dodatkowe parametry, przy tworzeniu virtualnego przycisku.
            U mnie akurat występują 3 dodatkowe parametry, które miały domyślne ustawienia, po ich wyzerowaniu wszystko zaczęło działać.
            Dziękuję za pomoc.

  11. Nie może być zbyt łatwo 🙂
    Pojawił się kolejny problem w momencie dołączenia kolejnego kontaktronu.
    Dodałem kolejne wiersze w pliku sudo nano /etc/init.d/domoticz.sh
    /usr/local/bin/gpio export 20 in
    /usr/local/bin/gpio edge 20 both
    reszte zrobiłem identycznie jak w przypadku pierwszego kontaktronu (oczywiście wybrałem właściwe GPIO) ale niestety drugi nie działa.
    Jakaś podpowiedź?

    • Agnieszka Kostrzewa

      Witam. No kurcze nie wiem:) Tutaj cudow nie ma. Jak wszystko jest zrobione dokladnie tak samo to powinno dzialac. Prosze sprobiwac na innym gpio… Moze nie kazde nadaje sie do tego celu. Pozdrawiam

  12. Witam, co trzeba zmienić w kodzie jeśli teraz jest urllib3? Nie jestem w stanie zainstalowac urllib2 na raspberry.

  13. Witam,

    Za pomocą pierwszego sposobu dodałem kontaktron (pobrany plik, skopiowany do Rpi3, przełącznik ustawiony w Domoticzu). Sytuacja wygląda następująco: gdy wpiszę komendę sudo python drzwi.py – w konsoli nic się nie dzieje, natomiast w Domoticzu w Log’u przełącznika widzę zmiany statusów – czyli kontaktron jest poprawnie podłączony. Jednakże, gdy przerwę działanie pliku drzwo.py przez Ctrl+C (czy przez rozłączenie sesji SSH), zmiany statusów nie są już odzwierciedlane w Domoticzu. Czy jest to normalne zachowanie?

  14. Dziękuję. Wpis do autostartu dodany z powodzeniem.

  15. Witam. wszystko ładnie działa ale za Chiny nie mogę dodać skryptu z pierwszej metody do autostartu.

    Próbowałem rc.local podając ścieżkę:
    /home/pi/domoticz/scripts/drzwi.py &

    Próbowałem w crontab -e podając ścieżkę:
    @reboot /home/pi/domoticz/scripts/drzwi/py

    robiłem to przez roota i przez użytkownika, i skrypt nie działa, uruchomieniu maliny nie włącza się
    natomiast po uruchomieni ręcznie z terminala wszystko dział do następnego restartu. ma ktoś na to pomysł?

    może to wina ścieżki na początku skryptu próbowałem modyfikować ja
    #!/usr/bin/env python
    #!/usr/bin/python
    #!/bin/python

    Ale nic to nie dało
    Mój skrypt jest w katalogu home/pi/domoticz/scripts/drzwi.py

    • Agnieszka Kostrzewa

      Witam Serdecznie. Niestety nic mi na ten moment nie przychodzi do glowy ale… Pomysle i mozr cos wymysle:) Moze ktos inny pomoze?

    • Po wielu godzinach bojów odpuściłem metodę pierwszą i wziąłem się za metodę drugą, ale że by nie było tak fajnie to mam kolejny problem, jak w tej metodzie odwrócić działanie styków.
      domyślnie jest:
      Styki zwarte –> Drzwi zamknięte
      A ja chcę mieć
      Styki zwarte –> Drzwi otwarte
      Ponoć to się da zrobić, zamieniając stan GPIO, próbowałem na Pull Up i na Pull Down ale nie działa, wyczytałem że trzeba przylutować rezystor podciągający?

      • Agnieszka Kostrzewa

        Witam. W metodzie pierwszej to chcesz zrobic jest bardzo proste. Jezeli chodzi o metode druga to niestety nie wiem jak to zrobic:(

    • Spróbuj dodać do systemowego crontab-a. Komenda : sudo nano /etc/crontab

      Więcej o tym wpisz w google:
      CRON, czyli „harmonogram zadań” na przykładzie Raspberry Pi – WebInsider.pl

      • W pierwszej metodzie odwróciłem to bez problemu, dlatego tak mi na niej zależało. Już testowałem to z systemowym Cronem, to samo 🙁 .Mam inne skrypty w pythonie które frygają i załączają się przy starcie bez problemu.
        Może to winna bibliotek urllib? Tak wygląda mój początek skryptu:
        import RPi.GPIO as GPIO
        import time
        import urllib3
        import urllib

        Na urllib2 nie działał w ogóle

        • Agnieszka Kostrzewa

          Wszystko wydaje sie byc tak jak powinno… Nir mam kurcze pojecia co moze byc nie tak:(

        • ESP8266 kup. 10 zl na aliexpress. Na niego wgraj EspEasy i smiga az milo.

  16. Gdyby ktoś potrzebował to załączam kawałek kodu do ./domoticz.sh
    #km1
    echo 21 > /sys/class/gpio/export
    echo in > /sys/class/gpio/gpio21/direction
    #km2
    echo 16 > /sys/class/gpio/export
    echo in > /sys/class/gpio/gpio16/direction
    #km3
    echo 20 > /sys/class/gpio/export
    echo in > /sys/class/gpio/gpio20/direction
    #wentylator1
    echo 24 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio24/direction
    #wentylator2
    echo 5 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio5/direction
    #km4
    echo 26 > /sys/class/gpio/export
    echo in > /sys/class/gpio/gpio26/direction

    #automatyczne uruchomienie skryptu obsługującego 4 kontaktrony
    cd /home/pi/domoticz
    sudo ./kontaktron2.py

    #koniec ./domoticz.sh

    a tutaj kod dla 4 kontaktronów:

    #!/usr/bin/python

    import RPi.GPIO as GPIO
    import time
    import urllib
    import urllib2

    sensor = 16
    sensor = 20
    sensor = 21
    sensor = 26

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(sensor, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    previous_state = False
    current_state = False

    while True:
    time.sleep(0.1)
    previous_state = current_state
    current_state = GPIO.input(sensor)
    if current_state != previous_state:
    if current_state:
    httpresponse = urllib.urlopen („http://192.168.1.119:8080/json.htm?type=command&param=switchlight&idx=25, 30, 28, 29&switchcmd=On”)
    else:
    httpresponse = urllib.urlopen („http://192.168.1.119:8080/json.htm?type=command&param=switchlight&idx=25, 30, 28, 29&switchcmd=Off”)

  17. Witam,

    Instalacja kontaktron metodą nr 2.
    Sprawdziłem poprawność podłączenia.
    Sprawdziłem poprawność dodania kontaktron do domoticza
    Po restarcie domoticza, nie wyrzuca błędów. WiringPi zainstalowane.

    Niestety mam cały czas stan zamknięty. Mimo, iż powinno informować o otwarciu.

    Ps. Użyłem K-1 BR (z magnesem)
    Czujki magnetyczne są jednymi z podstawowych urządzeń ochrony obwodowej. Służą do zabezpieczania drzwi, okien itp., reagując na ich otwarcie. Czujka K-1 2E BR przeznaczona jest do montażu powierzchniowego poprzez przykręcenie np. na ramie okiennej czy futrynie. K-1 2E BR składa się z dwóch wodoszczelnych części: czujnika kontaktronowego (magnetycznego) oraz magnesu. Oddalenie jednej części od drugiej powoduje rozwarcie obwodu czujnika, co sygnalizowane jest jako naruszenie. Dodatkowo czujka wyposażona jest w 2 rezystory 1,1 kΩ połączone z kontaktronem w konfiguracji 2EOL. Umożliwiają one centrali alarmowej wykrycie sabotażu czujki poprzez obserwację zmian rezystancji na linii wejściowej.

    Czy zastosowany kontaktron jest przyczyną „niedziałania” w domoticz-u ?

    Dziękuje za info. zwrotne

    • Agnieszka Kostrzewa

      Witam. Nie sadze ze to wina kontsktronu. Ja w lazience nie mam nawet kontaktronu tylko kabel dwuzylowy z raspberry i sreberkobz czekolady przyklejone do drzwi i dziala takze to raczej wina skryptu i ustawien maliny. Ciezko mi pomoc jak nie ma bledu a nic sie nie dzieje:( Pozdrawiam

    • Agnieszka Kostrzewa

      Prosze sprawdzic na samych kabelkach czy dziala bez uzycia kontaktronow.

    • witam
      zrobiłem wg 2 metody i też nie działało.
      Żeby działało trzeba podłączyć pod pin 23 i pin 3,3v

  18. Jak podłączyć więcej kontaktronów?

    • Agnieszka Kostrzewa

      Na moje… Zrobić wszystko to samo co we wpisie tylko zmienić pin komunikacyjny. Zasilanie i ground może być to samo

  19. Witam, dzięki za ten wpis – sprawdził się przy podłączeniu czujnika wilgotności gleby YL-69. Do tego powiadomienie email w domoticzu i wiem kiedy jest za sucho 🙂

  20. dzień dobry,

    mam taki problem że po podłączeniu drugą metodą stan w przełączniku mam dobry natomiast w logach mam co chwilę zmianę stanu, choć drzwi cały czas są zamknięte:
    2019-01-19 18:59:01
    Off
    2019-01-19 18:59:01
    On
    2019-01-19 18:58:59
    Off
    2019-01-19 18:58:59
    On
    2019-01-19 18:58:49
    Off
    2019-01-19 18:58:49
    On

    Czy mają Państwo pomysł co może być nie tak…???

  21. Witam,
    wszystko świetnie działa, ale mam pytanie na jakiej zasadzie działa drugi if w kodzie skoro nie ma warunku? Sprawdza tylko czy zmienna nie jest pusta?

    „if current_state != previous_state:
    if current_state:
    xxx
    else:
    xxx”

  22. Zrobiłem wg 2 metody i działa tylko, że z opóźnieniem około 8 sekund. Tz. Jak zmienię stan przyłożę magnes to po około 8 sekundach w domoticzu mam reakcje że zamknięte. Jak odsunę magnes to znowu po około 8 sekundach w domoticzu dopiero się zmienia na otwarte. Jak wygląda to u Was jakie macie opóźnienie? Bo tak jak teraz działa to trochę lipa bo chciałem to powiązać z załączaniem światła ale po otwarciu drzwi czekać 8 sekund to stanowczo za długo. mam domoticz versja 4.9700. Próbowałem na pełnym Raspberry i na zero i jest tak samo.

    • Agnieszka Kostrzewa

      U mnie działa szybciej ale też nie od razu. Tak między 3-5s. Nie wiem od czego to zależy.

  23. wydaje mi się że tak właśnie działa domoticz odświeża stronę co x sekund dlatego nie ma informacji od razu u mnie jest dokładnie tak samo natomiast kiedy odpytuje przez terminal w raspberry reakcja jest natychmiastowa.

  24. Mam problem z 1 sposobem. Sytuacja wygląda następująco. Uruchamiam domoticz i on widzi ostatni stan kontaktrona sprzed resetu maliny. Wszystko zaczyna działać tylko i wyłącznie wtedy gdy zaloguję się na malinę przez PuTTY i w konsoli wprowadzę komendę sudo python drzwi.py Wystarczy, że wyłączę konsole i wszystko się zawiesza i domoticz widzi ostatni stan sprzed wyłączenia konsoli. W jaki sposób sobie z tym poradzić? Żeby wszystko działało muszę mieć odpaloną konsolę z wpisaną komendą.

    • Agnieszka Kostrzewa

      Ciezko powiedzieć… Mi czasami też przestaje działać i wystarcza że zrestartuje Raspberry i wtedy działa ponownie. Dzieje się tak może raz w miesiącu. Rozumiem że masz dodane by skrypt odpalal się przy starcie maliny?

    • Agnieszka Kostrzewa

      Ja mam w crontab – e wpisane: @reboot /home/pi/kontaktron.sh

    • Agnieszka Kostrzewa

      Ja mam w crontab – e wpisane: @reboot /home/pi/kontaktron.sh

      Trzeba utworzyć plik kontaktron.sh a w nim:

      #! /bin/sh
      cd /
      cd home/pi/
      Sleep 10
      Sudo python kontaktron.py
      cd /

  25. Hej. Czy skrypt z medoty pierwszej działa u was na raspbianie buster?

  26. a jak podłączyć 10 takich sensorów ?

    • Agnieszka Kostrzewa

      Witam. Najlepiej kupić płytkę stykowa. W innym przypadku zabraknie w Rpi pinów GPIO – Ground (jest chyba 8 sztuk) . A podłączenie tak samo jak pierwszego tylko każdy następny do innego Pinu GPIO. W skrypcie zmieniamy tylko sensor = na za każde razem inny wolny z Rpi i w sumie tyle.

      • Witam, co konkretnie zmieniasz na większa ilość kontaktronów ?
        Ktoś wyżej dodał skrypt na 4 ale u mnie stan w domoticzu zmienia się tylko na 1 wpisanym sensor a reszta kicha gdzie jest błąd ? Tutaj jest mój skrypt. Wykonuje mi tylko z pierwszej sensor czyli dla gpio 17
        https://pastebin.com/dGquD32K

        • Agnieszka Kostrzewa

          A nie możesz zrobić 6 oddzielnych skryptów? Wtedy będzie działać na pewno. Pozdrawiam

  27. U mnie nie działa z GND. Muszę mieć podpięte pod 3,3V i GPIO23. Większym problemem jest to, że on działa na odwrót…. drzwi fizycznie zamknięte to pokazane, że jest otwarte.
    /usr/bin/gpio export 23 in
    /usr/bin/gpio edge 23 both

  28. Witam serdecznie,
    dla wszystkich, ktorym dziala tylko z poziomu konsoli i nie chce z poziomu Domoticza po restarcie. Trzeba dodac na koncu ./domoticz.sh:

    cd /home/pi
    sudo ./kontaktron.py

    tak jak pisze Tomaj. Mam najnowsza wersje rasbiana bustera.

    Pozdrawiam i dziekuje

  29. Witam,
    taka mała prośba do autora artykułu i może innych ogarniających skrypty Python’a.
    Czy byłaby szansa na odświeżenie artykułu na rok 2021 (Python 3.9 i urllib3). Walczę z tym od tygodnia i w żaden sposób mi to nie działa. Występują bardzo różne błędy, ale ogólnie w domoticzu nie działa mi ani 1, ani 2 sposób. Z góry wielkie dzięki!

Zostaw Komentarz

*