Domoticz #5 – obsługa termometrów Xiaomi Mijia LYWSD03MMC Bluetooth

W drugiej części opisu moich doświadczeń z Domoticzem – Domoticz #2 opisałem obsługę sensorów temperatury i wilgotności Xiaomi Mijia LYWSDCGQ, popularnie zwanych czujnikami okrągłymi, lub v1. Dziś przedstawię sposób integracji z Domoticzem jakby nowszej wersji – czujników kwadratowych v2, Xiaomi Mijia LYWSD03MMC.

Czujniki okrągłe LYWSDCGQ kontra kwadratowe LYWSD03MMC

Zacznę od tego, że czujniki starsze okrągłe i nowsze kwadratowe komunikują się za pomocą Bluetooth. Jednak są między nimi spore różnice. Najważniejsza to inny format wysyłanych danych. Dlatego metoda obsługi czujników okrągłych opisana przeze mnie we wpisie Domoticz #2 nie działa z czujnikami kwadratowymi. Dostałem sporo informacji, że przedstawiony tam sposób nie działa, a po analizie okazywało się, że próbowano odczytywać nowsze kwadratowe czujniki, stąd problem. Inne różnice to m.in czujnik okrągły / czujnik kwadratowy:

  • bateria AAA / CR2032
  • zakres temperatur 0 – 60ºC / -9,9ºC – 60ºC
  • ekran 1,69″ kwadrat / 1,78″ okrągły

Nowsze, kwadratowe czujniki LYWSD03MMC stały się ostatnio bardzo popularne. Do tego są sporo tańsze od “starszych” okrągłych braci. Można je kupić w pakietach po 2-3 sztuki i cena jest jeszcze bardziej atrakcyjna. Mój sensor kupowałem w promocji na Bangggod za 5,99$ (ale można spotkać taniej), linki poniżej:

Skrypt do odczytu danych z sensorów Xiaomi Mijia LYWSD03MMC

Tradycyjnie już, na github, można znaleźć skrypt do obsługi czujników LYWSD03MMC, a dokładniej tutaj: https://github.com/JsBergbau/MiTemperature2

Do zadziałania całości potrzebujemy w systemie python3, bluez, python3-pip oraz bluepy. Na początek instalacja 3 pierwszych:

I instalujemy bluepy

Przechodzimy do folderu scripts/python w domoticzu (cd domoticz/scripts/python/) i klonujemy skrypt do obsługi termometrów Xiaomi:

Potrzebny nam będzie MAC Address naszego termometru, który odczytamy za pomocą znanego już polecenia:

Trzecie urządzenie od dołu to mój kwadratowy termometr Xiaomi

No to próba odpalenia odczytów w konsoli. Wchodzimy do folderu ze skryptem (cd MiTemperature2) i wpisujemy:

Odczyty lecą cały czas, by je zatrzymać, trzeba wcisnąć CTRL+C. Spróbujmy uzyskać jeden odczyt, z dokładnością jednego miejsca po przecinku:

Użyte parametry to kolejno:

  • -d –device – mac adres urządzenia;
  • -r –round – zaokrąglanie pomiaru do jednego miejsca po przecinku
  • -deb –debaunce – pobieranie dokładniejszego wyniku, wymaga parametru -r
  • -b –battery – pobieranie napięcia baterii
  • -c N –count N – gdzie N to liczba naturalna – ilość pomiarów

Wszystkie powyższe parametry są dokładnie opisane na stronie projektu na githubie https://github.com/JsBergbau/MiTemperature2.

Obsługa Xiaomi Mijia LYWSD03MMC przez Domoticza

Na początek trzeba dodać w Domoticzu wirtualne urządzenie (czujnik). Wchodzimy w Sprzęt i w typie Dummy (a o nazwie nadanej przez nas) wciskamy Utwórz wirtualne czujniki.

W nowo otwartym oknie podajemy nazwę, która pozwoli nam zlokalizować czujnik i jako typ czujnika ustawiamy Temp & Wilg.

Po utworzeniu najważniejsze – odczytujemy sobie Idx nowo utworzonego czujnika. U mnie jest to 20 (trzecia kolumna).

