Интеграция с Home Assistant
Hermes Agent интегрируется с Home Assistant двумя способами:
-
Платформа шлюза (Gateway) — подписывается на изменения состояний в реальном времени через WebSocket и реагирует на события
-
Инструменты умного дома — четыре LLM-вызываемых инструмента для запросов и управления устройствами через REST API
Настройка
1. Создание долгоживущего токена доступа
-
Откройте ваш экземпляр Home Assistant
-
Перейдите в свой Профиль (нажмите на своё имя в боковой панели)
-
Прокрутите до раздела Долгоживущие токены доступа
-
Нажмите Создать токен, дайте ему имя, например «Hermes Agent»
-
Скопируйте токен
2. Настройка переменных окружения
# Add to ~/.hermes/.env
# Required: your Long-Lived Access Token
HASS_TOKEN=your-long-lived-access-token
# Optional: HA URL (default: http://homeassistant.local:8123)
HASS_URL=http://192.168.1.100:8123
3. Запуск шлюза (Gateway)
hermes gateway
Home Assistant появится как подключённая платформа рядом с другими мессенджер-платформами (Telegram, Discord и т. д.).
Доступные инструменты
Hermes Agent регистрирует четыре инструмента для управления умным домом:
ha_list_entities
Выводит список сущностей Home Assistant, опционально отфильтрованных по домену или зоне.
Параметры:
-
domain(опционально) — Фильтр по домену сущности:light,switch,climate,sensor,binary_sensor,cover,fan,media_playerи т. д. -
area(опционально) — Фильтр по названию зоны/комнаты (сопоставляется с дружественными именами):living room,kitchen,bedroomи т. д.
Пример:
List all lights in the living room
Возвращает идентификаторы сущностей, состояния и дружественные имена.
ha_get_state
Получает подробное состояние одной сущности, включая все атрибуты (яркость, цвет, заданную температуру, показания датчиков и т. д.).
Параметры:
entity_id(обязательно) — Запрашиваемая сущность, напримерlight.living_room,climate.thermostat,sensor.temperature
Пример:
What's the current state of climate.thermostat?
Возвращает: состояние, все атрибуты, временные метки последнего изменения/обновления.
ha_list_services
Выводит список доступных служб (действий) для управления устройствами. Показывает, какие действия можно выполнять над каждым типом устройств и какие параметры они принимают.
Параметры:
domain(опционально) — Фильтр по домену, напримерlight,climate,switch
Пример:
What services are available for climate devices?
ha_call_service
Вызывает службу Home Assistant для управления устройством.
Параметры:
-
domain(обязательно) — Домен службы:light,switch,climate,cover,media_player,fan,scene,script -
service(обязательно) — Имя службы:turn_on,turn_off,toggle,set_temperature,set_hvac_mode,open_cover,close_cover,set_volume_level -
entity_id(опционально) — Целевая сущность, напримерlight.living_room -
data(опционально) — Дополнительные параметры в виде JSON-объекта
Примеры:
Turn on the living room lights
→ ha_call_service(domain="light", service="turn_on", entity_id="light.living_room")
Set the thermostat to 22 degrees in heat mode
→ ha_call_service(domain="climate", service="set_temperature",
entity_id="climate.thermostat", data={"temperature": 22, "hvac_mode": "heat"})
Set living room lights to blue at 50% brightness
→ ha_call_service(domain="light", service="turn_on",
entity_id="light.living_room", data={"brightness": 128, "color_name": "blue"})
Платформа шлюза (Gateway): события в реальном времени
Адаптер шлюза Home Assistant подключается через WebSocket и подписывается на события state_changed. Когда состояние устройства меняется и соответствует вашим фильтрам, оно пересылается агенту в виде сообщения.