Блог

Xiaomi Remote 360 + Home Assistant + Алиса

Предыстория

Всем привет!

Сегодня я хочу вам рассказать о своем опыте эксплуатации универсального пульта управления Xiaomi Remote 360 или в простонародье «Шайба».

Название в MiHome: Mi Universal Remote
Логотип: Mi
Модель: NDZ-08-GA
Модель MiHome: chuangmi.ir.v2

В этой статье вы узнаете:

  1. Как правильно интегрировать данное устройство в альтернативную систему умного дома Home Assistant
  2. Как на базе инфракрасных сигналов сделать виртуальные выключатели для систем умного дома
  3. Как я использую данный девайс в связке с Алисой

И так, начнем сначала. Не изучив матчасть, поддавшись на импульсное желание обычного покупателя, давным давно я купил себе это устройство и до момента, когда начал интересоваться построением УД использовал его исключительно в сценариях приложения Mi Home. Основной задачей, с которой "шайба" вполне хорошо справлялась, было включение по расписанию проектор для дочки.

Со временем появилась возможность сделать голосовое управление в приложении Mi Home с помощью "Shortcuts". Эта схема работала до момента, как я узнал, что такое Home Assistant и как с помощью него добавить Xiaomi устройства в Home Kit.

А теперь давайте поговорим о том, как добавить Xiaomi Remote 360 в Home Assistant. Установка Home Assistant и его настройка подробно описана в серии статей от @OXOTH1K. На этом останавливаться подробно не будем.

Добавляем Xiaomi Remote 360 в HA

Для начала нам нужно получить token нашего устройства, узнать его IP адрес. Об этом сказано много, на сайте достаточно подробных инструкций. После переходим к редактированию configuration.yaml:

cd /home/homeassistant/.homeassistant/ sudo nano configuration.yaml

Добавляем компонент:

remote: - platform: xiaomi_miio host: IP вашего устройства token: токен вашего устройства slot: 1 timeout: 30 hidden: false

  • Сохраняем изменения в файле configuration.yaml
  • Проверяем конфигурацию Home Assistant
  • Если все окей, то перезапускаем Home Assistant

Когда Home Assistant загрузиться, проверяем, что устройство успешно добавилось в систему. Для этого на главном экране кликаем в символ со скобочками в левом нижем углу интерфейса для старых версий интерфейса.

Либо в новом интерфейсе идем в раздел "Панель разработчика" и переходим во вкладку "Состояния" для последних версий интерфейса. На открывшейся странице поиском на странице ищем наше устройство remote.xiaomi_miio. Нашли? Все окей! Двигаемся дальше!

Считываем команды с инфракрасных пультов

Следующим шагом нам потребуется обучить нашу "шайбу" командам ваших пультов. Попробую показать это на примере кондиционера. Приступаем к записи команд с пульта.

Для старой версии интерфейса:

  • Переходим на главную страницу Home Assistant
  • В левом нижнем углу находим иконку с пультом "Службы" и переходим в этот раздел
  • В поле "службы" выбираем функцию "remote.xiaomi_miio_learn_command"
  • В поле "объект" выбираем наше устройство "remote.xiaomi_miio"

Для последних версий интерфейса:

  • Переходим на главную страницу Home Assistant
  • В левом нижнем углу находим раздел "Панель разработчика"
  • Переходим во вкладку "Службы"
  • В поле "служба" выбираем функцию "remote.xiaomi_miio_learn_command"
  • В поле "объект" выбираем наше устройство "remote.xiaomi_miio"
  • Берем пульт с которого будем записывать команду
  • Кликаем "CALL SERVICE" в интерфейсе Home Assistant
  • Наводим пульт на "шайбу" и нажимаем кнопку с которой планируете записать инфракрасный сигнал
  • Переходим на главную страницу Home Assistant и в разделе уведомлений находите нужный нам код
  • В новой версии HA вы свободно можете скопировать код, а в старой придется воспользоваться функцией браузера "Посмотреть код"

Все просто! Теперь у нас есть код кнопки, который мы записали с пульта. В дальнейшем мы и будем его использовать для настройки. Запишите его в блокнотик, очень скоро он нам понадобиться.

Прописываем коды команд в файле configuration.yaml

