Уже год я периодически возвращаюсь к мысли слать графики из Home Assistant в Telegram..
Но пока никакого простого решения не "нагуглил" и не придумал.
А тут на днях попалась статья как человек выводит график на E-Ink дисплей. Он забирает данные из Home Assistant с помощью REST API HA Пайтон (Phyton) скриптом, потом им же формирует график и сохраняет его в виде картинки, которую загружает с помощью ESP в дисплей.
Как оказалось первое, что нужно сделать - это сгенерировать
Долгосрочные токены доступа ("Long-Lived Access Token") на страничке профиля http://IP_ADDRESS:8123/profile
Там задается имя и после этого показывает токен, который предлагается сохранить в безопасное место.
Тут была моя первая ошибка - ключ был выделен в поле ввода и я просто нажал Ctrl + C, удивился что он какой-то короткий, но записал его в блокнот.
Попробовал получить статус API с помощью cURL в терминале Ubuntu с помощью команды из
документации:
curl -X GET \
-H "Authorization: Bearer ABCDEFGH" \
-H "Content-Type: application/json" \
http://IP_ADDRESS:8123/api/
где ABCDEFGH - наш токен, записанный в блокнот
Получив ошибку
401 (Unauthorized), начал вспоминать, что читал в документации.
Вспомнив, что в документации было написано, что нужно дописать в
configuration.yaml код:
# Example configuration.yaml entry
api:
Попробовал добавить его, но все равно ошибка. Начал гуглить, напал на
старую статью на китайском сервера НА, там было указано что необходимо еще править секцию
http: в
configuration.yaml. Попробовал и это.
Потом перешел на официальную доку по HTTP Home Assistant, там оказалось куча изменений и никакие api_password добавлять не нужно. В итоге доковырялся до того, что заблокировал доступ к НА по http вообще.
Пришлось брать balenaEtcher, раскатывать чистый образ HassOS, скачивать с Google Drive бэкап, и раскатывать его.
После восстановления работоспособности Home Assistant, я вернулся к первому пункту - созданию долгосрочного токена и обратил внимание, что в поле токен почему-то выделен не весь, выделил его целиком, скопировал в блокнот - он оказался раза в 4 длиннее первоначального, попробовал cUrl и команда сработала:
dimon@nout: curl -X GET \
-H "Authorization: Bearer ABCDEFGH" \
-H "Content-Type: application/json" \
http://IP_ADDRESS:8123/api/
dimon@nout: {"message": "API running."}
Потом я вспомнил, что после обновления до версии 2021.07, многие жаловались, что поломался удаленный доступ к Home Assistant и дружно правили секцию
trusted_proxies как раз в разделе
http: в
configuration.yaml.
Выводы - нужно внимательнее читать официальную документацию, и очень скептически относиться к мануалам, написанным пусть даже всего несколько месяцев назад. Потому что Home Assistant очень резво развивается, и то что недавно работало, может уже совершенно по другому описываться в конфигурации.