@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