Следующее, что нам нужно сделать, это обучить наш пульт полученной ранее команде. Для этого переходим к редактированию configuration.yaml. К ранее добавленной записи нам нужно прописать полученный код. Так это выглядит у меня:

commands: activate_daikin: command: - 'Z6UHAZsBAADQAQAAKwUAANgGAAB DQAA8HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0IBAQECAQEBAQIBAgIBAgICAgIBAgEBAgEBAQECAgICAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIBAQICAgEFA0IBAQECAQEBAQIBAgIBAgICAgIBAgEBAgEBAQEBAQEBAgICAgEBAQICAQEBAQEBAQEBAQEBAQEBAQIBAQIBAQEAA='

В результате вы должны получить следующую запись:

remote: - platform: xiaomi_miio host: IP вашего устройства token: токен вашего устройства slot: 1 timeout: 30 hidden: false commands: НАЗВАНИЕ КОМАНДЫ: command: - 'записанный ранее код'

Создаем виртуальный выключатель


Добавленный в систему Home Assistant наш пульт Xiaomi Remote 360
Записанный код с кнопки инфакрасного пульта управления
Прописанный в configuration.yaml код с пульта

И теперь мы подходим к финальному шагу - создание виртуального выключателя

Заходим в редактирование configuration.yaml и добавляем компонент switch:

Сейчас мы будем создавать виртуальный включатель - platform: template

switch: - platform: xiaomi_miio host: IP вашего устройства token: токен вашего устройства - platform: template switches: Название вашего выключателя: value_template: "{{ is_state('название вашего устройства', 'on') }}" turn_on: service: remote.send_command data: command: - 'название команды' entity_id: название вашего устройства turn_off: service: remote.send_command data: command: - 'название команды' entity_id: название вашего устройства

  • Название вашего выключателя - произвольное название устройства. Это имя виртуального выключателя, которое будет отображаться в интерфейсе HA
  • Название вашего устройства - название вашего Xiaomi Remote 360, которое используется в HA. Посмотреть его можно в разделе "Службы" в поле "Объект". У меня он называется remote.xiaomi_miio_192_168_0_192
  • Название команды - то название, которое вы использовали шагом ранее при обучении "шайбы". В моем случае это было activate_daikin
  • turn_on - команда отвечающая за состояние "Включен"
  • turn_off - команда отвечающая за состояние "Выключен"

Голосовые помощники

На этом основная настройка закончена. Осталось перезагрузить HA и найти ваш новый включатель в разделе "Неиспользуемые объекты". Нам остается подружить эти выключатели с вашим голосом помощником. Я использую Алису, но данный метод отлично подойдет и для решения от Google. Выбирайте удобный вам и переходите по ссылке ниже.


Как это сделать уже давно описали наши друзья. Я всего лишь оставлю это здесь:


- Интеграция Home Assistant в Google Home бесплатно, без СМС, но с регистрацией

- Добавляем Home Assistant в Умный Дом Яндекса

Эпилог

Сегодня мы научились делать "глупые" вещи немного умнее в рамках работы с Home Assistant. Мне осталось добавить о маленьких хитростях, которые я использовал сам:

1. Важно обратить внимание, что у кондиционеров, как правило команда включить и выключить отличаются. Для успешного использования нужно скопировать 2 разных кода для turn_on и turn_off.

2. В моем случае для выключения проектора требуется дважды нажать на кнопку питания. В конфигурации существует возможность сделать двойное нажатие в одной команде:

power_projector: command: - 'Z6VPABQCAABLAgAAuQYAANgIAACcEQAADiMAAIygAADIdwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFICAgEBAQECAgECAQEBAgECAgIBAgEBAQEBAQIBAgICBgNXA1cDUA' - 'Z6VPABQCAABLAgAAuQYAANgIAACcEQAADiMAAIygAADIdwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFICAgEBAQECAgECAQEBAgECAgIBAgEBAQEBAQIBAgICBgNXA1cDUA'

3. При настройке смены режима у климатической техники, например, в реализации режима интенсивной работы, я использовал следующую схему: Включение режима turn_on записана команда интенсивной работы, а в выключении режима turn_off использует код активации автоматического режима. Таким образом, как бы выключая наш виртуальный switch вы переводите устройство в обычный (автоматический) режим работы.

