#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”.
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”.
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”.
Otworzy się modal, w którym musisz dodać nowy sensor o nazwie „Temp & Hum” i typie „Temp + Hum”.
Przejdź teraz do zakładki „Temperatura”.
I znajdź nowy sensor. Wciśnij przycisk „Edycja”.
W nowootwartym modalu pojawia się wiersz „Idx”. Zapisz sobie gdzieś jego wartość.
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