Управление вентилятором Xiaomi Mijia DC Inverter Tower Fan по локальной сети через Linux
Друзья, этим летом я приобрёл в свой дом замечательный вентилятор башенного типа от китайской фирмы Xiaomi. Т.к. все устройства моего “умного дома” находятся под управлением Raspberry Pi с системой Linux, то и данным девайсом мне захотелось управлять таким же способом. В этой инструкции мы рассмотрим способ, как можно управлять данным вентилятором из командной строки. “Прикрутить” управление из командной строки на голосовое управление к Алисе или Алексе через “веб-хуки” (например через сервис Домовенок Кузя), я думаю, вам не составит труда. В моем доме сейчас “живут” 3-и голосовых помощника — две Яндекс Станции Макс и одна Sonos One c Алексой и все они управляют устройствами моего «умного дома».
Что вам понадобится:
- Вентилятор Xiaomi Mijia DC Inverter Tower Fan – 1 шт.
- Raspberry Pi с системой Linux – 1 шт.
- Роутер с радиомодулем (aka WiFi) – 1 шт.
- Смартфон на ОС Android для получения токена доступа – 1 шт.
Шаг 1 : Получение токена для доступа к вентилятору
Чтобы получить токен доступа к нашему вентилятору, нам нужно приложение управления данным вентилятором от Xiaomi (Mi Home) на ОС Android, но только определённой версии, а именно версии 5.4.49. Вы спросите почему? Все дело в том, что разработчики Xiaomi для версии 5.4.49 забыли выключить журнал отладки приложения и все выполняемые действия приложения записываются в текстовый файл на вашем смартфоне. Приложение можно скачать отсюда. После входа в свой аккаунт на приложении нужно обязательно сменить регион и поставить его как Mainland China. Включаем Bluetooth на смартфоне, само приложение Mi Home на смартфоне, находим наш вентилятор из списка (MI Smart Tower Fan):
На вентиляторе нажимаем кнопки, как показано на рисунке для перевода вентилятора в режим сопряжения:
Не забудьте отметить чекбокс Operation confirmed и после этого нажать Next. Далее, пробуем сделать сопряжение с нашим вентилятором. Когда все пройдёт успешно, идём в папку на смартфоне через любой файловый менеджер (например EZ File Explorer) по данному пути: Внутренняя память/SmartHome/logs/plug_DeviceManager. В ней вы найдете файл с похожим названием, в моем случае – 2021-12-10.txt. Это и есть журнал отладки приложения Mi Home. На англоязычных смартфонах, название «Внутренняя Память» будет называться Internal Storage. Итак, заходим в данный файл и видим подобные строки:
SmartHome 588874:[DEBUG]-12-10 01:53:21.410 processResult in result={"code":0,"message":"ok","result":{"list":[{"did":"459261128","token":"yjmpj534m4qgugrig1q42dzwcyze4jxs","longitude":"0.00000000","latitude":"0.00000000","name":"Mi Smart Tower
yjmpj534m4qgugrig1q42dzwcyze4jxs – это и есть ваш токен доступа. Ура, вы нашли самое главное для данной технологии! В вашем случае токен будет естественно другим.
Шаг 2 : Включение вентилятора через командную строку в Linux
Чтобы подсоединяться к вентилятору нам нужно выполнить два условия. Первое, зайти в роутер (Обычно это адрес 192.168.0.1) и узнать IP адрес вентилятора в локальной сети, а также сделать так, чтобы на MAC-адрес вентилятора роутер автоматически назначал один и тот же локальный IP адрес. В моем случае это адрес – 192.168.0.43. Второе, нужно зайти в терминал на Raspberry Pi и установить оттуда пакет управления устройствами Xiaomi, который написан на языке Питон:
pip3 install python-miio
Также нам нужно поставить следующие библиотеки:
sudo apt-get install libffi-dev libssl-dev
После всех установок я смог включить свой вентилятор, выполнив следующую команду:
miiocli fanp9 --model dmaker.fan.p9 --ip 192.168.0.43 --token yjmpj534m4qgugrig1q42dzwcyze4jxs on
Чтобы выключить, нужно соответственно выполнить:
miiocli fanp9 --model dmaker.fan.p9 --ip 192.168.0.43 --token yjmpj534m4qgugrig1q42dzwcyze4jxs off
Если захотите менять скорость вентилятора (от 0 до 100%) можно выполнить следующую команду (в данном примере скорость устанавливается на 35%):
miiocli fanp9 --model dmaker.fan.p9 --ip 192.168.0.43 --token yjmpj534m4qgugrig1q42dzwcyze4jxs set_speed 35
Если нужно чтобы вентилятор вращался, то выполняйте следующую команду:
miiocli fanp9 --model dmaker.fan.p9 --ip 192.168.0.43 --token yjmpj534m4qgugrig1q42dzwcyze4jxs set_oscillate 1
Чтобы отключить вращение выполните следующую команду:
miiocli fanp9 --model dmaker.fan.p9 --ip 192.168.0.43 --token yjmpj534m4qgugrig1q42dzwcyze4jxs set_oscillate 0
Чтобы узнать все команды модуля miiocli, нужно выполнить следующую команду:
miiocli –help
P/S
Друзья, на этом все. Надеюсь, вам пригодится данная инструкция и вы сможете управлять своим вентилятором через командную сроку или привязать её к голосовому управлению через «веб-хуки», как это сделал я.
В качестве справочной информации, вот список устройств которые поддерживает пакет управления python-miio:
- Xiaomi Mi Robot Vacuum V1, S4, S4 MAX, S5, S5 MAX, S6 Pure, M1S, S7
- Xiaomi Mi Home Air Conditioner Companion
- Xiaomi Mi Smart Air Conditioner A (xiaomi.aircondition.mc1, mc2, mc4, mc5)
- Xiaomi Mi Air Purifier 2, 3H, 3C, Pro, Pro H (zhimi.airpurifier.m2, mb3, mb4, v7, vb2)
- Xiaomi Mi Air (Purifier) Dog X3, X5, X7SM (airdog.airpurifier.x3, airdog.airpurifier.x5, airdog.airpurifier.x7sm)
- Xiaomi Mi Air Humidifier
- Xiaomi Aqara Camera
- Xiaomi Aqara Gateway
- Xiaomi Mijia 360 1080p
- Xiaomi Mijia STYJ02YM (Viomi)
- Xiaomi Mijia 1C STYTJ01ZHM (Dreame)
- Xiaomi Mi Home (Mijia) G1 Robot Vacuum Mop MJSTG1
- Xiaomi Roidmi Eve
- Xiaomi Mi Smart WiFi Socket
- Xiaomi Chuangmi Plug V1 (1 Socket, 1 USB Port)
- Xiaomi Chuangmi Plug V3 (1 Socket, 2 USB Ports)
- Xiaomi Smart Power Strip V1 and V2 (WiFi, 6 Ports)
- Xiaomi Philips Eyecare Smart Lamp 2
- Xiaomi Philips RW Read (philips.light.rwread)
- Xiaomi Philips LED Ceiling Lamp
- Xiaomi Philips LED Ball Lamp (philips.light.bulb)
- Xiaomi Philips LED Ball Lamp White (philips.light.hbulb)
- Xiaomi Philips Zhirui Smart LED Bulb E14 Candle Lamp
- Xiaomi Philips Zhirui Bedroom Smart Lamp
- Huayi Huizuo Lamps
- Xiaomi Universal IR Remote Controller (Chuangmi IR)
- Xiaomi Mi Smart Pedestal Fan V2, V3, SA1, ZA1, ZA3, ZA4, ZA5 1C, P5, P9, P10, P11
- Xiaomi Rosou SS4 Ventilator (leshow.fan.ss4)
- Xiaomi Mi Air Humidifier V1, CA1, CA4, CB1, MJJSQ, JSQ, JSQ1, JSQ001
- Xiaomi Mi Water Purifier (Basic support: Turn on & off)
- Xiaomi Mi Water Purifier D1, C1 (Triple Setting)
- Xiaomi PM2.5 Air Quality Monitor V1, B1, S1
- Xiaomi Smart WiFi Speaker
Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!