Если вы уже справились с установкой и настройкой Home Assistant и не хотите останавливаться на достигнутом - можете попробовать свои силы в отладке и доработке этой платформы.
И я покажу, что это не так уж и сложно.
Первая часть про установку Home Assistant на Windows была в прошлой статье.
Теперь скачиваем и устанавливаем замечательную среду разработки PyCharm Community. Это полностью бесплатный и очень мощный инструмент для разработки приложений на Python.
Создаём новый проект и указываем на папку с конфигами Home Assistant. Не заморачиваемся с окружениями (environment) и выбираем установленный в системе Python. Если PyCharm его не найдёт - поможем ему через кнопку [...].
PyCharm начнёт индексировать папку проекта и будет очень страдать. Потому что в папке:
\.homeassistant\deps\Python38\site-packagesнаходятся все библиотеки python, которые успел установить Home Assistant самостоятельно.
При этом основные библиотеки python, необходимые для запуска самого Home Assistant, а также исходный код HA и его базовых компонентов, находятся в папке:
C:\Python38-32\Lib\site-packages
Подскажем PyCharm в каких папках у нас находятся библиотеки (для правильной подсветки кода).
И в правом верхнем углу выберем Add Configuration...
Пути нужно выбрать согласно скриншоту ниже. С поправкой на ваши пути до Python.
Ну вот собственно и всё.
Нажимая в правом верхнем углу на кнопку Play - вы запустите HA в обычном режиме. А на кнопку жука - в режиме debug.
Добавляя brakepoints вы можете воспользоваться всей мощью профессионального средства разработки.
Теперь писать свои custom_components должно быть намного проще.
А можно не мучиться и использовать VSCode devcontainer. Благо, конфиг есть и в документации всё написано за вас
https://developers.home-assistant.io/docs/en/development_environment.html#developing-with-devcontainer">https://developers.home-assistant.io/docs/en/development_environment.html#developing-with-devcontainer
Я поступил следующим образом:
1. Делаем, как описано в первой статье и запускаем hass. У нас появляется каталог .homeassistant. Там будут лежать наши данные. Всё как ожидается.
2. Идем в документацию HA для девелоперов и делаем как там написано: форкаем core и клонируем его гитом к себе
Дальше действуем не так как в статье.
3. Запускаем PyCharm и говорим, что мы хотим открыть существующий проект и в качестве каталога проекта указываем склонированный на втором шаге core
4. PyCharm скажет, что он хочет создать в проекте папку homeassistant. Соглашаемся (видимо, это аналог VSCode devcontainer
5. Папка создаётся, PyCharm что-то там индексирует
6. Индексирование закончено.
7. Дальше создаём конфигурацию, которую мы будем запускать. Действуем как в статье, после фразы "И в правом верхнем углу выберем Add Configuration..." НО И ЭТО САМОЕ ГЛАВНОЕ
8. В окне в первом поле ScriptPath нажимаем серую стрелку слева от поля ввода и в выпадающем списке выбираем вариант "Module name". В поле ввода вводим "homeassistant" (без апострофов).
9. Сохраняем конфигурацию и запускаем зелёной стрелкой.
В этой ситуации питон запустит home assistant как модуль. Как-то так
blablabla/core/venv/bin/python -m homeassistant
Это позволит ему успешно понять по какому пути находится этот самый модуль и как он называется. И относительно этого названия уже строить пути отноительного импорта.
10. Заходим в браузер и заходим на localhost:8123. Убеждаемся, что HA запустился
Но можно использовать: https://github.com/AlexxIT/HassWP
В конце документации описано, как установить маленький фикс-модуль в уже готовый python. И для отладки можно запускать уже непосредственно этот модуль. А он "грамотно" запустит ХА на Windows.