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

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

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

Дайте свою оценку данной инструкции


Поделитесь этой инструкцией со своими друзьями

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

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