В свое время мне потребовалось автоматизировать перезагрузку одной из установленных интеграций после определенных действий. Поиск по документации на REST API ничего толкового не дал, но на офф. формуме нашлась пара тем с решениями похожих задач. Здесь я опишу свой опыт решения этой проблемы.
Для понимания того, как работать с REST API HA стоит обратится к официальной документации, там это достаточно понятно изложено.
Приведу пример — получение текущего состояния объекта.
C помощью curl:
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Long-lived access token>" \
<HA_URL>/api/states/sensor.time
С помощью PowerShell:
$headers = @{
"Content-Type"="application/json"
"Authorization"="Bearer <Long-lived access token>"
}
Invoke-RestMethod -Method Get -Headers $headers -Uri <HA_URL>/api/states/sensor.time
<HA_URL> — адрес веб-интерфейса HA
<Long-lived access token> — токен, который вы можете создать в профиле своего пользователя HA (/profile), в самом низу страницы:

! Помните, что <Long-lived access token> это крайне чувствительная информация, полный аналог вашей пары логин-пароль, относитесь к нему соответствующим образом. В частности, не вставляйте в конфиги напрямую, используйте secrets.yaml
Ответ на этот запрос придет в виде json’a со всеми атрибутами запрашиваемого объекта:
{
"entity_id": "sensor.time",
"state": "09:39",
"attributes": {
"friendly_name": "Time",
"icon": "mdi:clock"
},
"last_changed": "2021-02-04T06:39:00.005515+00:00",
"last_updated": "2021-02-04T06:39:00.005515+00:00",
"context": {
"id": "80d077c0fced0fe879225b3ab6652466",
"parent_id": null,
"user_id": null
}
}
— ~ —
У меня же, напомню, была задача в автоматической перезагрузке одной из интеграций, а именно — Xiaomi Gateway 3.
После изучения офф. форума был найдет URL API при обращении к которому методом POST произойдет перезапуск интеграции:
<HA_URL>/api/config/config_entries/entry/<Integration_ID>/reload
Где <HA_URL> это адрес веб-интерфейса Home Assistant’а, а <Integration_ID> — внутренний ID интеграции.
Для получения ID интеграции придется воспользоватся панелью разработчика браузера (developer tools), обычно она вызывается клавишей F12.
Находясь в интерфейсе HA, откройте панель разработчика, выберите в ней закладку Network и перейдите на страницу настроек интеграций (/config/integrations/), после этого в панели вы увидите длинный список загрузившихся файлов, ресурсов и т.д.
Вам необходимо найти файл с именем entry, выбрав его, вы сможете увидеть список установленных у вас интеграций.
Найдите в этом списке нужную вам интеграцию ориентируясь по полям domain и title, искомый ID содержится в поле entry_id.

Таким образом, URL для перезагрузки показанной на скриншоте интеграции будет выглядеть так:
<HA_URL>/api/config/config_entries/entry/2eb6dcc3fdd42e63a01f7db162e7d7fb/reload
Пример с использованием curl:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Long-lived access token>" \
<HA_URL>/api/config/config_entries/entry/2eb6dcc3fdd42e63a01f7db162e7d7fb/reload
Не стоит забывать, что эту возможность можно использовать и внутри самого HA. Например, создав автоматизацию, перезагружающую проблемную интеграцию если какие-либо объекты из нее стали недоступны.
При этом, для обращения к нужному URL можно использовать как curl через Shell Command так и специальную интеграцию RESTful Command.
shell_command:
reload_integration_gw3: >-
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Long-lived access token>" \
<HA_URL>/api/config/config_entries/entry/<Integration_ID>/reload
rest_command:
reload_integration_gw3:
url: "<HA_URL>/api/config/config_entries/entry/<Integration_ID>/reload"
content_type: "application/json"
headers:
authorization: "Bearer <Long-lived access token>"
method: post