Добавление Xiaomi Universal IR Remote Controller в Domoticz

03 июня 2019, 15:20

Универсальный пульт Xiaomi Universal IR Remote был один из первых устройств от Xiaomi, которое я приобрел вместе со стартовым комплектом умного дома, однако как-то он у меня не прижился: во-первых плагин в Mi Home для него был на чисто китайском (а я как бы не знаю китайского), во-вторых достаточно быстро я понял, что система управления умным домом Xiaomi достаточно ограничена в плане сценариев и перешел на альтернативные системы управления умным домом. В последствии для управления устройствами с ИК портами из Domoticz я перешел на решения от Broadlink. На прошлой неделе, перебирая вещи в шкафу наткнулся на давно забытый и слегка запыленный универсальный ИК пульт от Xiaomi. Начал искать способы добавления этого зверька в систему управления умным домом Domoticz, тут меня ждало разочарование, нормального способа добавления я не нашел. Ну что-ж (подумал я), почему бы самому тогда не написать нормальный плагин Xiaomi Universal IR Remote для Domoticz. И вот сейчас я хочу поделиться им с вами. 

Установка и первоначальная настройка плагина рассмотрена в отдельном разделе плагинов, перейдем сразу к примерам создания команд. Плагин позволяет создать включатель :) (Push On Button), выключатель (Switch), селекторный переключатель (Selector). Рассмотрим подробнее как все добавить. 

Как добавить кнопку

Нажимаем Reset Level  -> Learn после того, как индикатор на  Xiaomi Universal IR Remote Controller замигал, направляем на него пульт и нажимаем кнопку, которую хотим добавить. Для этого у вас будет 8 секунд пока светодиод на Xiaomi Universal IR Remote мигает. После этого нажимаем Test и если все прошло хорошо и команда сработала - нажимаем Save Level   -> Create. Если в течении 8 секунд в режиме обучения на пульт не придет ИК сигнал, обучение необходимо повторить. Для этого нажимает Reset Level, далее процедуру захвата ИК сигнала повторяем с шага 2 (Learn). Как видите, все очень просто и удобно.

Как добавить выключатель

Нажимаем Reset Level  -> Learn после того, как индикатор на  Xiaomi Universal IR Remote Controller замигал, направляем на него пульт и нажимаем кнопку, которую хотим добавить на включение, после этого нажимаем Test и если все прошло успешно, команда сработала - нажимаем Save Level. Для захвата следующей команды нажимаем Learn после того, как индикатор на  Xiaomi Universal IR Remote Controller замигал, нажимаем кнопку, которую хотим добавить на выключение, далее нажимаем Test. Если команда корректно сработала, нажимаем Save Level. Если по каким-то причинам команда не распознана, просто нажимаем Reset Level и повторяем все сначала. После добавления команды и успешного тестирования, нажимаем Create для создания выключателя. 

Добавление селекторного выключателя ничем не отличается, кроме того, что процедуру сканирования ИК кода необходимо повторить столько раз, сколько необходимо уровней, нажимая каждый раз после добавления уровня Save Level, по окончании добавления всех команд необходимо нажать Create

Как добавить сразу несколько ИК команд на включение

Плагин поддерживает отправку сразу несколько ИК команд при включении/выключении/переключении. Это может быть полезно, например, для переключения каналов на ТВ при цифровом наборе (либо для устройств, для включения режима на которых необходимо нажать на несколько кнопок). Рассмотрим добавление на примере кнопки. Допустим, нам необходимо переключить на канал с номером 916. 

Нажимаем Reset Level -> Learn нажимаем на пульте кнопку 9   -> Learn нажимаем на пульте кнопку 1 -> Learn нажимаем на пульте кнопку 6. Далее нажимаем Test. На этом этапе пульт отправит сразу три команды "916". В случае успеха нажимаем Save Level -> Create. Все! Кнопка включения канала с номером 916 создана!

Аналогичным способом создаются выключатели и селекторные переключатели. Если устройства надоели и больше не хотите далее использовать, можно их удалить. Для этого заходим настройки - устройства. Слева ставим галочку Chuangmi (для отображения только устройств плагина), далее напротив устройства, которое мы хотим удалить нажимаем на синюю стрелочку. 

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

Ну вот кажется все, добавлю только, что плагин находится еще в разработке, поэтому в дальнейшем возможны изменения, в случае обнаружения некорректной работы оставляйте сообщения на гитхабе. Для стабильной работы необходимо, чтобы IP адрес Xiaomi Universal IR Remote Controller был статический, как это сделать читаем в статье (хм.. скоро статьи на Sprut AI превратятся в сборник ссылок :)). Хотел добавить в плагин автоматическое обнаружение изменения IP адреса устройства по токену, но отказался от этой идеи т.к. опрос сети может занять продолжительное время, в течении которого вся система плагинов наглухо повисает.. это того не стоит, лучше просто добавить статический адрес для устройства. 

