Mimo że deszczowo, ale w domu sucho. A jak sucho, to i kwiatki podlewać trzeba.
A do tego się przyda Xiaomi mi flora – czujnik wilgoci, temperatury oraz światła. Ten wpis zacząłem pisać jakieś pół roku temu i tak sobie wisiał nie skończony (poradniki jak czujnik połączyć z Domoticz są również na innych blogach, więc parcia nie było), ale pod kątem mojego kolejnego wpisu postanowiłem go skończyć.
Wpis oparty jest na Raspberry Pi 3, czyli Bluetooth mamy już na pokładzie.
Po wpisaniu
apt-cache policy bluez
dostaniemy zapewne informację wersji 5.23. Trochę stara, nie obsługuje Bluetooth Low Energy. Musimy zainstalować nowszą, przynajmniej 5.3x
Po pierwsze oczywiście, jak zawsze
apt-get update
apt-get upgrade
i instalujemy potrzebne bilbioteki
sudo apt-get install libglib2.0-dev libdbus-1-dev libical-dev libreadline-dev libudev-dev
Później
cd /home/pi
Na moment pisania przeze mnie aktualna wersja bluez to 5.47
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.47.tar.gz
tar -xvf bluez-5.47.tar.gz
cd bluez-5.47
Ustawiamy zmienne systemowe
sudo ./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var –enable-tools –disable-test –disable-systemd –enable-deprecated
I kompilujemy wersję
sudo make all
sudo apt-get install python-bluez python-requests
sudo cp attrib/gatttool /usr/bin/
lub (wykonanie obu nie zaszkodzi)
sudo cp attrib/gatttool /usr/local/bin/
export PATH=$PATH:~/bluez-5.47/attrib/
I ściągamy kod odpowiedzialny za komunikację z Mi Flora
cd bluez-5.47/
I wykonujemy
Później sprawdzamy jaki jest adres MAC naszego modułu Bluetooth
sudo hcitool lescan
Kopiujemy adres MAC naszego modułu Bluetooth, za chwilę się przyda.
W międzyczasie przygotujmy Domoticz. Dodajemy, w sekcji Hardware czujnik MiFlora, jako Dummy.
Następnie, do niego tworzymy Virtual Sensors. Cztery, tak jak poniżej. Uważajcie na typy.
I teraz ważny moment – edycja pliku konfiguracyjnego dla Mi Flora.
sudo nano /home/pi/domoticz/scripts/python/miflora/domoticz.py
Najpierw adres serwera i swoje dane logowania:
domoticzserver = „192.168.1.200:80”
domoticzusername = „User”
domoticzpassword = „YourPassword”
I na samym końcu możecie zastąpić przykładowe czujniki Waszym adresem MAC i IDX założonych czujników w Domoticz.
update(„C4:7C:8D:62:A9:57″,”132″,”133″,”134″,”135”)
sudo /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py
Pozostaje wrzucić do cron, aby skrypt automatycznie się wykonywał, na przykład co godzinę.
Życzę powodzenia w ich odkrywaniu.
Działa 🙂
Oczywiście 😀 U mnie od roku nieprzerwanie!
Witam czy można zmodyfikować skrypt w taki sposób aby odczytywał wartości z Xiaomi Mijia bluetooth temperature & humidity sensor
Też bym chciał odczytywać z Xiaomi Mijia bluetooth temperature & humidity sensor ale wykonanie powyższych komend co którąś linię wywala mi błąd i raczej z tym nie ruszę, chyba, że ktoś podeśle coś może bardziej aktualnego…?
Cześć. Jakie to błędy? Jeżeli o braku potrzebnych paczek – po prostu je doinstaluj.
Cześć, ten powyżej anonimowy kmentarz był mój. Wówczas poradziłem sobie poprzez RPIEasy z tym połączniem. Ale to jest bardzo niestabilne i raczej nie działa. Generalnie chodzi mi o czujniki temperatury od xiaomi (nie mi flora). Tym razem przeszedłem przez całość bez błędów. Próbuję przerobić skrypt MiFlora by odczytywał mi jedynie temperaturę. Bazuję na wręcz gotowym https://github.com/pFenners/mijia-sensor-domoticz , ale jestem totalnie zielony i nie wiem jak sobie z tym poradzić. Wygląda to jakby na problem z kodowaniem w innej wersji phytona. Przy próbie uruchomienia dostaję: Deprecation Warning: encodestring() is a deprecated alias since 3.1, use encodebytes() Czy ktoś może poradził sobie z tym do końca i mógłby podpowiedzieć?
Cześć. Ciężko mi już będzie pomóc, ponieważ przerzuciłem się całkowicie na Home Assistant…
Cześć. Z tego co widzę, ludzie korzystają z https://github.com/pFenners/mijia-sensor-domoticz, dokładnie jest to opisane tutaj: https://www.facebook.com/groups/domoticzpl/permalink/2132673033632182/?hc_location=ufi
dzis nie wiem czemu sie cos sypneło po wielu m-cach czy moze ktos wie co gdzie i jak 🙁
Patched: Error reading value retry after 5 seconds…
Patched: Error reading value retry after 5 seconds…
Patched: Error reading value