@ricmik commented on Jun 14, 2019, 8:34 PM UTC:
Home Assistant release with the issue:
0.93, 0.94.3
Last working Home Assistant release (if known):
This install was done directly on 0.93
Operating environment (Hass.io/Docker/Windows/etc.):
Hass.io on Raspberry Pi
Component/platform:
Customization
Description of problem:
After a new install of Home Assistant 0.93 I’m unable to do any customizations via the customization page of the web interface.
Error message in web interface:
It seems that your configuration.yaml doesn’t properly include customize.yaml Changes made here won’t affect your configuration.
The customizations worked in the beginning until a reboot of Hass.io
Sometimes the web interface let me customize the entities, and other times I get the message: The following attributes are already set in customize.yaml
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
Complete configuration.yaml
# Configure a default setup of Home Assistant (frontend, api, etc) default_config: # Uncomment this if you are using SSL/TLS, running in Docker container, etc. # http: # base_url: example.duckdns.org:8123 # Auto discovery discovery: # Sensors sensor: # Weather prediction - platform: yr # Text to speech tts: - platform: google_translate logger: default: info group: !include groups.yaml automation: !include automations.yaml script: !include scripts.yaml recorder: purge_keep_days: 3 device_tracker: weather: - platform: met homekit: filter: include_domains: - light - media_player exclude_entities: - light.stue - light.balkong - light.kjokken - light.soverom - light.innelys - light.utelys entity_config: media_player.stue: name: Sonos Stue feature_list: - feature: play_pause media_player.bad: name: Sonos Bad feature_list: - feature: play_pause media_player.kjkken: name: Sonos Kjøkken feature_list: - feature: play_pause media_player.soverom: name: Sonos Soverom feature_list: - feature: play_pause input_boolean: guest_mode: name: Gjestemodus icon: mdi:seat-individual-suite vacation_mode: name: Feriemodus icon: mdi:beach christmas_mode: name: Julemodus icon: mdi:ornament wakeup_routine: name: Morgenstemning icon: mdi:weather-sunset-up wakeup_weekends: name: Aktivert i helg icon: mdi:calendar-range input_datetime: wakeup_time: name: Stå opp has_date: false has_time: true light: - platform: switch name: Balkonglys entity_id: switch.balkonglys - platform: group name: Balkong entities: - light.balkonglys - platform: group name: Stue entities: - light.leselys_sofahjorne - light.taklampe - platform: group name: Kjøkken entities: - light.kjokkenbord - platform: group name: Soverom entities: - light.nattbord_1 - light.nattbord_2 - light.vindu_soverom - platform: group name: Innelys entities: - light.stue - light.kjokken - light.soverom - platform: group name: Utelys entities: - light.balkong media_player: - platform: yamaha source_ignore: - "AUDIO1" - "AUDIO2" - "JUKE" - "MusicCast Link" - "NET RADIO" - "Napster" - "PHONO" - "SERVER" - "Spotify" - "TUNER" - "USB" - "V-AUX" - "iPod (USB)" - "Bluetooth" - "AV1" - "AV2" - "AV3" - "AV6" - "HDMI4" - "HDMI5" source_names: AV4: "TV" AV5: "Sonos" HDMI1: "PS4" HDMI2: "HTPC" HDMI3: "AppleTV" zone_ignore: - "Zone_2"
Traceback (if applicable):
Not sure if these log messages are relevant, but they seem to happen when I try customization.
2019-06-14 20:31:44 ERROR (MainThread) [frontend.js.latest.201906040] http://hassio.local:8123/frontend_latest/app.29ef27ad.js:2:59869 Uncaught TypeError: Cannot convert undefined or null to object
2019-06-14 20:31:44 ERROR (MainThread) [frontend.js.latest.201906040] http://hassio.local:8123/frontend_latest/app.29ef27ad.js:2:59869 Uncaught TypeError: Cannot convert undefined or null to object
2019-06-14 20:31:51 ERROR (MainThread) [frontend.js.latest.201906040] http://hassio.local:8123/frontend_latest/app.29ef27ad.js:2:59869 Uncaught TypeError: Cannot convert undefined or null to object
2019-06-14 20:31:51 ERROR (MainThread) [frontend.js.latest.201906040] http://hassio.local:8123/frontend_latest/app.29ef27ad.js:2:59869 Uncaught TypeError: Cannot convert undefined or null to object
Additional information:
customize.yaml
binary_sensor.soveromsvindu_hoyre: device_class: window binary_sensor.soveromsvindu_venstre: device_class: window binary_sensor.kjokkenvindu_hoyre: device_class: window binary_sensor.balkongdor: device_class: door binary_sensor.inngangsdor: device_class: door
This issue was moved by OttoWinter from home-assistant/home-assistant#24538.
Все настройки внешнего вида, конфигураций и сценариев в Home Assistant можно выполнить как через web-интерфейс, так и вручную, прописывая все в конфигурационных файлах. Очень рекомендую пользоваться именно вторым способом.
Для написания всего и вся в Home Assistant используется язык YAML. Тут важно запомнить два момента:
-
- При внесении правок в конфигурацию, написании сценариев и других действиях нужно обязательно соблюдать правила вложенности и правильно проставлять отступы. Более подробно я расскажу об этом далее, когда будем вносить правки в конфигурационный файл.
- После внесения необходимых изменений, Home Assistant нужно перезапускать для их применения (за исключением изменений интерфейса). Так вот, перед каждой перезагрузкой нужно обязательно выполнять проверку конфигурации. А для того, чтобы она была доступна, нужно включить расширенный режим:
После его включения в настройках появится кнопка «Проверить конфигурацию». Соответственно сначала вносим необходимые изменения, проверяем в редакторе кода (который установим далее), что все ОК:
Далее переходим по пути «Настройки» -> «Сервер»:
И выполняем проверку. Если все хорошо, то нажимаем «Перезапустить» чуть ниже:
Для редактирования файлов конфигурации скачиваем и устанавливаем File Editor из Add-on Store:
Выбираем его, нажимаем Install, ожидаем завершения установки, после чего запускаем нажатием на кнопку Start и включаем Show in sidebar (выносит иконку запуска редактора в сайдбар слева).
После установки можно переходить к первоначальной настройке. Основной файл, в котором описаны все настройки – Configuration.yaml. Так что запускаем File Editor и открываем данный файл (скорее всего он откроется по умолчанию).
Configuration.yaml
Для создания файлов и папок, а также перехода между ними, нажимаем Browse Filesystem в File Editor:
Я создал папку myconfig (имя может быть любое) и уже в ней буду создавать все файлы конфигурации. Удаляем все стандартные файлы (groups.yaml, scenes.yaml, automations.yaml, scripts.yaml) из корневой папки и создаем новую папку и уже в ней файлы groups.yaml, scenes.yaml и папки sensor и automation.
Далее открываем файл configuration.yaml и добавляем туда строчки, как показано в примере ниже (выделил красным). Первый блок открывает возможность конфигурировать интерфейс через конфигурационный файл, второй – указывает пути до новых файлов и папок (myconfig меняем на название Вашей папки).
Пример Configuration.yaml
# Configure a default setup of Home Assistant (frontend, api, etc) default_config: #Редактирование интерфейса в файле конфигурации lovelace: mode: yaml # Text to speech tts: - platform: google_translate #Путь до файлов конфигурации group: !include myconfig/groups.yaml scene: !include myconfig/scenes.yaml #Папки конфигурации sensor: !include_dir_merge_list myconfig/sensor automation: !include_dir_merge_list myconfig/automation
Добавление сенсоров
Первое, что можно сделать – вывести различную информация о состоянии сервера на главный экран. Для этого переходим в папку sensor и создаем там файл sysmonitor.yaml (название может быть любым). В нем – прописываем нужные нам сенсоры, список которых можно взять тут. Прописываем со всеми пробелами, как в примере ниже:
- platform: systemmonitor
resources:
- type: processor_use
- type: processor_temperature
- type: last_boot
- type: disk_use_percent
arg: /
- type: memory_use_percent
- type: disk_free
arg: /
Настройка интерфейса
Создаем файл с именем ui-lovelace.yaml в папке, где и configuration.yaml. В него будем прописывать все настройки интерфейса. Ниже – пример моего файла, в который я добавил сенсоры из прошлого пункта и написал комментарии к большинству строчек. Найти имя нужного сенсора, его атрибуты и текущее состояние можно в панели разработчика во вкладке «Состояния»:
ui-lovelace.yaml
title: MyHome #Текст, который выводится в самом верху на вкладке "Обзор" views: - title: Сервер #Первая вкладка. Пока других нет, ее название и значок не будут отображаться в обзоре icon: mdi:server #Иконка вкладки cards: #Карточки, которые будут в первой вкладке - type: vertical-stack #Первый вертикальный блок. Сюда вписываем все карточки, которые будут отображаться в первой колонке cards: - type: entities #Задаем тип карточки. Данный тип (entities) выводит в строчку название и значение сущности show_header_toggle: false entities: - entity: sensor.disk_free #Выводит свободное место на диске name: Свободное место на диске #Отображаемое название icon: mdi:harddisk #Иконка - entity: sensor.last_boot #Выводит время, когда последний раз был загружен сервер name: Когда был включен icon: mdi:clock - type: horizontal-stack #Горизонтальная группировка следующих трех карточек cards: - type: gauge #Тип карточки. gauge - в виде круговой диаграммы entity: sensor.processor_use_percent #Выводит загрузку процессора в процентах name: Загрузка процессора #Отображаемое название severity: #Задаем цвет диаграммы в зависимости от значений показателя green: 0 yellow: 45 red: 85 - type: gauge entity: sensor.memory_use_percent #Выводит использование оперативной памяти в процентах name: Использование оперативной памяти severity: green: 0 yellow: 55 red: 85 - type: gauge entity: sensor.disk_use_percent #Выводит процент используемого места на диске name: Занято места severity: green: 0 yellow: 50 red: 85 - type: vertical-stack #Второй вертикальный блок. Сюда вписываем все карточки, которые будут отображаться во второй колонке cards: - type: sensor #Тип карточки entity: sensor.processor_temperature #Выводит температуру процессора graph: line #Показывает график изменения температуры name: Температура процессора icon: mdi:thermometer-low
В итоге получился вот такой вот главный экран:
Несколько комментариев:
- Возможные типы карточек можно посмотреть в официальной документации (в правой колонке щелкаете по названиям ниже Cards). Там есть скриншоты и гифки, показывающие как они выглядят, а также список возможных параметров (на английском) и примеры кода.
- Доступные иконки можно найти щелкнув в редакторе кода на шестеренку и выбрав Material Icons в выпадающем списке. Далее, на открывшемся сайте в поле Search вводим что нужно найти (на английском), выбираем понравившуюся иконку и копируем ее имя. Обратите внимание, что все иконки прописываются так: icon: mdi:имя_иконки. После двоеточия, перед именем иконки пробела нет. И не забываем про mdi: перед именем.
- Обратите внимание на вложенность и пробелы в примере выше. Например, карточки, относящиеся к type: vertical-stack идут с выносом пробелами. Ниже идет горизонтальная группировка – type: horizontal-stack. Она вынесена от вертикальной (т к относится к ней) и все карточки, которые относятся к горизонтальной вынесены относительно нее. Если не соблюсти правила вложенности, то Home Assistant выдаст ошибку.
- Обязательные атрибуты, которые необходимо прописать карточке или сущности в официальной документации помечены словом REQUIRED. Опциональные – optional.
- После редактирования конфигурации не забывайте нажимать на иконку «Сохранить», появляющуюся в правом верхнем углу:
При редактировании интерфейса дополнительно выполнять проверку конфигурации и перезагружать сервер не нужно.
Ссылки на другие уроки по настройке Home Assistant.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
Необходимое для начала
- Аккаунт в Яндексе (он же у Вас есть, верно?)
- Настроенный Home Assistant, с подключенным внешним IP и ssl на домене, или настроенным dDNS (я использую duckdns.org). Описывать первоначальную настройку HA я не буду, здесь на sprut.ai написано об этом (и немного больше) уже очень много.
Сам процесс настройки подключения сервисов
Для начала необходимо создать новый каталог с именем «custom_components» , если у Вас его нет (как у меня ранее), путь ~/.homeassistant/custom_directory/ или ~/config/custom_components/ в зависимости от места и версии HA).
Далее нужно склонировать туда гит, на котором вся система и работает — GitHub (все лайки именно туда, писал его не я) или же создать вручную папку yandex_smart_home и туда скопировать файлы из архива, которые были скачаны из гитхаба оттуда.
Я в Хассио в конфигураторе в web загружал каждый из 10 файлов с указанного выше гита по одному.
Но вы можете подключиться к малине по ssh, перейти в папку с конфигом вашей ХА сборки, перейти в папку custom_components (если ее нет — надо создать). И там сделать следующее:
git clone https://github.com/dmitry-k/yandex_smart_home.git
Далее прописываем в configuration.yaml этот самый компонент:
- как я, просто добавляем в конце файла «yandex_smart_home:» (без кавычек, конечно);
- или же «курим» расширенный мануал от создателя компонента этого: ReadMe.
После, проверяем, на всякий случай, конфигурацию в настройках, и перезагружаем HA.
После этого уже переходим на сам процесс подключения всего, что сделали, в Умный дом Яндекса:
- Создаём Навык Умный Дом на https://dialogs.yandex.ru/developer/ (Очень важно создавать навык именно залогинившись с того аккаунта, в котором будем будем устройства использовать в Яндексе).
- Заполняем все поля, отмеченные звездочкой.
Название — указывем любое вам понравившееся, которое не будет занято. В пункте Endpoint URL пишем https://[внешний_адрес_HA:порт]/api/yandex_smart_home.Включаем приватность «Не показывать в каталоге».Имя разработчика — пишем свой ник или что душе угодно. Ни на что не влияет.
Не закрываем страничку и переходим пока на https://dialogs.yandex.ru/developer/settings/oauth , где добавляем новую связку аккаунтов:
НазваниеИдентификатор приложения/Client identifier : https://social.yandex.net/Секрет приложения/Client Password (без него сохранить не получилось связку, но в итоге она из неё сама удалилась. Я вписал туда стандартный, видимо, пароль из файла secrets.yaml. Может можно вообще что угодно вписать, или этот «секрет» где-то настраивается и это важно — но я об этом не знаю хD): passwordURL авторизации/API authorization endpoint: https://[внешний_адрес_сервера_HA:порт]/auth/authorizeURL для получения токена/Token Endpoint: https://[внешний_адрес_сервера_HA:порт]/auth/tokenURL для обновления токена/Refreshing an Access Token: https://[внешний_адрес_сервера_HA:порт]/auth/token
Сохраняем связку, и выбираем её на страничке из списка, где мы настраивали сам навык ранее.
После, справа жмем кнопку «На модерацию» (она проходит мгновенно, так как мы выбрали ранее «приватный навык») и «Опубликовать«.
По сути все: осталось в приложении Яндекс на Android/iOS или на ПК в браузере добавить нашего нового «производителя». Покажу на примере мобильного приложения.
Открываем левое меню в приложении Яндекс и выбираем пункт Устройства.
Здесь открывается список с устройствами, которые можно подключить. Нам нужен пункт Умный дом.
Попадаем непосредственно в окно самого Умного Дома Яндекс, где и происходит управление устройствами, и создание сценариев. Сейчас нажимаем на плюс для добавления.
Помимо «официально» поддерживаемых производителей, у нас появится пункт, который мы ранее и создавали — выбираем его.
Откроется страничка созданного навыка — его описание. Нажимаем на «Объединить аккаунты», нас перебрасывает на страницу входа в Home Assistant: вводим логинпароль от своего аккаунта там.
Нас возвращает после этого на страничку самого «навыка», где уже нажимаем на «Обновить список устройств». Немного ждем..
И все доступные устройства из HA добавляются в список устройств.
Надписей красным цветом и восклицательных знаков не пугаемся: необходимо лишь переназвать каждое устройство, используя «кириллицу, без пунктуации и спецсимволов; между словами и числами ставьте пробелы«.
На данный момент поддерживаются только вот эти domains в HA:
- group (on/off)
- input_boolean (on/off)
- switch (on/off)
- fan (on/off)
- light (on/off)
- cover (on/off)
- media_player (on/off, mute/unmute)
В дальнейшем будет также добавлена возможность проброса из Home Assistant в Яндекс:
- поддержка громкости в media_player;
- яркость/цвет ламп;
- скорость увлажнителя/вентилятора.
На этом все, мы вместе смогли подключить те устройства, которые «нативно» не поддерживаются пока в Умном Доме Яндекс.
Кроме того, это позволяет избежать возможных лагов из-за cloud-2-cloud системы, когда Яндекс обращается в облако производителя, который обращается в облако подключенного к нему производителя, который…. — и все они лагают =)
Остаются, по сути, только Ваш сервер, за который Вы и в ответе, и облако самого Яндекса, куда все и интегрируется.
Текст составлен с неоценимой помощью @OXOTH1K , а также всего сообщества, которые и двигают весь прогресс на основе «ступенек» от компаний, подобных Яндексу.
Вступление
Установка зависимых пакетов процедура не сложная, но требует понимания, а также обязательно нужно посещать сайт pypi.org для уточнения. Не все пакеты ставятся через консоль pip install и некоторые пакеты требуют предварительно скомпилированные библиотеки, такие пакеты ставятся через LuCI, через менеджер пакетов. Некоторые интеграции нужно расскомментировать через config_flows.py. Также интеграции можно закидывать в папку custom_components, туда же будут закидываться пользовательские интеграции
Инструкция
Внимание! В самом низу вы можете посмотреть видео инструкцию по установке flux_led. Принцип установки точно такой же как и в текстовой инструкции. Данная видео инструкция может помочь вам лучше понять как ставить недостающий компонент для интеграции Home Assistant.
- Сперва вы должны знать версию установленного Home Assistant, если вы не знаете какая у вас стоит версия Home Assistant, то посмотреть версию можно перейти
- По адресу http://ip:8123/config/info
- Настройки => О системе
- Скачайте архивный файл соответствующий вашей версии Home Assistant и распакуйте из архива папку
components. Полный путь к папкеcore-год.месяц.число.zipcore-год.месяц.числоhomeassistantcomponents
- Находим в папке
componentsнужную нам интеграцию и копируем в/usr/lib/python3.9/site-packages/homeassistant-2021.11.2-py3.9.egg/homeassistant/components, гдеhomeassistant-2021.11.2-py3.9.eggэто версия вашего Home Assistant.
Для понимания ниже приведу примеры
- Если у вас стоит Home Assistant версии
2021.09.1, то здесь будетhomeassistant-2021.09.1-py3.9.egg- Если у вас стоит Home Assistant версии
2021.10.5, то здесь будетhomeassistant-2021.10.5-py3.9.egg- Если у вас стоит Home Assistant версии
2021.11.0, то здесь будетhomeassistant-2021.11.0-py3.9.egg
- Проверяем файлик config_flows.py. Файлик config_flows.py находится по адресу
/usr/lib/python3.9/site-packages/homeassistant-2021.11.2-py3.9.egg/homeassistant/generated/config_flows.py, гдеhomeassistant-2021.11.2-py3.9.eggэто версия вашего Home Assistant.
Для понимания ниже приведу примеры
- Если у вас стоит Home Assistant версии
2021.09.1, то здесь будетhomeassistant-2021.09.1-py3.9.egg- Если у вас стоит Home Assistant версии
2021.10.5, то здесь будетhomeassistant-2021.10.5-py3.9.egg- Если у вас стоит Home Assistant версии
2021.11.0, то здесь будетhomeassistant-2021.11.0-py3.9.egg
В файлике config_flows.py есть список интеграции, все они закомментированы. Сделано это специально для экономии места на шлюзе. Найдите из списка нужную интеграцию и расскомментируйте ее, а после сохраните изменение
- Также, в каждой интеграции, которые находятся в папке
componentsесть файл manifest.json (манифест), где содержится полезная информация
Пример интеграции Mobile App
Открываем manifest.json интеграции Mobile App и ищем строчку requirements. В requirements указываются требуемые пакеты ["PyNaCl==1.4.0", "emoji==1.5.0"]
{
"domain": "mobile_app",
"name": "Mobile App",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/mobile_app",
"requirements": ["PyNaCl==1.4.0", "emoji==1.5.0"],
"dependencies": ["http", "webhook", "person", "tag", "websocket_api"],
"after_dependencies": ["cloud", "camera", "notify"],
"codeowners": ["@robbiet480"],
"quality_scale": "internal",
"iot_class": "local_push"
}
Делаем проверку зависимых пакетов командой pip show PyNaCl emoji. Версии пакетов не указываем, всегда указываем без версии.
Если пакеты не установлены, то будет сообщение, что таких пакетов нет, значит, значит надо установить эти пакеты с указанием версии как в manifest.json, но есть пакеты, которые надо ставить через LuCI. Чтобы понять, нужно открыть сайт pypi.org и в поиск вставить имя пакета, в нашем случае PyNaCl. Всегда надо читать про любой пакет на этом сайте. Указали нужный пакет и читаете что за пакет. Пакет PyNaCl — это привязка Python к libsodium, которая является ответвлением библиотеки Networking and Cryptography. Поэтому пакет PyNaCl будем ставить через LuCI, через пакет менеджеров. Ставим через LuCI python3-pynacl
Пакет Emoji написан для Python, поэтому его ставим через консоль
pip install emoji==1.5.0
Пример интеграции WLED
Открываем manifest.json интеграции WLED и ищем строчку requirements. В requirements указывается требуемый пакет wled==0.8.0
{
"domain": "wled",
"name": "WLED",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/wled",
"requirements": ["wled==0.8.0"],
"zeroconf": ["_wled._tcp.local."],
"codeowners": ["@frenck"],
"quality_scale": "platinum",
"iot_class": "local_push"
}
Делаем проверку зависимых пакетов командой pip show wled. Версии пакетов не указываем, всегда указываем без версии.
Если пакеты не установлены, то будет сообщение, что таких пакетов нет, значит, значит надо установить эти пакеты с указанием версии как в manifest.json
Снова воспользуемся сайтом pypi.org. Пакет WLED это асинхронный клиент Python для WLED, поэтому его будем ставить через консоль.
pip install wled==0.8.0
Но, тут есть один нюанс, пакет wled собран в poetry, поэтому, даже, если вы поставите wled==0.8.0, то интеграция не запустится, потому что надо до установить зависимый пакет. Ставим вот этот пакет packaging
pip install packaging
Пример интеграции Xiaomi Gateway
Открываем manifest.json интеграции Xiaomi Gateway и ищем строчку requirements. В requirements указывается требуемый пакет PyXiaomiGateway==0.13.4
{
"domain": "xiaomi_aqara",
"name": "Xiaomi Gateway (Aqara)",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/xiaomi_aqara",
"requirements": ["PyXiaomiGateway==0.13.4"],
"after_dependencies": ["discovery"],
"codeowners": ["@danielhiversen", "@syssi"],
"zeroconf": ["_miio._udp.local."],
"iot_class": "local_push"
}
Делаем проверку зависимых пакетов командой pip show PyXiaomiGateway. Версии пакетов не указываем, всегда указываем без версии.
Если пакеты не установлены, то будет сообщение, что таких пакетов нет, значит, значит надо установить эти пакеты с указанием версии как в manifest.json
Снова воспользуемся сайтом pypi.org. Смотрим про пакет PyXiaomiGateway, автор тут ничего не указал, поэтому его будем ставить через консоль.
pip install PyXiaomiGateway==0.13.4
Дополнительно
Можно создать папку custom_components и закинуть туда папки с интеграциями из папки components. Важно. Если закинули интеграцию в custom_components, то необходимо открыть config_flows.py, если там есть данная интеграция, то расскомментируйте ее, а также потребуется установка требуемых пакетов из manifest.json. Читаем инструкцию выше или в справочнике: Как отследить требуемый пакет для интеграции через утилиту htop?
Справочник
Как отследить требуемый пакет для интеграции через утилиту htop?
Запустите htop в консоли (просто указываем htop), а только после этого в Home Assistant запускайте установку интеграции. В утилите htop следите за процессом. Нужно смотреть долго и внимательно, нас должна привлечь внимание строка pip install --quiet
Пример запуска интеграции WLED через Home Assistant
Здесь мы видим, что идет попытка установить пакет wled==0.8.0, соответственно, рекомендую остановить Home Assistant через LuCI, System => Startup, чтобы Home Assistant не пытался установить нужный пакет и шлюз при этом не завис. Ставим пакет нужный пакет, запускаем Home Assistant и запускаем интеграцию.
Как удалить пакет?
Пакет удаляется такой строчкой кода pip uninstall (имя пакета)
Примеры
- Удаляем пакет wled
pip uninstall wled - Удаляем пакет PyXiaomiGateway
pip uninstall PyXiaomiGateway
Видео инструкция
Кликаем на скриншот и смотрим видео
Литература
- pip documentation
- pip_install
- pip_uninstall

























