The traps
Seven ways this build goes wrong.
A token from your own HA account is probably an admin token, which lets a language model reconfigure Home Assistant. HA sets the token’s rights, and Hermes can’t shrink them. Use a non-admin user; it takes five minutes.
watch_all and a motion sensor
Motion sensors, plugs reporting watts and a weather feed updating every minute add up to thousands of model turns a day, each carrying your prompt and memory. That’s costly on a frontier model and noisy on any model, and it bloats what the distiller has to search.
Use a short watch_domains list,
ignore_entities, a longer cooldown and a cheap model. Widen one
domain at a time and watch the turn count in prompt 4’s report.
With light.lamp, light.living_room_lamp
and light.living_room_lamp_2, “turn off the lamp” is
a coin toss. The call succeeds on the wrong entity, usually the reading lamp
mid-chapter. The house map’s ask-don’t-guess rule
(prompt 1) and ha_get_state checks
fix it.
Let the agent log events in MEMORY.md and it’s full
by Thursday, with each new fact pushing out a rule. History belongs in
~/.hermes/state.db, and only the nightly job promotes anything
into memory. A hub that needs more than about 20 rules usually needs better
rules.
approvals.deny to protect locks
approvals.deny can’t match arguments, so there’s
no glob for “except on lock.*”. If your front-door
safety depends on an argument-level rule you invented, nothing is protecting
the door. Use manual or smart approvals, and keep locks and the alarm out of
watch_domains.
Prompts using list_entities, read_state or
call_services make the agent guess what you meant on every run.
The real names are ha_list_entities, ha_get_state,
ha_list_services and ha_call_service. Hermes also
has no built-in vector memory, and the things it writes for itself are
skills, which some guides wrongly call “plugins”.
Access is all or nothing. A visiting cousin you pair as a joke gets
the same four tools you have. Different access levels need separate
profiles (hermes profile create teen --clone), each with its own
toolsets, deny lists and gateway, which is how
the family assistant plan works. Until
then, pair no one you wouldn’t hand the thermostat.