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

08 августа 2019, 22:17

Предыстория

1600x_image.png?1565301816
1600x_image.png?1592508763

Всем привет!

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

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


Будьте внимательны и не путайте со второй версией устройства с логотипом Mijia (модель MJYKQ01CM) на корпусе. Версия MJYKQ01CM не умеет работать с рядом устройств, в том числе и кондиционерами. Подробнее об этом вы можете прочитать в отдельной статье.


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

  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
1600x_image.png?1559337749
Когда Home Assistant загрузиться, проверяем, что устройство успешно добавилось в систему. Для этого на главном экране кликаем в символ со скобочками в левом нижем углу интерфейса для старых версий интерфейса.
1600x_image.png?1559339306
Либо в новом интерфейсе идем в раздел "Панель разработчика" и переходим во вкладку "Состояния" для последних версий интерфейса. На открывшейся странице поиском на странице ищем наше устройство remote.xiaomi_miio.  Нашли? Все окей! Двигаемся дальше!
1600x_image.png?1565217038

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

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

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

  • Переходим на главную страницу Home Assistant
  • В левом нижнем углу находим иконку с пультом "Службы" и переходим в этот раздел
  • В поле "службы" выбираем функцию "remote.xiaomi_miio_learn_command"
  • В поле "объект" выбираем наше устройство "remote.xiaomi_miio"
1600x_image.png?1559340327
Для последних версий интерфейса: 
  • Переходим на главную страницу Home Assistant
  • В левом нижнем углу находим раздел "Панель разработчика"
  • Переходим во вкладку "Службы"
  • В поле "служба" выбираем функцию "remote.xiaomi_miio_learn_command"
  • В поле "объект" выбираем наше устройство "remote.xiaomi_miio"
1600x_image.png?1565217039
  • Берем пульт с которого будем записывать команду
  • Кликаем "CALL SERVICE" в интерфейсе Home Assistant
  • Наводим пульт на "шайбу" и нажимаем кнопку с которой планируете записать инфракрасный сигнал
  • Переходим на главную страницу Home Assistant и в разделе уведомлений находите нужный нам код
  • В новой версии HA вы свободно можете скопировать код, а в старой придется воспользоваться функцией браузера "Посмотреть код"
1600x_image.png?1565217349
Все просто! Теперь у нас есть код кнопки, который мы записали с пульта. В дальнейшем мы и будем его использовать для настройки. Запишите его в блокнотик, очень скоро он нам понадобиться. 

Прописываем коды команд в файле 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 . Мне осталось добавить о маленьких хитростях, которые я использовал сам:

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

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

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

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

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


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (sayplz)
    (sayplz) отредактировано 10 месяцев назад

    У меня не заработал такой 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
    ...
  2. Антон Самсонов (samsonovs)
    Антон Самсонов (samsonovs) 10 месяцев назад

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

    1000x_image.png?1565657141
  3. (rulezman)
    (rulezman) отредактировано 3 месяца назад

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

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

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

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

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

    • Сергей Драгунов (@SD)
      Сергей Драгунов (@SD) 3 месяца назад

      Привет.


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

  4. (rulezman)
    (rulezman) отредактировано 3 месяца назад

    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 не работает почему-то

  5. (rulezman)
    (rulezman) 3 месяца назад

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

    • Сергей Драгунов (@SD)
      Сергей Драгунов (@SD) 3 месяца назад

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

      • (rulezman)
        (rulezman) 3 месяца назад

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

  6. (cpsskipper)
    (cpsskipper) 3 месяца назад

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

    • Сергей Драгунов (@SD)
      Сергей Драгунов (@SD) месяц назад

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

      • (cpsskipper)
        (cpsskipper) месяц назад

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

        • (zon2004)
          (zon2004) месяц назад
          Выложите пожалуйста коды от sony. спасибо

        • (Kocherga)
          (Kocherga) 10 дней назад

          Не могли бы Вы предоставить коды.  ( Я уже нашел коды ir sony. Теперь все работает )

  7. Сергей Назаренко (sated)

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

    • Сергей Драгунов (@SD)
      Сергей Драгунов (@SD) месяц назад

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

      • (Bratan)
        (Bratan) месяц назад

        Добрый день. 

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

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

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

        • (dj_true)
          (dj_true) месяц назад

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

          • (Bratan)
            (Bratan) месяц назад

            Спасибо. 

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

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

        • Алексей Макаров (makarovalexey30)

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

  8. (goriachevviktor)
    (goriachevviktor) месяц назад

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

  9. Андрей Лямкин (Lyamkin)
    Андрей Лямкин (Lyamkin) 16 дней назад

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

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

    • Сергей Драгунов (@SD)
      Сергей Драгунов (@SD) 16 дней назад

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

  10. Андрей Лямкин (Lyamkin)
    Андрей Лямкин (Lyamkin) 16 дней назад
    видимо вторая версия...Хотя даже в уроке Kvazis именно эта шайба
  11. Сергей Драгунов (@SD)
    Сергей Драгунов (@SD) отредактировано 16 дней назад

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

  12. Андрей Лямкин (Lyamkin)
    Андрей Лямкин (Lyamkin) 16 дней назад

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

  13. Сергей Драгунов (@SD)
    Сергей Драгунов (@SD) 16 дней назад

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

    1000x_image.jpeg?1592488752
  14. (Omirax)
    (Omirax) отредактировано 4 дня назад

    Сергей Драгунов (@SD)

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

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

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

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие записи

13 февраля 2019, 22:00
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
19 апреля 2019, 20:53
Требуется ваше мнение!
06 февраля 2019, 12:02
Автоматизированное открытие/закрытие окна
04 апреля 2019, 12:45
Самое важное из апдейта Home Assistant 0.91-0.91.4 от 03.04.19.
21 марта 2019, 11:59
Самое важное из апдейта Home Assistant 0.9 от 20.03.19.
21 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.88 от 20.02.19.
19 января 2019, 20:49
Делюсь новостями по проекту.
07 февраля 2019, 21:12
Самое важное из апдейта Home Assistant 0.87 от 06.02.19.
20 мая 2019, 20:54
Добавляем Телевизор в Homekit c помощью новых возможностей Home Assistant версии 0.93 и кастом компонента SmartIR MediaPlayer.