just tell your AI
WoowTech Prompt Library

43 copy-ready Home Assistant prompts for AI

Connect Home Assistant to Claude, ChatGPT, or Gemini through an HA MCP server such as ha-mcp-woow, and you can control your home conversationally. This library contains 43 prompts based on real household scenarios, organized into eight categories. Copy a prompt, replace examples such as “living room” with the names used in your home, and send it to your agent.

About this library

Home Assistant’s REST API, WebSocket API, and developer APIs allow an LLM agent to call actions, read entity states, and evaluate templates. With ha-mcp-woow or the official MCP Server integration, your AI can:

  • Control devices: Call actions such as light.turn_on, climate.set_temperature, and cover.open_cover.
  • Query data: Read entity states, attributes, and history to answer questions such as “What is the living-room temperature?” and “How much energy did we use last week?”
  • Edit configuration: Create, modify, or delete automations, scripts, scenes, and dashboards when the connected tools permit it.
  • Manage the system: Install or remove add-ons, HACS packages, and integrations, and run backups or upgrades when explicitly authorized.

Every entry is a natural-language prompt written for an AI agent. These are not merely short voice commands: they are complete requests that an agent can translate into one or more action calls, clarify with you, and document after execution.

How to get started

  1. Connect Home Assistant to an MCP server

    Option 1: connect a compatible client, such as Claude Desktop or VS Code Copilot, through the official MCP Server integration (HA 2025.7+). Option 2: use ha-mcp-woow, WoowTech’s enhanced version with more extensive configuration, HACS, backup, log, and trace tools. See Chapter 19 and Chapter 20.

  2. Expose entities to the LLM

    Go to Settings → Voice assistants → Expose, then select the areas and entities the AI may access. Safety recommendation: begin with low-risk entities such as lights and sensors. Verify the agent’s behavior before exposing security-sensitive entities such as locks or alarms.

  3. Copy the prompt that matches your scenario

    Replace example names such as “living room” and “main bedroom,” and values such as “26 degrees,” with the actual areas, devices, and settings in your home. Paste the result into Claude, ChatGPT, or Gemini.

  4. Make “report first, act second” a habit

    Keep instructions such as “summarize the change and wait for my confirmation before applying it” in any prompt that modifies configuration. Reviewing important changes before approval is the simplest way to protect your setup.

Tip: If you have not connected an MCP server and only need voice control, use the built-in Assist conversation agent under Settings → Voice assistants. Most prompts in this library are too long and complex for Assist and may be truncated.

Lights and scene control

These fundamental, frequently used requests call actions such as light.turn_on, light.turn_off, scene.turn_on, and light.toggle.

Turn on every light in the living room at 60% brightness and set its color temperature to a warm white at 3000 K. Use the color_temp_kelvin attribute, not the deprecated kelvin attribute, and skip the color-temperature setting for any light that does not support it. Respond in English.

Calls light.turn_on with brightness_pct. The legacy payload used kelvin; current Home Assistant versions use color_temp_kelvin. Omit the setting for unsupported lights.

List every light that is currently on, and tell me which area each light belongs to. Respond in English.

Queries states in the light domain and cross-references the area_registry.

Activate the “Movie mode” scene: turn off the main living-room light, dim the accent light and set it to red, and turn on the TV backlight. If this scene does not exist, create it first as a dynamic scene with scene.create. Respond in English.

Create a sunrise effect for the main-bedroom light: over 20 minutes, gradually raise the brightness from 5% to 100% and the color temperature from 2200 K to 5000 K. Use light.turn_on transitions within a script instead of issuing a long series of separate calls, and use color_temp_kelvin for the color temperature. Respond in English.

Use light.turn_on with transition, or call an existing script.wake_up.

Turn off every light in the home except night-lights whose entity IDs begin with light.nightlight_. Respond in English.

Create a welcome effect with the entryway lights: cycle from purple to blue to white three times, then leave them at a normal white. Use only RGB-capable lights and skip lights that support color temperature only. Respond in English.

Climate and HVAC control

These requests call climate.set_temperature, climate.set_hvac_mode, and climate.set_fan_mode. Answers may also require cross-referencing sensor.*_temperature entities with weather.* data.

Report the current temperature and humidity in every area. For any area where the indoor temperature is lower than the outdoor temperature, turn off that area’s air conditioner and tell me what you changed. Respond in English.

Compares entity states with weather.* data, then conditionally calls climate.turn_off.

