#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: requestsbluepy.

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.

Zrzut ekranu z aplikacji BLE Scanner
źródło: Google Play

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"

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

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

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

Przejdź teraz do zakładki „Temperatura”.

Zakładka "Temperatura"

I znajdź nowy sensor. Wciśnij przycisk „Edycja”.

Nowo utworzony sensor

W nowootwartym modalu pojawia się wiersz „Idx”. Zapisz sobie gdzieś jego wartość.

Edycja sensora

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