Automatyka domowa to coraz bardziej dostępna technologia, która pozwala monitorować i sterować domem z poziomu smartfona lub komputera. Jednym z najwygodniejszych rozwiązań jest integracja urządzeń Xiaomi z platformą Domoticz. W tym poradniku pokażemy krok po kroku, jak połączyć czujnik temperatury i wilgotności Xiaomi z Domoticzem, aby monitorować warunki w domu w czasie rzeczywistym.
- Dla kogo ten poradnik?
- Wymagane komponenty i warunki
- Kompatybilne urządzenia Xiaomi
- Cztery metody integracji – wybierz swoją
- Metoda 1 – RPI Easy (rekomendowana dla początkujących)
- Metoda 2 – skrypt Pythona dla Xiaomi Mi Temperature 2 (LYWSD03MMC)
- Krok 1 – pobranie adresu MAC czujnika
- Krok 2 – przygotowanie urządzenia w Domoticzu
- Krok 3 – pobranie i konfiguracja skryptu
- Krok 4 – edycja skryptu konfiguracyjnego
- Krok 5 – uruchomienie skryptu
- Krok 6 – automatyzacja za pomocą crona
- Metoda 3 – uniwersalny skrypt Pythona (MiFlora)
- Krok 1 – instalacja zależności
- Krok 2 – przygotowanie Domoticza
- Krok 3 – utworzenie skryptu
- Krok 4 – uprawnienia i automatyzacja
- Metoda 4 – integracja przez bramę Xiaomi (Gateway)
- Rozwiązywanie problemów
- Problem 1 – czujnik nie jest wykrywany
- Problem 2 – skrypt zwraca błędy Pythona
- Problem 3 – dane nie pojawiają się w Domoticzu
- Problem 4 – nieprawidłowa temperatura w Domoticzu
- Optymalizacja i zaawansowane konfiguracje
- Uruchamianie skryptu w tle (Screen)
- Monitorowanie stanu baterii
- Zwiększenie częstotliwości pomiarów
- Integracja z notyfikacjami
- Bezpieczeństwo i najlepsze praktyki
Dla kogo ten poradnik?
Poradnik jest dla początkujących i zaawansowanych entuzjastów smart home. Nie musisz być specjalistą – wystarczy, że wykonasz opisane kroki, a integrację zrealizujesz samodzielnie.
Wymagane komponenty i warunki
Zanim zaczniesz, przygotuj następujące elementy:
-
czujnik temperatury i wilgotności Xiaomi – najpopularniejsze modele to:
- Xiaomi Mi Temperature & Humidity Monitor,
- Xiaomi Mijia 2 (LYWSD03MMC),
- Aqara Temperature and Humidity Sensor.
- raspberry Pi – najlepiej Pi 3 lub nowsze (z wbudowanym Bluetooth BLE),
- zainstalowany i działający Domoticz – na Raspberry Pi,
- moduł Bluetooth – z obsługą BLE (jeśli Twój sprzęt go nie ma),
- dostęp do terminala/konsoli – na Raspberry Pi.
Kompatybilne urządzenia Xiaomi
Domoticz wspiera szeroką gamę akcesoriów Xiaomi/Aqara, w tym:
- Human Body Sensor (czujnik ruchu),
- Wireless Smart Switch (przełącznik bezprzewodowy),
- Door/Window Sensor (czujnik drzwi/okna),
- Temperature and Humidity Sensor (czujnik temperatury i wilgotności),
- Smart Socket/Plug – wersja Zigbee,
- Xiaomi Mi Smart Cube,
- Wireless Aqara Switch (przycisk pojedynczy i podwójny),
- Wired Aqara Switch,
- Xiaomi Gateway LED.
Cztery metody integracji – wybierz swoją
W zależności od modelu czujnika i konfiguracji sprzętowej masz do wyboru kilka podejść. Dla początkujących polecamy metodę RPI Easy – jest najszybsza i najmniej problematyczna.
Metoda 1 – RPI Easy (rekomendowana dla początkujących)
Zalety:
- najprostsza konfiguracja,
- automatyczne wykrywanie urządzeń BLE,
- szeroka zgodność z modelami czujników,
- wygodny interfejs webowy do konfiguracji.
Kroki instalacji
Krok 1 – przygotowanie środowiska
Zaloguj się na Raspberry Pi i zainstaluj wymagane pakiety, wpisując polecenia:
sudo apt update
sudo apt install python3-pip screen alsa-utils wireless-tools wpasupplicant zip unzip git
Krok 2 – instalacja RPI Easy
Sklonuj repozytorium i zainstaluj zależności Pythona:
git clone https://github.com/enesbcs/rpieasy.git
cd rpieasy
sudo pip3 install jsonpickle
Krok 3 – uruchomienie aplikacji
Uruchom skrypt RPI Easy:
sudo ./RPIEasy.py
Aplikacja startuje na porcie 80. Otwórz przeglądarkę i przejdź pod adres:
http://IP_RASPBERRY:80
Krok 4 – konfiguracja w Domoticzu
Dodaj wirtualny czujnik, aby odbierać dane:
- Przejdź do Konfiguracja → Sprzęt.
- Dodaj urządzenie „Czujniki Xiaomi” typu Dummy (Does nothing, use for virtual switches only) i kliknij Dodaj.
- Dla nowego sprzętu wybierz Utwórz wirtualne czujniki w kolumnie „Typ”.
- Dodaj czujnik o nazwie np. „Temperatura i wilgotność” i typie Temp + Hum.
Krok 5 – połączenie RPI Easy z Domoticzem
W interfejsie RPI Easy wybierz wykryty czujnik (adres MAC zostanie znaleziony automatycznie), a następnie dodaj kontroler typu Domoticz, podając adres IP i port (domyślnie 8080). Po zapisaniu ustawień dane powinny automatycznie spływać do Domoticza.
Metoda 2 – skrypt Pythona dla Xiaomi Mi Temperature 2 (LYWSD03MMC)
To rozwiązanie daje pełną kontrolę nad integracją dla modelu Xiaomi Mijia 2.
Krok 1 – pobranie adresu MAC czujnika
W terminalu Raspberry Pi uruchom skanowanie urządzeń Bluetooth:
hcitool scan
Znajdź na liście swój czujnik (np. „Xiaomi”) i zapisz jego adres MAC w formacie XX:XX:XX:XX:XX:XX.
Krok 2 – przygotowanie urządzenia w Domoticzu
Utwórz wirtualny czujnik do przyjmowania danych:
- Otwórz panel Domoticza i przejdź do Konfiguracja → Sprzęt.
- Dodaj sprzęt „Xiaomi Mijia 2” typu Dummy i kliknij Dodaj.
- W kolumnie „Typ” wybierz Utwórz wirtualne czujniki.
- Dodaj czujnik „Temperatura i wilgotność” typu Temp + Wilg.
- Wejdź w Konfiguracja → Urządzenia, znajdź czujnik i kliknij Edycja.
- Zapisz numer IDX – będzie potrzebny w skrypcie.
Krok 3 – pobranie i konfiguracja skryptu
Przygotuj katalog na skrypty Domoticza:
mkdir -p ~/domoticz/scripts/python/MiTemperature2
cd ~/domoticz/scripts/python/MiTemperature2
Pobierz pliki skryptów (z repozytoriów społeczności Domoticza) i umieść je w tym katalogu.
Krok 4 – edycja skryptu konfiguracyjnego
W pliku sendToDomoticz.py ustaw adres serwera i numer IDX:
DOMOTICZ_SERVER = "127.0.0.1:8080" # Adres Twojego serwera Domoticza
SENSOR_IDX = 1 # Zastąp numerem IDX czujnika
Krok 5 – uruchomienie skryptu
Uruchom odczyt z podaniem adresu MAC czujnika:
/usr/bin/python3 ~/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d AA:BB:CC:DD:EE:FF -r -b -c 1
Zastąp AA:BB:CC:DD:EE:FF właściwym adresem MAC Twojego czujnika.
Krok 6 – automatyzacja za pomocą crona
Aby uruchamiać skrypt co 12 godzin, dodaj wpis do crontaba:
crontab -e
Wklej linię harmonogramu i zapisz:
0 0,12 * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d AA:BB:CC:DD:EE:FF -r -b -c 1
Metoda 3 – uniwersalny skrypt Pythona (MiFlora)
Sprawdza się m.in. dla modeli Xiaomi Mi Temperature & Humidity Monitor.
Krok 1 – instalacja zależności
Zainstaluj wymagane pakiety i biblioteki Python:
sudo apt install python3-pip
sudo pip3 install miflora
sudo pip3 install paho-mqtt
Krok 2 – przygotowanie Domoticza
Jak w metodzie 2: dodaj sprzęt typu Dummy, utwórz wirtualny czujnik i zapisz jego IDX.
Krok 3 – utworzenie skryptu
Utwórz plik skryptu:
nano ~/domoticz/scripts/python/miflora/domoticz.py
Wklej kod (z repozytoriów społeczności) i edytuj zmienne konfiguracyjne:
DOMOTICZ_SERVER = "127.0.0.1"
DOMOTICZ_PORT = 8080
SENSOR_MAC = "AA:BB:CC:DD:EE:FF" # Twój adres MAC
SENSOR_IDX_TEMP_HUM = 1 # Twój IDX czujnika
Krok 4 – uprawnienia i automatyzacja
Nadaj uprawnienia wykonywania i dodaj wpis do crona:
chmod +x ~/domoticz/scripts/python/miflora/domoticz.py
0 0,12 * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py
Metoda 4 – integracja przez bramę Xiaomi (Gateway)
Jeśli masz Xiaomi Gateway, proces jest prostszy – brama obsługuje komunikację z czujnikami. Upewnij się, że czujnik jest sparowany w aplikacji Xiaomi Home i brama ma stały adres IP.
Procedura:
- W Domoticzu przejdź do Konfiguracja → Sprzęt.
- Dodaj sprzęt typu Xiaomi Gateway (jeśli dostępny w Twojej wersji Domoticza).
- Podaj adres IP bramki i zapisz.
- Domoticz automatycznie wykryje dostępne czujniki.
Rozwiązywanie problemów
Problem 1 – czujnik nie jest wykrywany
Przyczyna – urządzenie Bluetooth jest poza zasięgiem lub moduł BLE działa nieprawidłowo.
Rozwiązanie – wykonaj kolejno:
- upewnij się, że Raspberry Pi znajduje się blisko czujnika,
- uruchom skanowanie:
sudo hcitool scani sprawdź, czy czujnik jest na liście, - zrestartuj usługę Bluetooth:
sudo systemctl restart bluetooth, - zaktualizuj firmware czujnika w aplikacji Xiaomi Home, jeśli problem nadal występuje.
Problem 2 – skrypt zwraca błędy Pythona
Przyczyna – brakujące zależności lub nieodpowiednia wersja Pythona.
Rozwiązanie – sprawdź i uzupełnij środowisko:
- sprawdź wersję:
python3 --version, - doinstaluj brakujące moduły:
sudo pip3 install [nazwa_modułu], - upewnij się, że w cronie używasz
/usr/bin/python3, a nie/usr/bin/python.
Problem 3 – dane nie pojawiają się w Domoticzu
Przyczyna – błędny numer IDX lub adres/port serwera.
Rozwiązanie – zweryfikuj konfigurację i wyślij test:
- sprawdź numer IDX czujnika w Konfiguracja → Urządzenia,
- potwierdź poprawność adresu IP i portu Domoticza,
- wyślij dane testowe poleceniem:
curl "http://127.0.0.1:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue=25;50"
Zastąp 1 numerem IDX i 25;50 testowymi wartościami temperatury i wilgotności.
Problem 4 – nieprawidłowa temperatura w Domoticzu
Przyczyna – błędny format danych lub zły typ czujnika.
Rozwiązanie – sprawdź ustawienia:
- ustaw typ czujnika na Temp + Hum,
- użyj formatu
temperatura;wilgotność(np.22.5;45), - jeśli wartości są przesunięte, sprawdź kalibrację w instrukcji producenta.
Optymalizacja i zaawansowane konfiguracje
Uruchamianie skryptu w tle (Screen)
Aby skrypt działał po zamknięciu terminala, użyj Screen:
screen -S xiaomi_sensor python3 ~/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d AA:BB:CC:DD:EE:FF -r -b -c 1
Aby odłączyć sesję naciśnij Ctrl+A, potem D. Powrót do sesji:
screen -r xiaomi_sensor
Monitorowanie stanu baterii
Wiele czujników Xiaomi podaje poziom baterii. W Domoticzu utwórz wirtualny czujnik typu Procent i w skrypcie wyślij wartość baterii:
# W skrypcie dodaj:
battery_level = sensor_data['battery']
# Wyślij do Domoticza dla urządzenia Battery
Zwiększenie częstotliwości pomiarów
Aby częściej odświeżać dane (np. co 5 minut), zmień harmonogram w cronie:
*/5 * * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/MiTemperature2/LYWSD03MMC.py -d AA:BB:CC:DD:EE:FF -r -b -c 1
Integracja z notyfikacjami
Skonfiguruj powiadomienia w Domoticzu, aby otrzymywać alerty po przekroczeniu progów:
- Przejdź do Setup → Notifications.
- Dodaj wyzwalacz dla swojego czujnika.
- Ustaw progi (np. temperatura > 28°C).
- Wybierz kanał powiadomień (email, push itp.).
Bezpieczeństwo i najlepsze praktyki
Ochrona urządzenia Bluetooth
Wykonaj podstawowe kroki zwiększające bezpieczeństwo:
- wyłącz Bluetooth gdy nie jest potrzebny:
sudo systemctl stop bluetooth, - zmień hasło do Raspberry Pi na silne,
- regularnie aktualizuj system:
sudo apt update && sudo apt upgrade.
Kopia zapasowa konfiguracji
Wykonuj regularne backupy katalogu Domoticza:
tar -czf domoticz_backup_$(date +%Y%m%d).tar.gz ~/domoticz/
Zmienne środowiskowe
Zamiast wpisywać dane w skryptach, użyj zmiennych środowiskowych:
export DOMOTICZ_IDX_TEMP=1
export DOMOTICZ_SERVER="127.0.0.1:8080"
python3 ~/domoticz/scripts/python/miflora/domoticz.py