Obsługa radia FM w Xiaomi Getaway poprzez Domoticza.

Centralka Xiaomi Getaway stanowi u mnie jeden z ważniejszych elementów sytemu. Podłączyłem pod nią masę czujników i przełączników. Za jej pomocą monitoruje temperaturę i wilgotność w pomieszczeniach, steruję oświetleniem, uruchamiam bojler itp. Posiada również funkcję radia, którego słucham do śniadania. Domyślnie obsługuje tylko kilka chińskich stacji, ale po zmianie DNS można już znaleźć np. Trójkę, Zet czy RMF. Domoticz nie obsługuje jednak wbudowanego w centralkę radia. Jednak na forum Domoticza znalazłem na to sposób.

Na początek dodajemy polskie stacje do listy. W sieci jest dużo poradników jak to zrobić. Najprostszy moim zdaniem sposób wygląda jak poniżej.

  1. Wchodzimy na stronę http://ximiraga.ru/?chlang=en#install i zapamiętujemy DNS: 82.146.38.202
  2. Dowolnym programem na Andrioda np. DNS Changer zmieniamy DNS w telefonie
  3. Uruchamiamy Mi Home i  przechodzimy do radia
  4. Aplikacja powinna sama pobrać całą masę dodatkowych stacji.
  5. Znajdujemy interesującą nas rozgłośnie i dodajemy do ulubionych i gotowe. Trzeba się trochę naszukać ponieważ nie działa filtrowanie stacji. Po tej operacji można ponownie zmienić DNS na preferowane.

Screenshot_2018-05-02-08-54-29-223_com.xiaomi.smarthome.png

Ja sprawę wygodnego sterowania rozwiązałem przy pomocy przycisku Xiaomi Wireless Switch. Umieściłem włącznik na ścianie. Naciśnięcie włącza mi domyślne radio, drugie wyłącza. Ale do starowania z Domoticza jeszcze daleka droga. Na forum znalazłem jednak skrypt dzVents, który robi takie czary.

W pierwszej kolejności znajdujemy Ip i token centrali. Na początek wersja trudniejsza. Instalujemy pakiet php-miio.

sudo apt update
sudo apt upgrade
sudo apt install php7.0
git clone https://github.com/skysilver-lab/php-miio.git php-miio

Przechodzimy do katalogu php-miio i szukamy podłączonych urządzeń.

cd /home/pi/php-miio/
php miio-cli.php --discover all

Niestety u mnie nie zadziałało. Może u innych będzie ok, więc opisuje sposób.

Po wielu próbach olśniło mnie i zajrzałem do aplikacji MiHome. W zakładce Hub Info, pomiędzy krzaczkami znajdujemy nasz token i Ip. Jeżeli nie wyświetli się wszystko naciskamy prawy przycisk na dole.

InkedScreenshot_2018-05-02-09-21-53-670_com.xiaomi.smarthome_LI.jpg

Teraz musimy utworzyć przełącznik, który sczyta ID radia i oczywiście przełącznik do wyboru i uruchomienia radia. Proponuje pozostawić domyślne nazwy ze skryptu aby uniknąć literówek. Proponuje tworzyć skrypt w Zdarzeniach bezpośrednio w Domoticzu.

Screenshot-2018-5-2 Domoticz(7)

Poniżej kod.

