home-assistant-covers

Controls Home Assistant covers, lights, scenes, automations, and areas via an MCP server.

Updated Jul 27, 2026
One-click install
npx skills add https://github.com/moistalgia/hermes-tools --skill home-assistant-covers-moistalgia
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: home-assistant-covers
Source: https://github.com/moistalgia/hermes-tools/tree/main/skills-from-hermes/smart-home/home-assistant-covers
Command: npx skills add https://github.com/moistalgia/hermes-tools --skill home-assistant-covers-moistalgia

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Operating blinds, curtains, lights, and scenes in a Home Assistant smart home requires correct entity IDs, a valid long-lived access token, and careful state verification — and this particular installation reports cover positions inverted from the HA convention, so naive commands move hardware the wrong way. This Skill provides the verified entity map, the MCP tool reference, and the polarity rules needed to control devices correctly. ## Core Features & Use Cases - Device control via the ha MCP server: Resolve entity names, list covers/lights/scenes, and issue commands with confirmed result fields across 18 tools. - Native automation authoring: Create, update, trigger, and delete real Home Assistant automations (motion-activated lights, sunrise blind schedules) that HA's own engine runs unattended. - Area management: List, create, and assign entities to areas over the Home Assistant WebSocket API. - Inverted polarity handling: Apply the verified rule that position 100 means physically closed and 0 means open on this install, preferring set_position over unproven open/close services. - Use Case: A user asks to open the theater curtains at sunrise. The Skill resolves the entity, builds a native HA automation with a sun trigger and an inverted position: 0 cover action, then test-fires it with automation_command to confirm behavior before leaving it to run daily. ## Quick Start Ask the assistant to list the Home Assistant covers and close the theater curtain, verifying the final position before reporting the result.

Frequently Asked Questions about home-assistant-covers

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I control Home Assistant covers and blinds through an MCP server?▼

Use the ha MCP server's resolve or list_covers tools to get entity IDs, then call cover_command or cover_group and check the confirmed field in the response. Never report a change unless confirmed is true, and read state back after any command.

How do I create a Home Assistant automation like motion-activated lights?▼

Call create_automation with an alias, triggers (state, numeric_state, sun, or time), optional conditions, and actions limited to light, cover, scene, or delay. HA's own engine runs it natively afterward; test it first with automation_command set to trigger.

Why does my Home Assistant cover report state open when it is physically closed?▼

This installation has inverted polarity: position 100 means fully closed and 0 means fully open, and HA derives state from position so it reports open while shut. Read the position attribute, apply the inversion, and prefer set_position over open_cover or close_cover services.

Why does the Home Assistant MCP server return HASS_TOKEN is not set?▼

MCP stdio servers receive a filtered environment, so a token in a shell profile or .env file never reaches the subprocess. Put a literal HASS_TOKEN in the env block of the mcp_servers config, then reload the MCP and start a new session.

Can this skill control Philips Hue lights and scenes in Home Assistant?▼

The light and scene tools exist and are correct, but the Hue bridge is not yet integrated with this HA instance, so list_lights and list_scenes return empty. They will start working once the Hue integration is added to Home Assistant, with no MCP change needed.

What are the limitations of the Home Assistant automation actions?▼

Automation actions are permanently limited to light, cover, scene, and delay domains. Requests involving locks, alarms, garages, scripts, or raw service calls are not supported and should be declined rather than worked around.