Немного о планах, задумываюсь о добавлении в плагин проброс созданных устройств в HomeKit (спасибо за наводку Алексею), а пока что созданные устройства пробрасываются в HomeBridge с помощью плагина homebridge-eDomoticz. Также планирую написать точно такой же плагин для ИК Broadlink, существующие решения кривоваты... Еще в планах написать плагины для точеных светильников Xiaomi Philips Zhirui и люстры Xiaomi Philips EyeCare Smart Ceiling LED Lamp, поэтому подписывайтесь, впереди еще много интересного! :)


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 2 месяца назад

    Жду продолжения!

  2. (prim92)
    (prim92) 2 месяца назад

    У меня вываливаются ошибки:  

    2019-06-13 20:21:44.369 Error: (Chuangmi) failed to load 'plugin.py', Python Path used was '/home/pi/domoticz/plugins/Chuangmi/:/usr/lib/python35.zip:/usr/lib/python3.5:/usr/lib/python3.5/plat-arm-linux-gnueabihf:/usr/lib/python3.5/lib-dynload'.

    2019-06-13 20:21:44.369 Error: (Шайба) Module Import failed, exception: 'ImportError'

    2019-06-13 20:21:44.369 Error: (Шайба) Module Import failed: ' Name: miio'2019-06-13 20:21:44.369 Error: (Шайба) Error Line details not available.

    2019-06-13 20:22:53.630 Error: Шайба hardware (12) thread seems to have ended unexpectedly

    До этого я управлял шайбой через python скрипт по методике с 4pda, через файлики irsend.py и codes.txt. Ваш плагин обязательно ставить на чистую систему, или можно совместить эти оба способа? 

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) отредактировано 2 месяца назад

      Устанавливали по инструкции? Во время установки выдавала ошибки? Версия python и domoticz? 

      Попробуйте с шага, что выдаст в консоль SSH?

      cd domoticz/plugins/Chuangmi
      sudo apt-get install python3-pip python-pip
      source .env/bin/activate
      pip3 install python-miio
      deactivate
      sudo service domoticz restart
      • (prim92)
        (prim92) 2 месяца назад

        Отправлю весь оставшийся лог с putty:


        pi@raspberrypi:~/domoticz/plugins $ sudo git clone https://github.com/Whilser/Xia... Chuangmi

        Клонирование в «Chuangmi»…

        remote: Enumerating objects: 92, done.

        remote: Counting objects: 100% (92/92), done.

        remote: Compressing objects: 100% (86/86), done.

        remote: Total 92 (delta 56), reused 14 (delta 6), pack-reused 0

        Распаковка объектов: 100% (92/92), готово.

        pi@raspberrypi:~/domoticz/plugins $ cd Chuangmi

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ virtualenv -p python3 .env

        Already using interpreter /usr/bin/python3

        Using base prefix '/usr'

        Traceback (most recent call last):

        File "/usr/local/bin/virtualenv", line 11, in

        sys.exit(main())

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 712, in main

        symlink=options.symlink)

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 927, in create_environment

        site_packages=site_packages, clear=clear, symlink=symlink))

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 1112, in install_python

        mkdir(lib_dir)

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 324, in mkdir

        os.makedirs(path)

        File "/usr/lib/python3.5/os.py", line 231, in makedirs

        makedirs(head, mode, exist_ok)

        File "/usr/lib/python3.5/os.py", line 231, in makedirs

        makedirs(head, mode, exist_ok)

        File "/usr/lib/python3.5/os.py", line 241, in makedirs

        mkdir(name, mode)

        PermissionError: [Errno 13] Permission denied: '/home/pi/domoticz/plugins/Chuangmi/.env'

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo apt-get install python3 python3-dev python3-pip git

        Чтение списков пакетов… Готово

        Построение дерева зависимостей

        Чтение информации о состоянии… Готово

        Уже установлен пакет git самой новой версии (1:2.11.0-3+deb9u4).

        Уже установлен пакет python3 самой новой версии (3.5.3-1).

        Уже установлен пакет python3-dev самой новой версии (3.5.3-1).

        Уже установлен пакет python3-pip самой новой версии (9.0.1-2+rpt2).

        обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 162 пакетов не обновлено.

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo apt-get install libffi-dev libssl-dev

        Чтение списков пакетов… Готово

        Построение дерева зависимостей

        Чтение информации о состоянии… Готово

        Уже установлен пакет libffi-dev самой новой версии (3.2.1-6).

        Уже установлен пакет libssl-dev самой новой версии (1.1.0j-1~deb9u1).

        обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 162 пакетов не обновлено.

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo pip3 install -U pip setuptools

        Collecting pip

        Downloading https://files.pythonhosted.org... (1.4MB)

        100% |████████████████████████████████| 1.4MB 155kB/s

        Collecting setuptools

        Downloading https://files.pythonhosted.org... (575kB)

        100% |████████████████████████████████| 583kB 214kB/s

        Installing collected packages: pip, setuptools

        Found existing installation: pip 9.0.1

        Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr

        Found existing installation: setuptools 39.2.0

        Uninstalling setuptools-39.2.0:

        Not removing or modifying (outside of prefix):

        /usr/bin/easy_install

        Successfully uninstalled setuptools-39.2.0

        Successfully installed pip-19.1.1 setuptools-41.0.1

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo pip3 install -U virtualenv

        Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simpl...

        Collecting virtualenv

        Downloading https://files.pythonhosted.org... (2.0MB)

        |████████████████████████████████| 2.0MB 301kB/s

        Installing collected packages: virtualenv

        Found existing installation: virtualenv 16.0.0

        Uninstalling virtualenv-16.0.0:

        Successfully uninstalled virtualenv-16.0.0

        Successfully installed virtualenv-16.6.0

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ virtualenv -p python3 .env

        Already using interpreter /usr/bin/python3

        Using base prefix '/usr'

        Traceback (most recent call last):

        File "/usr/local/bin/virtualenv", line 10, in

        sys.exit(main())

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 831, in main

        symlink=options.symlink,

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 1106, in create_environment

        install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 1375, in install_python

        mkdir(lib_dir)

        File "/usr/local/lib/python3.5/dist-packages/virtualenv.py", line 391, in mkdir

        os.makedirs(at_path)

        File "/usr/lib/python3.5/os.py", line 231, in makedirs

        makedirs(head, mode, exist_ok)

        File "/usr/lib/python3.5/os.py", line 231, in makedirs

        makedirs(head, mode, exist_ok)

        File "/usr/lib/python3.5/os.py", line 241, in makedirs

        mkdir(name, mode)

        PermissionError: [Errno 13] Permission denied: '/home/pi/domoticz/plugins/Chuangmi/.env'

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo virtualenv -p python3 .env

        Already using interpreter /usr/bin/python3

        Using base prefix '/usr'

        New python executable in /home/pi/domoticz/plugins/Chuangmi/.env/bin/python3

        Also creating executable in /home/pi/domoticz/plugins/Chuangmi/.env/bin/python

        Installing setuptools, pip, wheel...

        done.

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo source .env/bin/activate

        sudo: source: command not found

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ source .env/bin/activate

        (.env) pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo pip3 install python-miio

        Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simpl...

        Requirement already satisfied: python-miio in /usr/local/lib/python3.5/dist-packages (0.4.0)

        Requirement already satisfied: pretty-cron in /usr/local/lib/python3.5/dist-packages (from python-miio) (1.0.2)

        Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from python-miio) (1.7.1)

        Requirement already satisfied: pytz in /usr/local/lib/python3.5/dist-packages (from python-miio) (2018.4)

        Requirement already satisfied: click in /usr/lib/python3/dist-packages (from python-miio) (6.6)

        Requirement already satisfied: zeroconf in /usr/local/lib/python3.5/dist-packages (from python-miio) (0.20.0)

        Requirement already satisfied: android-backup in /usr/local/lib/python3.5/dist-packages (from python-miio) (0.2.0)

        Requirement already satisfied: appdirs in /usr/local/lib/python3.5/dist-packages (from python-miio) (1.4.3)

        Requirement already satisfied: construct==2.9.41 in /usr/local/lib/python3.5/dist-packages (from python-miio) (2.9.41)

        Requirement already satisfied: tqdm in /usr/local/lib/python3.5/dist-packages (from python-miio) (4.23.4)

        Requirement already satisfied: attrs in /usr/local/lib/python3.5/dist-packages (from python-miio) (18.1.0)

        Requirement already satisfied: netifaces!=0.10.5 in /usr/local/lib/python3.5/dist-packages (from zeroconf->python-miio) (0.10.7)

        (.env) pi@raspberrypi:~/domoticz/plugins/Chuangmi $ deactivate

        pi@raspberrypi:~/domoticz/plugins/Chuangmi $ sudo service domoticz restart

        • Антон Киселёв (Whilser)
          Антон Киселёв (Whilser) 2 месяца назад
          Судя по всему, какие-то проблемы с виртуальной средой python, связанные с некорректной установкой самого python либо изменений, внесенных после. Рекомендую бэкапнуть базу данных Domoticz и переустановить все начисто. 

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

        Версия домотикз 4.10217. 

К списку статей

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

MI-DOM

+7 977 282-80-53
Промокод:
SPRUTAI
Размер скидки:
5%

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

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

Тематические чаты

Похожие статьи

09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
19 марта 2019, 22:19
Обзор долгожданного 2х канального zigbee реле от Aqara, сравнение с конкурентами и небольшой тест на Deconz, Mi Hub и Aqara Hub.
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
25 ноября 2018, 18:23
Умное зеркало добавляем модули Airplay и Google Calendar
01 декабря 2018, 18:27
Получение токена устройств Xiaomi с помошью Windows или MacOs
30 июня 2018, 12:17
Добавляем устройства управляемые по ИК через Broadlink RM3 Mini на примере кондиционера.
25 сентября 2018, 07:06
Делаем умный замок с интеграцией в HomeKit