return {
	on = {
		--timer = {'every minute'},
		devices = {'miGateway FM', 'miGateway FM - Source'}
	},
	logging = {
        level = domoticz.LOG_ERROR
    },
	execute = function(dz, item)

	     local Path   = "/home/pi/php-miio/"                  -- php-miio path
	     local IP     = 'xxxxxxxxxxxx'                        -- Xiaomi Gateway IP
	     local Token  = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    -- Xiaomi Gateway Token
         local FM     = dz.devices('miGateway FM')
         local Source = dz.devices('miGateway FM - Source')

       --  Channel ID, Channel Name
         ch1ID, ch1Name = '527782024', 'Trojka'
         ch2ID, ch2Name = '527782027', 'Zet'
         ch3ID, ch3Name = '527782029', 'Eska'
         ch4ID, ch4Name = '527782034', 'Złote przeboje'
         ch5ID, ch5Name = '527782069', 'RMF Maxxx'

         chID = {}
        chID[#chID+1] = {ch1ID, ch1Name}
        chID[#chID+1] = {ch2ID, ch2Name}
        chID[#chID+1] = {ch3ID, ch3Name}
        chID[#chID+1] = {ch4ID, ch4Name}
        chID[#chID+1] = {ch5ID, ch5Name}

 function SendCommand()
    cmd = "cd "..Path.." && php miio-cli.php --ip "..IP.." --token "..Token.." --sendcmd '{\"id\":1,\"method\":\""..method.."\",\"params\":"..param.."}'"
 end   

        if (item.isDevice) then
               if (item.name == 'miGateway FM') then
                      if (item.levelName == 'Get Channel ID') then
                          method = "get_prop_fm"
                          param  = "[]"
                          SendCommand()
                          local h = io.popen(cmd)
	                      local r = h:read("*a")
	                      h:close()
                          _, _, num1, num2, num3, num4, channel = string.find(r, "(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]")
                          print('Channel ID = '..channel)
                          item.switchOff().afterSec(1).silent()
                     else
                          method = "play_fm"
                             if (item.levelName == 'On') then
                                 param =  "[\"on\"]"
                             elseif
                                (item.levelName == 'Off') then
                                 param =  "[\"off\"]"
                                 Source.switchOff().checkFirst().silent()
                             end
                          SendCommand()
                          dz.utils.osExecute('('..cmd..' > /dev/null)&')
                     end
              end
              if (item.name == 'miGateway FM - Source') then
                     if (item.state == 'Off') then
                         method = "play_fm"
                         param =  "[\"off\"]"
                         dz.devices('miGateway FM').switchOff().silent()
                     else
                        for i in pairs(chID) do
                           if (item.levelName == chID[i][2]) then
                               method = "play_specify_fm"
                               param = "["..chID[i][1].."]"
                                  if (FM.levelName ~= 'On') then
                                      FM.switchSelector(30).silent()
                                  end
                           end
                        end
                     end
                  SendCommand()
                  dz.utils.osExecute('('..cmd..' > /dev/null)&')
              end
        end
        if (item.isTimer) then
            method = "get_prop_fm"
            param  = "[]"
            SendCommand()
            local h = io.popen(cmd)
	        local r = h:read("*a")
	        h:close()
               if (string.find(r, '"pause"')) then
                   Source.switchOff().checkFirst().silent()
                   FM.switchOff().checkFirst().silent()
               end
               if (string.find(r, '"run"')) then
                   _, _, num1, num2, num3, num4, channel = string.find(r, "(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]+(%d+)[^%d]")
                       if (channel == ch1ID and Source.levelName ~= ch1Name) then Source.switchSelector(10).silent()
                           elseif (channel == ch2ID and Source.levelName ~= ch2Name) then Source.switchSelector(20).silent()
                           elseif (channel == ch3ID and Source.levelName ~= ch3Name) then Source.switchSelector(30).silent()
                           elseif (channel == ch4ID and Source.levelName ~= ch4Name) then Source.switchSelector(40).silent()
                           elseif (channel == ch5ID and Source.levelName ~= ch5Name) then Source.switchSelector(50).silent()
                           elseif (channel ~= ch1ID)
                              and (channel ~= ch2ID)
                              and (channel ~= ch3ID)
                              and (channel ~= ch4ID)
                              and (channel ~= ch5ID) then
                                      if (Source.levelName ~= 'Unknown') then
                                          Source.switchSelector(60).silent()
                                      end
                       end
                       if (FM.levelName ~= 'On') then
                           FM.switchSelector(30).silent()
                       end
               end
        end
	end
}

Zmieniamy dane w poniższych liniach na własne.

local Path   = "/home/pi/php-miio/"                  -- php-miio path
local IP     = 'xxxxxxxxxxxx'                        -- Xiaomi Gateway Ip
local Token  = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    -- Xiaomi Gateway Token

Następnie tworzymy 2 zwykłe przełączniki.

Screenshot-2018-5-2 Domoticz

Screenshot-2018-5-2 Domoticz(3)

Screenshot-2018-5-2 Domoticz(4)

Teraz magia. Uruchamiamy radio np. Trójkę poprzez MiHome. W trakcie odtwarzania naciskamy przycisk Get Channel ID na przełączniku miGateway FM. W logach zobaczymy

Screenshot-2018-5-2 Domoticz(5)

Aktualizujemy skrypt wpisując sczytany channel id i nazwę stacji.

--  Channel ID, Channel Name
         ch1ID, ch1Name = '527782241', 'Trojka'
         ch2ID, ch2Name = '527782027', 'Zet'
         ch3ID, ch3Name = '527782029', 'Eska'
         ch4ID, ch4Name = '527782034', 'Złote przeboje'
         ch5ID, ch5Name = '527782069', 'RMF Maxxx'

I cała filozofia. Teraz na pulpicie mam

Screenshot-2018-5-2 Domoticz(8)

Xiaomi Aqara Smart Light Switch Wireless. Włącznik światła w Domoticzu.

Żarówki Yeelight, które bardzo dobrze się u mnie sprawują ( konfiguracje i integracje z Domoticzem opisałem tu ) mają jedną, podstawową wadę. Muszą być cały czas zasilane. Jeżeli są umieszczone w żyrandolu w salonie, trzeba cały czas uważać aby nie wyłączyć światła włącznikiem ściennym. Rozwiązaniem jest zastosowanie bezprzewodowego włącznika ściennego typu dzwonkowego. Oczywiście Xiaomi właśnie takie ma w ofercie. Przypadek ?

1502825220112444678.JPG

Ja kupiłem przycisk podwójny, trzyfunkcyjny. ( 1 przycisk, 2 przycisk i naciśnięcie obu ) . Jest to wersja WIFI, zasilana bateryjnie ( podobno czas działania baterii to 2 lata ). Instalacja jest bardzo prosta. Parujemy urządzenie z MiHome zgodnie z podpowiedziami w aplikacji ( podczas parowania naciskamy dłużej jeden z przycisków ). Następnie w aplikacji przypisujemy odpowiednie zdarzenia.

Przechodzimy do urządzenia głównego Getaway i sekcji Automation.

 

Sprawdzamy czy wszystko działa i przechodzimy do Domoticza. Najpierw musimy jednak przygotować instalacje. Ja postanowiłem odkręcić włącznik i na jego miejsce przykleić Xiaomi Aqara Smart Light Switch Wireless.

 

Aby żarówki były cały czas zasilane musimy połączyć kable w puszce. U mnie są trzy więc możliwości nie jest za dużo. Po tej czynności żarówka powinna świecić w sposób ciągły. Ukryłem przewody w puszce i nakleiłem ( przy pomocy dołączonej taśmy ) przełącznik.

img_20171118_111458.jpg

Tak wygląda na ścianie.

Jeżeli mamy już inne urządzenia Xiaomi w Domoticzu system wykryje go automatycznie. Jeżeli to dopiero początek pracy z czujnikami Xiaomi zachęcam do zapoznania się z wpisem Xiaomi Smart Home Starter Kit w Raspberry Pi i Domoticzu.

FireShot Capture 11 - Domoticz - http___192.168.2.81_9090_#_Devices

W Domoticzu dodajemy zdarzenia /Konfiguracja/Więcej opcji/Zdarzenia. U mnie jest tak:

Switch On – naciśnięcie lewego klawisza

FireShot Capture 12 - Domoticz - http___192.168.2.81_9090_#_Events

Switch Off

fireshot-capture-13-domoticz-http___192-168-2-81_9090__events.png

Dodajemy do pulpitu nasz włącznik zmieniając domyślne opisy wedle uznania.

FireShot Capture 14 - Domoticz - http___192.168.2.81_9090_#_LightSwitches.png

Po aktualizacji Poziomów wyboru i Nazwy włącznika zdarzenia nie uaktualnią się automatycznie. Trzeba zaktualizować utworzone zdarzenia.

Efekt końcowy jest bardzo przyjemny.FireShot Capture 16 - Domoticz - http___192.168.2.81_9090_#_Dashboard.png

Można już wyłączyć oddzielne sterowanie dla każdej z żarówek Yeelight robiąc trochę miejsca na pulpicie.

FireShot Capture 17 - Domoticz - http___192.168.2.81_9090_#_Dashboard.png

Podsumowanie.

Tym sposobem możemy sterować oświetleniem na 3 sposoby: poprzez aplikacje MiHome, Domoticzem i bezpośrednio włącznikami na ścianie. Można kupić przyciski montowane bezpośrednio do puszki, ale chińskie puszki są kwadratowe i większe, więc trzeba przerabiać otwory. Plusem jednak takiego rozwiązania jest możliwość użycia normalnych żarówek. Sterowanie odbywa się wewnątrz modułu. Ja zdecydowałem się na mniej inwazyjną metodę bateryjną. Na Gearbest.com cena takiego włącznika to ok. 40 zł. Za białą żarówkę musimy dać ok 60 zł. Biorą pod uwagę, że jednym przyciskiem możemy obsłużyć 3 żarówki cena nie jest już tak zaporowa. Zamówiłem już dwa kolejne.

Przycisk Xiaomi Wireless Switch w Domoticzu.

Znalezione obrazy dla zapytania Xiaomi Wireless Switch

Kolejny element inteligentnego domu od Xiaomi dotarł do mnie z Chin. Urządzenie to nic innego jak trzyfunkcyjny przełącznik służący do sterowania  kompatybilnym sprzętem podłączonym do centrali Gateway poprzez protokół ZigBee. Przełącznik ma trzy funkcje:

  • pojedynczy klik
  • podwójny klik
  • długie przytrzymanie

Po sparowaniu go z aplikacją MiHome ( analogicznie jak przy innych urządzeniach opisanych wcześniej ) postanowiłem dodać go do Domoticza.

Jeżeli nie dodaliśmy jeszcze bramy Gateway to robimy to jak poniżej. W przypadku gdy mamy już podłączone inne elementy systemu Xiaomi przełącznik doda się automatycznie do sekcji /Urządzenia.

Screenshot_20171022_120123.png

Screenshot_20171022_120427.png

Teraz należy ustawić odpowiednią akcję, która wykona się w momencie naciśnięcia przycisku. Przechodzimy do /Konfiguracja/ Więcej opcji/ Zdarzenia i budujemy przykładowy blok.

Screenshot_20171022_120640

Należy pamiętać o zaznaczeniu „Event active:”. U mnie był domyślnie wyłączony i trochę się namęczyłem zanim doszedłem dlaczego nie działa.

Screenshot_20171022_120706.png

Mój przycisk, po długim naciśnięciu włącza bojler. Oczywiście możemy przypisać trzy zdarzenia i sterować pojedynczym klikiem, podwójnym klikiem lub długim przytrzymaniem odpowiednio rozbudowując blok.

Ustawiamy typ przełącznika na /Selector

Screenshot_20171022_122617.png

Od teraz możemy wykorzystać dodatkowe trzy akcje przy użyciu jednego urządzenia.

YeeLight LED Bulb – inteligentne żarówki od Xiaomi w Domoticzu

Mój Domoticz powiększył się ostatnio o kolejne elementy. Jednym z nich są żarówki od Xiaomi – YeeLight LED Bulb. Aktualnie w wersji jednokolorowej, ponieważ paczka z wersją RGB zaginęła po drodze z Chin. Znalezione obrazy dla zapytania YeeLight LED Bulb

Integracja żarówek z systemem okazała się banalnie prosta. Wspomnieć należy, iż obsługa Xiaomi Getaway  awansowała w ostatnim wydaniu sytemu do wersji stabilnej. Oczekuje więc, że od tej pory ilość problemów powinna się zmniejszyć.

Podłączenie YeeLight LED Bulb.

Dodajemy Sprzęt i tyle. System powinien automatycznie wykryć żarówki.

FireShot Capture 006 - Domoticz - http___91.245.83.80_9090_#_Hardware

Znajdujemy je w Urządzeniach.

FireShot Capture 008 - Domoticz - http___91.245.83.80_9090_#_Devices

Jest jednak pewien mały problem. Kupiłem 2 żarówki jednak system wykrywa tylko jedną z nich. Nie umiem go zmusić aby dodał obie. W aplikacji MiHome wszystko działa jak należy.  W oficjalnym Wiki widać, że system obsługuje kilka żarówek. Jeżeli uda mi się to przeskoczyć dodam mały update postu.

Tak to wygląda na gotowo.

FireShot Capture 009 - Domoticz - http___91.245.83.80_9090_#_LightSwitches

PS.  Przypominam oczywiście o dodaniu najpierw żarówek do aplikacji MiHome. To pierwsza czynność przy podłączaniu wszystkich urządzeń Xiaomi.

Uwaga. Należy również ustawić w żarówkach tryb developerski. W wersji 3.0 aplikacji Yeelight nazywa się on „LAN control”. Ustawiamy do jak poniżej:

  1. Naciskamy żarówkę, której tryb chcemy przestawić i przechodzimy do ustawień ( prawy górny róg )

    2. Następnie naciskamy przycisk w prawym dolnym rogu, wybieramy „LAN control” i zmieniamy położenie przełącznika.

    Od tej chwili żarówki będą dostępne dla innych systemów sterowania.

Monitoring wilgotności roślin doniczkowych przy pomocy Xiaomi Mi Plant Flowers Tester i DOMOTICZA.

Original-for-Xiaomi-Mi-Flora-Monitor-Digital-Plants-Grass-Flowers-Soil-Water-Light-Smart-Tester-Sensor

Jakiś czas temu skutecznie udało mi się zintegrować Xiaomi Mi Smart Home Gateway 2 z DOMOTICZEM. Zapraszam do lektury wpisu pod linkiem. W zamówionej paczce przyszedł także czujnik wilgotności gleby, natężenia światła, temperatury i przewodności elektrycznej gleby – Xiaomi Mi Plant Flowers Tester. Długo nie miałem zacięcia, aby się do nie go zabrać. Wynikało to głównie z tego powodu, iż czujnik komunikuje się przez Bluetooth Low Energy a na moim Rassberry Pi 2 nie był skonfigurowany Bluetooth. W końcu jednak podjąłem wyzwanie i zadanie okazało się w miarę proste w realizacji.

Na początku kilka słów o samym urządzeniu. Jest to tani czujnik Bluetooth Low Energy mierzący jak napisałem powyżej poziom wilgotności gleby, natężenia światła, temperatury i przewodności elektrycznej gleby w doniczce. Zasilany jest standardową baterią zegarkową 2032, która powinna wystarczyć na rok pracy przy ustawieniu codziennych odczytów. Znalazłem informacje, że na Raspberry Pi 3 powinien działać bez problemu, dla wersji Raspberry Pi 2 wszystko zależy od użytego adaptera. Zanim się napracujemy proponuje ( ja tak zrobiłem ) przeprowadzić instalacje na czystym Raspbianie i w trybie graficznym sprawdzić czy działa adapter Bluetooth i czy prawidłowo wykrywany jest czujnik. Poniżej pokaże jednak jak przeprowadzić instalacje krok, po kroku. Warto nie iść na skróty. U mnie ten sposób zadziałał bez żadnych problemów. Są dwa sposoby integracji czujnika – poprzez skrypt w Pythonie oraz serwer MQTT. Ja skorzystałem z pierwszego sposobu.

Przygotowanie DOMOTICZA.

Na początku tworzymy w DOMOTICZU 4 wirtualne ( dummy ) sensory.

  1. typ procent (wilgotność)
  2. typ temperatura
  3. typ natężenie światła
  4. typ custom sensor (przewodności elektrycznej gleby ), jednostka µs/cm

Screenshot_20170726_093240

Instalacja Bluetooth

Do obsługi czujnik potrzebujemy Bluez przynajmniej w wersji 5.3. Najlepiej jednak skompilować Bluez w wersji 5.44, które ma poprawione błędy z obsługą Bluetooth Low Energy. Brzmi groźnie ale poszło bez problemów. Na początku instalujemy zależności:

sudo apt-get install libglib2.0-dev libdbus-1-dev libical-dev libreadline-dev libudev-dev

Kompilujemy Bluez-5.44

cd /home/pi
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.44.tar.gz
tar -xvf bluez-5.44.tar.gz
cd bluez-5.44
sudo ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-tools --disable-test --disable-systemd --enable-deprecated
sudo make all
sudo apt-get install python-bluez python-requests

Następnie kopiujemy Gatttool do odpowiedniego katalogu.

sudo cp attrib/gatttool /usr/bin/

U mnie ( na najnowszym Raspbianie ) do katalogu /usr/bin. Podobno, w zależności od dystrybucji może być konieczność skopiowania Gatttools do

sudo cp attrib/gatttool /usr/bin/

Wykonujemy restart.

Integracja czujnika z DOMOTICZEM przy pomocy skryptu Pythona.

Na wszelki wypadek sprawdzamy, czy mamy zainstalowanego git-a.

sudo apt-get install -y git-core

Pobieramy skrypt obsługujący czujnik i kopiujemy go do odpowiedniej lokalizacji.

cd ~ && git clone https://github.com/Tristan79/miflora.git
cp -R ~/miflora/ ~/domoticz/scripts/python/miflora

Pobieramy Python3 i  instalujemy wymagane biblioteki do obsługi Bluetooth.
sudo aptitude install python3 python3-pip
sudo pip3 install pygatt
sudo pip3 install requests

Znajdujemy MAC adres czujnika.

Uruchamiamy  Bluetooth LE wykonując po kolei

sudo tools/btmgmt le on
sudo tools/btmgmt connectable on
sudo tools/btmgmt power on

i skanujemy w poszukiwaniu urządzeń

sudo hciconfig hci0 down 
sudo hciconfig hci0 up
hciconfig
sudo hcitool lescan

efekt poniżej:

Screenshot_20170802_162228.png

Zapisujemy adres, który wykorzystamy do edycji pliku domoticz.py

Edytujemy skrypt domotic.py

Otwieramy pobrany wcześniej skrypt.

~/domoticz/scripts/python/miflora $ sudo nano domoticz.py

Edytujemy w dwóch miejscach ( wstawiamy swój adres DOMOTICZA i port ):

Screenshot_20170802_162846.png

oraz na samym końcu pliku:

Screenshot_20170802_162915.png

adres urządzenia zwrócony przez komendę sudo hcitool lescan oraz numery wirtualnych czujników DOMOTICZA utworzonych na poczatku.

Testujemy czy wszystko działa:

~/domoticz/scripts/python/miflora $ sudo python3 domoticz.py

Screenshot_20170802_163552.png

Efekt końcowy

Screenshot_20170802_163823.png

Ustawienie odczytów co 12 godzin

Producent obiecuje, iż przy odczytach co 12 godzin bateria wytrzyma przynajmniej rok. Sprawdźmy. Otwieramy Crona : sudo crontab -e i na koncu dodajemy wpis.

0 0,12 * * * /usr/bin/python3 /home/pi/domoticz/scripts/python/miflora/domoticz.py

Po restarcie możemy spać spokojnie. Kwiatki zawsze będą miały mokro. Miłej zabawy.

Xiaomi Smart Plug i Xiaomi RGB Gateway czyli inteligentne gniazdko i lampka led w Domoticzu.

W poście Xiaomi Smart Home Starter Kit w Raspberry Pi i Domoticzu. opisałem jak zintegrować czujniki Xiaomi z Domoticzem. Świadomie nie wspomniałem w nim o obsłudze gniazdka i urządzenia centralnego ponieważ w poprzednich wersjach beta występowały liczne błędy  w obsłudze tych urządzeń. System widział je i dodawał bez problemów, jednak próba włączenia przełącznika, generował błąd i urządzenie się nie uruchamiało. W najnowszej wersji 3.6903 wszystko działa już prawidłowo.

Urządzenia parujemy zgodnie z opisem z posta Xiaomi Smart Home Starter Kit w Raspberry Pi i Domoticzu. W zakładce Urządzenia powinniśmy zobaczyć:

Screenshot_20170310_091822

Na górze mamy nasze gniazdko, poniżej  router RGB Getaway. Dodajemy je do panelu i możemy już sprawdzić czy uda nam się je włączyć. Na ta chwilę gniazdko nie obsługuje monitorowania zużycia energii ( ta funkcjonalność jest tylko z poziomu aplikacji MiHome ). Oczywiście możemy użyć standardowych planów i warunków do automatyzacji zadań. Router RGB Getaway służyć nam może jako lampka led z obsługą ściemniacza i zmiany kolorów. Nie obsługuje radia i alarmu, co można uruchomić z poziomu dedykowanej aplikacji.

Xiaomi Smart Plug dział bardzo stabilnie. Gniazdko można zamówić np. www.banggood.com. Cena jest akceptowalna. Szkoda, że nie ma możliwości podglądu zużycia prądu w Domoticzu ale to, przy tej cenie, byłby chyba zbytek łaski. Poniżej żywy organizm.

Screenshot_20170310_082506

Xiaomi Smart Home Starter Kit w Raspberry Pi i Domoticzu.

W minionym tygodniu stałem się szczęśliwym posiadaczem zestawu  Xiaomi Smart Home Starter Kit. W pewnym momencie zauważyłem, że Domoticz w wersji Beta, ma zaimplementowaną obsługę tego zestawu. Postanowiłem więc zamówić na próbę ten zestaw i przetestować jego działanie, zważywszy, iż cena jest nader atrakcyjna, jak na ilość czujników, które otrzymujemy. Xiaomi Smart Home Starter Kit zamówiłem na Banggood.com. Aktualnie na Aliexpress można znaleźć w cenie 75 $.

W skład mojego zestawu wchodzi:

  1. Original Xiaomi Upgrade Smart Home WiFi Remote Control Multi-functional Gateway
    • główny element sterujący – w cenie 138,90 zł
  2. New Arrival Original Xiaomi Mini Smart Home Temperature and Humidity Sensor White
    • czujnik temperatury i wilgotności – w cenie 33,64 zł
  3. Original Xiaomi Intelligent Human Sensor Control Smart Home Suit Kit Accesory
    • czujnik ruch  – w cenie 54,69 zł
  4. Original Xiaomi Intelligent Door Window Sensor Control Smart Home Suit Kit Accessory
    • tzw. kontaktory ( czujnik otwarcia drzwi /okien )  – w cenie 45,01 zł

Instalacja aplikacji na Androida i sparowanie urządzeń.

Pobieramy aplikacje MiHome ze sklepu Google Play ( możemy użyć również kodu QR z pudełka ). Po zainstalowaniu musimy zrobić bardzo ważną rzecz, przestawić lokalizację na Chiny. Aplikacja może pozostać w języku angielskim. Bez tego nie będziemy mieli praktycznie żadnych funkcji urządzenia i nie uzyskamy klucza API ( Profile/Settings/Locale/ Mainland China ).

Wkładamy Gateway do gniazdka poprzez przejściówkę z chińskiego gniazdka na UE. Ja dostałem taką jako gratis do przesyłki. Miło z ich strony. Urządzenie powinno migać na niebiesko. Jeżeli nie, należy przytrzymać przycisk na obudowie, aby przełączyć bramę w tryb parowania. Aplikacja sama wykryje urządzenie i poprowadzi przez proces parowania. Podajemy nazwę sieci i hasło Wifi i to wszystko. Główne urządzenie już mamy.

Kolejne urządzenia podłączamy poprzez wprowadzenie ich w tryb parowania ( w czujniku temperatury  przytrzymujemy przycisk na obudowie a w pozostałych urządzeniach wciskamy reset cienkim drucikiem w malutkim otworze ). Aplikacja sama wykryje urządzenia i je sparuje. Jeżeli nie, możemy dodać je ręcznie.

Po sparowaniu wszystkich posiadanych czujników możemy przystąpić do zintegrowania ich z Domoticzem.

Dodanie czujników do Domoticza.

Przestawiamy Domoticza na kanał aktualizacji BETA ( Konfiguracja/Ustawienia/Aktualizacje oprogramowania )

Screenshot_20170205_100134.png

Po aktualizacji na dole listy sprzętu zobaczymy:

Screenshot_20170205_100745.png

Sprawą najtrudniejszą jest uzyskanie hasła. Jest to unikatowe hasło generowane przez urządzenie główne. Aby je uzyskać musimy przełączyć Xiaomi Gateway w tryb developerski. Musimy pamiętać, że z Domoticzem współpracuje tylko Xiaomi Gateway w wersji 2. Łatwo to sprawdzić. Wersja ta ma funkcjonalność radia. W oryginalnej dystrybucji są tylko nowe wersje. Uważać należy na atrakcje cenowe.

Aby uzyskać hasło do bramy należy w przejść do urządzenia Gateway w aplikacji ( np. ekran z obsługą oświetlenia ) i w prawym górnym rogu nacisnąć przycisk „trzy kropki” . Następnie przejść do „About”. Na samym dole będziemy mieli numer wersji. Należy stukać w napis do momentu pojawienia się chińskich znaków. Jeżeli czynność przebiegnie pomyślnie zobaczymy dwie kolejne pozycje menu w języku chińskim. Naciskamy pierwszą z nich i już możemy odczytać hasło ( ciąg znaków w drugim wierszu ).

Uzupełniamy dane z zakładki „Sprzęt”.

Screenshot_20170205_100745.png

  • adres w sieci naszego urządzenia
  • port – koniecznie 9898, na innym nie zadziała
  • hasło odczytane w trybie developerskim.

Trzeba pamiętać, aby odczytane hasło zapisać ( nacisnąć przycisk SAVE – obok cancel  – po wyświetleniu się stronki z hasłem w aplikacji ). Inaczej za każdym razem urządzenie wygeneruje inne hasło i nie będzie się łączyć z Domoticzem. Po dodaniu sprzętu, dla pewności, możemy wyczyścić cache przeglądarki i zrobić restart. W zakładce Urządzenia pojawią się nasze czujniki. Screenshot_20170205_103613.png

Konkluzja.

Czujniki są bardzo dobrej jakości. Po odkryciu kilku sztuczek proces parowania przebiega bardzo sprawnie. Są bardzo stabilne. Po tygodniu pracy ani razu nie odmówiły posłuszeństwa. W Domoticzu spełniają swoją rolę bardzo poprawnie. Inną sprawa jest aplikacja. Daje ona ogromne możliwości zarządzania czujnikami. Xiaomi Gateway ma możliwość ustawiania kolorów i intensywności świecenia, obsługę alarmu i radio ( niestety, albo stety tylko chińskiego ). Posiada możliwości kreowania scen i zdarzeń, podział na pomieszczenia, informacje pogodowe. W Domoticzu część tej funkcjonalności nie działa, ale tak chyba powinno być.  Chińskie radio nie jest niezbędne w moim systemie.

Poniżej lista kompatybilnych z  Domoticzem czujników:

  1. Human Body Sensor (Motion Sensor)
  2. Wireless Smart Switch
  3. Door/Window Sensor
  4. Temperature and Humidity Sensor
  5. Smart Socket/Plug – Zigbee version (The WiFi version is not supported)
  6. Xiaomi Mi Smart Cube
  7. Wireless Aqara Switch (Dual Button)
  8. Wireless Aqara Switch (Single Button)
  9. Wired Aqara Switch (Dual Button)
  10. Wired Aqara Switch (Single Button)
  11. Xiaomi Gateway LED

Polecam zapoznać się z logami i odczytami czujników z mojego sytemu na stronie Facebooka Raspberrywpraktyce. Miłego testowania.