Prepare to put every air conditioner into sleep mode: set the main bedroom to 25 degrees with low fan speed, and all other rooms to 26 degrees with automatic fan speed. Before making any changes, list every entity you intend to modify and wait for my confirmation. Respond in English.

If the state or forecast returned by weather.forecast_home is rainy and indoor humidity exceeds 70%, turn on every dehumidifier and set its target humidity to 55% using the actions supported by each entity’s domain. Create a temporary follow-up automation that checks humidity again after 30 minutes, notifies me if it has not decreased, and then disables itself. Respond in English.

Using the current weather forecast and the predicted temperature at 08:00 tomorrow, decide whether “sleep mode at 26 degrees” or “energy-saving mode” would be more comfortable for the main-bedroom air conditioner tonight. Explain your recommendation and wait for my approval before changing anything. Respond in English.

List the HVAC mode, target temperature, and current temperature of every climate entity in a table. Read the target from its temperature attribute and the current reading from its current_temperature attribute. Flag any entity whose target and current temperatures differ by more than 3 degrees. Respond in English.

Energy monitoring and savings analysis

These requests combine history or recorder data with sensor.*_energy analysis. For large analyses, use a model with strong reasoning and sufficient context, such as Claude Opus or GPT-5.

Use ha_get_history to retrieve the past 7 days of data after first discovering every entity that matches sensor.*_energy; query each matching entity rather than passing a wildcard to the history tool. Calculate today’s usage, yesterday’s usage, and the average daily usage over those 7 days. Rank the five largest energy consumers and infer what equipment each sensor probably measures. Respond in English.

Analyze the living-room air conditioner’s energy-use curve over the past 30 days and correlate it with outdoor temperature. Compare its energy consumption at setpoints of 25 and 26 degrees, then recommend ways to save energy based on this household’s actual usage periods. Respond in English.

Report the current total power draw from sensor.total_power. Prepare an automation that, if the reading remains above 5000 W for 3 minutes, pauses deferrable high-power appliances—such as the dehumidifier, dishwasher, and dryer—for 30 minutes to avoid exceeding the contracted power limit. Identify the exact controllable entities and the supported action for each appliance, show me the proposed automation, and wait for my confirmation before enabling it. Respond in English.

My home uses Taiwan Power Company’s time-of-use tariff. Identify the devices that consumed the most energy during peak hours (Monday–Friday, 16:00–22:00) over the past week, then estimate how much I could save in one month by shifting all of that usage to off-peak hours. Respond in English.

Create this week’s energy report: compare total energy use with last week, show changes among the five highest-consuming devices, report the average indoor temperature, and include solar generation if sensor.solar_* entities exist. Find the specific notification action for my phone that matches notify.mobile_app_*, ask me to choose if there is more than one match, and send the report with that action. Respond in English.

Notifications and alerts

These requests use notify.mobile_app_*, notify.persistent_notification, and notify.notify. Actionable notifications must include data.actions.

Use notify.mobile_app_myphone to send a test notification titled “HA notification test,” with the current timestamp in the message. Also check for any other available mobile_app notification actions and list them for me. Respond in English.

Create an automation for when the washing machine, switch.washer, changes from on to off and its corresponding power sensor remains at its idle level for more than 3 minutes. Identify the power sensor and idle threshold first, and ask me if either is ambiguous. Send me an actionable notification with “Laundry collected” and “Remind me in 30 minutes” buttons. The first response should stop reminders for that cycle; the second should send another notification after 30 minutes. Summarize the automation and wait for my confirmation before enabling it. Respond in English.

Combine every device with less than 20% battery remaining into a single notification. Include each device’s area, entity name, and current battery level. Filter by the label.battery label when available; if that label does not exist, find entities whose IDs match *_battery. Respond in English.

Create an automation that reacts when any binary_sensor.*_leak sensor triggers. Immediately send a highest-priority notification that names the sensor and the water-valve entity ID in the same area. Inspect the valve’s entity domain and supported actions: use valve.close_valve for a valve entity, or switch.turn_off only when the shutoff is represented by a switch. Summarize the automation and wait for my confirmation before enabling it. Respond in English.

Create a one-time automation for 22:00 tonight that checks every door and window sensor. If any opening is not closed, notify my phone with its location and how long it has been open. Do not send a notification if everything is closed, and disable the automation after it runs. Show me a summary and wait for my confirmation before enabling it. Respond in English.

Write or modify automations and scripts

These requests use ha_config_set_automation, ha_config_set_script, and ha_config_set_scene. This category requires the strictest “plan first, act second” discipline: review the proposed configuration before the agent applies it.