W folderze domoticz/scripts/python/MiTemperature2 otwieramy do edycji plik sendToDomoticz.py

I wpisujemy Idx naszego czujnika w miejscu idx_temp = “xx” oraz zmieniamy inne wartości wg potrzeb.

No to teraz próba – wpiszmy linijkę komend tak, jakbyśmy mieli ją podać w cronie i zobaczmy czy zadziała:

Jeśli zadziała jak wyżej (dane zostaną przekazane do czujnika w domoticzu), to można linijkę wkleić do crona. Czyli

i wysyłanie danych co 10 minut, czyli całość wygląda jak druga linijka na poniższym screenie:

Na koniec tradycyjnie sudo service cron reload.

Podsumowanie

Cała konfiguracja czujnika Xiaomi Mijia v2 jest bardzo podobna do wcześniej opisywanej obsługi Xiaomi Mijia v1. Całość opiera się na cyklicznie wywoływanych przez crona skryptach, które wysyłają dane do domoticza. Efektem są dane historyczne w postaci znanych już wykresów:

jak i bieżące odczyty

Co dalej można z tym zrobić? Tradycyjnie możliwości jest wiele. Można uzależnić temperaturę czy wilgotność od włączania lub wyłączania urządzeń – grzejnika, klimatyzatora lub wentylatora np. w łazience, by zmniejszyć wilgotność po kąpieli. Obsługa jest dość prosta, a same czujniki są tanie i wygodne w użyciu.

