#Domoticz – Integracja z Xiaomi Mi Temperature & Humidity Monitor
Stworzyłem skrypt, który automatycznie pobiera dane z sensora Xiaomi Mi Temperature & Humidity Monitor i przesyła je do Domoticza. Dzięki niemu można w łatwy sposób przekazać dane o temperaturze, wilgotności powietrza i poziomie baterii. Wymagane urządzenie z Bluetooth w standardzie BLE (obsługiwanym np. przez Raspberry).
Wymagania
- Urządzenie oparte na systemie Linux (takie jak Raspberry Pi) z zainstalowanym Pythonem 3. Jeżeli zdecydujesz się użyć innego urządzenia, upewnij się, że posiada ono moduł Bluetooth w standardzie BLE (Bluetooth Low Energy). Raspberry obsługuje ten standard, ale w przypadku innych urządzeń, musisz sprawdzić specyfikacje na stronie producenta. Pamiętaj, że zawsze też możesz dokupić zewnętrzny moduł USB – koszt to 40 zł na allegro lub ok. 2$ na AliExpress.
- Sensor Mi Bluetooth Temperature & Humidity Monitor (w wersji pierwszej, czyli tej okrągłej).
- Następujące pakiety Pythona zainstalowane na urządzeniu:
requests
,bluepy
.
Instalacja
Krok 1: zdobądź adres MAC modułu Bluetooth sensora
Ja zdobyłem adres korzystając z aplikacji BLE Scanner dla systemu Android. Aplikacja wyszukuje wszystkie urządzenia w standardzie BLE w zasięgu modułu Bluetooth telefonu i pokazuje je na liście lub w formie graficznej i symulując ich lokalizację na podstawie mocy sygnału. Wystarczy podejść do sensora z telefonem, a powinien się on pojawić na najbliższej pozycji. Uwaga – aplikacja wymaga dostępu do lokalizacji. Niestety, związane jest to z uprawnieniami systemu Android, który w tym uprawnieniu zawarł możliwość korzystania z modułu Bluetooth.
Jeżeli korzystasz z urządzenia z systemem iOS, spróbuj użyć aplikacji BLE Scanner 4.0. Z góry zaznaczam, że nie miałem okazji jej przetestować, aczkolwiek opinie wydają się być zachęcające.
Jeżeli masz tylko i wyłącznie urządzenie z systemem Linux, skorzystaj z pakietu hcitool
.
Krok 2: Dodaj urządzenie w Domoticzu
Otwórz panel Domoticza w swojej przeglądarce, następnie wybierz zakładkę „Konfiguracja” i „Sprzęt”.
![Zakładka "Konfiguracja" i pole "Sprzęt"](https://cleverblog.pl/wp-content/uploads/2021/04/image-12.png)
Dodaj urządzenie o nazwie „Mi TempHum Monitor” i typie „Dummy (Does nothing, use for virtual switches only)”. Pozostaw pozostałe opcje niezmienione. Zatwierdź operację przyciskiem „Dodaj”.
![Tworzenie nowego Sprzętu w ustawieniach](https://cleverblog.pl/wp-content/uploads/2021/04/image-14.png)
Nowo dodane urządzenie powinno pojawić się na liście powyżej. Wciśnij teraz przycisk „Utwórz wirtualne czujniki”, który znajduje się w kolumnie „Typ”.
![Widok nowo dodanego sprzętu na liście sprzętów](https://cleverblog.pl/wp-content/uploads/2021/04/image-19.png)
Otworzy się modal, w którym musisz dodać nowy sensor o nazwie „Temp & Hum” i typie „Temp + Hum”.
![Tworzenie nowego wirtualnego czujnika dla sprzętu](https://cleverblog.pl/wp-content/uploads/2021/04/image-21.png)
Przejdź teraz do zakładki „Temperatura”.
![Zakładka "Temperatura"](https://cleverblog.pl/wp-content/uploads/2021/04/image-16.png)
I znajdź nowy sensor. Wciśnij przycisk „Edycja”.
![Nowo utworzony sensor](https://cleverblog.pl/wp-content/uploads/2021/04/image-23.png)
W nowootwartym modalu pojawia się wiersz „Idx”. Zapisz sobie gdzieś jego wartość.
![Edycja sensora](https://cleverblog.pl/wp-content/uploads/2021/04/image-25.png)
Krok 3: Instalacja skryptu
Zainstaluj wymagane pakiety Pythona.
pip3 install requests bluepy
Sklonuj repozytorium do dowolnego katalogu na swoim urządzeniu, np. do katalogu domowego.
cd
git clone https://github.com/paulomac1000/Domoticz-MiTempHum-Monitor
Przejdź do katalogu skryptu.
cd Domoticz-MiTempHum-Monitor
Skonfiguruj skrypt.
nano miTempHumStatus.py
Przejdź do linii 8 (do poniższego kodu) i zamień adres url na adres swojego Domoticza lub pozostaw niezmienione, jeżeli skrypt będzie wykonywany na tym samym urządzeniu.
DOMOTICZ_SERVER = "127.0.0.1:8080"
Przejdź do linii 18 (do poniższego kodu) i podmień wartość w nawiasach kwadratowych na swój adres MAC sensora odczytany wcześniej, a następnie podmień wartość znajdującą się za znakiem równości na parametr „Idx” sensora dodanego do Domoticza. W analogiczny sposób możesz dodać kolejne linie wskazujące na konfigurację następnych czujników.
sensor_dict["00:00:00:00:00:00"] = 99
Zamknij plik używając ctrl+x
i zapisz zmiany.
Użycie
Aby wykonać skrypt, uruchom go z wiersza poleceń.
python3 miTempHumStatus.py
Aby skrypt działał automatycznie, dodaj go do tabeli crontab
.
crontab -e
I wywołaj skrypt. Następujące polecenie będzie uruchamiać skrypt co 15 minut.
*/15 * * * * python3 /home/pi/Domoticz-MiTempHum-Monitor/miTempHumStatus.py