Write an “Arrival mode” automation. When any household member’s phone device_tracker changes from not_home to home, turn on light.entrance, set the air conditioner to 26 degrees, and play my usual music playlist. Show me a YAML summary and wait for my confirmation before enabling it. Respond in English.

Important: use entity_id rather than hard-coding a device_id. See Chapter 8.

Modify the “Good night” automation: if calendar.family contains an event before 08:00 the next morning, start the morning scene 30 minutes earlier. First show me the existing automation YAML, then explain how you propose to change it and wait for my approval. Respond in English.

Split the “Living-room AC automatic control” automation into two automations: one that turns the air conditioner on above 28 degrees, and another that turns it off below 25 degrees. Use mode: restart to prevent competing actions. Show me the proposed YAML and wait for my confirmation before applying it. Respond in English.

Write script.movie_night to turn off the home’s main lights, set the living-room accent light to red at 30% brightness, turn on the TV, and switch to Netflix. Also create a dashboard button that runs the script. Show me the proposed configuration and wait for my confirmation before applying it. Respond in English.

List all of my current automations and flag these three potentially unreliable patterns: use of device_id, use of wait_for_trigger without a timeout, and a single time trigger with no conditions. List every finding and recommend how to correct it. Respond in English.

Prepare to import this blueprint: https://community.home-assistant.io/t/motion-activated-light/262970. Use the main-bedroom motion sensor, binary_sensor.master_motion, and main-bedroom light, light.master_bedroom for the automation instance. Show me the proposed import and automation, and wait for my confirmation before creating either one. Respond in English.

Query sensors and devices

These requests use ha_get_state, ha_get_history, ha_search, ha_get_device, and ha_list_floors_areas.

List every floor and area in the home, followed by the devices assigned to each area. Format the results as a table so I can easily identify entities that have not yet been assigned to the correct area. Respond in English.

Report the living room’s current temperature, humidity, CO2, and PM2.5 readings, and compare them with outdoor conditions. If CO2 exceeds 1000 ppm, recommend turning on the ventilation system or opening a window. Respond in English.

Use ha_get_history to retrieve every state change for binary_sensor.front_door over the past 24 hours. Calculate how many times the door opened, its average open duration, and its longest open duration, then assess whether the history shows any anomaly. Respond in English.

Find and list every entity that has not reported a state for 7 days. These may be sensors with depleted batteries or devices that have disconnected. Respond in English.

I want to rename the living-room sensor from sensor.living_temp to sensor.living_room_temperature. First list every automation, script, scene, and dashboard that references it. Wait for my confirmation, then rename it and update all references together without omissions. Respond in English.

Use the references returned by ha_get_entity before renaming the entity.

List every entity with device_class: motion and identify any that did not trigger during the past 24 hours; they may be faulty or obstructed. Respond in English.

Everyday voice and chat requests

These short, conversational prompts work well for both voice and chat. They are particularly suitable for the Assist setup described in Chapter 19.

Turn on the living-room lights. Respond in English.

I’m leaving. Turn off every light, lock the front door, and put the air conditioner into away mode. Respond in English.

Set the air conditioner to 26 degrees and use its sleep fan mode. Respond in English.

Remind me to take out the rubbish tomorrow at 07:00. Add an item to todo.family with that due date and time. If this to-do list does not generate reminders itself, create a one-time notification for 07:00 and disable it after it runs. Respond in English.

What are the current indoor and outdoor temperatures, and will it rain this afternoon? Respond in English.

Troubleshooting and maintenance

These requests use ha_get_logs, ha_get_automation_traces, ha_get_system_health, and ha_manage_backup. They are among the most valuable prompts when Home Assistant is not behaving as expected.

The “Turn on the lights at sunset” automation did not trigger as expected today. Use ha_get_automation_traces to retrieve its five most recent traces and identify the cause. If a fix is available, summarize it and wait for my confirmation before applying it. Respond in English.

Use ha_get_logs to retrieve entries at log_level=ERROR or higher from the past 24 hours. Group them by integration and entity, identify which groups produced the most errors, and give me the three highest-priority recommendations. Respond in English.

Run ha_get_system_health and check Recorder, Supervisor, and networking for unhealthy states. If you find a problem, recommend repair steps based on the official Home Assistant documentation. Respond in English.

