Help us improve
Share bugs, ideas, or general feedback.
From ha-nova
Use when the user wants to call Home Assistant services (turn on lights, set temperature, toggle switches) through HA NOVA Relay.
npx claudepluginhub markusleben/ha-nova --plugin ha-novaHow this skill is triggered — by the user, by Claude, or both
Slash command
/ha-nova:service-callThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Direct device/service control:
Mandatory fallback for any HA NOVA task without a dedicated subskill. Must be invoked before any raw relay write operation. Covers blueprints, energy, calendars, zones/persons/tags, destructive registry admin, system health, Apps, HACS, Zigbee/Z-Wave, and unsupported config-entry helper families.
Integrates with Home Assistant REST and WebSocket APIs to manage entity states, call services, subscribe to events, and handle authentication. Use for HA API calls and real-time integrations.
References Home Assistant entity structure, common domains, IDs, device classes, customizations, template entities, groups, and naming conventions.
Share bugs, ideas, or general feedback.
Direct device/service control:
light.turn_on, climate.set_temperature, etc.)No config mutations (use ha-nova:write for automation/script changes).
Verify relay CLI: ha-nova relay health
If this fails: ha-nova setup
Use file-based payloads for service writes:
ha-nova relay core --method POST --path /api/services/... --body-file <payload-file>ha-nova relay core --method GET --path /api/states/<entity_id>--out <result-file> when the response is largeha-nova relay core --method GET --path /api/servicesarea_id.
ha-nova relay core --method GET --path /api/states/{entity_id}.**State delta:**
brightness: 100% → 40%
brightness: 100% → 40% (not raw 0-255). If light is off (brightness null or absent), treat as 0%: brightness: 0% → 40%.22.5°C → 19°C. Note: temperature = setpoint (what we're changing), current_temperature = sensor reading (do NOT use for delta).position: 100% (open) → 30%.on → off. For mode changes, show: hvac_mode: heat → cool.unavailable → show delta as unavailable → {target} with warning: "Device is offline or unreachable."unknown → show delta as unknown → {target} with info: "State not yet known (HA may not have polled yet). Service call may still work."domain.service), target (entity_id), data fields.ha-nova relay core --method POST --path /api/services/{domain}/{service} --body-file <payload-file>ha-nova relay core --method GET --path /api/states/{entity_id}Common patterns:
light.turn_on: brightness (0-255), color_temp (mireds), rgb_color ([r,g,b])climate.set_temperature: temperature, hvac_modeswitch.toggle: no extra fields neededcover.set_cover_position: position (0-100)If unsure about required fields, check /api/services response for the service schema.
Common service calls for helper entities:
input_boolean.turn_on, input_boolean.turn_off, input_boolean.toggleinput_number.set_value (value), input_number.increment, input_number.decrementinput_text.set_value (value)input_select.select_option (option), input_select.select_first, input_select.select_last, input_select.select_next, input_select.select_previousinput_datetime.set_datetime (date, time, or datetime)input_button.presscounter.increment, counter.decrement, counter.reset, counter.set_value (value)timer.start (optional duration), timer.pause, timer.cancel, timer.finish, timer.change (duration)schedule.reload (reloads all schedule entities from config)Example:
{"method":"POST","path":"/api/services/input_number/set_value","body":{"entity_id":"input_number.target_temperature","value":22.5}}
For helper CRUD (create/update/delete helpers themselves), use ha-nova:helper instead.
homeassistant.restart), warn and ask for explicit confirmation.400/VALIDATION_ERROR: invalid request shape — check path and body format404/NOT_FOUND: entity or service does not exist — re-resolve502/UPSTREAM_WS_ERROR or 504/TIMEOUT: relay lost connection to HA — retry once, then report failureentity_id supported).