diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7a45d78aab0..aa99b3af0d7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -57,7 +57,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v2.3.4 - name: Setting up Ruby 2.6 - uses: ruby/setup-ruby@v1.72.1 + uses: ruby/setup-ruby@v1.75.0 with: ruby-version: 2.6 - name: Setup Ruby Gems cache diff --git a/Gemfile.lock b/Gemfile.lock index 541435c2c3c..10155b0de21 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,14 +19,14 @@ GEM sass (>= 3.3.0, < 3.5) compass-import-once (1.0.5) sass (>= 3.2, < 3.5) - concurrent-ruby (1.1.8) + concurrent-ruby (1.1.9) em-websocket (0.5.2) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) eventmachine (1.2.7) eventmachine (1.2.7-x64-mingw32) - ffi (1.15.1) - ffi (1.15.1-x64-mingw32) + ffi (1.15.3) + ffi (1.15.3-x64-mingw32) forwardable-extended (2.6.0) http_parser.rb (0.6.0) i18n (1.8.10) diff --git a/_config.yml b/_config.yml index 23fd2e6247a..274f5a2a363 100644 --- a/_config.yml +++ b/_config.yml @@ -105,8 +105,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 6 -current_patch_version: 2 -date_released: 2021-06-04 +current_patch_version: 6 +date_released: 2021-06-20 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. @@ -175,6 +175,10 @@ toc: # Configuration for installation pages installation: + container: + base: "ghcr.io/home-assistant/home-assistant" + raspberrypi3: "ghcr.io/home-assistant/raspberrypi3-homeassistant" + raspberrypi4: "ghcr.io/home-assistant/raspberrypi4-homeassistant" versions: python: "3.8" types: @@ -212,3 +216,10 @@ installation: variants: - name: "ASUS Tinkerboard" key: "tinker" + + generic-x86-64: + board: Generic x86-64 + installation_media: "storage device" + variants: + - name: "Generic x86-64" + key: "generic-x86-64" diff --git a/package-lock.json b/package-lock.json index dbefe061fed..cb23b655196 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1043,9 +1043,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" diff --git a/plugins/configuration.rb b/plugins/configuration.rb index e1e65355220..a516c106346 100644 --- a/plugins/configuration.rb +++ b/plugins/configuration.rb @@ -75,7 +75,7 @@ module Jekyll " See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \ TYPES.include? type end - else + else raise ArgumentError, "Configuration type '#{attr['type']}' for key '#{key}' is not a valid type in the documentation."\ " See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \ TYPES.include? attr['type'] @@ -90,7 +90,7 @@ module Jekyll defaultValue = "" isDefault = false - if attr.key? 'default' and not attr['default'].to_s.empty? + if attr.key? 'default' and not attr['default'].to_s.empty? isDefault = true defaultValue = converter.convert(attr['default'].to_s) elsif attr['type'].to_s.include? 'boolean' @@ -98,7 +98,7 @@ module Jekyll raise ArgumentError, "Configuration key '#{key}' is a boolean type and"\ " therefore, requires a default." end - + if attr.key? 'required' # Check if required is a valid value raise ArgumentError, "Configuration key '#{key}' required field must be specified as: "\ @@ -168,7 +168,12 @@ module Jekyll <<~MARKUP
-

Configuration Variables

+

+ Configuration Variables +

+ #{render_config_vars( vars: vars, component: component, diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 0a0c56c9762..e0d8677522e 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -40,6 +40,16 @@ $primary-color: #049cdb; } } } +.feedback { + h4 { + margin: 0 0 8px !important; + + a { + text-decoration: none !important; + color: #000; + } + } +} @media only screen and (max-width: $menu-collapse) { .search-container { @@ -542,6 +552,20 @@ twitter-widget, div.config-vars { padding-bottom: 16px; + h3 { + margin-bottom: 0; + } + + .configuration-link { + font-size: 13px; + + a { + color: #8792a2; + text-decoration: none; + border-bottom: #8792a2 dotted 0.5px; + } + } + .config-vars-item { border-bottom: 1px solid #d9dbde; padding-top: 16px; diff --git a/source/_docs/automation/modes.markdown b/source/_docs/automation/modes.markdown index 70b083f3f07..81f6321a5e9 100644 --- a/source/_docs/automation/modes.markdown +++ b/source/_docs/automation/modes.markdown @@ -11,7 +11,7 @@ Mode | Description -|- `single` | (Default) Do not start a new run. Issue a warning. `restart` | Start a new run after first stopping previous run. -`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. +`queued` | Start a new run after all previous runs complete. Runs are guaranteed to execute in the order they were queued. Note that subsequent queued automations will only join the queue if any conditions it may have are met at the time it is triggered. `parallel` | Start a new, independent run in parallel with previous runs.

diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index 67afdee479b..5b61f9289a5 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -1,56 +1,36 @@ --- -title: "Configuring Home Assistant" -description: "Configuring Home Assistant." +title: "Configuration.yaml" +description: "Configuring Home Assistant via text files." --- -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. +While you can configure most of Home Assistant directly from the user interface under {% my configuration %}, some parts need you to edit `configuration.yaml`. This file contains integrations to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality. -The web interface can be found at `http://ip.ad.dre.ss:8123/` - for example if your Home Assistant system has the IP address `192.168.0.40` then you'll find the web interface as `http://192.168.0.40:8123/`. - -The location of the folder differs for different 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 along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality. - -If you run into trouble while configuring Home Assistant, refer the [configuration troubleshooting page](/getting-started/troubleshooting-configuration/) and at the [`configuration.yaml` examples](/examples/#example-configurationyaml). - -

- - 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 script as the user you logged in to Home Assistant as. Configuration changes can also be tested using the UI by navigating to Configuration, Server Controls and clicking "Check Configuration". - -
+If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/getting-started/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml). ## Editing `configuration.yaml` -There are many ways you can edit `configuration.yaml`. Here are three options to get you started: +The easiest option to edit `configuration.yaml` is to use the {% my supervisor_addon title="Visual Studio Code add-on" addon="a0d7b954_vscode" %}. VS Code offers live syntax checking and auto-fill of various Home Assistant entities (if unavailable on your system, use {% my supervisor_addon title="File Editor add-on" addon="core_configurator" %} instead). -The simplest way is to use the "File Editor" add-on. This will allow you to edit your configuration from within Home Assistant itself. +If you prefer to use a file editor on your computer, use the {% my supervisor_addon title="Samba add-on" addon="core_samba" %} to access the files as a network share. -The most robust option is to load the Visual Studio Code add-on. VS Code offers live syntax checking and auto-fill of various Home Assistant entities. +_If you use Home Assistant Container, you can find `configuration.yaml` in the config folder that you mounted in your container._ -You can use Samba file share (you 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. +_If you use Home Assistant Core, you can find `configuration.yaml` in the config folder passed to the `hass` command (default is `~/.homeasssistant`)._ ## Reloading changes -You will have to restart Home Assistant for most changes to `configuration.yaml` to take effect. -You can load changes to the following components without restarting, by using the UI. Navigate to Configuration, Server Controls and scrolling down to the YAML configuration reloading: [automations](/docs/automation/), [core (customize)](/docs/configuration/customizing-devices/), [groups](/integrations/group/), [history stats](/integrations/history_stats/), [HomeKit](/integrations/homekit/), [input_booleans](/integrations/input_boolean/), [input_datetimes](/integrations/input_datetime/), [input_numbers](/integrations/input_number/), [input_selects](/integrations/input_select/), [input_texts](/integrations/input_text/), [MQTT](/integrations/mqtt/), [persons](/integrations/person/), [scenes](/integrations/scene/), [scripts](/integrations/script/), [statistics](/integrations/statistics/), [template sensors](/integrations/template/), [timers](/integrations/timer/), [zones](/integrations/zone/), and more without restarting. +Most integrations in Home Assistant that do not interact with devices or services can reload changes made to their configuration in `configuration.yaml`. To do this, go to {% my server_controls title="Configuration -> Server Control" %} and scroll down to the YAML configuration reloading section (alternative, hit "c" in the UI and search for it). + +If you can't see your integration listed there, you will need to restart Home Assistant for changes to take effect.
-If you have made any changes, remember to [check your configuration](/docs/configuration/troubleshooting/#problems-with-the-configuration) before trying to reload or restart. + Test any changes to your configuration files from the command line check out the common tasks for [operating system](/common-tasks/os/#configuration-check), [supervised](/common-tasks/supervised/#configuration-check), [container](/common-tasks/container/#configuration-check), [core](/common-tasks/core/#configuration-check) for how to do that. Configuration changes can also be tested using the UI by navigating to {% my server_controls title="Configuration -> Server Control" %} and clicking "Check Configuration".
## 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. +The preferred way of migrating to a new system is by {% my supervisor_snapshots title="making a backup" %}. + +If you run the container or core installation methods, you will need to manually make a backup of your configuration folder. 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. diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 91094ac2281..83315bea506 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -19,7 +19,7 @@
  • - {% active_link /docs/configuration/ Configuration %} + {% active_link /docs/configuration/ Configuration.yaml %}
  • -

    Home Assistant keeps your data local, not need for a cloud.

    +

    Home Assistant keeps your data local, no need for a cloud.

    Home Assistant communicates with your devices locally, and will fallback diff --git a/source/_includes/feedback.html b/source/_includes/feedback.html index 9381cbab459..4524e9aa43f 100644 --- a/source/_includes/feedback.html +++ b/source/_includes/feedback.html @@ -1,6 +1,6 @@ {% unless page.feedback == false %} -

    - Help us to improve our documentation
    +