Accessible Home User Guide
This guide explains how to install, use and extend Accessible Home, an accessible interface for Home Assistant built for JAWS, NVDA and VoiceOver. It accompanies the Accessible Home Change Log.
Downloads
- Accessible Home app
Rename it to index.html and copy it into your Home Assistant, as described under Installing and signing in. - User guide
- User guide
- Change log
- Change log
Installing and signing in
Accessible Home is a single file, index.html, that lives inside Home Assistant itself. There is nothing else to install and no extra server to run.
What you need: Home Assistant on any hardware (a Home Assistant Green or Yellow, a Raspberry Pi, a virtual machine or a mini PC) and a recent version of Home Assistant. Pages under Settings need an administrator account. Everything else works with any account.
Copy the file onto your Home Assistant
The Samba share add-on lets you copy files from Windows File Explorer, which works well with JAWS.
- In Home Assistant, open Settings, then Add-ons, then Add-on Store, and install Samba share.
- On the add-on’s Configuration tab, set a username and password, save, then start the add-on.
- In Windows File Explorer, type
\\homeassistant.local\configin the address bar and press Enter. Sign in with the Samba username and password. - Inside the config folder, create a folder named
www. Inside www, create a folder namedaccessible. - Copy index.html into the accessible folder. If you downloaded the file under another name, such as accessible-home-general.html, rename it to index.html.
- If you just created the www folder, restart Home Assistant once so it starts serving that folder. Use Settings, then System, then the Restart button.
Open the app
The app’s address is your Home Assistant address with
/local/accessible/index.html on the end:
- At home: usually
http://homeassistant.local:8123/local/accessible/index.html. If that doesn’t open, use your Home Assistant’s IP address instead of homeassistant.local, for examplehttp://192.168.1.20:8123/local/accessible/index.html. If your Home Assistant uses the standard web port, leave out:8123. - Away from home, if you have Nabu Casa remote access:
https://your-address.ui.nabu.casa/local/accessible/index.html, using your own Nabu Casa address. It also works at home, so it’s the best one to save on your phone. Once you’re signed in, the app shows this address under Settings, then Home Assistant Cloud, then Remote access. - Away from home with your own remote access setup, such as a reverse proxy or a VPN: use your own external address with the same ending.
The first time, choose Sign in with Home Assistant. You’ll see the normal Home Assistant login page; sign in as usual and you’ll come straight back to the app. It stays signed in on that device until you choose Sign out.
Put it on your iPhone home screen
- Open the app’s address in Safari. If you have remote access, use that address, so it works both at home and away.
- Sign in.
- Open the Share menu and choose Add to Home Screen. The icon is named Home.
It then opens full screen like a regular app.
Signing in with a token instead
If the normal sign-in ever gives you trouble, you can use a long-lived access token. It keeps working until you delete it, so the normal sign-in is safer; see Security. In Home Assistant, open your profile, go to the Security tab, and create a long-lived access token. In the app, expand Use a long-lived access token instead, paste it into the Access token field and press Connect.
Updating to a new version
Copy the new index.html over the old one in the same folder.
You don’t need to reload anything after that. Home Assistant tells browsers to keep its files for up to a month, so the app looks after updates itself:
- It checks for a newer copy when it starts, every half hour, and whenever you come back to it. If there is one, it fetches it fresh and reloads, then says “Accessible Home was updated to version” and the number.
- If you’re editing something, or playing media on this device, it doesn’t interrupt you. It says a new version is ready, and loads it the next time you open the app, or when you press Control F5.
- To check right away, type “check for app updates” in the Command box. It says “You have the latest version” and the number, or loads the new one.
- The Home Assistant sidebar entry follows each new version. The first time a new version runs, it points the sidebar at an address with the version and build in it, such as index.html?v=1.0-202610241830, so every device loads the new version the next time it opens Home Assistant. The Home Assistant app on your iPhone may need closing first; see below.
In the Home Assistant app on your iPhone, the app keeps its page open in the background, so it can go on showing the version it loaded earlier. To make it load the new one:
- Close the Home Assistant app completely. With VoiceOver, slide one finger slowly up from the bottom edge of the screen until you hear a second tone, then lift your finger to open the App Switcher. Swipe to Home Assistant, then swipe up with three fingers to close it; or swipe down with one finger until you hear the Close action, then double-tap. Open the app again and choose Accessible Home.
- If it still shows the old version, open the Home Assistant app’s own settings (Settings, then Companion App) and choose Reset frontend cache. The app reloads Home Assistant from scratch.
To check which version you have, open Settings, then App preferences, then About, or move to the footer at the end of any page. It gives the version and the build number, for example “version 1.0, build 1”. The version changes on release days; the build number goes up with every change.
Getting around
Every screen has the same layout: the Home Assistant view button, the Go to menu, the app heading, a status line, then the current page. Heading navigation is the fastest way to move around.
Groups that open and close. Wherever two or more things of the same type are listed together, such as the lights on Home, the devices in a room, a device’s controls, or your favorite devices, they’re under one heading that’s a button, such as “Lights, 6, 2 on”. It starts closed; press it to open the group and you land on the first thing in it, and press it again to close it. Its name keeps count of how many are on, playing or unlocked. A type with only one thing stays on its own, after the groups. Each device keeps whether each group is open.
When you open a section, focus goes straight to the first item in it, such as the first button in Settings or the first item in the Automations list, skipping the filter box. When you open something inside a section and go Back, focus returns to the item you opened. Opening a media folder puts you on its first folder or file.
Focus stays where you are. Using anything, anywhere in Accessible Home, leaves you on it: pressing a button or switch, adjusting a temperature or volume, choosing from a menu, saving, or typing. When the page or part of it changes because of what you did or because Home Assistant reported something, such as the thermostat reaching its new temperature, a speaker starting to play, or a page refreshing after a save, you’re put back on the same control, never somewhere else on the page. If that control is gone, for example after deleting an item, you land on the nearest thing in the same place. Adjusting a control with VoiceOver counts too, even though VoiceOver doesn’t always tell the browser it’s there.
The page layout
- Home Assistant view, a button at the very top of the page, before everything else. It goes to Home Assistant’s Overview page. When you opened Accessible Home from Home Assistant’s sidebar or the iPhone app, it changes page inside Home Assistant, the way Home Assistant’s own sidebar does, so Home Assistant doesn’t load again. Home Assistant’s sidebar brings you back.
- Heading level 1, Home, the app’s name. Right after it is the status line, for example “Connected to Home” or “Connection lost. Reconnecting.” Then At a glance, a level 2 heading with a short list, on every screen: what’s playing, for example “Playing: Clair de Lune on Living room Sonos.”; while a meat probe is out of its charger, the grill, for example “Grill: Meat probe 1, 162 degrees, about 40 minutes to its target of 203.”; and “Needs attention” with how many notifications, repairs, updates and low batteries there are, or “Nothing needs attention.” It keeps itself up to date without speaking, so it never talks over you; move to it, or press the heading key, whenever you want a look. Below that is the Command box, a search landmark with the Briefing button first, on its own line, then the Command field and the Do it button. The field’s description, read when you reach it, gives examples of commands.
- Go to, right after Home Assistant view, in the Go to menu landmark: one button that opens a list of every section, so the sections aren’t all on the screen. It says “collapsed” or “expanded”. Press it and you land on the section you’re in, marked as the current page; choose another to go there, and the list closes. Escape closes it and puts you back on Go to; moving out of it closes it too. The sections, in alphabetical order: Assist, Automations, By type, Favorites, Home, Media, Notifications, Rooms, Scenes, Scripts, Search and Settings. Some appear only when Home Assistant has what they need: Cameras, Energy (once there’s a thermostat) and Network, each in its alphabetical place. The Notifications button includes a count when something needs attention, for example “Notifications, 2”. The Alt plus Shift shortcuts still go straight to a section without opening the list.
- Now playing on this device, a region that appears only while the Media section is playing something here. See “Media library”.
- The main landmark. Every page starts with a level 2 heading naming the page. When you open a page, focus moves to its first item; the heading is just above it.
How it looks
Accessible Home is built for screen readers first, and it looks the part too. Nothing here changes what your screen reader says.
- Section buttons are cards with a simple picture, such as a cup for Coffee and a music note for Media, laid out in a grid: six across on a computer, three across on a phone. The pictures are decoration only, so they’re never read out.
- Colour repeats what the words say, and never replaces them. Blue marks what’s on, playing or selected. Green with a tick means all’s well, such as “Nothing needs attention.” Amber with a warning sign means something wants a look, such as Notifications when there are some, or “Not ready” on the Coffee page. Red with a cross means a problem, such as a device that isn’t responding.
- Rounded, roomy buttons at least 48 pixels tall, easy to tap, with a clear outline around whatever has focus.
- Dark mode by itself. When your phone or computer is set to dark mode, at night or all the time, Accessible Home switches with it.
Descriptions on controls
Many buttons, switches and fields have a short description of what they do or change. It isn’t printed under the control; your screen reader speaks it when you reach the control, the way it speaks a tooltip. JAWS and NVDA say it after the control’s name, and Insert plus Tab in JAWS, or NVDA plus Tab, repeats it. VoiceOver says it after a short pause. Pointing at a control with the mouse shows it as a tooltip. Text that explains a whole section, and live information such as how long is left, is still printed on the page.
To turn descriptions off, so controls are read by name only, open Settings, then App preferences, and clear Describe what controls do, spoken and as tooltips. Or type “descriptions off” in the Command box, and “descriptions on” to bring them back. The setting is kept on each device, so you can have them on your iPhone and off on your computer.
Headings inside pages
- Level 3 headings mark groups: a floor, a section of a room or device page, or a section such as “When (triggers)” in the automation editor.
- Level 4 headings mark individual items inside a group: a device, an automation step, an integration.
- In lists without groups, such as Favorites or Search results, items are level 3.
Each item is also a labeled group, so when you Tab into its controls, JAWS and NVDA announce which device or item they belong to.
Going deeper and coming back
Most things open a new page: editing an automation, a device’s settings, an integration. Opening anything works the same way everywhere, whether you double-tap, press Space or press Enter: focus goes straight to the first entry inside it, such as the first control on a device’s page or the first item in a group. A Back button sits right after the page heading, and its label says where it goes, for example “Back to Automations”. When you go back, focus returns to the item you opened, so you never lose your place.
If a page has unsaved changes, leaving it asks whether to discard them.
At the very bottom of every screen, after the main content, is a footer with the app’s version and the date and time it was last updated. It’s the content information landmark, so landmark navigation reaches it directly.
Keyboard shortcuts on Windows
- Alt plus Shift plus 1 through 9, then 0: jump to the ten main sections in alphabetical order (1 Assist, 2 Automations, 3 By type, 4 Favorites, 5 Notifications, 6 Rooms, 7 Scenes, 8 Scripts, 9 Search, 0 Settings). Media and Coffee have their own letters, M and C.
- Alt plus Shift plus B: Back.
- Alt plus Shift plus K: jump to the Command box.
- Alt plus Shift plus I: open the house briefing.
- Alt plus Shift plus M: open Media.
- Alt plus Shift plus E: open Cameras, for camera events.
- Alt plus Shift plus W: open Network, once UniFi is set up.
- Alt plus Shift plus U: open Energy, once there’s a thermostat.
- Alt plus Shift plus G: open Grill, once a ThermoWorks thermometer is set up.
- Alt plus Shift plus O: open Home.
- Alt plus Shift plus N: open Now playing.
- Alt plus Shift plus H: go to Home Assistant’s Overview page. Its sidebar brings you back.
- Alt plus Shift plus P: play or pause. It works on this device when something plays here, otherwise on the speaker chosen in Play on.
These pass through JAWS and NVDA in both browse and focus mode.
Spoken announcements
The app speaks results through your screen reader without moving focus. What it announces is up to you, under Settings, then App preferences:
- Off: nothing is announced automatically.
- Only changes I make (the default): for example “Kitchen lamp: On, 60 percent” after you turn it on, or “Saved” after saving.
- Changes I make, plus doors, windows, locks, alarms and people: also tells you when the front door opens or someone arrives home.
- Everything, including sensors: every change in the house. This is very chatty.
Errors are always announced, whatever this is set to.
Confirmations
Anything that can’t easily be undone, like deleting, unlocking, restoring a backup or restarting, asks first. The question appears on the page itself, as an alert dialog with the question and two buttons, usually Yes and No, or wording that fits, such as Yes, cancel it and No, keep it, or Leave without saving and Stay. Focus starts on the safe answer. The rest of the page can’t be reached until you answer, Escape means no, and afterwards focus goes back to the button you pressed.
When something needs typing, such as a new name, a password, your alarm code or a due date, the same dialog has a text box, filled in with the current value when there is one, and OK and Cancel buttons. Focus starts in the text box, and Enter is OK.
The app doesn’t use the browser’s own pop-ups, because VoiceOver handles them poorly inside the Home Assistant app on iPhone.
Organized lists: trees and expandable groups
Automations, Scripts, Entities and Integrations are organized into groups, so you only open what you need. Each page starts with a Group by choice (Automations, Scripts and Entities), a Filter box, and a count, such as “12 scripts in 4 groups”. Typing in the filter opens every group that has a match and leaves out the rest.
The same lists can appear in two ways. Which one you get is under Settings, then App preferences, then Layout of organized lists. Automatic, the default, uses the tree on computers and expandable groups on phones and tablets.
The tree, best with JAWS and NVDA on Windows. The whole list is one control, and your screen reader switches to focus mode by itself. Each item says its name, a short status, whether it’s a group, whether it’s open or closed, its level and its position, for example “Front, 2 scripts, collapsed, 1 of 4, level 1”.
- Up and Down arrows: move through what’s showing.
- Right arrow: open a group, or, if it’s open, move to its first item.
- Left arrow: close a group, or move up to the group you’re in.
- Home and End: the first and last item.
- Enter: on a closed group, open it and move to its first item; on an open group, close it. On an item, open its actions page.
- Space: on an item, do its main action, such as Run for a script.
- A letter: jump to the next item starting with that letter.
- Star: open every group at the current level.
The Tab key moves into and out of the tree as one stop, so you never have to tab through every item.
Expandable groups, best with VoiceOver on iPhone and iPad. Each group is a heading with a button, such as “Front, 2 scripts”, that says whether it’s expanded or collapsed. Double-tap it to open it, and focus moves to the first item inside. Items inside are the next heading level down. Each item has just two buttons: its main action, such as Run, and More actions.
The actions page. Enter on a tree item, or More actions, opens a page named after the item, with every action as one list of buttons: the main action first, then the rest in alphabetical order. When you go Back, you’re returned to the same item, and the groups you had open stay open.
Section by section reference
This chapter goes through every section in the Go to menu, in order, and every page under Settings. For each, it says what the section is for, how to get there, how the page is laid out by headings, and what every button does. Other chapters explain the bigger features in more depth, and this chapter points to them.
Assist
What it’s for: asking or telling Home Assistant things in plain words, like “is the back door locked?”
How to get there: the Assist button, or Alt plus Shift plus 1.
Layout:
- The text box, labeled “Ask or tell Home Assistant”, and a Send button.
- Once you’ve asked something, a level 3 heading Conversation, newest first, and Clear conversation.
Tips: the answer is read out automatically and focus stays in the box. On iPhone, use the dictation key. Your request goes to your preferred voice assistant, the same one your phone uses when you speak to it, and the page names it. If that assistant uses an AI, such as Google Gemini, you can ask follow-up questions, and anything it can’t answer goes to Home Assistant’s own agent instead. Assist can only see and control what’s shared with it under Settings, then Voice assistants.
Automations
What it’s for: everything that happens by itself, such as lights at sunset or announcements when a door opens.
How to get there: the Automations button, or Alt plus Shift plus 2.
Layout:
- Two buttons at the top: New automation and More ways to add, which has Describe a new automation in words, New from a blueprint and Reload automations from YAML.
- Group by: Category (the default, once you have categories), Room, Label, Enabled or disabled, or Nothing, one list. Categories are Home Assistant’s own way of sorting automations into groups, separate for automations, scripts and helpers.
- A Filter automations box and a count.
- The automations, organized into groups as described in “Organized lists” in the Getting around chapter. Each says its state, such as “Enabled, last ran 2 hours ago” or “Disabled, never ran”. Ones written in YAML files also say “Written in YAML; view only.”
Main action: Edit, or View for ones written in YAML files. In the tree, press Space. More actions, or Enter in the tree, lists Edit first, then Disable or Enable, Run actions (runs the actions now, skipping triggers and conditions), Favorite, Room, labels and name, Run history, Duplicate and Delete. Automations written in YAML files don’t have the last three.
More detail: the Automations chapter covers the editor, every trigger, condition and action, describing in words, checking for problems, blueprints and run history.
By type
What it’s for: seeing every device of one kind together, for example every light or every lock.
How to get there: the By type button, or Alt plus Shift plus 3.
Layout:
- Level 2 heading, By type.
- A button for each type, such as Lights, Thermostats, Speakers and media, Locks, Cameras and Toggle helpers, each followed by a count and a short status, for example “8 entities, 2 on”.
- Pressing a type opens its page. If the type is in more than one room, each room is a level 3 heading and each device a level 4 heading.
Tips: this is the quickest way to the helpers you’ve made, such as toggles and number settings, and to every camera’s page.
Cameras
What it’s for: your cameras, whether their motion is announced, and the camera events with Ring’s descriptions, going back as far as Ring keeps them. It appears in the Go to menu, between By type and Coffee, when you have cameras.
How to get there: the Cameras button, Alt plus Shift plus E, or type “cameras” or “camera events” in the Command box. Type “what happened at the cameras” to hear the last three events without opening the page.
What’s on it:
- Cameras: each camera with Open and its Announce motion switch, and how often it can be announced.
- Announce camera motion: turns all camera announcements on or off. Quick heads-up first adds “Person at the front camera” or similar about 7 seconds after motion, before the full description.
- Camera events, newest first, each read as its time, camera and description, for example “Today 1:33 PM, Front: A person is walking on the pathway holding a brown bag.” Show events from picks one camera. Check for new events gets the latest, and Show older events adds the 20 before them and puts you on the first one added.
- Ask about on each event opens its question page: type a question and press Enter, or use a quick question such as What was the person wearing? Answers are read out and listed on the page.
Energy
What it’s for: your whole home’s electricity, day by day, from your power company, and how much your heating and cooling ran: today, yesterday and each of the last 7 days, by month, how many times they started, and, if you add your equipment’s size, estimates of gas and electricity, with your thermostat’s controls at the end. The weather isn’t here; it’s on Home, at the bottom. It appears in the Go to menu, between Coffee and Favorites, once Home Assistant has a thermostat. Opening it puts you on Energy use, at its first part: Estimated costs once the numbers are in, otherwise Whole home electricity.
How to get there: the Energy button, Alt plus Shift plus U, or type “energy” or “heating and cooling” in the Command box. Type “how long did the heat run today” or “heating today” to hear today’s run time without opening the page.
Layout, from the top:
- Energy use, a level 3 heading, with up to six parts under it. Each is a level 4 heading that’s a button, and they all start closed, so the page stays short; press one to open it and you land on the first thing in it. Whether each is open is remembered on this device.
- Whole home electricity: the heading itself says the newest day’s use, such as “Whole home electricity: 17.3 kWh on Thursday, October 29”. Power companies send each day a day or two late, so that’s usually two days ago, and the newest days in the table say “Not in yet”. Open, it says how much your home used that day and the average day over the last 2 weeks, then a table of the last 2 weeks, newest first, with each day’s kilowatt hours, and the cost when there is one; then this month so far and last month. The cost comes from your power company when it sends one. When it doesn’t, enter your Electricity price under Estimates and the cost is estimated from it. It uses whatever Home Assistant’s Energy dashboard uses for Electricity grid; until that’s set up, the heading says “not set up” and explains how.
- Today: the heading itself says today’s run time. Open, it says how long the heating and cooling ran, in how many cycles, and the estimate if you’ve set one up, then yesterday’s run time and the average day over the week before, and Today, hour by hour.
- Last 7 days: a table, newest day first. Each day’s name is a button that opens it hour by hour. Each row starts with the day, then Heating (hours and minutes), Heating cycles, Cooling and Cooling cycles when it has run, and Gas (in therms, or Ccf when your gas company bills that way) or Electricity in kWh when estimates are on. With JAWS or NVDA, Control plus Alt plus the arrow keys move cell by cell and read the column and row headers. A line under the table adds up all 7 days. The bars beside the hours are only for looking at. Under it, Open a day, hour by hour: a date box and Open that day, for any day in the permanent record.
- Hour by hour, from a day’s button: a line with the day’s totals, then how many hours it ran in and the busiest hour, Previous day and Next day, an Only hours it ran checkbox (remembered on this device) that leaves out the quiet hours, and a table with a row for each hour, such as “6 AM to 7 AM”, with the minutes the heating and cooling ran, how many times each started, and gas or electricity when estimates are on. Today stops at the current hour, marked “so far”. Back returns you to the day you opened.
- By month: a table of the last 12 months, newest first, with the heating and cooling time, how many times each started, and gas or electricity when estimates are on. The current month says “so far”.
- Estimated costs, first, once the estimate numbers are in: the heading itself says the total, such as “Estimated costs: about $190, electric $108, gas $82”. Open, you land on electricity: what you’ve spent since the meter was last read and about what the next bill will be, with the kilowatt hours; then gas: how long the furnace has run this month, the Ccf or therms and their cost, the fixed charges, and where the month ends at the last 7 days’ pace; then the two together, and a line saying how each was worked out. Type “energy costs” or “gas bill” in the Command box to hear it without opening the page.
- Estimates: only until the numbers are in. Open, five boxes, Furnace size, BTU per hour, Gas price, dollars per therm (per Ccf when your gas company bills in Ccf), Air conditioner power, kilowatts, Electricity price, dollars per kilowatt hour (every charge that goes up with use, added together) and Fixed electricity charges, dollars a month (the ones that don’t, such as the customer charge), and Save estimates. Once saved, this part leaves the Energy page. The same boxes are always on Energy estimate numbers, under Settings, This app, or type “change estimates” in the Command box. Gas is the furnace’s run time times its size, at 100,000 BTU to a therm. Leave a box empty to leave that estimate out. They’re kept in your Home Assistant account.
- Refresh reads the latest.
- Thermostat, a level 3 heading at the end: the inside temperature, the humidity, and whether it’s heating, cooling or not running. Then Mode, a menu with Off, Heat, Cool and Heat and cool; choosing one changes the mode. Under it, the temperatures for that mode, each with its value and a swipe control: Heat to in Heat, Cool to in Cool, and both in Heat and cool. On iPhone, double-tap and hold the control, then slide: a short swipe up or down changes one degree and a longer swipe changes more, up to 15; it says the new value as you move and sends it when you let go. A flick up or down, or the arrow keys on Windows, changes one degree at a time. Then Fan and Eco, switches, when the thermostat offers them. Nothing moves under you while you adjust: the numbers and switches update in place, and changing the mode keeps you on the control you were using.
Good to know: the last 10 days come from the thermostat’s own detailed record of when it was heating or cooling, which Home Assistant keeps for about 10 days. Older days and the months come from a permanent record that Home Assistant keeps for good: four counters that start again at midnight, Heating run time today, Cooling run time today, Heating starts today and Cooling starts today, made from two sensors, Heating running and Cooling running. Home Assistant saves their totals every hour as long-term statistics, which take very little space. They’re hidden from lists, Assist and Alexa, so they don’t clutter anything. The permanent record starts from the day it was set up. A furnace’s gas isn’t measured by anything in your home, so gas is always an estimate; your gas bill is the real figure.
The Nest needs the Google Nest integration for run times. Through Matter, a Nest shares the temperature and its settings but not when it’s actually heating or cooling, so until the Google Nest integration is added, Energy use explains what’s missing; the thermostat controls work either way. The Google Nest integration and Matter can both stay; Energy uses whichever reports running, even when it’s hidden. Setting it up, in order:
- In Google Cloud Console, make a project and note its Project ID.
- Turn on two APIs for it: Smart Device Management and Cloud Pub/Sub.
- Set up its OAuth consent screen as External, add your Google account as a test user, and publish it to production, so the sign-in doesn’t expire after a week.
- Make an OAuth client of type Web application, with the redirect address https://my.home-assistant.io/redirect/oauth, and keep its client ID and secret.
- In the Device Access Console, pay Google’s one-time 5 dollar fee, make a Device Access project, and give it the OAuth client ID.
- Make a Pub/Sub topic, let the Device Access Console publish to it, and turn on events in your Device Access project with that topic.
- In Accessible Home, open Settings, then Integrations, and add Google Nest. Enter the IDs and the client ID and secret, sign in to Google, allow your thermostat, and choose the topic.
Claude can go through these with you; the fee and your Google sign-in are the parts only you can do.
Favorites
What it’s for: the things you use most, on one page, so you don’t have to dig through rooms.
How to get there: the Favorites button in the Go to menu, or Alt plus Shift plus 4 on Windows.
Layout:
- Level 2 heading, Favorites.
- If you have only one kind of favorite, each one is a level 3 heading.
- If you have several kinds, they’re grouped under level 3 headings, Devices, Scripts, Scenes and Automations, each with a count, and each favorite is a level 4 heading.
- Under each favorite, a line describing its state, then its controls.
Buttons: each favorite has the same controls it has everywhere else, plus More for its details page and Favorite, which is pressed. Press Favorite to remove it from the page.
How to add a favorite: press the Favorite button next to any device control, script, scene or automation, anywhere in the app. The button is a toggle: your screen reader says “pressed” when it’s a favorite.
Tips:
- Favorites are saved in your Home Assistant account, so every phone and computer you sign in on shows the same list.
- Running a “Describe … camera” script from here opens the camera’s live view first, so the description is of right now.
Grill
What it’s for: a ThermoWorks RFX wireless thermometer: each meat probe’s temperature and target, how long it has to go, the grill air temperature with an alarm for when it’s too high or too low, and whether the RFX Gateway is connected. It appears in the Go to menu, between Favorites and Home, once the ThermoWorks Cloud integration is set up in Home Assistant.
How to get there: the Grill button, Alt plus Shift plus G, or type “grill” in the Command box. Type “grill temperatures” or “how’s the grill” to hear the readings without opening the page, “grill coach” for the coach’s estimate, “probe 1 target 203” to set a target from anywhere, “grill air 250” to set the grill air target, “grill alarm” to hear the grill air and the alarm, “alarm range 25” to set the range, and “grill alarm off” or “grill alarm on”.
Layout:
- A summary, for example “RFX Gateway connected. Grill air 248 degrees. In range of 250. Meat probe 1, 162 degrees.” It keeps itself current while the page is open.
- Speak temperatures on the speakers plays the plain readout on your speakers. Ask the grill coach asks Gemini, through the Grill coach script, for each probe’s temperature and about how long it has to go, and reads the answer to you here, without the speakers. It takes about 10 seconds.
- Meat probes, a level 3 heading with how many are
connected, then each probe as a level 4 heading, connected ones first.
Under each:
- A line with its temperature and target, how long it has to go, how fast it’s rising, and its battery, for example “162 degrees, target 203. About 1 hour 35 minutes, done around 12:20 PM, give or take 15 minutes. Rising 1 degree a minute. Battery 90 percent.” A probe in its charger says it isn’t reporting.
- Meat probe 1 target, in degrees. Type a number; it saves a second after you stop typing. 0 means no target. A target set by voice or on another device shows here, unless you’re typing in it.
- Meat probe 1 target for, a list of common foods, such as “Chicken or turkey, 165” or “Pork shoulder or brisket, 203”, which sets the target for you.
- Grill air, a level 3 heading: whether the RFX
Gateway is connected, the grill air temperature from the air probe
plugged into the gateway (or “No air probe plugged in”), and what the
alarm is doing. The first time, a Set up the grill air
alarm button makes it; after that:
- Grill air target, in degrees. Type a number; it saves a second after you stop typing. 0 turns the alarm off.
- Grill air target for, a list of usual grill temperatures, such as “Smoking, 250” or “Grilling, high heat, 450”.
- Grill air alarm range, in degrees: how far above or below the target before the alarm sounds. With a target of 250 and a range of 25, it sounds below 225 or above 275.
- Grill air alarm, a switch to turn it off and on without losing the target.
- Better time estimates, only until the Grill Estimates add-on is turned on: a button to restart Home Assistant so it loads the add-on, then one to turn it on.
- Grill announcements: Announcement settings opens Settings, Announcements, where the grill switches are, so they’re in one place with all your other announcements.
The grill air alarm. Nothing sounds while the grill heats up. The alarm starts watching once the grill air first comes within range, and you hear “Grill air has reached 250 degrees.” From then on, if the grill air stays too high or too low for a minute, the alarm sounds on the speakers and your phone, even during quiet hours: “Grill alarm. The grill air is too low: 212 degrees. The target is 250, and the alarm sounds below 225.” It repeats every 2 minutes until the grill air is back in range, then you hear “Grill air back in range.” While Accessible Home is open, it also plays an alarm sound and says it there, even with sound cues off. Changing the target waits for the new range again, and unplugging the air probe for 5 minutes puts it back to waiting, ready for the next cook. It runs in Home Assistant, in the Grill air alarm automation, so it works with the app closed. The Grill announcements switch doesn’t turn it off; its own switch does.
How the time left is worked out. With the Grill Estimates add-on on Home Assistant, each probe gets a Meat probe time left sensor, and that’s what you hear.
- Why the old way ran long: it divided the degrees still to go by how fast the meat rose over the last 10 minutes. Early in a cook the centre of the meat has hardly started to move while the heat works in from the outside, so it rises slowly at first and then speeds up. An estimate made then could be two to five times too long.
- What it does now: each RFX probe has four sensors along its length. Grill Estimates follows the centre of the meat (the lowest sensor) and the outer part (the other three), measures over the last 30 minutes how fast heat is moving from the grill air into the outer part and on into the centre, and runs that forward to the target. That sees the centre speeding up before it happens.
- It learns from every cook. Every 5 minutes it saves its estimate. When a probe reaches its target, each saved estimate is checked against how long it really took, and the median of up to 20 past cooks corrects the next ones, separately for each part of a cook. How much past cooks varied gives the “give or take”. Until a few cooks have been checked, an estimate starts with “Roughly” and ends “Still learning from your cooks.”
- No number when it can’t be trusted: for the first 20 minutes (“Learning how fast it heats”), when the meat isn’t rising, when the readings are too uneven, without the air probe, or when the grill air is within 10 degrees of the target. It says which, instead.
- The stall: big cuts such as brisket or pork shoulder often stop rising for an hour or more between about 150 and 175 degrees. On cooks with a target of 185 or more, it times how long the meat takes to climb from 150 to 175, compared with how long it took to reach 150, and uses that on later cooks. Until two long cooks have been timed, it tells you the time to reach 150 and says no total is available yet.
- A cook ends, without being learned from, when the probe stops reporting for 10 minutes or is taken out of the meat. Everything is saved, so a Home Assistant restart in the middle of a cook loses nothing.
- Without the add-on, the page uses the old sum, but only within 40 degrees of the target, where it’s close.
- The regular reports on the speakers and the Grill coach use the same estimates as the Grill page.
Tips:
- A new probe only shows up after it’s added in the ThermoWorks app, and Home Assistant needs its helpers made for it (its temperature, connected, target, battery and rate). Without them, the page lists each ThermoWorks probe’s reading straight from the integration, without targets.
- The readings come through ThermoWorks’ cloud, so they’re about 30 to 60 seconds behind the probe.
Home
What it’s for: the things you use most, on one page. The app always opens here.
How to get there: the Home button in the Go to menu, between Favorites and Media, Alt plus Shift plus O, or type “home” in the Command box.
Layout: level 3 headings in alphabetical order. A part with nothing in it is left out.
Cameras, Lights, Locks and Now playing, when there are two or more, are headings that open and close, closed to start, such as “Lights, 6, 2 on” or “Now playing on Sonos, 3 speakers, 1 playing”.
- Cameras: each camera with what it’s doing and Open for its live view and descriptions, then Camera events for the Cameras section.
- Lights: each light with its state and the same controls it has everywhere else.
- Locks: each lock with its state and one Options button. Press it to open the lock’s menu: Lock or Unlock, Open if the lock can open the door, More and Favorite. Focus moves to the first choice; choosing one, or pressing Escape, closes the menu and puts you back on Options. Unlocking asks first, as everywhere.
- Now playing: each speaker with what it’s playing and its controls: play and pause, next, previous and volume. Speakers grouped together are listed once, under the one leading the group. If nothing is playing, it says so.
- Thermostat: the same controls as at the end of the Energy page: the inside temperature and whether it’s running, the Mode menu with Off, Heat, Cool and Heat and cool, the temperatures as swipe controls, and Fan and Eco. Energy use opens the Energy section.
- Weather, always last, at the bottom of Home and the only place the weather is shown: the conditions now, the temperature, humidity and wind, where it comes from (the National Weather Service integration when it’s set up, found even if it’s renamed, otherwise another weather integration), today’s forecast with its high, low and chance of rain, and 7-day forecast, a button that opens and closes a line for each day. Type “weather” in the Command box to go straight to it.
Tips: everything updates as it changes without moving you. Press H on a desktop screen reader to jump between the parts. Thermostat and Weather are always open.
Media
What it’s for: browsing and playing your media library: everything under My media in Home Assistant, such as a network drive or an rclone mount, plus other sources like internet radio.
How to get there: the Media button, Alt plus Shift plus M, or type “media” in the Command box. Focus goes straight to the first folder in your library, past Now playing and Recently played. Each folder or file is read once, by its name, without a description after it.
Layout:
- Now playing, a level 3 heading, first. The heading is a button that expands or collapses the section; it starts expanded, and your choice is kept on this device. It holds Play on (This device, or any speaker or TV that can play media, remembered on this device), what’s playing there, the playback buttons with the volume right after Next, the Speakers and Sleep timer buttons, and Playing elsewhere as a level 4 heading. Alt plus Shift plus N opens it on its own page.
- Favorite folders, once you have some, under its own level 3 heading. Your favorite folders are kept in your Home Assistant account, so every device shares them and app updates never clear them.
- Recently played, once you have some: a level 3 heading that’s a button with a count, for example “Recently played, 12”. It starts collapsed; press it to show the list and move to its first item, and again to hide it. Whether it’s open is kept on this device; the list itself is kept in your Home Assistant account, so it survives app updates and every device shares it. A folder’s name opens it, and a file’s name plays it and then the rest of its folder.
- Your library, under a level 3 heading with its name, then one Filter this folder box, then Folders and Files headings, each with a count.
- Other sources, such as Radio Browser.
- While something plays on this device, a Now playing on this device region, just before the main content, with its own controls.
See “Media library” in the Controlling devices chapter for the details.
Network
What it’s for: your UniFi network: whether your UniFi equipment is online, what’s connected, firmware updates, and network announcements. It appears in the Go to menu, between Media and Notifications, once the UniFi Network integration is set up in Home Assistant.
How to get there: the Network button, Alt plus Shift plus W, or type “network” or “wifi” in the Command box. Type “network status”, “internet status” or “how many devices are connected” to hear a one-sentence summary without opening the page.
Layout:
- A summary, for example “Network: Your Dream Router 7 is online. 16 devices on Wi-Fi: Home 14 and Smart devices 2. 1 firmware update available.”
- Equipment, a level 3 heading with a count: your gateway, switches and access points, each as a level 4 heading, with whether it’s online, its model, and whether it has a firmware update. Open shows all its controls and readings, such as each port’s power. Restart asks first, on the page, because devices using it lose their connection for a minute or two.
- Firmware updates, only when there are some, each with Install.
- Wi-Fi networks, a level 3 heading with a count: each network, whether it’s on, and how many devices are connected to it, with Open for its controls, including turning it on or off.
- Tracked devices, a level 3 heading with how many are connected, then every device UniFi tracks by name, connected ones first, each with Open, and a filter.
- Network announcements, three switches: UniFi equipment goes offline or comes back, Firmware update available, and A new device joins the network. They play like your other announcements, so quiet hours and not announcing while you’re away still apply. The first two are rules in Announce device changes; the third is its own automation, Announce new network devices.
Notifications
What it’s for: messages from Home Assistant, and problems it wants you to fix.
How to get there: the Notifications button, or Alt plus Shift plus 5. When something is waiting, the button says how many, for example “Notifications, 2”.
Layout:
- Level 3 heading Notifications, with each message as a level 4 heading, newest first, each with Dismiss. Dismiss all appears when there’s more than one.
- Level 3 heading Repairs, with each problem as a level 4 heading. Each says which integration it’s from and how serious it is, with Fix if Home Assistant can walk you through fixing it, and Ignore.
Rooms
What it’s for: finding a device by where it is, and changing its settings.
How to get there: the Rooms button, or Alt plus Shift plus 6.
Layout, first page:
- Level 2 heading, Rooms.
- If you use floors, each floor is a level 3 heading with a count of rooms, for example “Ground floor, 3 rooms”. Otherwise the rooms are listed on their own.
- Each room is a button, followed by a short summary, for example “4 devices, 2 lights on, 68°F”.
- A last group, Everything else, with a No room assigned button for devices that aren’t in a room yet.
Layout, a room: see “Rooms, devices and their settings” in the Controlling devices chapter. In short: a summary, All lights on, All lights off and Room settings buttons, then a Devices and controls heading. Two or more of the same type, such as lights, are grouped under a heading that opens and closes, such as “Lights, 3, 1 on”; the rest follow in one list, sorted by name. Each item has Open and, where it makes sense, a quick on and off switch.
Layout, a device: sections for Controls and status, Settings and Diagnostics, then More for this device, with Device settings, New automation with this device and History. A Used by list at the end shows automations, scripts and scenes that use the device.
Tips:
- Back returns to the room, with focus on the device you came from.
- To put a device in a room, open it, press Device settings, choose the Room, and press Save device settings.
Scenes
What it’s for: saved settings for a group of devices, such as Movie night.
How to get there: the Scenes button, or Alt plus Shift plus 7.
Layout:
- Buttons at the top: New scene and Reload scenes from YAML.
- A filter box when you have more than six, and a count.
- Each scene is a level 3 heading, followed by when it was last used, such as “Last used 3 hours ago”, and how many entities it sets.
Buttons on each scene, in order: Activate and Favorite. Scenes made in Home Assistant also have Edit, Duplicate and Delete. Scenes from integrations, such as Philips Hue, can only be activated.
More detail: the Scenes and scripts chapter.
Scripts
What it’s for: a list of actions you run whenever you want, such as Goodnight, or Describe front camera.
How to get there: the Scripts button, or Alt plus Shift plus 8.
Layout:
- Two buttons at the top: New script and More ways to add, which has Describe a new script in words, New from a blueprint and Reload scripts from YAML.
- Group by: Category (the default, once you have categories), Room, Label, or Nothing, one list.
- A Filter scripts box and a count.
- The scripts, organized into groups as described in “Organized lists” in the Getting around chapter. Each script says “Running”, or “Ready” and when it last ran, such as “Ready, last ran yesterday”.
Main action: Run, which becomes Stop while running. In the tree, press Space. More actions, or Enter in the tree, lists Run first, then Favorite, Run with options (fill in the script’s values first, if it has any), Room, labels and name, Edit, Run history, Duplicate and Delete.
Tips: you can also run a script by typing its name in the Command box, or by asking Assist if the script is shared with Assist.
Search
What it’s for: going straight to something by name.
How to get there: the Search button, or Alt plus Shift plus 9. Focus goes straight to the search box.
Layout:
- The search box, labeled “Search devices by name”.
- A status line that announces the number of matches as you type.
- The results, each a level 3 heading with its state and controls. Up to 100 are shown.
Tips: search matches names, entity IDs and room names, so “kitchen” finds everything in the kitchen. For doing something rather than finding it, the Command box is faster.
Settings
What it’s for: everything that sets up Home Assistant and this app.
How to get there: the Settings button, or Alt plus Shift plus 0.
Layout: four menu buttons, each a level 3 heading, in alphabetical order. Pressing one opens its menu and puts you on its first item; the items are in alphabetical order, and each has a one-line description, spoken when you reach it. Pressing the button again, or Escape, closes the menu and puts you back on the button. Opening another menu closes the one that was open. When you come Back from a Settings page, the menu you used is still open, with focus on the item you chose:
- People: Users and people.
- Setup: Announcements, Areas floors and labels, Automation blueprints, Devices, Entities, Helpers, Home Assistant Cloud, Integrations, Script blueprints, Voice assistants, and Zones.
- System: Add-ons, Backups, Developer tools, General settings, History and logbook, Logs, Notifications and repairs, Restart and system, and Updates.
- This app: App preferences, Energy estimate numbers (when there’s a thermostat), Help, House briefing, Sound cues, and What’s new.
Each Settings page is described below, in the order it appears: group by group, alphabetically.
Settings pages, one by one
- Users and people: who can sign in, and who is tracked for presence.
- Areas, floors and labels: add and edit rooms, floors and labels.
- Automation blueprints and Script blueprints: import blueprints from a web address, use them, update them and delete them.
- Devices: every device, with a filter by name, maker, model, room or integration. Open goes to Device settings: name, room, labels, enabled, its controls, New automation with this device, Download diagnostics and Remove device.
- Entities: every entity except scripts, automations and scenes, which have their own sections, grouped by room then device, by integration then device, or by kind. Each entity’s main action is Settings (name, entity ID, icon, room, voice assistant names, visibility and which voice assistants can use it). Its actions page also has Details and controls, Hide, Disable, Device settings and Delete. Change many at once opens the page with checkboxes for hiding, disabling, deleting, moving or labeling several entities together.
- Helpers: every helper, and Create helper for toggles, numbers, dropdowns, text, dates and times, counters, timers and schedules, or helpers with a setup such as groups and templates.
- Home Assistant Cloud: Nabu Casa sign-in, remote access, Alexa and Google, and the cloud voice.
- Integrations: a tree of groups: Needs attention, Discovered on your network, Devices and hubs, Services, Helpers, Other and Ignored. Add integration is at the top. Each integration’s main action is Devices and entities, and its actions page has Options, Reconfigure, Rename, Reload, Disable, System options, Download diagnostics, Add another and Delete. See Setup and organization.
- Voice assistants: Assist setups (language, understanding, speech, voice and wake word), and Choose what voice assistants can control.
- Zones: places like work or school, with a latitude, longitude and radius.
- Add-ons: installed add-ons with Start, Stop, Restart, Update, Uninstall, behavior, configuration, documentation and log, plus the Add-on store.
- Backups: Back up now, Custom backup, and Download, Restore and Delete for each backup.
- Developer tools: Run an action, Template editor, States and Events.
- General settings: home name, units, time zone, currency, country, language and home location.
- History and logbook: choose entities and a time period, then Show history or Show logbook.
- Logs: errors and warnings with full details, and the full Home Assistant, Supervisor and host logs with a filter.
- Notifications and repairs: the same page as the Notifications section.
- Restart and system: Check configuration, Quick reload, Restart Home Assistant, reload buttons for each YAML part, and on Home Assistant OS, Reboot the system and Shut down the system.
- Updates: Check for updates, then Install, Release notes and Skip this version for each update.
- App preferences: spoken announcements, Describe what controls do, spoken and as tooltips, the layout of organized lists (tree or expandable groups), showing hidden entities, Refresh devices and rooms, Clear favorites, Sign out, and the app’s version, edition and last update time.
- Energy estimate numbers, when Home Assistant has a thermostat: the furnace size, gas price, air conditioner power, electricity price and fixed electricity charges that Energy’s estimates use, with Save estimates. Saving takes you back. Type “change estimates” in the Command box to get here from anywhere.
- Home Assistant’s sidebar and start page, also in App preferences: says whether Accessible Home is in Home Assistant’s sidebar, with Add Accessible Home to the sidebar if it isn’t; When Home Assistant opens, show, to choose Accessible Home, Overview or another dashboard as the page Home Assistant opens on, for you, on every device; and Switch to Home Assistant’s own view. Opened from Home Assistant’s sidebar, the app uses Home Assistant’s own sign-in, so Sign out isn’t shown there.
- Help: this guide, with a Contents list of buttons at the top that jump to each chapter. What’s new jumps straight to the change log.
- House briefing: the spoken summary of the house, played on your speakers when you’re home and on this device when you’re away, with Choose speakers and Set up a daily spoken briefing.
- Sound cues: when sounds play, their volume, and a Play button for each sound.
The Command box, the footer and the status line
These sit outside the sections and are on every screen:
- Status line, just under the Home heading: whether the app is connected, for example “Connected to Home”.
- Command box, a search landmark under the status line: type a command and press Enter. Alt plus Shift plus K jumps to it. See the Command box chapter.
- Briefing, just above the Command field: opens the house briefing. Alt plus Shift plus I.
- Home Assistant view, at the very top of the page: goes to Home Assistant’s Overview page, without loading Home Assistant again. Alt plus Shift plus H.
- Footer, the content information landmark at the very end: the app’s version and when it was last updated.
Command box, sound cues and briefing
These three features are the fastest way to use the app day to day. The Command box does things without navigating, sound cues tell you what happened without waiting for speech, and the briefing tells you the state of the house in one go.
The Command box
The Command box sits at the top of every screen, just below the status line. It’s a search landmark, so you can reach it with your screen reader’s landmark navigation, or press Alt plus Shift plus K on Windows. On iPhone it’s near the top of the screen; double-tap the Command field and type or dictate.
Type a command and press Enter, or press Do it. The result is announced and focus stays in the box, ready for the next command. Things you can say:
On and off: “kitchen light on”, “turn off the coffee maker”, “toggle porch light”.
Levels: “living room lamp 40 percent”, “set garage door to 50”, “fan 75”. A number on its own works too: “lamp 30”.
Thermostat: use your thermostat’s name, for example “hallway thermostat to 70”, “thermostat heat mode”, “thermostat cool”, “thermostat off”.
Locks, doors and covers: “lock front door”, “unlock front door” (asks first), “open garage door”, “close blinds”.
Speakers: “pause living room Sonos”, “play kitchen”, “next living room”, “mute kitchen”, “living room volume 25”.
Apple Music: say what to play and “on Apple Music”, such as “play Garth Brooks on Apple Music”, “play Friends in Low Places by Garth Brooks on Apple Music”, “play the album Ropin’ the Wind on Apple Music in the kitchen” or “Apple Music playlist Today’s Country”. You can say which kind, before or after the name, such as “playlist Today’s Country” or “my worship playlist”; otherwise the best match is played. “My” looks in your own library first. Add “shuffle” or “shuffled” anywhere to shuffle it, such as “shuffle my worship playlist on Apple Music” or “play Today’s Country shuffled on Apple Music”. It plays on the speaker you name, or the one chosen under Play on, or the last one you used, and says what’s playing and where, for example “Playing Friends in Low Places by Garth Brooks on Kitchen.” This needs Music Assistant, a free Home Assistant add-on, signed in to Apple Music. Music Assistant adds its own copy of each speaker; hide those copies in Home Assistant so your speakers aren’t listed twice.
Scenes, scripts and buttons: just say the name, such as “movie night” or “goodnight”, or “run goodnight”.
Whole rooms: a room name controls its lights, such as “kitchen off” or “living room 30 percent”. “All lights off” turns off every light.
Briefing: “briefing”, “status” or “what’s going on” opens the house briefing.
Stop: “stop” stops what’s playing on this device and closes Now playing on this device.
Grill: “grill” opens the Grill page; “grill temperatures”, “check the grill” or “how’s the grill” says each probe and about how long it has to go; “grill coach” or “how long until the meat is done” asks the Grill coach; “probe 1 target 203” sets a target, and “clear probe 1 target” removes it.
Weather: “weather” or “forecast” opens Home on the Weather part.
Energy: “energy” opens the Energy page; “how long did the heat run today” or “heating today” says today’s heating and cooling run time.
Now playing: “now playing” opens it; “what’s playing” says what’s playing and where; “volume up” and “volume down”, or “louder” and “quieter”, change it by 5 percent; “pause” and “resume” work on this device or the speaker in Play on.
Descriptions: “descriptions off” and “descriptions on” turn the spoken descriptions and tooltips on controls off and on.
Anything else is sent to Assist, so questions like “what’s the temperature outside?” or “is the front door locked?” still get an answer.
Names match loosely. You don’t need the full name, and voice assistant aliases you’ve set under Entity settings work too. If more than one device matches, the app plays a short two-note sound, says “Which one?” with the choices, and lists them as buttons just below the Command box. Choose one, or choose “None of these, ask Assist instead”.
Press the Up arrow in the Command field to bring back earlier commands, and Down to move forward again. The last 30 are remembered on each device.
Sound cues
Short sounds play alongside your screen reader, so you know what happened before speech finishes. They’re on by default. Each sound has a distinct shape:
- Turned on or opened: two notes going up.
- Turned off or closed: two notes going down.
- Done or saved: three quick rising notes.
- Something went wrong: two low buzzing notes. Always plays with an error message.
- A door or window opened: two soft knocks and a higher note.
- Something was unlocked: a quick click.
- Someone came home: three notes rising. Someone left: three notes falling.
- New notification: a high two-note ping.
- Choose an option: two gentle notes, when the Command box needs you to pick.
To change them, open Settings, then Sound cues:
- Play sound cues sets when they play: Off; For my own actions and errors; or Also for doors, locks, people coming and going, alarms and notifications (the default). Ordinary sensor changes, like temperature, never make a sound.
- Sound volume is a slider. Each change plays a sample so you can judge it. This volume is separate from your screen reader’s volume.
- Hear each sound has a Play button for every sound, so you can learn them.
On iPhone, sounds start after your first tap in the app, and they follow the ring and silent switch. If you don’t hear them, check the switch and the Sound volume slider.
House briefing
Press Briefing, just above the Command field, press Alt plus Shift plus I, type “briefing” in the Command box, or open Settings, then House briefing. It’s played as soon as it opens (see “Where it plays” below), and each part it includes has its own level 3 heading so you can review it. To begin with it includes Now, People, Climate and Needs attention; the others are there to switch on under What it includes:
- Now: greeting, time, date and weather.
- People: who’s home and who’s away.
- Climate: each thermostat’s mode, target and current temperature.
- Doors and security: open doors and windows, garage doors, unlocked locks and the alarm. Smoke, gas, leak or carbon monoxide alerts are always read first, starting with “Warning”, even when this part is switched off.
- Lights: how many are on, and which.
- Playing: what each speaker is playing.
- Coming up: the next calendar events.
- Needs attention: low batteries (under 20 percent), devices not responding, available updates, integrations with problems, notifications and suggested repairs.
At the top, a line says where it’s playing and why, then the buttons: Play on the speakers, Play on this device, Read it again (by your screen reader), Choose speakers, Set up a daily spoken briefing and Refresh.
What it includes. The last heading on the page, What it includes, has a checkbox for each part. Your choice is kept in your Home Assistant account, so every device uses it, and it applies the next time you open the briefing.
Where it plays. The heading Where it plays holds When I ask for a briefing, kept on each device:
- Automatically, to begin with:
- On the speakers when you’re home and using the app on your home network. It goes through the Announce script to the speakers that are switched on, at the Announcement volume, even during quiet hours, because you asked for it. It isn’t also sent to your iPhone.
- On this device, your phone or computer, when you’re away, or when you’re connected through Home Assistant Cloud, even from home. It plays in Now playing on this device, with Pause, Back 30 seconds and the other controls.
- If both speaker switches, Announcements in the kitchen and Announcements in the living room, are off, it plays on this device instead, and says why.
- Always on the speakers, Always on this device, or Only read by my screen reader, the way the briefing worked before.
Home or away comes from the person linked to your Home Assistant sign-in, which is you. You can also say where in the Command box: “briefing on the speakers”, or “briefing here”.
To play the briefing on particular speakers, for example only the kitchen:
- Press Choose speakers.
- Under Speakers, choose a speaker and press Add. Add as many as you like.
- Choose the Voice engine. Home Assistant Cloud is the usual choice and sounds the most natural.
- Press Play now. Your choices are remembered for next time.
This needs a text-to-speech engine. A Nabu Casa subscription includes one called Home Assistant Cloud. Without one, add Piper, which runs on your Home Assistant itself, or Google Translate text-to-speech under Settings, then Integrations.
To set up a daily spoken briefing, which plays by itself each morning:
- Open the briefing and press Set up a daily spoken briefing.
- Change the Name if you like. The default is Daily house briefing.
- Set the Time, for example 07:30.
- Under Days, untick any days to skip. All seven are ticked by default.
- Under Speakers, add each speaker it should play on.
- Choose the Voice engine.
- Leave Only when someone is home ticked so it doesn’t play to an empty house.
- Press Hear a sample now to hear exactly what it will say right now.
- Press Create the daily briefing. You’ll hear “Daily briefing created. It will play at” and the time.
The daily briefing is a normal automation, listed under Automations as Daily house briefing. To change the time, days or speakers later, edit it there. To stop it, press Disable in its actions on the Automations page, or delete it. The spoken daily version covers the time, weather, who’s home, inside temperature, low batteries and available updates. A daily briefing you set up before build 4 still says the longer version; delete it and set it up again to get the shorter one.
Controlling devices
Four sections show your devices: Favorites, Rooms, By type and Search. Every device looks the same in all of them: a heading with its name, a line describing its state, then its controls.
The four device sections
- Favorites: devices, scripts, scenes and automations you’ve marked with the Favorite button, all on one page, grouped by kind. They’re saved in your Home Assistant account, so they’re the same on every device. The app opens here if you have any.
- Rooms: a list of your rooms, grouped by floor. Choose a room to see its devices, then choose a device to control it and change its settings. This is described in detail below.
- By type: a list of device types, such as Lights, Thermostats, Speakers and media, and Locks, each with how many you have. Choose a type to see all of them on one page, grouped by room.
- Search: type part of a name, an entity ID or a room name. The number of matches is announced as you type, and up to 100 results are shown.
Hidden and diagnostic entities are left out of the device lists to reduce clutter, except battery levels, which always show. A device’s own page always shows its settings and diagnostics. To show them, turn on “Show hidden and diagnostic entities” in App preferences.
Rooms, devices and their settings
Rooms work in three levels, each on its own page: the list of rooms, one room, and one device. Back always returns to the level above, with focus on the item you came from.
Level 1, Rooms. Each floor is a level 3 heading, such as “Basement level, 1 room”, followed by a button for each room. Each button is followed by a short summary, for example “2 devices, 1 light on” or “3 devices, something playing, 68°F”. If you don’t use floors, the rooms are listed on their own. A last button, No room assigned, holds devices that aren’t in a room yet, such as a phone or a watch.
Level 2, a room. For example, Basement. It starts with the room’s summary, then buttons for All lights on, All lights off and Room settings (rename the room, change its floor or its voice assistant names). Then a level 3 heading, Devices and controls, with a count. Things of the same type, two or more, are grouped under a level 4 heading that’s a button, such as “Switches, 2, 1 on” for the washer and dryer, closed to start; open it and each one inside is a level 5 heading. A type with only one thing is a level 4 heading in the list after the groups:
- Each item is a heading, for example Washer, Dryer, or Kitchen sink one.
- Under each item, a live summary of its most important states, for example “Power: On. Run state: Washing. Remaining time: 23 min.” Battery levels are included, for example “Battery level: 80 percent. Battery state: Charging.”
- An Open button, which goes to the device’s page or, for things that aren’t part of a device, the entity’s own page.
- A quick switch if it can be turned on and off, such as the washer’s Power, so you don’t need to open it for everyday on and off. Scenes have Activate and scripts have Run.
Names are sorted so that similar names stay together: number words and digits sort the same way, so “Kitchen sink one” comes right before “Kitchen sink2”. When a device has a single control with its own name, like a Hue bulb named Kitchen sink one, the item is listed under that name, and the summary starts with the device’s own name, such as “Device: Hue white lamp 1.”
Level 3, a device. For example, Washer. It starts with the maker, model and room, then up to three sections, each a level 3 heading with a count:
- Controls and status: the device’s main controls and readings, such as Power, Run state, Remaining time and Battery level.
- Settings: options for how the device works, such as the washer’s Spin speed and Rinse count or the dryer’s Dry level. Change them right here, the same way as any other control.
- Diagnostics: technical details such as signal strength and firmware.
Each control is a level 4 heading, with More and Favorite buttons like everywhere else. Under More for this device are Device settings (name, room, labels, enabled, diagnostics download and removing the device), New automation with this device, and History. If any automations, scripts or scenes use the device, they’re listed at the end under Used by.
Example: changing the washer’s spin speed
- Open Rooms and press Basement.
- Under Devices and controls, open Switches, find the Washer heading and press Open.
- Under the Settings heading, find Spin speed and choose a new option from its list.
- The change is sent about a second after you stop, and announced, for example “Washer Spin speed: Extra high”.
Reading a device
The state line is written in plain words, for example:
- “On, 60 percent” for a dimmed light
- “Heat, set to 70°F, heating, currently 68°F” for a thermostat
- “Playing: song title by artist, volume 25” for a Sonos speaker
- “Closed” or “Motion detected” for sensors, based on the sensor’s type
The state line updates live. It isn’t announced unless your announcement setting includes that device.
Controls by device type
On and off is always a switch named after the device, so your screen reader says something like “Kitchen lamp, switch, on”. Other controls depend on what the device supports:
- Lights: Brightness slider (0 turns it off), Color temperature slider in Kelvin with warm, neutral or cool, a Color list, and an Effect list if the light has effects.
- Thermostats: a Mode list, then a Temperature swipe control. On iPhone, double-tap and hold it, then slide: a short swipe up or down changes one degree, and a longer swipe changes more, up to 15; it says the new target as you move and sends it when you let go. A flick up or down, or the arrow keys on Windows, changes one degree at a time, sent a moment after the last one. In Heat and cool mode you get separate Heat to and Cool to swipe controls. Fan, Preset and Swing lists appear if supported.
- Speakers and media: Previous, Play or Pause, Stop, Next, a Volume slider, a Mute switch, Source, Sound mode, a Shuffle switch, Repeat, Turn on and Turn off. Browse media opens the speaker’s library, such as Sonos favorites and playlists: Open goes into a folder, and each item has Play, Play next and Add to queue.
- Locks: one Options button that opens a menu with Lock or Unlock, Open if the lock has it, More and Favorite. Unlocking always asks first.
- Blinds, shades and garage doors: Open, Stop, Close, and Position and Tilt sliders if supported.
- Fans: Speed slider, Oscillate switch, Direction and Preset.
- Vacuums and lawn mowers: Start, Pause, Stop, Return to dock, Locate and Suction.
- Scenes: Activate. Scripts: Run, which becomes Stop while running. Buttons: Press.
- Automations: an Enabled switch, Run now, and Edit.
- Helpers: number helpers get a slider or a box, choice helpers a list, text helpers a text box with a Set button, and date and time helpers the matching date or time field. Counters get Increase, Decrease and Reset; timers get Start, Pause, Cancel and Finish.
- Alarm panels: Disarm and every arm mode the panel supports. If a code is needed, you’re asked for it.
- Updates: Install update, after confirmation.
- To-do lists: Open list. Calendars: Open calendar.
- Voice assistants: an Announcement box. Notification services: a Message box. Cameras: Open camera, described below.
Sliders follow standard keys: arrow keys move in small steps, Page Up and Page Down in larger steps, Home and End go to the ends. On iPhone, swipe up or down with one finger. The value is announced as you move, and the change is sent about half a second after you stop.
Lists send the change about a second after you stop moving through them, so arrowing through Thermostat Mode doesn’t switch modes on every press.
The More page
Every device has a More button. Its page shows:
- The full state and every attribute, written out as a list
- The device’s controls again
- Recent history and logbook entries
- Automations, scripts and scenes that use it
- Entity settings: name, entity ID, area, icon, voice assistant aliases, hidden and disabled
- The device it belongs to, with a link to the device page
To-do lists and calendars
Open list shows unfinished items, then finished ones. Each item has Mark done or Mark not done, Rename, and Delete. An Add item field at the top adds new items when you press Enter.
Open calendar lists events for the next 30 days, grouped by day. You can add an event with a title, start, end, an all-day option, a description and a location.
Cameras
Each camera has Open camera and a Camera on switch, if it can be turned off. The camera page has these parts:
- Motion detection switch, for cameras that support it.
- Describe what the camera sees: press Describe and an AI tells you what’s in the picture, for example “A delivery person is leaving a brown box on the front step.” The description is read out and shown on the page. You can change What to ask, for example “Is there a package at the door?” This needs an AI integration with the AI task feature, such as Google Gemini, OpenAI or Anthropic. Without one, the page explains how to add it.
- A fresh picture every time: Ring and other cameras that stream through the cloud only update their picture while live view is open. So before describing, the app opens live view for a few seconds; you’ll hear “Opening live view for a fresh picture.” The description then says whether it came from a fresh live picture or the last stored one.
- Describe on speakers: appears when the camera has a matching “Describe … camera” script, which speaks the description on your speakers. The app gets a fresh picture first, then runs the script. See “Camera descriptions on speakers” below to set one up.
- Live video: Start live video and sound plays the camera’s stream, which is useful for doorbell audio. Cameras that use WebRTC, such as Ring, play picture and sound in Chrome, Edge and Safari. For other cameras, Safari on iPhone plays picture and sound, and Chrome and Edge on Windows show the picture only. Stop live video ends it.
- Play the camera on a TV or speaker: choose a device and press Play there.
- Snapshots and recordings: Show a snapshot displays a picture for someone sighted, Download a snapshot saves one to your device, and Save a snapshot to Home Assistant stores it in the www/snapshots folder. Record a video clip saves a clip of the length you choose to www/recordings. After saving, a link opens the file.
- More camera actions: actions offered by the camera’s own integration, such as moving or zooming. Each opens the Run an action page with the camera already chosen.
Camera descriptions on speakers
The camera page can describe a picture to you on screen with no setup
beyond an AI service. To hear descriptions on your speakers, from a
favorite, the Command box or Assist, you make a short script for each
camera. The app finds it by its name: a camera called Front door uses
the script script.describe_front_door_camera. The words
“camera” and “live view” are left out of the camera’s name, so a camera
called “Front Live view” uses
script.describe_front_camera.
To make the script:
- Set up an AI service first; see “Setting up an AI service” below.
- Open Scripts and press New script.
- In Name, type for example “Describe front door
camera”. In Script ID, type
describe_front_door_camera, using your camera’s name. - Under Save and more, press Edit everything as YAML, replace what’s there with the example below, and change the three marked entity IDs to yours. Settings, then Entities, with “camera”, “ai task”, “tts” or “media player” in the filter, shows the right IDs.
- Press Save, then Run to try it.
alias: Describe front door camera
mode: single
sequence:
- action: ai_task.generate_data
data:
task_name: Describe front door camera
entity_id: ai_task.google_ai_task # your AI task entity
instructions: >-
Describe what you see in one or two short sentences, for someone
who is blind. Mention people, vehicles, animals and packages.
If nothing notable is happening, say so.
attachments:
- media_content_id: media-source://camera/camera.front_door # your camera
media_content_type: image/jpeg
response_variable: result
- action: tts.speak
target:
entity_id: tts.home_assistant_cloud # your voice engine
data:
media_player_entity_id: media_player.kitchen # your speaker
message: "Front door camera: {{ result.data }}"
To speak on more than one speaker, list them under
media_player_entity_id, one per line, each starting with a
dash. You can also press Describe a new script in words
and describe it, for example “Describe what the front door camera sees
and say it on the kitchen speaker”, then check that the Script ID
follows the pattern above.
Once the script exists, the camera page has Describe on speakers, “describe front door camera” works in the Command box, and you can mark the script as a favorite. Running it from the app gets a fresh picture first. When an automation runs it by itself, Home Assistant uses the camera’s latest stored picture, which for Ring and similar cameras is from the last motion event or live view.
To hear a description whenever there’s motion, make an automation:
- Press New automation and name it, for example “Front door motion description”.
- Add a trigger: a Device trigger for the camera’s motion, or Entity state changes on its motion sensor or motion event entity.
- Add an action: Perform an action, choose “Scripts: Turn on” and target your Describe script. Or choose the script itself from the action list.
- Under Running mode, choose Single, so a burst of motion doesn’t describe the same thing several times. To space descriptions out, add a Wait for a time action of a few minutes at the end.
- Press Save.
For Ring cameras with a Ring Protect plan, the
camera’s picture only updates when a new recording is ready, usually 25
to 40 seconds after motion. To describe the motion itself rather than
the previous recording, add a Wait until a template is
true action before running the script, with the template
{{ state_attr('camera.front_door', 'last_video_id') | string != old_video | string }}
and a 2 minute time limit, and a Set variables action
before that which sets old_video to
{{ state_attr('camera.front_door', 'last_video_id') | string }}.
Tick continue when the time limit runs out, so it still describes
something.
To turn the announcements on and off without editing anything, make a Toggle helper, for example “Front door announcements”, and add a condition Entity is in a state that checks it is On. The toggle then shows up in Favorites, Rooms and the Command box like any switch.
Scenes and scripts
A scene saves how a set of devices should be, such as Movie night with the lamp at 20 percent and the soundbar on. A script is a list of actions you run on demand, built with the same step editor as automations.
Scenes
The Scenes section lists every scene. Each has Activate and Favorite, and scenes made in the Home Assistant interface also have Edit, Duplicate and Delete. Scenes written in YAML files or created by integrations can only be activated.
To make a scene:
- Choose New scene and type a Name.
- Set your devices the way you want them, using the device sections or the device controls you already know.
- Back in the scene editor, choose an entity in “Add a device or entity” and press Add to scene with its current state. Or choose a whole device under “Or add every entity of a device” and press Add device to scene.
- Press Save.
Each device in the scene is a level 4 heading with two lines: “Saved as” (what the scene will set) and “Right now” (its current state). Its buttons are:
- Use current state: replace the saved state with how the device is right now.
- Edit saved state as YAML: type exact values, for
example
state: onandbrightness: 128on separate lines. - Remove: take the device out of the scene.
Under “Save and more”: Try this scene now applies it without saving, Use current state for every device recaptures everything at once, and Edit everything as YAML shows the whole scene.
Scripts
The Scripts section groups your scripts by category, by room, by label, or not at all; change it with Group by at the top. Each script has one main action, Run, which becomes Stop while it’s running. Its actions page, from More actions or Enter in the tree, has:
- Run or Stop
- Favorite: adds it to the Favorites page, where running a Describe camera script gets a fresh picture first
- Run with options: if the script has fields, fill them in first, then press Run
- Room, labels and name: choose which room and category the script is grouped under, give it labels, or rename it
- Edit, Run history, Duplicate and Delete
Choose New script to make one. More ways to add has Describe a new script in words, New from a blueprint and Reload scripts from YAML.
To put a script in a room or category, or give it a label, open its actions page and press Room, labels and name. Change Room, Labels or Category and press Save. To start a new category, type its name in Or a new category instead; it’s made when you save. The same works for automations and helpers.
The script editor works like the automation editor (next section), with these differences:
- There are no triggers or conditions. Its steps are under a level 3 heading named Actions.
- Script ID (new scripts only) becomes the entity ID,
for example
script.goodnight. Leave it empty to make one from the name. It can’t be changed later. - Fields are values the script asks for when run, such as a brightness or a message. Edit them with Edit fields as YAML; the editor includes an example.
- Stop steps can return a variable as the script’s response.
Automations
The automation editor is a set of labeled forms, one step at a time, with no dragging. Every trigger, condition and action Home Assistant supports is available, including device-specific ones and anything else through YAML.
The Automations list
Automations are grouped by category, by room, by label, by whether they’re enabled, or not at all; change it with Group by at the top. Each automation says its state, such as “Enabled, last ran 2 hours ago”. Its main action is Edit, which opens the editor; automations written in YAML files show View instead, which displays their YAML read-only. Its actions page, from More actions or Enter in the tree, has:
- Edit or View.
- Disable or Enable: turn the automation off or on without deleting it.
- Run actions: run the actions now, skipping triggers and conditions. Useful for testing.
- Favorite: add it to the Favorites page.
- Room, labels and name: choose which room and category it’s grouped under, give it labels, or rename it.
- Run history: see what happened on recent runs, step by step.
- Duplicate and Delete.
At the top are New automation and More ways to add, which has Describe a new automation in words, New from a blueprint, and Reload automations from YAML. A filter box narrows the list as you type.
How the editor is laid out
The editor page has these parts, in order:
- A line saying whether you have unsaved changes.
- Name (required) and Description.
- Level 3 heading When (triggers), with a count. The automation starts when any one of these happens.
- Level 3 heading And if (conditions). Optional. All must be true or nothing runs.
- Level 3 heading Then do (actions). These run in order, top to bottom.
- Level 3 heading Running mode: what happens if it starts again while still running.
- Level 3 heading Save and more: Save, Run the actions now, Edit everything as YAML, Run history, Duplicate, Discard changes and Delete.
Nothing is saved until you press Save. Leaving with unsaved changes asks first.
Working with steps
Each trigger, condition and action is a level 4 heading: its number, then a plain-language summary such as “2. When Front door changes from Closed to Open for 5 minutes”. Disabled steps end with “(disabled)”. Each step has these buttons:
- Edit: open the step’s form.
- Move up and Move down: change the order. The new position is announced and focus stays on the step.
- Duplicate: copy it, placed just below.
- Disable or Enable: keep the step but skip it.
- Delete: asks first.
Below each list is Add trigger, Add condition or Add action. That opens a page listing every type as a button, each with a one-sentence explanation, spoken when you reach it. Choosing one adds it and opens its form.
Editing a step
The step page starts with a Summary line, then a Type list (changing it clears the step’s settings, after asking). Next come the fields for that type, then a More settings group:
- Triggers: Trigger ID, a short name so conditions and actions can tell which trigger fired.
- Conditions and actions: Description, shown instead of the automatic summary.
- Enabled checkbox.
- Actions: Continue even if this step fails.
At the bottom: Done returns to the list, Edit as YAML shows just this step, and for actions Run this action now tests it immediately.
Entity choosers have a Filter box above the list when there are many entities: type part of a name and the number of matches is announced. Where several entities are allowed, chosen ones are listed with a Remove button each, and you add more with the list and an Add button.
Trigger types
- Entity state changes: entities, optional attribute, optional From and To states, and how long it must stay that way. For known device types the states are a list, such as Open and Closed for a door sensor.
- Number goes above or below a value: above, below, or both. Each can be a number or a helper’s entity ID.
- Time of day: a fixed time, or a time stored in a date-and-time helper or timestamp sensor, plus optional weekdays.
- Repeating time pattern: for example minutes
/5for every 5 minutes. - Sunrise or sunset, with an offset. Tick “Before” for a negative offset.
- Home Assistant starts or shuts down.
- Person enters or leaves a zone.
- Device trigger: choose a device, then pick from what it offers, such as “Button pressed” or “Motion detected”. Extra options, like a duration, appear after.
- Template becomes true, Event is fired, Calendar event starts or ends, Sentence said to Assist, Tag is scanned, Webhook is called, MQTT message, Notification changes, Geolocation event.
- Other trigger, written in YAML: anything else, including custom integrations.
Condition types
- Entity is in a state, optionally for at least a duration. With several entities, choose whether all or any must match.
- Number is above or below a value.
- Time and day: after, before, and weekdays.
- Before or after sunrise or sunset, with offsets.
- Person is in a zone.
- Started by a particular trigger: tick the trigger IDs you’ve given your triggers.
- All of, Any of and None of several conditions: groups with their own list of conditions inside.
- Device condition, Template is true, and Other condition, written in YAML.
Action types
- Perform an action: this is how you control anything. Choose from every action Home Assistant offers, such as “Light: Turn on” or “Notifications: Send a notification”. Type in the Filter box to narrow the list, for example “sonos” or “climate”. Then choose Targets (entities, devices, areas, floors or labels) and fill in the Options, each with its own explanation and example. Options you leave as “Not set” aren’t sent. Edit action data as YAML is there for templates.
- Wait for a time and Wait for a trigger, with an optional time limit.
- Wait until a template is true.
- Continue only if a condition is true: stops here unless the condition passes.
- If, then, otherwise: three buttons open the If conditions, Then actions and Otherwise actions.
- Choose between options: each option has its own conditions and actions, and the first matching one runs. Default actions run when none match.
- Repeat: a number of times, while or until conditions are true, or once for each item in a list.
- Run actions at the same time and Group of actions.
- Activate a scene, Device action, Fire an event, Set variables, Stop, Set the Assist response, and Other action, written in YAML.
Steps inside steps
If, Choose, Repeat, Wait for a trigger, groups and condition groups contain their own lists. On the step’s page, each inner list is a button with a count, for example “Then do these actions, 2 actions”, followed by a short numbered preview. Pressing it opens that list on its own page, which works exactly like the main lists. Done or Back takes you up a level. The page heading always names where you are, for example “Option 2 actions”.
Example: porch light at sunset
- Choose New automation and type the name “Porch light at sunset”.
- Under When, choose Add trigger, then Sunrise or sunset. Set Event to Sunset, then press Done.
- Under Then do, choose Add action, then Perform an action. In the Filter box type “light turn on” and choose “Light: Turn on”. Under Targets, add the porch light. Optionally set Brightness percentage. Press Done.
- Press Save. You’ll hear “Created and saved”.
Blueprints
New from a blueprint lists your blueprints with Use this blueprint, Re-import to update and Delete. To add one, paste its web address into Blueprint address and press Import. An automation made from a blueprint shows the blueprint’s inputs as a form instead of the step lists. Turn into a regular automation I can edit step by step converts it so you can change the steps themselves.
Run history
Run history lists recent runs, newest first, with the time, the result (“Finished”, “Stopped because a condition was not met”, “Error: …”) and what started it. Step by step shows each step in order with its time and outcome: which conditions passed, which option was chosen, which actions were performed and on what. Home Assistant keeps 5 runs by default; tick “Keep detailed run history for more runs” in the editor to keep 20.
Describe it in words
Instead of building an automation step by step, you can describe it in everyday words and an AI drafts it for you. This needs an AI service set up first; see “Setting up an AI service” below.
- On the Automations page, press More ways to add, then Describe a new automation in words.
- In What should it do?, describe it. Be specific about names, times and conditions. For example: “When the front door opens after 10 at night, announce it on the kitchen Sonos”, or “If the garage door has been open for 15 minutes, send me a notification.”
- If you have more than one AI, choose which in AI to use.
- Press Draft it. You’ll hear “Drafting”. It usually takes 5 to 20 seconds.
- The editor opens with the draft. You’ll hear “Draft ready”, then the whole automation as one sentence, then the result of an automatic check, such as “No problems found” or the first thing to look at.
- Go through the steps as usual and change anything that isn’t right.
- Press Save. Nothing is saved before this.
A note at the top of the editor reminds you it was drafted by AI, and quotes what you asked for.
If the AI can’t do what you asked, for example because you mentioned a device you don’t have, it says why and nothing is created.
To change an automation with words, open it in the editor and press Change it with words under Save and more. Describe the change, for example “only on weekends” or “also turn on the hallway light”, and press Make the change. The editor updates, reads the result back and checks it. Your changes aren’t saved until you press Save, and Discard changes undoes them.
Scripts work the same way: More ways to add, then Describe a new script in words on the Scripts page, and Change it with words in the script editor.
The AI is given the names, rooms and current states of your devices so it can use the right ones. Nothing else about your home is sent.
Plain words and checking for problems
Every automation and script editor starts with an In plain words paragraph, which describes the whole thing as sentences and updates as you edit. For example: “Porch light at sunset starts at sunset, 15 minutes before. It only continues if Front door is Closed. Then it does 2 things in order: first, Light: Turn on on Porch light; and finally, wait 5 minutes. If it starts again while still running, the new start is ignored.”
Under Save and more:
- Read it as a sentence reads that paragraph aloud without moving focus.
- Check for problems checks everything and moves focus to a Check results heading, with each finding as a level 4 heading: Problem, Warning or Tip, where it is, and what’s wrong. A Go to this step button opens the step to fix it.
The check finds, among other things:
- Entities, devices or areas that no longer exist, for example after renaming something.
- States a device never uses, such as “open” for a door sensor, which uses on and off.
- Triggers that can never fire, such as From and To being the same state.
- Conditions that can never be true, such as above 80 and below 60.
- Conditions that check a trigger ID no trigger has.
- Actions that don’t exist, or are missing a required option.
- Steps that aren’t finished, such as a device trigger with no event chosen.
- Disabled steps, as a tip.
- A motion light that waits in Single mode, with a tip to use Restart so new motion resets the timer.
- Anything Home Assistant itself rejects, using Home Assistant’s own validation.
The check also runs when you press Save. If it finds problems, you’re told the first one and asked whether to save anyway.
Setup and organization
Everything that configures Home Assistant is under Settings, grouped into Setup, People, System and This app. Each item is a button followed by a one-line description.
Integrations
The Integrations page is organized into groups, shown only when they have something in them:
- Needs attention: integrations whose sign-in expired, with Sign in again, and integrations with a problem, such as “Could not connect, retrying: Login expired”.
- Discovered on your network: devices Home Assistant found, with Set up. Their actions page also has Ignore.
- Devices and hubs, Services, Helpers and Other: everything you’ve set up, sorted by the kind of integration. Philips Hue and Sonos are hubs, for example, and weather or AI services are services.
- Ignored: discoveries you chose to ignore, with Stop ignoring.
An integration you’ve set up once is a single item, such as “Sonos, Loaded. 3 devices, 12 entities”. One you’ve set up more than once, such as two Hue bridges, is a group with one item per entry.
Each entry’s main action is Devices and entities, which opens its devices and entities as a tree. Its actions page has, depending on what it supports: Devices, Options, Reconfigure, Rename, Reload, Disable or Enable, System options, Download diagnostics, Add another and Delete.
To add an integration, choose Add integration, type part of its name in the Filter box (for example “Sonos”, “Matter” or “Fellow”), and press its button. Setup then happens one step at a time:
- Each step’s heading gets focus when it appears, followed by its explanation and form.
- If something’s wrong, an error list appears at the top and is announced, such as “Host: Failed to connect”.
- Some steps are menus: press the option you want.
- Some integrations sign in on another website. You’ll get a link that opens in a new tab; finish there, come back, and press Continue.
- While Home Assistant is working, you’ll hear “Working” and the page updates by itself.
- At the end you’ll hear “Success” and see “Done”.
- If Home Assistant stops the setup, you’ll hear
“Setup stopped” and its reason, and the page explains in plain words
what happened and what to try. Nothing is added when a setup stops. For
example:
- No devices found: Home Assistant searched your network, or nearby over Bluetooth, and found nothing it could set up. Check the device is turned on, close by and on the same network. Other ways to add opens Add integration filtered to the same brand, so you can pick another way in, such as SwitchBot Cloud instead of SwitchBot Bluetooth.
- Already set up: Open takes you to that integration’s page.
- Couldn’t connect: Try again starts the setup over once you’ve checked the device or service.
Leaving partway through asks first and cancels the setup.
Devices
Devices are listed with maker, model, room and integration. The filter matches any of those. Open goes to the Device settings page, which has:
- Its details: maker, model, firmware, serial number, what it connects through, and its own settings page link if it has one.
- Device settings: Name, Room, Labels and Enabled, saved with Save device settings. If you rename a device, you’re offered to rename its entity IDs to match.
- Controls and sensors, then Configuration and diagnostics, with the same controls as the device lists.
- Disabled or unavailable entities, each with Settings.
- Used by: automations, scripts and scenes that refer to the device.
- New automation with this device, Download diagnostics and Remove device.
Entities, including cleaning up duplicates
The Entities page organizes every entity, including hidden, disabled and read-only ones. Scripts, automations and scenes are left out, because they have their own sections; tick Include scripts, automations and scenes to show them too. Group by offers:
- Room, then device (the default): each room is a group, each device in it is a group inside, and its entities are inside that. Entities that aren’t part of a device sit directly in the room.
- Integration, then device: the same, starting from the integration, such as Ring or Sonos. Good for cleaning up.
- Kind of entity: Lights, Sensors, Switches and so on, with the entities directly inside.
Each device group starts with Device settings for the device. Each entity says its entity ID and any status, such as Disabled, Hidden or Unavailable. Show chooses All entities, Leave out disabled and hidden ones, or Only disabled, hidden, unavailable or read-only.
Each entity’s main action is Settings. Its actions page also has Details and controls, Hide or Unhide, Disable or Enable, Device settings and Delete.
To change many entities at once, press Change many at once at the top of the Entities page. For example, to clean up duplicate entities left behind by an integration:
- Type part of a name in the filter box, for example “alexa”. The filter matches names, entity IDs, integration names, rooms and status words such as “disabled”.
- Tick the entities you want, or press Select all shown.
- Under “Selected entities”, press Hide, Unhide, Disable, Enable or Delete. You can also choose a room and press Apply room, or choose a label and press Add label.
- You’re asked to confirm, then told how many succeeded and why any failed. Some integrations don’t allow deleting their entities; disabling works for those.
An entity’s Settings page has Name, Entity ID, Icon, Room, Labels, Show as (for door sensors, covers and switches), Other names for voice assistants, Visible, Enabled, and which voice assistants can control it: Assist, Alexa and Google through Home Assistant Cloud.
Areas, floors and labels
One page has all three, each a level 3 heading with an Add button and an Edit button per item.
- Areas (rooms): name, floor, icon, and other names for voice assistants. Each also has Devices.
- Floors: name, level (0 for ground, minus 1 for basement), and other names. Saving keeps you in Accessible Home.
- Labels: name, description and icon. Labels group things across rooms, such as “Christmas lights”, and can be targeted in actions.
Helpers
Helpers are values you create for automations to use. The Helpers page lists them all with Settings, Options, Entity settings, More and Delete. Create helper offers:
- Simple helpers: Toggle, Button, Number, Dropdown, Text, Date and time, Counter, Timer and Schedule. For a Schedule, type each day’s on-times one per line, like 08:00-17:00.
- Helpers with a setup: templates, groups, utility meters, thresholds and the rest. These use the same step-by-step setup as integrations.
Users and people
- Users can sign in. Add one with a display name, username, password, whether they’re an administrator, whether they can only sign in at home, and whether to also create a person. Each user has Edit, Change password and Delete.
- People are tracked for presence. Each can be linked to a user and to the device trackers that follow them, usually their phone.
Zones
Zones are places like work. Each has a name, latitude, longitude, radius in meters, icon, and whether it’s passive. Your Home zone’s location is in General settings.
Voice assistants
A voice assistant is a set of choices: language, what understands your request, speech to text, the voice that answers, and an optional wake word. The page lists each one as a level 3 heading, with “preferred” after the one your phone, voice devices and the Assist page use.
- New voice assistant and Edit open a form with Name, Language, Conversation agent, Speech-to-text engine and language, Text-to-speech engine, language and Voice, and Wake word. When you change the language or an engine, the lists below it update to match.
- If you choose an AI conversation agent, Handle common commands locally first keeps things like “turn on the kitchen light” fast and sends everything else to the AI.
- Make preferred and Delete are on each one that isn’t preferred.
- Choose what voice assistants can control lists every entity with Assist, Alexa and Google switches, and a filter.
Home Assistant Cloud
Your Nabu Casa account, if you have one. Nabu Casa is the paid service that adds remote access, Alexa and Google voice control, and natural cloud voices, and it funds Home Assistant’s development. The page says who you’re signed in as, whether the cloud is connected, and when your subscription renews.
- Remote access: a switch, with your remote address and this app’s address away from home. A checkbox allows turning remote access on from the Nabu Casa website.
- Amazon Alexa: a switch for Alexa through Home Assistant Cloud, Choose what Alexa can control, Send devices to Alexa now, and a report-state checkbox so Alexa routines can react to your sensors. This is separate from integrations that control Echo devices directly, such as Alexa Media Player.
- Google Assistant: the same controls for Google, plus a PIN that Google asks for before unlocking or opening anything.
- Cloud voice: the language and voice Home Assistant Cloud speaks with, for example in announcements on your speakers.
- Sign out of Home Assistant Cloud, after confirmation. If you’re signed out, the page shows an email and password form instead.
System
The System group in Settings covers keeping Home Assistant healthy, plus two main sections of their own: Notifications and Assist.
Notifications and repairs
The Notifications section has two level 3 headings:
- Notifications: messages from Home Assistant, newest first, each with Dismiss. Dismiss all appears when there’s more than one. New ones are announced as they arrive, unless announcements are off.
- Repairs: problems Home Assistant found, such as a deprecated setup or a breaking change coming in a future version. Each says which integration it’s from, how serious it is, and when it will stop working. Fix walks you through the fix step by step. Ignore hides it. Some have a Learn more link.
The Notifications button in the navigation shows the combined count, for example “Notifications, 2”.
Assist
Type a request, such as “turn off the kitchen lights” or “what’s the temperature inside?”, and press Enter or Send. On iPhone you can dictate into the text box. The answer is read out automatically and focus stays in the text box, so you can ask a follow-up straight away. The conversation is listed below, newest first.
Updates
- Check for updates asks Home Assistant to look now.
- Accessible Home and updates, a level 3 heading, says whether the app works with the Home Assistant you have, for example “Accessible Home: Compatible with Home Assistant 2026.10.3. Checked Saturday 9:30 AM. All 12 things it uses work.” Check now runs the check again and says “Accessible Home: Compatible.” The first time the app connects after Home Assistant updates, it runs this check by itself and says “Home Assistant was updated to 2026.10.3. Accessible Home: Compatible.” If something stopped working, you hear “Accessible Home: Not compatible” and what, and the details are here. It checks reading your devices, rooms and integrations, notifications, the media library, voice assistants, backups, the automation and script editors, the speaker, script and update actions, and, where you have them, the Announce script, the coffee scripts and coffee maker actions, and the sleep timer.
- Available lists each update with installed and new
versions and a short summary. First, each one says what it means for
Accessible Home, because the app reviews every update by itself as soon
as Home Assistant finds it, and tells you, for example “Home Assistant
Core 2026.10.3 is available. Accessible Home: Compatible.”
- Bug-fix releases, such as 2026.10.2 to 2026.10.3: the app reads the list of fixes and names the ones for your integrations, for example “Accessible Home: Compatible. Bug-fix release, with fixes for Sonos.”
- Monthly releases, such as 2026.10 to 2026.11: the app reads the release’s backward-incompatible changes, and every month in between if you skipped some, and keeps the ones that touch your integrations or the parts of Home Assistant it uses. None means “Accessible Home: Compatible.” Otherwise you hear “Accessible Home: Needs review”, with how many changes and what they touch, such as Sonos.
- Other updates: the operating system and Supervisor don’t change anything the app uses. Integrations from HACS and add-ons are checked in their own release notes for words like “breaking” or “removed”.
- What changes for Accessible Home opens a page with each change that touches your setup, as a level 3 heading with the release notes’ explanation under it.
- If the release notes can’t be read, a bug-fix release is still compatible, and a monthly release says it needs a person to review it. Install never goes ahead without the review. If the update hasn’t been reviewed yet, it reviews it first and says “Checking … against Accessible Home first”. Then it asks with the result in the question: “Accessible Home: Compatible. Bug-fix release. Install Home Assistant Core 2026.10.3?”, with Install and Not now. When an update needs review, it asks “… Installing it could break part of Accessible Home or your setup. Install anyway?”, with focus on Don’t install. After that, it offers a backup first, when that’s supported, with focus on Yes, back up first. The review also protects you in Home Assistant itself:
- Every review goes into Home Assistant’s own notifications, such as “Accessible Home: Compatible, Home Assistant Core 2026.10.3”, so you see it there too.
- An update that needs review is held back. Accessible Home uses Home Assistant’s own Skip this version, so the update leaves Home Assistant’s Updates list and its sidebar count, and can’t be installed there by accident. It’s listed here under Held back, a level 3 heading, with What changes for Accessible Home and Install anyway. Install anyway asks once more, with focus on Keep holding it back, then releases it and installs, offering a backup first.
- Because Home Assistant opens on Accessible Home, the review runs a moment after you open Home Assistant on any device, before you could reach its Updates page.
- If something stops working after an update, that goes into Home Assistant’s notifications too, as “Accessible Home: Not compatible”. Release notes shows what’s new. Skip this version hides that update.
- Install progress. While an update installs, a progress bar appears above its Install button, named, for example, “Installing Terminal & SSH: 40 percent.” It only shows real numbers reported by Home Assistant: until the first number arrives it says “Waiting for it to report its progress”, and updates that don’t report progress at all, such as the operating system, just say they’re installing, with no bar. You also hear it at 25, 50 and 75 percent, and “Finished installing” when it’s done, wherever you are in the app. When it’s done, the Updates page refreshes by itself: the update moves to Up to date with “Installed version 2026.10.3 just now”, and if you were on that update, focus goes there. An app’s own page under Add-ons shows the same bar above its Update button, and its Update goes through the same review.
- Up to date lists everything else, including skipped updates, with a button to show them again.
Backups
The Backups page says when the last and next automatic backups are.
- Back up now uses your automatic backup settings.
- Custom backup lets you name it, choose whether to include history and add-ons, choose where to store it, and set a password.
- Each backup lists its date, size, whether it’s password protected, and where it’s stored, with Download, Restore and Delete. Restore asks twice and asks for the password if needed. Home Assistant then restarts, and the app reconnects by itself.
Add-ons
Add-ons lists installed add-ons with their status and version. An add-on’s page has:
- Start or Stop, Restart, Update, Uninstall, and a link to its web interface if it has one.
- Behavior: start when the system starts, restart if it crashes, and update automatically, saved with Save behavior.
- Configuration: a form for its options, or Edit configuration as YAML. After saving, you’re offered a restart so changes take effect.
- Documentation and Log.
The Add-on store lists add-ons you can install, with a filter, plus repositories you can add or remove.
Logs
Errors and warnings lists each problem with its level, the part of Home Assistant it came from, the first message, how many times it happened and when. Full details expands the complete message and technical trace. Clear empties the list.
Under Full logs are the Home Assistant, Supervisor and host system logs. Each shows the most recent lines, with a filter box and an “Only errors and warnings” checkbox. The log text can be read line by line with your screen reader’s arrow keys.
History and logbook
Choose one or more entities and a time period, then press Show history for each entity’s changes, or Show logbook for a readable list of events (leave entities empty for everything). Results appear under a heading that receives focus, newest first. Each device’s More page also shows its last 24 hours.
General settings
Home name, units (US customary or metric), time zone, currency, country, language, and your home’s latitude, longitude, elevation and zone radius.
Restart and system
- Check configuration confirms your YAML is valid.
- Quick reload reloads most settings without restarting.
- Restart Home Assistant checks the configuration first and warns you if there’s a problem.
- Reload YAML configuration lists every part that can be reloaded on its own, such as automations or scripts.
- System shows the hostname, operating system, machine and disk use, with Reboot the system and Shut down the system. On a Home Assistant Green or Yellow, shutting down means unplugging it and plugging it back in to start it again.
Developer tools
- Run an action: choose any action, fill in its targets and options, and press Run action. If it returns data, such as a weather forecast, the response appears in a text box below.
- Template editor: type a template and press Render. The result is announced and shown below.
- States: choose an entity to see its full state and every attribute. You can also set a state by hand, which only changes what Home Assistant shows until the device reports again.
- Events: fire an event with optional data, or listen for events. Received events are listed newest first; the list doesn’t announce each one.
Setting up an AI service
Two features use AI: describing automations and scripts in words, and hearing what a camera sees. Both need an AI integration in Home Assistant that offers the AI task feature. You set it up once, and it takes about ten minutes.
Choosing a service
- Google Gemini: the easiest place to start. Google offers a free allowance that’s plenty for occasional use, and it handles camera images well.
- OpenAI (ChatGPT): works well, but you pay for usage by adding credit to an OpenAI developer account. It’s separate from a ChatGPT subscription.
- Anthropic (Claude): also pay as you go, through an Anthropic developer account.
Each needs an API key, which is a long password that lets Home Assistant use your account. You get it from the service’s website, then paste it into Home Assistant.
Step 1: Get a Google Gemini API key
- On your computer, go to aistudio.google.com and sign in with your Google account.
- Accept the terms if asked.
- Find the Get API key link. It’s in the main navigation, and you can also use your screen reader’s find command to search the page for “API key”.
- Press Create API key. If asked to choose a Google Cloud project, accept the suggested one.
- The key appears on the screen. Press its Copy button, or select the key text and copy it. Keep it private.
Google changes this website from time to time, and some parts are awkward with a screen reader. If you get stuck, a sighted helper can do these five steps in a couple of minutes; you only ever need to do it once.
For OpenAI, the key is created at platform.openai.com, under API keys, after adding credit under Billing. For Anthropic, it’s created at console.anthropic.com, under API keys, after adding credit.
Step 2: Add the integration in Home Assistant
- In Accessible Home, open Settings, then Integrations, and press Add integration.
- In the Filter box, type “Gemini” (or “OpenAI” or “Anthropic”) and press the matching button. Google’s integration may be called Google Gemini or Google Generative AI, depending on your Home Assistant version.
- On the setup form, paste your key into the API key field and press Submit.
- You’ll hear “Success”. Press Done.
Step 3: Check it worked
- Open Settings, then Entities, and type “ai task” in the filter.
- You should see an entity such as Google AI Task. If you do, you’re ready.
- If there’s no AI task entity, open Settings, then Integrations, open the integration, and look for an Options or Add AI task button. Some versions add the AI task part separately. If you can’t find one, the integration may not offer AI tasks yet; Google Gemini and OpenAI both do.
Now try it: open Automations, press More ways to add, then Describe a new automation in words, or open a camera and press Describe.
Using the same AI as your voice assistant
The same integration also adds a conversation agent, which can make Assist much better at understanding natural requests. To use it, open Settings, then Voice assistants, edit your assistant, and choose it as the Conversation agent. Tick Handle common commands locally first so everyday commands stay fast and free.
Privacy and cost
When you use these features, the AI service receives what it needs: your request, and the names, rooms and states of your devices for automation drafts, or the camera image for descriptions. Nothing is sent at any other time. Each request uses a small amount of your free allowance or credit, usually a fraction of a cent.
Security
Accessible Home can unlock doors, change settings and see your cameras, so it’s built to keep others out:
It only runs its own code. A security policy tells the browser to run nothing but the app’s own two scripts, identified by fingerprints made each time a version is built, and to talk to nothing but the Home Assistant it was opened from, and Home Assistant’s public release notes on GitHub, read when reviewing updates. If something ever slipped harmful code into a page, the browser would refuse to run it, and couldn’t send your sign-in anywhere else.
Links are checked. Links in notifications, repairs, release notes, setup steps and AI answers only work if they go to a web page, an email address, a phone number or your own Home Assistant. Anything else, such as a link that tries to run code, is shown as plain text.
It won’t open inside other websites. Opened inside another site’s page, it shows only “For your security, Accessible Home only opens on its own or from Home Assistant’s sidebar.” That stops a site from hiding it and tricking you into pressing a button such as Unlock. Home Assistant’s own sidebar and app work as always.
Risky actions ask first, wherever they come from: a button, a room, the Command box (including words passed on to Assist), a step run from the automation editor, or a scene being tried: unlocking or opening a lock, opening a garage door, door or gate, disarming an alarm without a code, turning on a siren, and turning a camera off.
Signing in is protected. Sign-in uses Home Assistant’s own sign-in page, with a random code only your browser knows, checked when you come back, so a sign-in link from someone else can’t sign you in. Inside Home Assistant’s sidebar, the app uses Home Assistant’s own sign-in. Sign out, in App preferences, ends the sign-in on Home Assistant too.
Nothing about your home leaves it except through Home Assistant itself: the app talks to your Home Assistant, which then uses your cloud services, such as Home Assistant Cloud or Google Gemini. The one exception is reviewing updates: the app reads Home Assistant’s public release notes from GitHub (api.github.com and raw.githubusercontent.com). It only asks for a release by its version number, sends nothing about your home, and the security policy allows no other outside address.
The app file itself is public. Home Assistant serves everything in its
wwwfolder, including this app, without a sign-in. Anyone on your home Wi-Fi, or anyone who knows your Nabu Casa address, can read the file, though not control anything with it: every action still needs your Home Assistant sign-in. The general edition contains nothing about any particular home.
Good habits:
- Use the normal sign-in rather than a long-lived access token. A token never expires until you delete it in your Home Assistant profile, under Security.
- On a shared or borrowed computer, use Sign out when you’re done.
- If your home address starts with http, so traffic on your home Wi-Fi isn’t encrypted. A Home Assistant Cloud address starts with https and is encrypted everywhere. Keep your Wi-Fi password private.
Troubleshooting and limits
Most problems fix themselves: the app reconnects automatically and tells you when it does. If something keeps failing, the error that was announced and the page you were on are the two things to note.
Common situations
- “Connection lost. Reconnecting.” Home Assistant restarted, or your phone or network dropped. The app keeps retrying, waiting longer each time up to 30 seconds, and says “Reconnected” when it’s back. On iPhone, reopening the app reconnects immediately.
- You’re back at the sign-in screen. Your sign-in expired or was revoked. Sign in again.
- “Home Assistant reported a problem” followed by a reason. Home Assistant refused the action. The reason usually explains it, for example a device that’s offline. Within 10 seconds you’ll also hear whether the device changed anyway, for example “Update: Washer Power is now On. The change went through after all”, or that it didn’t change.
- “Could not load this page”. Usually a feature your setup doesn’t have, or one that needs an administrator account.
- You still see the old version after updating. Reload the page. On iPhone, close the home screen app fully and open it again.
- A device seems missing. Check App preferences, “Show hidden and diagnostic entities”. New devices are announced as they appear.
Washers, dryers and other appliances that won’t turn on remotely. Many appliances only accept remote commands when remote start is enabled on the machine itself, usually by pressing or holding a button on its control panel after loading it. The machine’s manual or app calls it Remote Start or Smart Control. Until it’s enabled, Home Assistant reports an error and the app tells you the device didn’t change. Some integrations also report an error even when the command worked, because the appliance answers slowly; the app checks and tells you the real result.
Things the app doesn’t do
- Dashboards: the app replaces Home Assistant’s visual dashboards, so it doesn’t edit them.
- Energy dashboard settings and maps: not included.
- Camera sound on Windows, for some cameras: cameras that use WebRTC, such as Ring, play sound everywhere. For other cameras, Chrome and Edge show live video without sound. Safari on iPhone plays both.
- Add-on web interfaces: these open in a new tab and are only as accessible as their developers made them.
- Adding new Matter devices: pairing needs the Home Assistant app on your phone, because it uses the phone’s Bluetooth. Once added, Matter devices work fully here.
Reporting a problem
When something doesn’t work as expected, note the page heading, the button or field, and what was announced. The Logs page under Settings also often shows the underlying error.