Configuring Home Assistant

When launched for the first time, Home Assistant will create a default configuration file enabling the web interface and device discovery. It can take up to a minute after startup for your devices to be discovered and appear in the user interface.

The web interface can be found at - for example if your Home Assistant system has the IP address then you’ll find the web interface as

The location of the folder differs between operating systems:

OS Path
Home Assistant /config
Docker /config
macOS ~/.homeassistant
Linux ~/.homeassistant

If you want to use a different folder for configuration, use the configuration command line parameter: hass --config path/to/config.

Inside your configuration folder is the file configuration.yaml. This is the main file that contains integrations to be loaded with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable functionality.

If you run into trouble while configuring Home Assistant, have a look at the configuration troubleshooting page and at the configuration.yaml examples.

Test any changes to your configuration files from the command line with hass --script check_config. This script allows you to test changes without the need to restart Home Assistant. Remember to run this as the user you run Home Assistant as.

Editing configuration.yaml

There are many ways you can edit configuration.yaml. Here are three options to get you started:

The simplest is to use the “File Editor” add-on. This will allow you to edit your configuration from within Home Assistant itself.

You can also use Samba (you may need to install the “Samba” add-on) and your favorite file editor.

The most basic is to use SSH to connect to the system (you may need to install the SSH add-on) and then use nano (or vim) to edit the file.

Reloading changes

You will have to restart Home Assistant for most changes to configuration.yaml to take effect. You can load changes to automations, core (customize), groups, input_booleans, input_datetimes, input_numbers, input_selects, input_texts, persons, scenes, scripts, timers, and zones without restarting.

If you’ve made any changes, remember to check your configuration before trying to reload or restart.

Migrating to a new system

If you want to migrate your configuration to a new system then you can copy the contents of your configuration folder from the current system to the new system. Be aware that some of the files you need start with ., which is hidden by default from both ls (in SSH), in Windows Explorer, and macOS Finder. You’ll need to ensure that you’re viewing all files before you copy them.