List the automatic backups created during the past 7 days. Confirm that a backup ran every day and that each file is > 100MB, because an unusually small file may indicate a problem. For each backup, inspect its available metadata and integrity or validation status; do not treat file size alone as proof of integrity. If the connected tools cannot validate readability, report the backup as unverified and recommend a separate test restore—do not restore it over the production system. If the newest backup is more than 24 hours old, run a full backup first, verify that it completes successfully, and then report the result. Respond in English.

Use ha_report_issue to retrieve the currently unresolved issues from Repairs. List every issue in severity order, and explain which can be deferred and which must be addressed. Respond in English.

Five ways to write better prompts for AI agents

These 43 prompts rely on five recurring techniques. Writing instructions for an AI agent differs from writing them for a person: specificity reduces ambiguity and protects your existing configuration.

Say thisAvoid thisWhy
Identify the entity: “Turn on light.living,” or use the unambiguous friendly name “Turn on the main living-room light.” “Turn on that light” or “Make it brighter.” The agent needs a specific entity ID or an unambiguous name before it can call an action.
Name the action for a complex request: “Use climate.set_temperature to set the target to 26 degrees.” “Set it to 26” and let the agent guess. Naming the intended tool reduces the chance that the agent will call the wrong action. Simple requests can remain conversational.
Read before writing: “Show me the existing automation YAML, then explain how you propose to change it.” “Change my automation.” An agent that edits without reading the current configuration is likely to break it.
Preview before applying: “Show me a YAML summary and wait for my confirmation before enabling it.” “Add an automation.” Every configuration-changing prompt should include this inexpensive safeguard.
Use an entity ID rather than a device ID: “Trigger on binary_sensor.front_door.” Use a device_id UUID. Replacing hardware can invalidate a device ID, whereas a maintained entity ID remains stable. See Chapter 8.
Security warning: Connecting Home Assistant to an LLM may give the agent permission to change your configuration and control physical devices. Initially expose only low-risk entities such as lights and sensors. Validate the setup for several weeks before considering locks, alarms, or main power controls. Keep “summarize first, apply after confirmation” in every actionable prompt.

Frequently asked questions

How do an MCP server, the REST API, and Assist differ?
Assist processes predefined conversational intents and is best suited to short commands. The REST API allows software to call actions over HTTP. An MCP server presents a catalog of authorized tools to an LLM agent, allowing it to discover available actions, read states, and—where supported—modify configuration without every intent being defined in advance. All prompts in this library are intended for MCP or API tools; most exceed the length and complexity of a typical Assist request.
Should I use ha-mcp-woow or the official MCP Server integration?
The official integration (HA 2025.7+) is sufficient for querying states and controlling exposed entities. ha-mcp-woow is WoowTech’s enhanced version, adding tools for configuration editing, HACS management, backups, logs, and traces. Several prompts in this library rely on its ha_config_set_*, ha_get_automation_traces, or ha_manage_backup tools. Choose ha-mcp-woow for the complete workflow, or the official integration for a more limited introduction.
Why does the AI call the wrong action or use the wrong entity ID?
There are three common causes: (1) the entity is not exposed under Settings → Voice assistants → Expose; (2) its name is ambiguous—sensor.abc123 is harder to identify than sensor.living_temperature; or (3) excessive context prevents the model from seeing the relevant entity. Begin with clear names (see Chapter 4), expose only what is needed, and include the intended entity ID in the prompt.
Will these prompts use many tokens or cost a lot?
Routine control—turning on a light, checking a temperature, or editing one automation—generally costs very little. Energy analysis, seven days of system-wide logs, and large automation refactors consume more tokens. To reduce cost, expose only relevant entities, use a lower-cost model such as Claude Haiku or GPT-4o mini for broad data analysis, and reserve a stronger model for complex planning.
Can I trigger a prompt automatically instead of pasting it each time?
Yes. Package a prompt as a skill (see the Skill Handbook), or create a Home Assistant script that sends it to the LLM with action: conversation.process. For advanced workflows, an automation can ask an LLM to analyze an event such as a leak or low battery and then take the corresponding action. Apply additional safeguards: do not allow an unattended agent to perform irreversible or safety-critical operations.
Can members of my household use these prompts?
Yes. Download this page as a single HTML file and share it with your household. Each person can copy a relevant prompt and replace the examples with your actual area and entity names. The everyday voice and chat requests are a particularly accessible starting point for nontechnical users.

Take this library with you

The entire library is a self-contained HTML file with embedded icons. Download it for offline use or share it directly with household members and colleagues.

Download this HTML file Return to the Resource Hub