На этом я с вами прощаюсь. Благодарю, что осилили этот текст. Желаю успехов и выполнения ваших задумок. Встретимся в комментариях!


У меня не заработал такой switch, сработало только когда указал command и entity_id внутри data, вот так:


        turn_on:
service: remote.send_command
data:
command: название команды
entity_id: название вашего устройства

И подскажите зачем при создании switch указываются параметры remote?


switch:
- platform: xiaomi_miio
host: IP вашего устройства
token: токен вашего устройства
- platform: template
...


Картинка огонь :)

1000x_image.png?1565657141

друзья, настраиваю шайбу IR remote Mi 360 по этой инструкции 

все норм, но не могу разобраться с логикой положения ползунка и выключением проектора (он должен выключаться по двойному нажатию кнопки включения)

ИМЕЕМ:
1. проектор включается - норм
2. ползунок сразу уползает в офф (не НОРМ! Почему так?), проектор работает
3. даю команду офф - отрабатывает только одно нажатие и не выключается - проектор говорит нажмите еще раз павер для выключения, хотя конструкция




proj_off:
command:
- 'тот же код'
- 'тот же код' 


 
должна отработать двойное нажатие

Привет.


покажи пожалуйста полностью, как выглядит конструкция. У меня кажется была такая проблема. 

1) switch.yaml  смысл которого я смутно понимаю




[CODE]

- platform: xiaomi_miio
host: 192.168.0.44
token: 5ec50ccb0f300e1388e951bb17c0303e
- platform: template
switches:
projector:
value_template: "{{ is_state('remote.xiaomi_miio_192_168_0_44', 'on') }}"
turn_on:
service: remote.send_command
data:
command:
- 'proj_on'
entity_id: remote.xiaomi_miio_192_168_0_44
turn_off:
service: remote.send_command
data:
command:
- 'proj_off'
entity_id: remote.xiaomi_miio_192_168_0_44 [/CODE]


2. remote.yaml


[CODE] - platform: xiaomi_miio
host: 192.168.0.44
token: 5ec50ccb0f300e1388e951bb17c0303e
timeout: 30
hidden: false
commands:
proj_on:
command:
- 'nMwmcwlk0mgAhTYAMprMABymQA9ABlNgCyAHOazgAMpoA/wE/TEEQwEDAI8AgwIzAI8COQXjmM2mwM7TUF/QTvA8YJLAAzm4HTTEFTAFWAdQMTwXPAI2YQA='
# - 'nMwmcwlk0mgAhTYAMprMABymQA9ABlNgCyAHOazgAMpoA/wE/TEEQwEDAI8AgwIzAI8COQXjmM2mwM7TUF/QTvA8YJLAAzm4HTTEFTAFWAdQMTwXPAI2YQA='
proj_off:
command:
- 'nMwmcwlk0mgAhTYAMprMABymQA9ABlNgCyAHOazgAMpoA/wE/TEEQwEDAI8AgwIzAI8COQXjmM2mwM7TUF/QTvA8YJLAAzm4HTTEFTAFWAdQMTwXPAI2YQA='
- 'nMwmcwlk0mgAhTYAMprMABymQA9ABlNgCyAHOazgAMpoA/wE/TEEQwEDAI8AgwIzAI8COQXjmM2mwM7TUF/QTvA8YJLAAzm4HTTEFTAFWAdQMTwXPAI2YQA='




[/CODE]



в лавлейсе вызов  - entity: switch.projector


блин тег CODE не работает почему-то

я тут понажимал кнопки в режиме обучения и офигел. коды каждый раз разные на одни и те же кнопки! В чем прикол?

Приходи в наш чат в телеге, там обсудим. Тут долго переписываться) 

зашел, задал вопрос, игнор. Люди о своём разговаривают. канал HA

Все работает, кроме телевизора Sony. Полученный в ходе обучения код не срабатывает. При этом, если в mi home настроить пульт sony Tv - Все работает. Может кто-то сталкивался с такой проблемой? Ощущение, что у Sony какие-то хитрые IR коды

А если обучение сделать в приложении mihome, работает?

Я уже нашел коды ir sony. Теперь все работает

Выложите пожалуйста коды от sony. спасибо

