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:
- https://bit.ly/2y2bNcm – Xiaomi Mijia w Banggood;
- https://bit.ly/2W6BjFj – LYWSD03MMC na Gearbest
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:
1 |
sudo apt update && sudo apt install python3 bluez python3-pip |
I instalujemy bluepy
1 |
pip3 install bluepy |
Przechodzimy do folderu scripts/python w domoticzu (cd domoticz/scripts/python/) i klonujemy skrypt do obsługi termometrów Xiaomi:
1 |
git clone https://github.com/JsBergbau/MiTemperature2 |
Potrzebny nam będzie MAC Address naszego termometru, który odczytamy za pomocą znanego już polecenia:
1 |
sudo hcitool lescan |
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:
1 |
python3 ./LYWSD03MMC.py -d <MAC ADRES termometru> |
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:
1 |
python3 ./LYWSD03MMC.py -d <MAC ADRES termometru> -r -deb -b -c 1 |
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:
1 |
/usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d <MAC ADRES termometru> -r -deb -b -c 1 -call ./sendToDomoticz.py |
Jeśli zadziała jak wyżej (dane zostaną przekazane do czujnika w domoticzu), to można linijkę wkleić do crona. Czyli
1 |
crontab -e |
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.
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…
Ok zrobiłem:
pip install requests
i poszło bez błędu ale nadal nie mam danych w domoticzu?
Pingback: Supla Virtual Device – bramka dla czujników Xiaomi LYWSD03MMC – Robert Błaszczak
Dzięki – zadziałało zgodnie z oczekiwaniami, dokładnie tak, jak pisałeś 🙂
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 🙂
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
Zadaj pytanie/opisz problem na stronie projektu https://github.com/JsBergbau/MiTemperature2/issues
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ć ?
Zobaczę, czy u mnie też tak to wygląda.
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 %.
Dzięki za info, u mnie tego problemu nie ma, mam 2 czujniki.
zielony jestem,
jak to zrobiles w cronie bo mam ten sam problem co Ty, przy 4 czujnikach
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ł .
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.
Witam, A msz gotową linijkę do crona ?
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
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.
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ć?
Dodajesz do crona kolejną linijkę z mac adresem drugiego czujnika
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
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
Artur, musisz plik “sendToDomoticz2.py” ustawić na wykonywalny:
komenda:
chmod +x sendToDomoticz2.py
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
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?
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.
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ć?
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¶m=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¶m=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.
Rozumiem, że łączysz się do Domoticza na adresie 192.168.1.19 przez przeglądarkę i wtedy wszystko działa? Panel (strona www się wyświetla?
Zamiast adresu 192.168.1.19 próbowałeś 127.0.0.1 jak pisałem wcześniej?
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ć?
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.
Masz włączone zabezpieczenie www w domoticzu? (podanie hasła by wyświetliła się strona)?
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
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ć.
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¶m=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¶m=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ć?
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
dzięki za podpowiedz. przyczyna problemu zlokalizowana. problem stanowiły uprawnienia do pliku prawo do uruchamiania muszą mieć wszyscy