Wpis “Domoticz #5 – obsługa termometrów Xiaomi Mijia LYWSD03MMC Bluetooth” komentowano 47 razy

  1. Witam, mam problem na RPi B3+ Stretch, nie chce wysłać danych:
    Traceback (most recent call last):
    File “/home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz.py”, line 5, in
    import requests
    ModuleNotFoundError: No module named ‘requests’
    Data couln’t be send to Callback, retrying…

  2. Ok zrobiłem:
    pip install requests
    i poszło bez błędu ale nadal nie mam danych w domoticzu?

  3. Dzięki – zadziałało zgodnie z oczekiwaniami, dokładnie tak, jak pisałeś 🙂

  4. Kilka słów uzupełnienia:

    python musi być w wersji minimum 3.7 (u mnie aktualizacja nie chciała iść – musiałem ręcznie…)
    w pliku sendToDomoticz.py adres IP serwera należy podać wraz z portem…
    jeżeli chcesz podłączyć więcej niż jeden termometr, zrób kilka plików sendToDomoticz.py – np. sendToDomoticz1.py, sendToDomoticz2.py

    To rzeczy z którymi musiałem “powalczyć” zanim zadziałało 🙂

  5. Mogę prosić o nakierowanie gdzie szukać problemu:
    próba odpytania czujnika w konsoli jednym razem przechodzi bez problemu, innym razem kilka razy z rzędu “connection lost” i dopiero po kilku następnych próbach zaskakuje, brak zależności.
    Wcześniej z poprzedniego wpisu dodałem czujnik okrągły i działa bezbłędnie. Oba czujniki miałem wcześniej dodane do RPIeasy i też działały.
    Wydaje mi się że przez te problemy z połączeniem nie mogę też przesłać pobranych danych (gdy już w końcu się uda) do domoticza (wpisywałem też adres domoticza wraz z portem)

    Czujnik kwadratowy, resetowałem też sam czujnik, python w wersji 3.7.3

  6. Zauważyłem problem polegajacy na obciążeniu procesora.
    Po restarcie RBPi3b+ z domoticzem obciążenie procesora wynosi do 5%. Odczyt czujników co 20min.
    Po następnych 20 już jest ok 10%, następnie rośnie x2 co odczyt (4 czujniki LYWSD03MMC).
    Dodam ze czujniki są odczytywane bez problemów, i wartości w domoticzu aktualizowane (odpada problem z zasięgiem).
    No i dochodzi prawie do 100%, co powoduje ze muszę zrestartować malinkę.
    Tak jakby sie cos zapętlało, wszystko zrobione zgodnie z instrukcja w tym artykule.

    Czy są jakieś pomysły co to może być ?

  7. No i problem rozwiązany.

    Dotyczy błędów w “bluepy” jak to autor projektu opisuje tutaj:

    https://github.com/JsBergbau/MiTemperature2

    Wystarczy się wczytać (np. użyć translatora :), i jest tam rozwiązanie:

    killall bluepy-helper

    W skrypcie jest to zahashowane (#) wiec nie ruszałem skryptu tylko dorzuciłem do crontab, że ma 2min po odczycie “skilować” bluepy. Jak na razie 3 dzień odczyty 4 czujników kwadratowych LYWSD03MMC co 15min działają (oprócz tego co 15min są też czytane 6x czujniki okrągłe LYWSDCGQ) bez restartu.
    Obciążenie procesora 5 do 7 %.

  8. zielony jestem,
    jak to zrobiles w cronie bo mam ten sam problem co Ty, przy 4 czujnikach

  9. Witam
    Mi przy 4 czujnikach co kilka godzin pojawiały się kolejne bluepy-helper . Średnio po dobie miałem już cztery procesy i procesor na 100% przy odpytywaniu czujników co 20 minut. Jako , że też jestem zielony w linuxie samo “odhaszowanie” wyrzucało błedy skryptu tak z pomocą google 😉 utworzylem plik .sh z zawartosćią :

    #!/bin/bash
    killall bluepy-helper

    W cronie uruchamia się co godzinę i problem znikł .

  10. Witam,

    u mnie tak przygotowany skrypt nie działa.
    Zwraca tylko komunikat:

    SyntaxError: invalid syntax

    Czy macie może jakieś sugestie, jak rozwiązać problem?
    Malina 100% jak odpytuje 2 czujniki co 10 minut.

  11. Utworzyc plik ze skryptem
    Zmienic prawa do wykonywania pliku

    chmod + x kill.sh

    ja mam w cronie tak
    4-59/20 * * * * /home/pi/domoticz/scripts/python/MiTemperature2/kill.sh
    odzczytuje 3 czujniki co 20 minut z minutowa przerwa pomiedzy czujnikami wiec kill.sh dziala w 4 minucie i co kolejne 20 minut ( polecam stronke https://crontab.guru/ )

    Oczywiście ścieżka w cronie tam gdzie jest skrypt

  12. Dziękuję za wskazówki.

    Prawa do wykonywania przydzielone.
    Wzorowałem się na tych wpisach z crona, które już były i dotyczyły odpytywania czujników.
    Zmieniłem teraz jak kolega Grzegorz podpowiada tylko ze ścieżką gdzie mam plik skryptu:
    4-59/20 * * * * /home/pi/killblu.sh

    Zobaczymy czy zadziała.

    • U mnie jednak też występował problem z zawieszaniem się usługi. Ja odpalam skrypt raz na dobę i to wystarcza. Odpytuję 2 czujniki.

  13. Jestem zielony w temacie programowania, jedynie tutoriale krok po kroku mi wchodza przewaznie. Udało mi się to zrobić z jednym termometrem ale więcej to nie za bardzo wiem jak. Piotr/ek pisał żeby zrobić następne pliki sendToDomoticz.py ale co dalej to już nie kumam . Mógłby ktoś coś bliżej podpowiedzieć?

  14. w cronie tyle polecen ile chcesz czujników odpytać
    Tak u mnie wyglądaja polecenia w cronie

    /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d A4:C1:38:0C:F5:90 -r -deb -b -c 1 -call ./sendToDomoticz1.py

    /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d A4:C1:38:66:72:74 -r -deb -b -c 1 -call ./sendToDomoticz2.py

    itd…..

    Każdy czujnik ma swój plik sendToDomoticz(1,2, itd.. ).py bo wysyłasz dane z konkretnego czujnika do konkretnego idx nadanego w domoticzu

  15. Witam
    /home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz2.py sensorname,temperature,humidity,voltage,batteryLevel,timestamp A4:C1:38:FA:9B:94 24.6 44 3.037 94 1609017262
    sh: 1: /home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz2.py: Permission denied
    Data couln’t be send to Callback, retrying…
    może ktoś pomóc w temacie? mam stworzony drugi plik w nim inny idx jak w domoticzu, w cronie dodatkowa linijka z nowym MAC i niestety coś takiego

  16. Artur, musisz plik “sendToDomoticz2.py” ustawić na wykonywalny:
    komenda:
    chmod +x sendToDomoticz2.py

  17. Hej,

    Próbuję z ta instrukcją i utknąłem na wysyłaniu danych do domoticza.

    Po komendzie:
    /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d -r -deb -b -c 1 -call ./sendToDomoticz.py

    Dostaje odpowiedź jak na Screenie ale dane ne są odbierane w Domoticzu.Tam czujnik nie jest zasilany danymi.

    [email protected]:~/domoticz/scripts/python/MiTemperature2 $ /usr/bin/python3 /home/pi/domoticz/sc ripts/python/MiTemperature2/LYWSD03MMC.py -d A4:C1:38:C5:69:34 -r -deb -b -c 1 -call ./sendT oDomoticz.py
    Trying to connect to A4:C1:38:C5:69:34
    Temperature: 20.5
    Humidity: 42
    Battery voltage: 3.111 V
    Battery level: 100
    1 measurements collected. Exiting in a moment.
    /home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz.py sensorname,temperature,h umidity,voltage,batteryLevel,timestamp A4:C1:38:C5:69:34 20.5 42 3.111 100 1611483064

    Wiecie o co może chodzić? W sendToDomoticz.py ustawiłem adres domoticza razem z portem, tak jak któryś z kolegów tu pisał.

    IDX mam podane

  18. Wyraziłem się trochę nieprecyzyjnie, Domoticz “widzi czujnik” ale tempeartura jest cały czas 0 i wiligotność 50%

    • Plik sendToDomoticz.py ma prawa do wykonywania? Próbować jako adres podać po prostu 127.0.0.1 tak jak jest to u mnie?

  19. Wprowadziłem komendę chmod +x sendToDomoticz.py nie dostałem, żadnego komunikatu, więc zakładam, że prawa do wykonywania powinny być przyznane

    Niestety z samym adresem Domoticza bez portu, też nie działa.

  20. Teraz wprowadzam /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d -r -deb -b -c 1 -call ./sendToDomoticz.py ale czujnik w domoticzu jest na czerwono i ostatnia aktywność jest z przed dwóch dni. Czyli jakby Domoticz nie dostaje danych z czujnika. Macie pomysł, co to może być?

  21. Trying to connect to A4:C1:38:C5:69:34
    Temperature: 20.5
    Humidity: 38
    Battery voltage: 2.929 V
    Battery level: 83
    1 measurements collected. Exiting in a moment.
    /home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz.py sensorname,temperature,humidity,voltage,batteryLevel,timestamp A4:C1:38:C5:69:34 20.5 38 2.929 83 1611699862
    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 159, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
    File “/usr/lib/python3/dist-packages/urllib3/util/connection.py”, line 80, in create_connection
    raise err
    File “/usr/lib/python3/dist-packages/urllib3/util/connection.py”, line 70, in create_connection
    sock.connect(sa)
    ConnectionRefusedError: [Errno 111] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 600, in urlopen
    chunked=chunked)
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 354, in _make_request
    conn.request(method, url, **httplib_request_kw)
    File “/usr/lib/python3.7/http/client.py”, line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1026, in _send_output
    self.send(msg)
    File “/usr/lib/python3.7/http/client.py”, line 966, in send
    self.connect()
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 181, in connect
    conn = self._new_conn()
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 168, in _new_conn
    self, “Failed to establish a new connection: %s” % e)
    urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x75ff1650>: Failed to establish a new connection: [Errno 111] Connection refused

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/requests/adapters.py”, line 449, in send
    timeout=timeout
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
    File “/usr/lib/python3/dist-packages/urllib3/util/retry.py”, line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
    urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=’192.168.1.19′, port=80): Max retries exceeded with url: /json.htm?type=command&param=udevice&idx=67&nvalue=0&svalue=20.5;38;2&battery=83 (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x75ff1650>: Failed to establish a new connection: [Errno 111] Connection refused’))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz.py”, line 37, in
    + val_bat
    File “/usr/lib/python3/dist-packages/requests/api.py”, line 75, in get
    return request(‘get’, url, params=params, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/api.py”, line 60, in request
    return session.request(method=method, url=url, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/sessions.py”, line 533, in request
    resp = self.send(prep, **send_kwargs)
    File “/usr/lib/python3/dist-packages/requests/sessions.py”, line 646, in send
    r = adapter.send(request, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/adapters.py”, line 516, in send
    raise ConnectionError(e, request=request)
    requests.exceptions.ConnectionError: HTTPConnectionPool(host=’192.168.1.19′, port=80): Max retries exceeded with url: /json.htm?type=command&param=udevice&idx=67&nvalue=0&svalue=20.5;38;2&battery=83 (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x75ff1650>: Failed to establish a new connection: [Errno 111] Connection refused’))
    Data couln’t be send to Callback, retrying…

    Taki komunikat dostaje jak nie mam wskazanego portu przy adresie Domoticza.

  22. Wszystko działa jak należy do momentu aż włącze zabezpeczenie WWW w opcjach
    wtedy domoticz nie przyjmuje wysyłanych danych co można z tym zrobić?

  23. Hej, walczyłem trochę ale nie mogę tego ogarnąć. Domoticz przez przeglądarkę działa , 127.0.0.1 nie działa, dostaje komunikaty podobne do takich gdy nie podam portu po adresie Doomoticza. Zastanawiam się nad zakupem bramki BLE aby mieć odczyty z tych termometrów.

  24. Wojtek, dzięki za podpowiedź. Zadziałało! Wywaliłem hasło i jest! Ciekawe czemu z hasłem nie działa???

    • Moduł przesyłający dane łączy się tak samo jak Ty do przeglądarki. Ty wpisujesz hasło i masz dostęp, moduł nie i dane nie są wysłane. Masz w ustawienia system coś takiego jak “Sieci lokalne (bez hasła/loginu)” tam możesz dopisać zaufane sieci, które będą miały dostęp do domoticza bez loginu i hasła

  25. Jeśli macie pozabezpieczane dostępy to nie dziwcie się, że bez podawania haseł Wam nie działa 🙂

    Zamienicie:
    domoticzserver = “192.168.1.36”

    Na:
    domoticzserver = “login:hasł[email protected]” i wszystko będzie śmigać.

  26. Witam, mam podobny problem. Przy zaciągnięciu miji do domoticzna wychodzi mi coś takiego:
    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 159, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
    File “/usr/lib/python3/dist-packages/urllib3/util/connection.py”, line 80, in create_connection
    raise err
    File “/usr/lib/python3/dist-packages/urllib3/util/connection.py”, line 70, in create_connection
    sock.connect(sa)
    TimeoutError: [Errno 110] Connection timed out

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 600, in urlopen
    chunked=chunked)
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 354, in _make_request
    conn.request(method, url, **httplib_request_kw)
    File “/usr/lib/python3.7/http/client.py”, line 1244, in request
    self._send_request(method, url, body, headers, encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1290, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1239, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
    File “/usr/lib/python3.7/http/client.py”, line 1026, in _send_output
    self.send(msg)
    File “/usr/lib/python3.7/http/client.py”, line 966, in send
    self.connect()
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 181, in connect
    conn = self._new_conn()
    File “/usr/lib/python3/dist-packages/urllib3/connection.py”, line 168, in _new_conn
    self, “Failed to establish a new connection: %s” % e)
    urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0xb6195bf0>: Failed to establish a new connection: [Errno 110] Connection timed out

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/usr/lib/python3/dist-packages/requests/adapters.py”, line 449, in send
    timeout=timeout
    File “/usr/lib/python3/dist-packages/urllib3/connectionpool.py”, line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
    File “/usr/lib/python3/dist-packages/urllib3/util/retry.py”, line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
    urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=’192.168.1.36′, port=80): Max retries exceeded with url: /json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=24.3;37;2&battery=78 (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0xb6195bf0>: Failed to establish a new connection: [Errno 110] Connection timed out’))

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “/home/pi/domoticz/scripts/python/MiTemperature2/./sendToDomoticz.py”, line 37, in
    + val_bat
    File “/usr/lib/python3/dist-packages/requests/api.py”, line 75, in get
    return request(‘get’, url, params=params, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/api.py”, line 60, in request
    return session.request(method=method, url=url, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/sessions.py”, line 533, in request
    resp = self.send(prep, **send_kwargs)
    File “/usr/lib/python3/dist-packages/requests/sessions.py”, line 646, in send
    r = adapter.send(request, **kwargs)
    File “/usr/lib/python3/dist-packages/requests/adapters.py”, line 516, in send
    raise ConnectionError(e, request=request)
    requests.exceptions.ConnectionError: HTTPConnectionPool(host=’192.168.1.36′, port=80): Max retries exceeded with url: /json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=24.3;37;2&battery=78 (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0xb6195bf0>: Failed to establish a new connection: [Errno 110] Connection timed out’))

    Co to może być?

  27. Dzień dobry.
    Mam jedno pytanie jak dodać więcej niż jeden taki czujnik do domoticza?

    • Każdy czujnik to plik sendToDomoticz.py z inną nazwą. W domoticzu dodajesz kolejne wirtualne czujniki z innym idx, cronem odpalasz każdy z tych plików sendToDomoticz.py

  28. dzięki za podpowiedz. przyczyna problemu zlokalizowana. problem stanowiły uprawnienia do pliku prawo do uruchamiania muszą mieć wszyscy

  29. Witam Serdecznie
    Potrzebuje porady. W domu posiadam centralne ogrzewanie i za pomocą głowic grzejnikowych sterowanych po przez termostaty Domoticza steruje temperaturą w pokojach. Problem w tym, że nie do wszystkich pokoi mogę dojść kabelkami aby czytać temperatury we wszystkich pokojach. Opisywane w tym artykule czujniczki bezprzewodowe są idealne do zamontowania w pokojach, ale posiadają zintegowany czujnik wilgotności i widzę, że nie nadają się do sterowania termostatami. Kupiłem czujnik zigbee Xiaomi i znów ten sam problem zintegrowany czujnik wilgotności. Czy nie ma jakiegoś skryptu/sposobu który umożliwiałby działanie termostatu z tymi zintegrowanymi czujnikami?.

  30. Witam
    Dziękuje serdecznie za poradnik. Wszystko odpaliło praktycznie od “strzała” poza jednym małym problemem, z którym nie umiem sobie poradzić. Mianowicie mam problem z pracą w harmonogramie cron. Nie chce mi to poprawnie działać. Skrypt uruchomiony z wiersza poleceń aktualizuje na panelu domoticza, lecz z crona nic się nie zmienia. Pomocy 🙁

  31. */20 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/mijia-sensors-domoticz_mijia.py >/dev/null 2>&1
    */5 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d A4:C1:38:8A:29:DF -r -deb -b -c 1 -call ./sendToDomoticz.py >/dev/null 2>&1 SD03MMC.py -d A4:C1:38:8A:29:DF -r -deb -b -c 1 -call ./sendToDomoticz.py >/dev/ null 2>&1
    */5 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC1.py -d A4:C1:38:74:D8:A5 -r -deb -b -c 1 -call ./sendToDomoticz1.py >/dev/null 2>&1

    z takimi wpisami działają oba czujniki. Jak się okazało problem stanowiły uprawnienia do pliku LYWSD03MMC1. Trzeba nadać im uprawnienia chmod 777 inaczej nie zadziała.

  32. Czy spotkał się ktoś ktoś z namnażaniem się procesu “python” a nie “bluepy-helper” ?
    Oczywiście chodzi o wzrost użycia procesora do 100%.
    Aktualnie dla testów zakończyłem wszystkie procesy “phyton3” ale mam obawy, że ta operacja może mieć negatywne skutki.
    Jeśli się mylę i nie ma problemu w “kill’owaniu” pythona to nie było tematy 🙂 W cronie ustawię sobie skrypt i tyle w temacie 🙂

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.