Управление вентилятором 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

Понравилась инструкция? Тогда поделитесь ей со своими друзьями или попробуйте написать свою собственную!

Регистрация на сайте

Оставьте свой отзыв

Вы должны Войти, чтобы оставлять отзывы.