Не могли бы Вы предоставить коды.  (

Я уже нашел коды ir sony. Теперь все работает

)

У меня телевизор залетел норм, рекуператор тоже. А кондиционер просто не принимает команды с Xiaomi IR. Кто сталкивался с таким? Кондиционер Galactic

Какая модель шайбы? Их две, одна корректно работает, а вторая половина кодов не может повторять 

Добрый день. 

У меня аналогичная проблема.

Использую XIAOMI MI REMOTE (chuangmi.remote.v2). С помощью него удачно получилось считать команды и управлять пультом от телевизора. Однако при попытке считать команды от пульта управления кондиционером всегда получаю разные команды (raw строка) на одно и то же состояние.
Например, нажимаю включение - получаю raw1, нажимаю выключение - получаю raw2, не внося изменений в состояние кондиционера опять нажимаю включение. По логике должен получить raw1, но получаю raw3. Аналогично с выключением - получаю raw4.
Попытки отправить данные команды через IR ни к чему не приводят - кондиционер не включается/не выключается. 

Кондиционер Zanussi Fresco / пульт ДУ ZH/TT-02

С этой шайбой не получится , broadlink сможет. проверено на 2х кондеях разных фирм с такой же проблемой

Спасибо. 

А не подскажете какой Broadlink лучше подойдет для управления кондиционером/ интеграции в HASS ?

Видел в интернете несколько популярных моделей.

Такая же проблема с этой же версией шайбы, кондиционер electrolux.

Добрый день! Пульт в НА появился спасибо @Bratan, однако коды от пульта ТВ Samsung всегда разные, кто сталкивался? есть решение?

Привет всем! 
так же столкнулся с проблемой спаривания шайбы с НА. Конкретно не могу управлять кондеем Gree. Все так-же при каждом нажатии разные коды ловит....

НО! Шайба успешно управляет кондеем из приложения MiHome... Причем там без обучения даже, просто выбрал фурму Gree и все работает... Может кто-то тут сможет подсказать, как можно вытащить команды из приложения?

Привет Андрей. С момента нажимания статьи вышла вторая версия шайбы, она не умеет корректно работать с кодами кондеев. Отличительная особенность это логотип на Mija на верхней поверхности. У вас какая версия?



https://sprut.ai/static/media/cache/00/49/08/5/4142174/60813/1000x_image.jpg?1592488326" alt="видимо вторая версия..." title="видимо вторая версия..." />Хотя даже в уроке Kvazis именно эта шайба


https://sprut.ai/static/media/cache/00/49/08/5/4146278/60814/1000x_image.jpg?1592488436" alt="1000x_image.jpg?1592488436" />

не смотрел, на своём опыте могу сказать, что корректно работает с кодами кондея та, на которой логотип Mi сверху. Сам случайно купил 2 mija и не работает она зараза. Просто не воспроизводит коды нужные, а прошлая mi версия отрабатывает корректно. 

ну вот по моим фоткам: какая у меня версия???

https://sprut.ai/client/blog/2850">Вот статья на этот счет



Вторая - логика Mija. Для корректной работы нужно покупать: 

https://sprut.ai/static/media/cache/00/23/67/5/4146300/60815/1000x_image.jpeg?1592488752" alt="1000x_image.jpeg?1592488752" />

https://sprut.ai/client/user/profile/2367">Сергей Драгунов (@SD)


  1. Купить такую  модель уже не реально. Нет их.
    Но вопрос в другом. Если в приложении MiHome мы указываем модель кондиционера, то все прекрасно из приложения работает.
    Вопрос, кто и на каком этапе меняет коды от пульта при считывании? И. Если выловить эти коды через Broadlink подойдут ли они в Xiaomi?

    Дополню.
    Провел ряд экспериментов.
    Вторым устройством читал то, что передает первое на кондиционер при управлении через MiHome - коды разные
    Считывал двумя устройствами (первое - версия ПО 1, второе обновилось до версии 2) - код от пульта кондиционера - код получен одинаковый.

    Вопрос. Почему этот код не повторяется и не работает при передаче с шайб?

Получилось использовать chuangmi.remote.v2 для home assistant эту модель без перепайки и прочего только с кодами намучался


Вернуться назад
Вернуться назад