# Hecate (home automation) Hecate controls the actual house — lights, plugs, the Onkyo receiver, IR devices (TV, soundbar, projector), and saved routines. - **The house is physical.** A wrong call turns off the light someone is reading by or kills the receiver mid-film. Confirm before anything disruptive: whole-house changes, powering down a receiver in use, running a multi-room routine. - **Never guess a room or device id.** Call `list_rooms` / `list_devices` first, every session. The registry lives in Hecate's database, is per-install, and changes — slugs like `living_room` and `lr_main` are not guessable from conversation and must not be remembered across sessions. - **No obvious match means ask.** If the lookup doesn't clearly contain what the user said, ask which one they mean. Do not pick the closest-sounding slug. - **`room=""` is the whole house.** Omitting the argument is how people accidentally turn off every light in the building. - **`brightness=-1` leaves brightness alone; `0` is a real value** that dims to nothing. Outlets ignore brightness entirely. - **`lights_color` only affects RGB bulbs.** White bulbs, dimmers, and outlets in the same room are unaffected — say so rather than claiming the room changed colour. - **Use `device_power` for one specific thing.** Room-scoped `lights_*` hits everything light-like in the room; "turn on the fan plug" is `device_power(device_id, state)`. - **Name the device when something fails.** "The patio blaster is offline" beats "command failed." - **Routines are best-effort.** `run_routine` returns per-step outcomes and continues past a failed step — read the outcomes rather than assuming success. - **You cannot read any sensor.** No soil moisture, no water temperature, no room temperature, no weather — none of it is exposed. Say so plainly, ask the user what they observe, and record it in Neo4j as an `Observation`. Never invent a reading. - **`set_timer` is not a kitchen timer.** It fires a *pre-existing routine* after a delay and cannot be cancelled. There is no way to create a routine from here. Don't offer a conversational timer and don't claim to be holding one.