diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5a3f6a3285a..5275767a360 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v2.4.0 - name: Setting up Node.js - uses: actions/setup-node@v2.4.1 + uses: actions/setup-node@v2.5.0 with: node-version: 16.x cache: "npm" @@ -27,7 +27,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v2.4.0 - name: Setting up Node.js - uses: actions/setup-node@v2.4.1 + uses: actions/setup-node@v2.5.0 with: node-version: 16.x cache: "npm" diff --git a/Gemfile.lock b/Gemfile.lock index 66a37b4305d..b48520446c6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -20,15 +20,15 @@ GEM compass-import-once (1.0.5) sass (>= 3.2, < 3.5) concurrent-ruby (1.1.9) - em-websocket (0.5.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) eventmachine (1.2.7) eventmachine (1.2.7-x64-mingw32) ffi (1.15.4) ffi (1.15.4-x64-mingw32) forwardable-extended (2.6.0) - http_parser.rb (0.6.0) + http_parser.rb (0.8.0) i18n (1.8.11) concurrent-ruby (~> 1.0) jekyll (4.2.1) diff --git a/_config.yml b/_config.yml index cd2d8868e02..408db250ad3 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2021 current_minor_version: 11 -current_patch_version: 2 -date_released: 2021-11-09 +current_patch_version: 5 +date_released: 2021-11-19 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/package-lock.json b/package-lock.json index 9b7c89bcb93..3a83fe783a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,12 @@ "name": "home-assistant.io", "version": "1.0.0", "devDependencies": { - "remark-cli": "^10.0.0", + "remark-cli": "^10.0.1", "remark-frontmatter": "^4.0.1", "remark-lint": "^9.1.0", "remark-lint-fenced-code-flag": "^3.1.0", "remark-lint-no-shell-dollars": "^3.1.0", - "remark-stringify": "^10.0.1", + "remark-stringify": "^10.0.2", "textlint": "^12.0.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^2.1.5" @@ -4826,9 +4826,9 @@ } }, "node_modules/remark-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.0.tgz", - "integrity": "sha512-Yc5kLsJ5vgiQJl6xMLLJHqPac6OSAC5DOqKQrtmzJxSdJby2Jgr+OpIAkWQYwvbNHEspNagyoQnuwK2UCWg73g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.1.tgz", + "integrity": "sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ==", "dev": true, "dependencies": { "remark": "^14.0.0", @@ -4969,9 +4969,9 @@ } }, "node_modules/remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", @@ -9669,9 +9669,9 @@ } }, "remark-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.0.tgz", - "integrity": "sha512-Yc5kLsJ5vgiQJl6xMLLJHqPac6OSAC5DOqKQrtmzJxSdJby2Jgr+OpIAkWQYwvbNHEspNagyoQnuwK2UCWg73g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-10.0.1.tgz", + "integrity": "sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ==", "dev": true, "requires": { "remark": "^14.0.0", @@ -9773,9 +9773,9 @@ } }, "remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "dev": true, "requires": { "@types/mdast": "^3.0.0", diff --git a/package.json b/package.json index 574370f2be9..0a17b67f469 100644 --- a/package.json +++ b/package.json @@ -4,12 +4,12 @@ "version": "1.0.0", "dependencies": {}, "devDependencies": { - "remark-cli": "^10.0.0", + "remark-cli": "^10.0.1", "remark-frontmatter": "^4.0.1", "remark-lint": "^9.1.0", "remark-lint-fenced-code-flag": "^3.1.0", "remark-lint-no-shell-dollars": "^3.1.0", - "remark-stringify": "^10.0.1", + "remark-stringify": "^10.0.2", "textlint": "^12.0.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^2.1.5" diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index ef930d451a6..821f721fcd8 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -46,7 +46,7 @@ automation: ## Trigger variables -Similar to [script level variables](/integrations/script/#variables), `trigger_variables` will be available in trigger templates with the difference that only [limited templates](/docs/configuration/templating/#limited-templates) can be used to pass a value to the trigger variable. +Similar to [script level variables](/integrations/script/#variables), `trigger_variables` will be available in [trigger templates](/docs/automation/templating) with the difference that only [limited templates](/docs/configuration/templating/#limited-templates) can be used to pass a value to the trigger variable. ## Event trigger diff --git a/source/_docs/backend/database.markdown b/source/_docs/backend/database.markdown index eb329f51cc3..5de5e083790 100644 --- a/source/_docs/backend/database.markdown +++ b/source/_docs/backend/database.markdown @@ -125,16 +125,6 @@ group.all_switches 8018 ### Delete -If you don't want to keep certain entities, you can delete them permanently: - -```bash -sqlite> DELETE FROM states WHERE entity_id="sensor.cpu"; -``` - -The `VACUUM` command cleans your database. - -```bash -sqlite> VACUUM; -``` +If you don't want to keep certain entities, you can delete them permanently by using the [services provided by the recorder](/integrations/recorder/#service-purge_entities). For a more interactive way of working with the database, check the [Data Science Portal](https://data.home-assistant.io/). diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown index 61e1bcb2b5d..f0cb19467c5 100644 --- a/source/_docs/configuration.markdown +++ b/source/_docs/configuration.markdown @@ -31,6 +31,6 @@ If you can't see your integration listed there, you will need to restart Home As ## Migrating to a new system -The preferred way of migrating to a new system is by {% my supervisor_snapshots title="making a backup" %}. +The preferred way of migrating to a new system is by {% my supervisor_backups 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/_docs/configuration/splitting_configuration.markdown b/source/_docs/configuration/splitting_configuration.markdown index d39470930b5..43472c7eb24 100644 --- a/source/_docs/configuration/splitting_configuration.markdown +++ b/source/_docs/configuration/splitting_configuration.markdown @@ -79,7 +79,9 @@ switch: !include switch.yaml device_tracker: !include device_tracker.yaml ``` -Nesting `!include`s (having an `!include` within a file that is itself `!include`d) isn't going to work. You can, however, have multiple top-level `!include`s for a given integration, if you give a different label to each one: +Nesting `!include`s (having an `!include` within a file that is itself `!include`d) will also work. + +You can, as well, have multiple top-level `!include`s for a given integration, if you give a different label to each one: ```yaml light: @@ -198,6 +200,8 @@ If you have many configuration files, Home Assistant provides a CLI that allows We offer four advanced options to include whole directories at once. Please note that your files must have the `.yaml` file extension; `.yml` is not supported. +This will allow you to `!include` files with `.yml` extensions from within the `.yaml` files; without those `.yml` files being imported by the following commands themselves. + - `!include_dir_list` will return the content of a directory as a list with each file content being an entry in the list. The list entries are ordered based on the alphanumeric ordering of the names of the files. - `!include_dir_named` will return the content of a directory as a dictionary which maps filename => content of file. - `!include_dir_merge_list` will return the content of a directory as a list by merging all files (which should contain a list) into 1 big list. diff --git a/source/_docs/mqtt.markdown b/source/_docs/mqtt.markdown index 3f9f5145631..980afb7922d 100644 --- a/source/_docs/mqtt.markdown +++ b/source/_docs/mqtt.markdown @@ -5,15 +5,9 @@ description: "Details about the MQTT support of Home Assistant." MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things" connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport. -To integrate MQTT into Home Assistant, add the following section to your `configuration.yaml` file: +To integrate MQTT into Home Assistant, you need to setup the [MQTT integration](/integrations/mqtt). -```yaml -# Example configuration.yaml entry -mqtt: - broker: IP_ADDRESS -``` - -For detailed setup instructions, please refer to the [MQTT broker](/docs/mqtt/broker) documentation. +You will also need to setup an MQTT broker, please refer to the [MQTT broker](/docs/mqtt/broker) documentation. ## Additional features diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index ddcd6c2ee45..ff6cb602034 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -319,8 +319,9 @@ The following software has built-in support for MQTT discovery: - [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0) - [SmartHome](https://github.com/roncoa/SmartHome) - [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted) -- [Teleinfo MQTT](https://github.com/fmartinou/teleinfo-mqtt) (starting with 3.0.0) -- [What's up Docker?](https://github.com/fmartinou/whats-up-docker) (starting with 3.5.0) +- [Teleinfo MQTT](https://fmartinou.github.io/teleinfo-mqtt/) (starting with 3.0.0) +- [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/) +- [What's up Docker?](https://fmartinou.github.io/whats-up-docker/) (starting with 3.5.0) - [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt) - [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks) - [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt) diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown index 9a991597106..a600a91ce07 100644 --- a/source/_docs/scripts.markdown +++ b/source/_docs/scripts.markdown @@ -429,8 +429,9 @@ For example: {% raw %} ```yaml -- while: "{{ is_state('sensor.mode', 'Home') and repeat.index < 10 }}" - sequence: +- repeat: + while: "{{ is_state('sensor.mode', 'Home') and repeat.index < 10 }}" + sequence: - ... ``` @@ -479,8 +480,9 @@ For example: {% raw %} ```yaml -- until: "{{ is_state('device_tracker.iphone', 'home') }}" - sequence: +- repeat: + until: "{{ is_state('device_tracker.iphone', 'home') }}" + sequence: - ... ``` {% endraw %} diff --git a/source/_docs/tools/quick-bar.markdown b/source/_docs/tools/quick-bar.markdown index 8fa25af319a..561ad33a3e3 100644 --- a/source/_docs/tools/quick-bar.markdown +++ b/source/_docs/tools/quick-bar.markdown @@ -36,7 +36,7 @@ Similar to {% my entities title="Configuration -> Entities" %}, but more lightwe Filter for entities in Quick Bar's entity filter mode

-Once launched, start typing your entity id (or ["bits and pieces" of your entity id](#search-by-bits-and-pieces-rather-than-complete-substring)) to get back a filtered list of entities. Clicking on an entity (or hitting `enter` when the desired entity is highlighted) will open the "More Info" dialog for that entity. +Once launched, start typing your entity id (or ["bits and pieces" of your entity id](#search-by-bits-and-pieces-rather-than-an-exact-substring)) to get back a filtered list of entities. Clicking on an entity (or hitting `enter` when the desired entity is highlighted) will open the "More Info" dialog for that entity. This is helpful when, say, you are in the middle of writing an automation and need some quick insight about an entity but don't want to navigate away to Developer Tools. @@ -55,6 +55,7 @@ Run various commands from anywhere without having to navigate to another view. Type | Available | | ------------- | ------------- | +| Navigate | All entries in the sidebar and settings | | Reload | All currently-supported "Reload {domain}" services.
*(E.g., "Reload Scripts")* | | Server | Restart/Stop | diff --git a/source/_includes/common-tasks/commandline.md b/source/_includes/common-tasks/commandline.md index ee40123c174..530ea7087d7 100644 --- a/source/_includes/common-tasks/commandline.md +++ b/source/_includes/common-tasks/commandline.md @@ -58,7 +58,7 @@ Replace x.y.z with the desired version like `--version {{current_version}}` You can get a better description of the CLI capabilities by typing `ha help`: -```bash +```txt The Home Assistant CLI is a small and simple command line utility that allows you to control and configure different aspects of Home Assistant @@ -69,6 +69,7 @@ Available Commands: addons Install, update, remove and configure Home Assistant add-ons audio Audio device handling. authentication Authentication for Home Assistant users. + backups Create, restore and remove backups banner Prints the CLI Home Assistant banner along with some useful information cli Get information, update or configure the Home Assistant cli backend core Provides control of the Home Assistant Core @@ -84,7 +85,6 @@ Available Commands: observer Get information, update or configure the Home Assistant observer os Operating System specific for updating, info and configuration imports resolution Resolution center of Supervisor, show issues and suggest solutions - backups Create, restore and remove backups supervisor Monitor, control and configure the Home Assistant Supervisor Flags: @@ -102,6 +102,5 @@ Use "ha [command] --help" for more information about a command. {% if page.installation == "os" %} ### Console access -You can also access the Home Assistant Operating System via a directly connected keyboard and monitor, the console. To log in to the physical console the username is `root`, with no password. - +You can also access the Home Assistant Operating System via a directly connected keyboard and monitor, the console. {% endif %} diff --git a/source/_includes/common-tasks/enable_i2c.md b/source/_includes/common-tasks/enable_i2c.md index 252aca836d9..27877fd75f6 100644 --- a/source/_includes/common-tasks/enable_i2c.md +++ b/source/_includes/common-tasks/enable_i2c.md @@ -45,11 +45,11 @@ and make sure the first partition is available. Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System. -You can enable i2c via this terminal: +You can enable I2C via this terminal: - Login as `root`. - Type `login` and press enter to access the shell. -- Type the following to enable i2c, you may need to replace `sda1` with `sdb1` or `mmcblk0p1` depending on your platform: +- Type the following to enable I2C, you may need to replace `sda1` with `sdb1` or `mmcblk0p1` depending on your platform: ```shell mkdir /tmp/mnt @@ -65,5 +65,5 @@ You can enable i2c via this terminal: After rebooting the host there should be `i2c-0` and similar device files in `/dev`. If such device files are missing, enabling I2C failed for some reason. You can check the status of I2C kernel modules by using `lsmod | grep i2c` in the terminal. If they are loaded, you should find at least the entry `i2c_dev`. Active usage of the modules is indicated by a number, e.g. `i2c_dev 20480 2` would indicate two active I2C device files. -An active I2C can also be check with a multi meter showing 3.3 V on the I2C pins GPIO2 and GPIO3. +An active I2C can also be checked with a multi meter showing 3.3 V on the I2C pins GPIO2 and GPIO3. diff --git a/source/_includes/installation/container.md b/source/_includes/installation/container.md index 5c05b6bb33e..279c26f96b8 100644 --- a/source/_includes/installation/container.md +++ b/source/_includes/installation/container.md @@ -13,7 +13,11 @@ If you are using Docker then you need to be on at least version 19.03.9, ideally ### Platform Installation -Installation with Docker is straightforward. Adjust the following command so that `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it. +Installation with Docker is straightforward. Adjust the following command so that: + +* `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it. +* `MY_TIME_ZONE` is a [tz database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), like `TZ=America/Los_Angeles`. + {% endif %} {% if page.installation_type == 'raspberrypi' %} diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 92a7d583216..0edb9a933af 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -284,7 +284,6 @@ alexa: type: string filter: description: Filter domains and entities for Alexa. ([Configure Filter](#configure-filter)) - required: true type: map keys: include_domains: diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown index 97ef248fdcb..efc120e29fa 100644 --- a/source/_integrations/august.markdown +++ b/source/_integrations/august.markdown @@ -33,6 +33,7 @@ The `august` integration allows you to integrate your [August](https://august.co - August Doorbell Cam (Gen 1, Gen2) - August View - Yale Assure Locks with August/Yale Connect Module +- Yale Conexis L1 with August/Yale Connect Module There is currently support for the following device types within Home Assistant: diff --git a/source/_integrations/aurora_abb_powerone.markdown b/source/_integrations/aurora_abb_powerone.markdown index 03f1f7840cf..c0983e4e3b6 100644 --- a/source/_integrations/aurora_abb_powerone.markdown +++ b/source/_integrations/aurora_abb_powerone.markdown @@ -21,8 +21,7 @@ The inverter was formerly made by PowerOne who got taken over by ABB. The TCP/IP method of communicating with inverters is supported by the Python library, but not by this implementation in this integration. -This integration creates the inverter as a device with two sensors, reporting live power output in Watts and device temperature. - +This integration creates the inverter as a device with three sensors, reporting live power output in Watts, energy generated in kWh and device temperature. Note the PV inverter will be unresponsive to communications when in darkness, so the sensors will report 'Unavailable' during the night. diff --git a/source/_integrations/binary_sensor.group.markdown b/source/_integrations/binary_sensor.group.markdown index 01a3b181b12..dbb98c88394 100644 --- a/source/_integrations/binary_sensor.group.markdown +++ b/source/_integrations/binary_sensor.group.markdown @@ -46,7 +46,7 @@ all: type: boolean default: false device_class: - description: The type of the group (/integrations/binary_sensor). - required: true + description: Sets the [device class](/integrations/binary_sensor/) of this binary sensor group, changing the device state and icon that is displayed in the frontend. + required: false type: string {% endconfiguration %} diff --git a/source/_integrations/binary_sensor.markdown b/source/_integrations/binary_sensor.markdown index f2b43de27ed..47fc263c988 100644 --- a/source/_integrations/binary_sensor.markdown +++ b/source/_integrations/binary_sensor.markdown @@ -68,6 +68,7 @@ The full list of supported binary sensor device classes is below - **smoke**: `on` means smoke detected, `off` means no smoke (clear) - **sound**: `on` means sound detected, `off` means no sound (clear) - **tamper**: `on` means tampering detected, `off` means no tampering (clear) +- **update**: `on` means update available, `off` means up-to-date - **vibration**: `on` means vibration detected, `off` means no vibration (clear) - **window**: `on` means open, `off` means closed diff --git a/source/_integrations/broadlink.markdown b/source/_integrations/broadlink.markdown index a220d1feb64..17b4b877605 100644 --- a/source/_integrations/broadlink.markdown +++ b/source/_integrations/broadlink.markdown @@ -53,7 +53,7 @@ The `remote` entities allow you to learn and send codes with universal remotes. ### Learning commands -Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#Learned%20codes%20storage%20location). They can be sent with the `remote.send_command` service later. +Use `remote.learn_command` to learn IR and RF codes. These codes are grouped by device and stored as commands in the [storage folder](#learned-codes-storage-location). They can be sent with the `remote.send_command` service later. | Service data attribute | Optional | Description | | ---------------------- | -------- | ------------------------------------- | @@ -157,7 +157,7 @@ When the LED blinks for the first time, press the button you want to learn. Then #### Learned codes storage location -The learned codes are stored in `/configuration/.storage/` in a JSON file called `broadlink_remote_MACADDRESS_codes`. You can open this file with a text editor and copy the codes to set up [custom IR/RF switches](#Setting%20up%20custom%20IR/RF%20switches) or to send them as [base64 codes](#Sending%20a%20base64%20code), but beware: the files in the .storage folder _should never be edited manually_. +The learned codes are stored in `/configuration/.storage/` in a JSON file called `broadlink_remote_MACADDRESS_codes`. You can open this file with a text editor and copy the codes to set up [custom IR/RF switches](#setting-up-custom-irrf-switches) or to send them as [base64 codes](#sending-a-base64-code), but beware: the files in the .storage folder _should never be edited manually_. ### Sending commands diff --git a/source/_integrations/cover.template.markdown b/source/_integrations/cover.template.markdown index 871f0704c6c..b25271974f4 100644 --- a/source/_integrations/cover.template.markdown +++ b/source/_integrations/cover.template.markdown @@ -233,6 +233,10 @@ cover: service: script.cover_group_position data: position: "{{position}}" + set_cover_tilt_position: + service: script.cover_group_tilt_position + data: + tilt: "{{tilt}}" value_template: "{{is_state('sensor.cover_group', 'open')}}" icon_template: >- {% if is_state('sensor.cover_group', 'open') %} diff --git a/source/_integrations/deluge.markdown b/source/_integrations/deluge.markdown index cec461f92d1..ef0e4c18989 100644 --- a/source/_integrations/deluge.markdown +++ b/source/_integrations/deluge.markdown @@ -18,7 +18,7 @@ There is currently support for the following device types within Home Assistant: - [Sensor](#sensor) - [Switch](#switch) -To be able to use this integration, you have to enable the following option in deluge settings: Daemon > Allow remote controls +To be able to use this integration, you have to enable the following option in deluge settings: Daemon > Allow Remote Connections ## Sensor diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index 68130e8d6fa..9ed4ca3a7bf 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -65,6 +65,7 @@ Known supported devices: - Marantz SR5008 - Marantz SR5011 - Marantz SR6007 - SR6012 +- Marantz SR7007 - Marantz SR8015 - Marantz NR1504 - Marantz NR1506 diff --git a/source/_integrations/deutsche_bahn.markdown b/source/_integrations/deutsche_bahn.markdown index 501bb605719..82a8477b93f 100644 --- a/source/_integrations/deutsche_bahn.markdown +++ b/source/_integrations/deutsche_bahn.markdown @@ -49,12 +49,10 @@ This sensor stores a lot of attributes which can be accessed by other sensors, e ```yaml # Example configuration.yaml entry -sensor: - platform: template - sensors: - next_departure: - value_template: "{{ state_attr('sensor.munich_to_ulm', 'next') }}" - friendly_name: "Next departure" +template: + - sensor: + - name : "Next departure" + state: "{{ state_attr('sensor.munich_to_ulm', 'next') }}" ``` {% endraw %} diff --git a/source/_integrations/discovery.markdown b/source/_integrations/discovery.markdown index 7051021b9cb..4b1230141fa 100644 --- a/source/_integrations/discovery.markdown +++ b/source/_integrations/discovery.markdown @@ -12,7 +12,6 @@ Home Assistant can discover and automatically configure [zeroconf](https://en.wi * [Bluesound speakers](/integrations/bluesound) * [Bose Soundtouch speakers](/integrations/soundtouch) - * [DLNA DMR enabled devices](/integrations/dlna_dmr) * [Enigma2 media player](/integrations/enigma2) * [Frontier Silicon internet radios](/integrations/frontier_silicon) * [LG Soundbars](/integrations/lg_soundbar) @@ -31,8 +30,6 @@ discovery: ignore: - yamaha - logitech_mediaserver - enable: - - dlna_dmr ``` {% configuration discovery %} @@ -60,10 +57,6 @@ Valid values for ignore are: * `tellstick`: Telldus Live * `yamaha`: Yamaha media player -Valid values for enable are: - - * `dlna_dmr`: DLNA DMR enabled devices - ## Troubleshooting ### mDNS and UPnP diff --git a/source/_integrations/edimax.markdown b/source/_integrations/edimax.markdown index f99fde9bfe1..d8b1ab742e1 100644 --- a/source/_integrations/edimax.markdown +++ b/source/_integrations/edimax.markdown @@ -58,7 +58,7 @@ template: - name: Edimax Accumulated daily power consumption unit_of_measurement: "kWh" - state: "{{ state_attr('switch.edimax_smart_plug', 'current_power_w') | default(0, true) }}" + state: "{{ state_attr('switch.edimax_smart_plug', 'today_energy_kwh') | default(0, true) }}" ``` {% endraw %} diff --git a/source/_integrations/emulated_roku.markdown b/source/_integrations/emulated_roku.markdown index 44ed3edd615..703eceac4a8 100644 --- a/source/_integrations/emulated_roku.markdown +++ b/source/_integrations/emulated_roku.markdown @@ -123,6 +123,26 @@ The following is an example implementation of an automation: entity_id: media_player.amplifier ``` +## Selecting apps, channels, or favorites + +Apps, channels, and favorites are exposed as media content to the integration. You can see which ones are available by clicking the media button in the media player more info card for your TV. To capture the `content_id` for the one you want to use in an automation or script, turn your logging on to debug level and tail the log while choosing the media content in the media player more info card. You will find a log message that looks like this when you choose the media: + +```txt +2021-11-22 01:45:14 DEBUG (MainThread) [homeassistant.core] Bus:Handling +``` + +Then you can turn that into a service call for the script or automation like the following, which can then open the app/channel/favorite automatically. + +```yaml +service: media_player.play_media +data: + media_content_id: com.amazon.ignition.IgnitionActivity-com.amazon.amazonvideo.livingroom + media_content_type: app +target: + entity_id: + - media_player.philips936_tv +``` + ## Troubleshooting If you change your advertised IP or ports, you will have to re-add the emulated Roku in your app. diff --git a/source/_integrations/flume.markdown b/source/_integrations/flume.markdown index 4dd0ba32c95..8c82bd82711 100644 --- a/source/_integrations/flume.markdown +++ b/source/_integrations/flume.markdown @@ -35,13 +35,11 @@ The following YAML creates a binary sensor. This requires the default sensor to ```yaml # Example configuration.yaml entry -binary_sensor: - - platform: template - sensors: - flume_status: - friendly_name: "Flume Flow Status" - value_template: >- - {{ states.sensor.flume_sensor.state != "0" }} +template: + - binary_sensor: + - name: "Flume Flow Status" + state: >- + {{ states('sensor.flume_sensor') != "0" }} ``` {% endraw %} diff --git a/source/_integrations/geo_json_events.markdown b/source/_integrations/geo_json_events.markdown index c15b1e884f5..677a990dbbb 100644 --- a/source/_integrations/geo_json_events.markdown +++ b/source/_integrations/geo_json_events.markdown @@ -1,7 +1,6 @@ --- title: GeoJSON description: Instructions on how to integrate GeoJSON feeds into Home Assistant. -logo: geo_location.png ha_category: - Geolocation ha_iot_class: Cloud Polling diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown index ce3d0b0e473..f1b89077976 100644 --- a/source/_integrations/google_assistant.markdown +++ b/source/_integrations/google_assistant.markdown @@ -59,7 +59,7 @@ To use Google Assistant, your Home Assistant configuration has to be [externally Screenshot: Account linking 3. Select the `Develop` tab at the top of the page, then in the upper right hand corner select the `Test` button to generate the draft version Test App. If you don't see this option, go to the `Test` tab instead, click on the `Settings` button in the top right below the header, and ensure `On device testing` is enabled (if it isn't, enable it). -4. Add the `google_assistant` integration configuration to your `configuration.yaml` file and restart Home Assistant following the [configuration guide](#configuration) below. +4. Add the `google_assistant` integration configuration to your `configuration.yaml` file and restart Home Assistant following the [configuration guide](#yaml-configuration) below. 5. Add services in the Google Home App (Note that app versions may be slightly different.) 1. Open the Google Home app. 2. Click the `+` button on the top left corner, click `Set up device`, in the "Set up a device" screen click "Works with Google". You should have `[test] ` listed under 'Add new'. Selecting that should lead you to a browser to login your Home Assistant instance, then redirect back to a screen where you can set rooms and nicknames for your devices if you wish. diff --git a/source/_integrations/hassio.markdown b/source/_integrations/hassio.markdown index d1ce74cf5bc..a4e8f46608c 100644 --- a/source/_integrations/hassio.markdown +++ b/source/_integrations/hassio.markdown @@ -7,6 +7,7 @@ ha_category: ha_iot_class: Local Polling ha_release: 0.42 ha_domain: hassio +ha_quality_scale: internal ha_platforms: - binary_sensor - sensor diff --git a/source/_integrations/home_connect.markdown b/source/_integrations/home_connect.markdown index 2ef38e6fbcf..48d04a8fc83 100644 --- a/source/_integrations/home_connect.markdown +++ b/source/_integrations/home_connect.markdown @@ -1,7 +1,6 @@ --- title: Home Connect description: Instructions on how to set up the Home Connect integration within Home Assistant. -logo: homeconnect.png ha_category: - Hub - Binary Sensor diff --git a/source/_integrations/homekit_controller.markdown b/source/_integrations/homekit_controller.markdown index 77e64c23a27..d9956981579 100644 --- a/source/_integrations/homekit_controller.markdown +++ b/source/_integrations/homekit_controller.markdown @@ -181,3 +181,7 @@ In these cases, HomeKit Controller will skip polling to avoid a buildup of back ### I can't see any events generated for "stateless" accessories This is expected. The only way to use stateless accessories like some doorbells, buttons or remotes with Home Assistant is through device automations. Home Assistant doesn't create duplicate events for device automation triggers, so for example you won't be able to watch them with the events developer tools. + +### Home Assistant can't see my Homebridge device(s) + +In your Homebridge settings/config, make sure you are using `ciao` and not `Bonjour-HAP`. `Bonjour-HAP` is no longer recommended by `homebridge` and is considered broken/unsupported. diff --git a/source/_integrations/homematic.markdown b/source/_integrations/homematic.markdown index fa5b9364ac1..d1b543799a6 100644 --- a/source/_integrations/homematic.markdown +++ b/source/_integrations/homematic.markdown @@ -440,7 +440,7 @@ action: #### Integrating HMIP-DLD -There is no available default integration for HMIP Doorlock (HMIP-DLD) in the current `pyhomeatic` implementation. +There is no available default integration for HMIP Doorlock (HMIP-DLD) in the current `pyhomematic` implementation. A workaround is to define a template lock in your configuration: {% raw %} @@ -483,9 +483,9 @@ When the connection to your Homematic CCU or Homegear is lost, Home Assistant wi ```yaml template: - binary_sensor: - - name: "Homematic is sending updates" - state: >- - {{ now() - as_timestamp(state_attr('sensor.office_voltage', 'last_changed'), 601) < 600 }} + - name: "Homematic is sending updates" + state: >- + {{ now() - as_timestamp(state_attr('sensor.office_voltage', 'last_changed'), 601) < 600 }} automation: - alias: "Homematic Reconnect" diff --git a/source/_integrations/iammeter.markdown b/source/_integrations/iammeter.markdown index ee17703183e..35cd1c77b2e 100644 --- a/source/_integrations/iammeter.markdown +++ b/source/_integrations/iammeter.markdown @@ -13,13 +13,10 @@ ha_platforms: - sensor --- -`iammeter` provides real-time readings of single-phase (WEM3080, WEM3162) and three-phase (WEM3080T) meters from [IAMMETER](https://www.iammeter.com) over Wi-Fi. -Example Lovelace Dashboard: -

- -

+[IAMMETER](https://www.iammeter.com/) provides both a bi-directional single-phase energy meter([WEM3080](https://www.iammeter.com/products/single-phase-meter)) and a bi-directional three-phase energy monitor ([WEM3080T](https://www.iammeter.com/products/three-phase-meter)). Both of them can be integrated into Home Assistant. + ## Configuration @@ -55,38 +52,38 @@ Sensors available in the library: ### Single-phase energy meter (WEM3080/WEM3162) -| name | Unit | Description | -|--------------------|------|:-----------------------------------------------------------------------------| -| wem3080_voltage | V | Voltage. | -| wem3080_current | A | current. | -| wem3080_power | W | active power. | -| wem3080_importenergy | kWh | Energy consumption from grid | -| wem3080_exportgrid | kWh | Energy export to grid | +| name | Unit | Description | +| -------------------- | ---- | :--------------------------- | +| wem3080_voltage | V | Voltage. | +| wem3080_current | A | current. | +| wem3080_power | W | active power. | +| wem3080_importenergy | kWh | Energy consumption from grid | +| wem3080_exportgrid | kWh | Energy export to grid | ### Three-phase energy meter (WEM3080T) -| name | Unit | Description | -|--------------------|------|:-----------------------------------------------------------------------------| +| name | Unit | Description | +| ----------------------- | ---- | :-------------------- | | wem3080t_voltage_a | V | A phase voltage | -| wem3080t_current_a | A | A phase current | +| wem3080t_current_a | A | A phase current | | wem3080t_power_a | W | A phase active power | | wem3080t_importenergy_a | kWh | A phase import energy | | wem3080t_exportgrid_a | kWh | A phase export energy | -| wem3080t_frequency_a | hz | A phase frequency | +| wem3080t_frequency_a | Hz | A phase frequency | | wem3080t_pf_a | | A phase power factor | -| | | | +| | | | | wem3080t_voltage_b | V | B phase voltage | | wem3080t_current_b | A | B phase current | | wem3080t_power_b | W | B phase active power | | wem3080t_importenergy_b | kWh | B phase import energy | | wem3080t_exportgrid_b | kWh | B phase export energy | -| wem3080t_frequency_b | hz | B phase frequency | +| wem3080t_frequency_b | Hz | B phase frequency | | wem3080t_pf_b | | B phase power factor | -| | | | +| | | | | wem3080t_voltage_c | V | C phase voltage | -| wem3080t_current_c | A | C phase current | -| wem3080t_power_c | W | C phase active power | +| wem3080t_current_c | A | C phase current | +| wem3080t_power_c | W | C phase active power | | wem3080t_importenergy_c | kWh | C phase import energy | | wem3080t_exportgrid_c | kWh | C phase export energy | -| wem3080t_frequency_c | hz | C phase frequency | -| wem3080t_pf_c | | C phase power factor | +| wem3080t_frequency_c | Hz | C phase frequency | +| wem3080t_pf_c | | C phase power factor | diff --git a/source/_integrations/icloud.markdown b/source/_integrations/icloud.markdown index be5c4cd38f4..f4a6b9d0f5d 100644 --- a/source/_integrations/icloud.markdown +++ b/source/_integrations/icloud.markdown @@ -39,18 +39,6 @@ To prevent excessive battery drainage, a dynamic interval is used for each indiv If two-step authentication is enabled for your iCloud account, some time after Home Assistant startup the integration will ask to enter the verification code you receive on your device via a notification in the Home Assistant UI. The duration of this authentication is determined by Apple, so you will need to verify your account every now and then. -### App Specific Passwords -Apple allows you to provide an [App Specific Password](https://support.apple.com/en-gb/HT204397), which **don't require two factor authentication**, and one could argue more secure than storing your iCloud password within Home Assistant. -#### How to generate an app-specific password - -1. Sign in to your [Apple ID account page](https://appleid.apple.com/account/home). -2. In the Security section, click Generate Password below App-Specific Passwords. -3. Follow the steps on your screen. - -After you generate your app-specific password, enter or paste it into the password field of the integration. - -Any time you change or reset your primary Apple ID password, all your app-specific passwords are revoked automatically to protect the security of your account. You'll need to generate new app-specific passwords for any apps that you want to continue using. - ## In case of troubleshooting Go into your Home Assistant configuration `.storage` folder and delete the "icloud" folder, then retry. diff --git a/source/_integrations/ifttt.markdown b/source/_integrations/ifttt.markdown index 4487b463166..d12255a6b24 100644 --- a/source/_integrations/ifttt.markdown +++ b/source/_integrations/ifttt.markdown @@ -15,13 +15,13 @@ ha_platforms: ## Prerequisites -To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic). +To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic), or use your Nabu Casa account's webhook URL from the IFTTT integration. {% include integrations/config_flow.md %} -### Using the incoming data +### Receiving events from IFTTT -Events coming in from IFTTT will be available as events in Home Assistant and are fired as `ifttt_webhook_received`. The data specified in IFTTT will be available as the event data. You can use this event to trigger automations. +Events coming in from IFTTT will be available as events in Home Assistant and are fired as `ifttt_webhook_received`. The data specified in the IFTTT recipe Body section will be available as the event data. You can use this event to trigger automations. Use POST as method. For example, set the body of the IFTTT webhook to: @@ -38,15 +38,16 @@ automation: - id: this_is_the_automation_id alias: "The optional automation alias" trigger: - - event_data: - action: call_service + - platform: event event_type: ifttt_webhook_received - platform: event + event_data: + action: call_service # the same action 'name' you used in the Body section of the IFTTT recipe condition: [] action: - - target: + - service: '{{ trigger.event.data.service }}' + target: entity_id: '{{ trigger.event.data.entity_id }}' - service: '{{ trigger.event.data.service }}' + ``` {% endraw %} diff --git a/source/_integrations/izone.markdown b/source/_integrations/izone.markdown index 819c9ddb346..3e7c998cd4e 100644 --- a/source/_integrations/izone.markdown +++ b/source/_integrations/izone.markdown @@ -75,20 +75,16 @@ along with the supply temperature (use the ID of your unit): ```yaml # Example configuration.yaml entry to create sensors # from the izone controller state attributes -sensor: - - platform: template - sensors: - control_zone: - friendly_name: "Control zone" - value_template: "{{ state_attr('climate.izone_controller_0000XXXXX','control_zone_name') }}" - control_zone_target: - friendly_name: "Target temperature" - value_template: "{{ state_attr('climate.izone_controller_0000XXXXX','control_zone_setpoint') }}" - unit_of_measurement: "°C" - temperature_supply: - friendly_name: "Supply temperature" - value_template: "{{ state_attr('climate.izone_controller_0000XXXXX','supply_temperature') }}" - unit_of_measurement: "°C" +template: + - sensor: + - name: "Control zone" + state: "{{ state_attr('climate.izone_controller_0000XXXXX','control_zone_name') }}" + - name: "Target temperature" + state: "{{ state_attr('climate.izone_controller_0000XXXXX','control_zone_setpoint') }}" + unit_of_measurement: "°C" + - name : "Supply temperature" + state: "{{ state_attr('climate.izone_controller_0000XXXXX','supply_temperature') }}" + unit_of_measurement: "°C" ``` {% endraw %} diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown index 09bc96b1ef2..90bc71607dc 100644 --- a/source/_integrations/lcn.markdown +++ b/source/_integrations/lcn.markdown @@ -497,7 +497,7 @@ The `lcn` switch platform allows the control of the following [LCN](https://www. ## Services In order to directly interact with the LCN system, and invoke commands which are not covered by the implemented platforms, the following service calls can be used. -Refer to the (Services Calls)[/docs/scripts/service-calls] page for examples on how to use them. +Refer to the [Services Calls](/docs/scripts/service-calls) page for examples on how to use them. ### Service `output_abs` @@ -513,7 +513,7 @@ Set absolute brightness of output port in percent. Example: ```yaml -service: output_abs +service: lcn.output_abs data: address: myhome.0.7 output: output1 @@ -535,7 +535,7 @@ Set relative brightness of output port in percent. Example: ```yaml -service: output_rel +service: lcn.output_rel data: address: myhome.0.7 output: output1 @@ -555,7 +555,7 @@ Toggle output port. Example: ```yaml -service: output_toggle +service: lcn.output_toggle data: address: myhome.0.7 output: output1 @@ -577,7 +577,7 @@ Example states: `t---001-` Example: ```yaml -service: relays +service: lcn.relays data: address: myhome.0.7 state: t---001- @@ -595,7 +595,7 @@ Set the LED status. Example: ```yaml -service: led +service: lcn.led data: address: myhome.0.7 led: led6 @@ -618,7 +618,7 @@ If `unit_of_measurement` is not defined, it is assumed to be `native`. Example: ```yaml -service: var_abs +service: lcn.var_abs data: address: myhome.0.7 variable: var1 @@ -647,7 +647,7 @@ If `unit_of_measurement` is not defined, it is assumed to be `native`. Example: ```yaml -service: var_rel +service: lcn.var_rel data: address: myhome.0.7 variable: var1 @@ -672,7 +672,7 @@ Reset value of variable or setpoint. Example: ```yaml -service: var_reset: +service: lcn.var_reset data: address: myhome.0.7 variable: var1 @@ -697,7 +697,7 @@ If `state` is not defined, it is assumed to be `False`. Example: ```yaml -service: lock_regulator +service: lcn.lock_regulator data: address: myhome.0.7 setpoint: r1varsetpoint @@ -724,7 +724,7 @@ Examples: Send keys immediately: ```yaml -service: send_keys +service: lcn.send_keys data: address: myhome.0.7 keys: a1a5d8 @@ -733,7 +733,7 @@ data: Send keys deferred: ```yaml -service: send_keys +service: lcn.send_keys data: address: myhome.0.7 keys: a1a5d8 @@ -761,7 +761,7 @@ Examples: Lock keys forever: ```yaml -service: lock_keys +service: lcn.lock_keys data: address: myhome.0.7 table: a @@ -770,7 +770,7 @@ data: Lock keys for a specified time period: ```yaml -service: lock_keys +service: lcn.lock_keys data: address: myhome.0.7 state: 1---t0-- @@ -794,7 +794,7 @@ Each row can be set independently and can store up to 60 characters (encoded in Example: ```yaml -service: dyn_text +service: lcn.dyn_text data: address: myhome.0.7 row: 1 @@ -813,7 +813,7 @@ Send arbitrary PCK command. Only the command part of the PCK command has to be s Example: ```yaml -service: pck +service: lcn.pck data: address: myhome.0.7 pck: PIN4 diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 79b0b15a950..f97d14d712f 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -833,15 +833,15 @@ availability_topic: required: false type: string blue_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value." + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract blue color from the state payload value. Expected result of the template is an integer from 0-255 range." required: false type: string brightness_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value." + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract brightness from the state payload value. Expected result of the template is an integer from 0-255 range." required: false type: string color_temp_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value." + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract color temperature from the state payload value. Expected result of the template is an integer representing mired units." required: false type: string command_off_template: @@ -849,7 +849,7 @@ command_off_template: required: true type: string command_on_template: - description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `red`, `green`, `blue`, `flash`, `transition` and `effect`." + description: "The [template](/docs/configuration/templating/#processing-incoming-data) for *on* state changes. Available variables: `state`, `brightness`, `color_temp`, `red`, `green`, `blue`, `flash`, `transition` and `effect`. Values `red`, `green`, `blue`, `brightness` are provided as integers from range 0-255. Value of `color_temp` is provided as integer representing mired units." required: true type: string command_topic: @@ -908,7 +908,7 @@ effect_template: required: false type: string green_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value." + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value. Expected result of the template is an integer from 0-255 range." required: false type: string icon: @@ -961,7 +961,7 @@ qos: type: integer default: 0 red_template: - description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value." + description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract red color from the state payload value. Expected result of the template is an integer from 0-255 range." required: false type: string schema: @@ -1056,6 +1056,48 @@ light: {% endraw %} +### CCT light (brightnes and temperature) + +This example comes from a configuration of Shelly RGBW Bulb working in White mode. +`max_mireds` and `min_mireds` set color temperature boundaries to 3000K - 6500K. Notice the same limits are applied in `command_on_template`, but in kelvin units this time. It's due to conversion from mired to kelvin which causes exceeding boundary values accepted by the device. +The code also ensures bi-directional conversion of brightness scale between 0-100 (required by the device) and 0-255 (required by Home Assistant). +Add the following to your `configuration.yaml` file: + +{% raw %} + +```yaml +# Example configuration.yaml entry +light: + - platform: mqtt + schema: template + name: "Bulb-white" + command_topic: "shellies/bulb/color/0/set" + state_topic: "shellies/bulb/color/0/status" + availability_topic: "shellies/bulb/online" + command_on_template: > + {"turn": "on", "mode": "white" + {%- if brightness is defined -%} + , "brightness": {{brightness | float | multiply(0.39215686) | round(0)}} + {%- endif -%} + {%- if color_temp is defined -%} + , "temp": {{ [[(1000000 / color_temp | float) | round(0), 3000] | max, 6500] | min }} + {%- endif -%} + } + command_off_template: '{"turn":"off", "mode": "white"}' + state_template: "{% if value_json.ison and value_json.mode == 'white' %}on{% else %}off{% endif %}" + brightness_template: "{{ value_json.brightness | float | multiply(2.55) | round(0) }}" + color_temp_template: "{{ (1000000 / value_json.temp | float) | round(0) }}" + payload_available: "true" + payload_not_available: "false" + max_mireds: 334 + min_mireds: 153 + qos: 1 + retain: false + optimistic: false +``` + +{% endraw %} + ### Template schema - No brightness or color support If you don't want brightness, color or effect support, just omit the corresponding configuration sections. diff --git a/source/_integrations/london_air.markdown b/source/_integrations/london_air.markdown index 9d274ca9be4..87c46585491 100644 --- a/source/_integrations/london_air.markdown +++ b/source/_integrations/london_air.markdown @@ -64,17 +64,14 @@ To explore the data available within the `data` attribute of a sensor use the `d ```yaml # Example template sensors -- platform: template - sensors: - updated: - friendly_name: "Updated" - value_template: '{{state_attr('sensor.merton', 'updated')}}' - merton_pm10: - friendly_name: "Merton PM10" - value_template: '{{state_attr('sensor.merton', 'data')[0].pollutants[0].summary}}' - westminster_s02: - friendly_name: "Westminster S02" - value_template: '{{state_attr('sensor.westminster', 'data')[0].pollutants[3].summary}}' +template: + - sensor: + - name: "Updated" + state: '{{ state_attr('sensor.merton', 'updated') }}' + - name: "Merton PM10" + state: '{{ state_attr('sensor.merton', 'data')[0].pollutants[0].summary }}' + - name: "Westminster S02" + state: '{{ state_attr('sensor.westminster', 'data')[0].pollutants[3].summary }}' ``` {% endraw %} diff --git a/source/_integrations/lyric.markdown b/source/_integrations/lyric.markdown index e7cb8ccb153..c99b6cd2bc5 100644 --- a/source/_integrations/lyric.markdown +++ b/source/_integrations/lyric.markdown @@ -21,14 +21,14 @@ The Honeywell Lyric integration integrates the Lyric thermostat platform into Ho ## Setup -To set up this component, you will need to set up a developer account with Honeywell: +To set up this component, you first **must** set up a developer account with Honeywell: 1. Go to the [developer site](https://developer.honeywellhome.com) and register with an account. 1. Next, create a [new app](https://developer.honeywellhome.com/user/me/apps/add) via the `My Apps` section. 1. App Name: You can use any name here. 1. Callback URL: This needs to be the URL of your Home Assistant instance + `/auth/external/callback`. For example: `http://192.168.1.123:8123/auth/external/callback`. -Once your app is created, copy the `Consumer Key` and `Consumer Secret`. These will be your `client_id` and `client_secret` to add to your configuration: +Once your app is created, copy the `Consumer Key` and `Consumer Secret`. These will be your `client_id` and `client_secret` to add to your `configuration.yaml`: ```yaml # Example configuration.yaml entry @@ -37,7 +37,9 @@ lyric: client_secret: MY_CONSUMER_SECRET ``` -You can then add the integration in the frontend. +You should now restart the server. + +You can then add the integration in the frontend via the steps below. {% include integrations/config_flow.md %} diff --git a/source/_integrations/meteoalarm.markdown b/source/_integrations/meteoalarm.markdown index c6c831086c5..f6232118122 100644 --- a/source/_integrations/meteoalarm.markdown +++ b/source/_integrations/meteoalarm.markdown @@ -41,10 +41,10 @@ province: required: true type: string language: - description: "The 2 letters of your language, please be aware that this is only possible in the current country. So 'ne' is only possible in Netherlands. Possible options are: bu, bs, ce, da, de, ee, en, es, ga, ca, su, fr, gr, he, hr, ma, is, it, li, la, sr, mk, ma, ne, no, po, pt, ro, cp, sv, sl, eu." + description: "The ISO code of your language, please be aware that this is only possible in the current country. So 'nl-NL' or 'nl-BE' is only possible in Netherlands or Belgium" required: false type: string - default: "en" + default: "en-US" {% endconfiguration %} diff --git a/source/_integrations/metoffice.markdown b/source/_integrations/metoffice.markdown index 32b71ad9dc2..d299ac2373b 100644 --- a/source/_integrations/metoffice.markdown +++ b/source/_integrations/metoffice.markdown @@ -14,7 +14,7 @@ ha_platforms: - weather --- -The `metoffice` weather platform uses the Met Office's [DataPoint API](https://www.metoffice.gov.uk/datapoint) for weather data. +The `metoffice` weather platform uses the Met Office's [DataPoint API](https://www.metoffice.gov.uk/datapoint) for weather data. You can get an API key by registering for a Met Office [account](https://register.metoffice.gov.uk/WaveRegistrationClient/public/register.do?service=datapoint). As their website is not as straightforward, after registration and verifying your account you can login [here](https://register.metoffice.gov.uk/MyAccountClient/account/view) to retrieve your API key. {% include integrations/config_flow.md %} diff --git a/source/_integrations/opentherm_gw.markdown b/source/_integrations/opentherm_gw.markdown index dc815ca4fb6..216ee574e1c 100644 --- a/source/_integrations/opentherm_gw.markdown +++ b/source/_integrations/opentherm_gw.markdown @@ -552,6 +552,6 @@ Possible LED modes and their meaning are listed here: * H. Central heating is on. * W. Hot water is on. * C. Comfort mode (Domestic Hot Water Enable) is on. -* X. Transmission error has been detected. +* E. Transmission error has been detected. * M. Boiler requires maintenance. * P. Raised power mode active on thermostat interface. diff --git a/source/_integrations/pioneer.markdown b/source/_integrations/pioneer.markdown index dd226608b3f..7ff95a9f8e4 100644 --- a/source/_integrations/pioneer.markdown +++ b/source/_integrations/pioneer.markdown @@ -58,6 +58,37 @@ Under these lines, you can find some sample `sources` lists per receiver model. Codes must be defined as strings (between single or double quotation marks) so that `05` is not implicitly transformed to `5`, which wouldn't be valid source code. +#### VSX-930 + +```yaml +sources: + 'BD': '25' + 'DVD': '04' + 'SAT': '06' + 'HDMI3': '21' + 'HDMI4': '22' + 'HDMI5': '23' + 'HDMI6 - MHL': '24' + 'Ipod/USB': '17' + 'BT': '33' + 'Tuner': '02' + 'TV': '05' + 'CD': '01' + 'Internet Radio': '38' + 'Media Server': '44' + 'Favourites': '45' + 'Spotify': '53' +``` + +Note that some other functionalities are available, but may not be relevant to use from this integration. A non exhaustive list of them are: +```yaml +sources: +# Correspond to the HDMI button on the remote, which loops over `HDMI3`, `HDMI4`, `HDMI5` and `HDMI6 - MHL` + 'HDMI': '31' +# Correspond to the NET button the remote, which loops over `Internet Radio`, `Media Server`, `Favourites` and `Spotify` + 'NET': '26' +``` + #### VSX-921 ```yaml diff --git a/source/_integrations/recollect_waste.markdown b/source/_integrations/recollect_waste.markdown index 596660ec24b..643d4a23af7 100644 --- a/source/_integrations/recollect_waste.markdown +++ b/source/_integrations/recollect_waste.markdown @@ -13,7 +13,7 @@ ha_platforms: - sensor --- -The `recollect_waste` integration allows you to track the next scheduled waste pickup and what type of waste from [ReCollect](https://recollect.net/private-waste-haulers/). +The `recollect_waste` integration allows you to track the next scheduled waste pickup and what type of waste from [ReCollect](https://recollect.net/waste-haulers/). To use this integration, you must know both your ReCollect Place and Service IDs. In general, cities/municipalities that utilize ReCollect will give you a way to subscribe to a calendar with pickup dates. If you examine the iCal URL for this calendar, the Place and Service IDs are embedded in it: diff --git a/source/_integrations/safe_mode.markdown b/source/_integrations/safe_mode.markdown index 25bcc4a9b6a..74395b8ed8c 100644 --- a/source/_integrations/safe_mode.markdown +++ b/source/_integrations/safe_mode.markdown @@ -6,6 +6,7 @@ ha_release: 0.105 ha_codeowners: - '@home-assistant/core' ha_domain: safe_mode +ha_quality_scale: internal --- The `safe_mode` integration is an internally used integration by the diff --git a/source/_integrations/sensor.rest.markdown b/source/_integrations/sensor.rest.markdown index 4fc669e761f..2ad97ab5dbd 100644 --- a/source/_integrations/sensor.rest.markdown +++ b/source/_integrations/sensor.rest.markdown @@ -339,7 +339,7 @@ sensor: entity_id: sensor.owm_report owm_temp: friendly_name: "Outside temp" - value_template: "{{ state_attr(['sensor.owm_report', 'main')['temp'] - 273.15 }}" + value_template: "{{ state_attr('sensor.owm_report', 'main')['temp'] - 273.15 }}" unit_of_measurement: "°C" entity_id: sensor.owm_report owm_pressure: diff --git a/source/_integrations/seventeentrack.markdown b/source/_integrations/seventeentrack.markdown index 0bbf6aaac74..ed6a81379af 100644 --- a/source/_integrations/seventeentrack.markdown +++ b/source/_integrations/seventeentrack.markdown @@ -62,13 +62,15 @@ Use the following templated Markdown card to list all packages in transit along ```yaml type: markdown title: Packages in transit -content: >- +content: > {% for package in states.sensor.seventeentrack_packages_in_transit.attributes.packages %} - **{{ package.friendly_name }}:** {{ package.info_text }} + >- **{{ package.friendly_name }} ({{ package.tracking_number }}):** {{ + package.info_text }} {% endfor %} + ``` {% endraw %} diff --git a/source/_integrations/sia.markdown b/source/_integrations/sia.markdown index 0c1988fbd84..a0f34caad11 100644 --- a/source/_integrations/sia.markdown +++ b/source/_integrations/sia.markdown @@ -25,7 +25,7 @@ To use this platform, you need to setup your alarm system to communicate using t 3. Enable "Connect on demand". 4. Place Account Id - 3-16 ASCII hex characters. For example AAA. 5. Insert Home Assistant IP address. The hub must be able to reach this IP address. There is no cloud connection necessary. -6. Insert Home Assistant listening port. This port must not be used by anything else on the machine Home Assistant is running on, see the notes on [port usage](###Portusage) below. +6. Insert Home Assistant listening port. This port must not be used by anything else on the machine Home Assistant is running on, see the notes on [port usage](#port-usage) below. 7. Select Preferred Network. Ethernet is preferred if hub and HA in same network. Multiple networks are not tested. 8. Enable Periodic Reports. The interval with which the alarm systems reports to the monitoring station, default is 1 minute. This component adds 30 seconds before setting the alarm unavailable to deal with slights latencies between ajax and HA and the async nature of HA. 9. Encryption is preferred but optional. Password is 16, 24 or 32 ASCII characters. diff --git a/source/_integrations/simplisafe.markdown b/source/_integrations/simplisafe.markdown index 7fc14341a9c..868dea4de64 100644 --- a/source/_integrations/simplisafe.markdown +++ b/source/_integrations/simplisafe.markdown @@ -38,6 +38,14 @@ There is currently support for the following device types within Home Assistant: ## Getting an Authorization Code +
+You must have multi-factor authentication set up in your SimpliSafe account to install the integration. +
+ +
+You must use a "standard" operating system (Windows, macOS, Linux) to perform the below instructions. Indications are that non-standard OS's, like Chrome OS, will not work. +
+
Because of a technical limitation, the below instructions will not work for iOS users as-is. It is recommended that you set up the SimpliSafe integration from a desktop browser. If you must use an iOS device, please ensure that the SimpliSafe app is not installed before beginning; the app can be re-installed after the integration is set up.
@@ -47,10 +55,16 @@ Starting in 2021, SimpliSafe has moved to a new authentication mechanism via its 1. Initiate adding the integration via the instructions above. 2. When prompted, click the link that opens the SimpliSafe web app. 3. Input your SimpliSafe credentials. You will see "Verification Pending" – leave this browser tab open. -4. Check your email for a message from SimpliSafe. When you have received that email, click "Verify Device" – note that this will open a second browser tab/window. -5. After the verification is successful, return to the first browser tab/window. The browser will show an error about not being able to navigate to the page; ignore it. +4. You will receive a multi-factor authentication prompt, either via SMS or email. Regardless of the type, use this message to verify the access request. +5. After the verification is successful, return to the first browser tab/window. -At this stage, take a look at the address bar and note the `code` parameter at the very end of the URL: +Retrieving the access code is different depending on which browser you are using: + +* Chrome: Navigate to `Developer -> Developer Tools -> Console Tab` and look for a `Failed to launch` error. +* Edge: Navigate to `Developer -> Developer Tools -> Console Tab` and look for a `Failed to launch` error. +* Safari: Navigate to `Develop -> Show Web Inspector -> Network Tab` and look for a reference to `ErrorPage.html`. + +Look for a reference to a URL that starts with `com.simplisafe.mobile://` and note the code at the end: ```txt com.simplisafe.mobile://auth.simplisafe.com/ios/com.simplisafe.mobile/callback?code= diff --git a/source/_integrations/solarlog.markdown b/source/_integrations/solarlog.markdown index bdc46f08f62..c523630f14e 100644 --- a/source/_integrations/solarlog.markdown +++ b/source/_integrations/solarlog.markdown @@ -35,11 +35,10 @@ In case you would like to convert the values, for example, to Wh instead of the ```yaml # Example configuration.yaml entry for sensor template platform -sensor: - - platform: template - sensors: - solarlog_yield_day_template: - value_template: "{{ (states('sensor.solarlog_yield_day') | float * 1000) | round(0) }}" +template: + - sensor: + - name: "Solarlog yield day" + state: "{{ (states('sensor.solarlog_yield_day') | float(default=0) * 1000) | round(0,default=0) }}" ``` {% endraw %} diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 80a82ba2bb3..de424c44a55 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -43,6 +43,15 @@ There are three attributes available on the SwitchBot entity to give you more in - `Switch mode`: Specifies the mode of the SwitchBot. If `true` the the SwitchBot is in Pull/Retract mode for toggle switches otherwise the bot is in momentary switch mode. - `MAC address`: The BTLE MAC for the device. +## SwitchBot Options + +There are four options that can be configured for the SwitchBot entities. Setting any of these options will apply to all of your SwitchBot devices. + +- `Time between updates (seconds)`: Increase/Decrease the update interval for the device. (Could impact battery life) +- `Retry count`: How many times to retry sending commands and retry polling your SwitchBot devices. +- `Timeout between retries`: How long to wait before retries. +- `How long to scan for advertisement data`: Bluetooth LE uses advertisement data for device statuses and/or attributes. This setting spesifies how long the scan should run. + ### Error codes and troubleshooting {% configuration_basic %} diff --git a/source/_integrations/tasmota.markdown b/source/_integrations/tasmota.markdown index 7b6e70a0a4e..d13e79c0933 100644 --- a/source/_integrations/tasmota.markdown +++ b/source/_integrations/tasmota.markdown @@ -37,15 +37,15 @@ This integration allows you to control [Tasmota](https://tasmota.github.io/docs/ Tasmota Buttons, Fans, Lights, relays, Sensors, Shutters and Switches are supported. -- Tasmota Buttons will be added as Home Assistant `automation triggers` when `SetOption73` is enabled. +- Tasmota Buttons will be added as Home Assistant `automation triggers` when `SetOption73` is enabled. No `binary_sensor` entity will be created. You can find the available `automation triggers` on the device screen. ![automation triggers](/images/integrations/tasmota/tasmota_button_automations.png) - Tasmota Lights will be added as Home Assistant `light` entities. Single channel Dimmers, RGB lights, RGB lights with Color Temperature control and RGB lights with White control are supported. - Tasmota Relays will be added as Home Assistant `switch` entities, if `SetOption30 0`. If `SetOption30 1`, relays will be added as `light` entities. - Tasmota Sensors will be added as Home Assistant `sensor` entities. - Tasmota Shutters will be added as Home Assistant `cover` entities. Currently only Shutter modes 1 to 4 are supported. Shutter mode 5 and Tuya shutters are not supported. -- Tasmota Switches will be added as Home Assistant `binary_sensor` entities or `automation triggers` depending by the `switchmode` used when `SetOption114` is enabled. +- Tasmota Switches will be added as either Home Assistant `binary_sensor` entities or `automation triggers` depending on the `switchmode` used when `SetOption114` is enabled. - The fan functionality in Tasmota devices with module configured as iFan02 or iFan03 will be added as Home Assistant `fan` entities. Tuya fans are not supported. - The integration will also create up to eight Status Sensors, each one with a different information. Please note all the Status Sensors are disabled by default. - ![iot](https://user-images.githubusercontent.com/7702766/99080146-a1d43980-259f-11eb-856b-addb53695381.png) + ![iot](/images/integrations/tasmota/tasmota_status_sensors.png) {% include integrations/config_flow.md %} diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index c1d0d2e14ee..51c45afa5fb 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -117,7 +117,7 @@ sensor: type: string default: None state_class: - description: "Defines the state class of the sensor, if any. Only possible value currently is `measurement`. Set this if your template sensor represents a measurement of the current value (so not a daily aggregate etc)." + description: The [state_class](https://developers.home-assistant.io/docs/core/entity/sensor#available-state-classes) of the sensor. required: false type: string default: None @@ -236,7 +236,7 @@ select: required: false type: template availability: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true @@ -599,7 +599,7 @@ sensors: required: true type: template availability_template: - description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns either of `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"` or a non-zero number, the entity is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. + description: Defines a template to get the `available` state of the entity. If the template either fails to render or returns `True`, `"1"`, `"true"`, `"yes"`, `"on"`, `"enable"`, or a non-zero number, the entity will be `available`. If the template returns any other value, the entity will be `unavailable`. If not configured, the entity will always be `available`. Note that the string comparison not case sensitive; `"TrUe"` and `"yEs"` are allowed. required: false type: template default: true diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index e2a4ce487e2..80b011b483f 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -71,5 +71,7 @@ There is currently support for the following device types within Home Assistant: - KL125 - KL130 - KB130 +- KL400 +- KL430 Other bulbs may also work, but with limited color temperature range (2700-5000). If you find a bulb isn't reaching the full-color temperature boundaries, submit a bug report to [python-kasa](https://github.com/python-kasa/python-kasa). diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 0efaddfed17..beb4ec35197 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -500,7 +500,6 @@ Carbon Dioxide | The current carbon dioxide measured in ppm Filter Life Remaining | The remaining life of the filter | True Filter Use | Filter usage time in hours | True Humidity | The current humidity measured | True -Illuminance | The current illuminance measured | True PM2.5 | The current particulate matter 2.5 measured | True Temperature | The current temperature measured | True Use Time | The accumulative number of seconds the device has been in use | False @@ -893,7 +892,6 @@ Switch | Description Buzzer | Turn on/off the Buzzer Child Lock | Turn on/off the Child Lock Ionizer | Turn on/off the Ionizer -LED | Turn on/off the LED ### Platform Services diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index 54a726a6ea0..401b168d810 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -515,6 +515,12 @@ There is no automatic migration wizard for the `ozw` integration. Please follow 2) Remove the Z-Wave integration from Home Assistant: Configuration --> Integrations --> Z-Wave (or OpenZWave) --> Press the three dots and click Delete. +
+ + If you have configured Z-Wave manually, make sure to also remove the `zwave:` section from your `configuration.yaml`. + +
+ 3) If you were running the OpenZWave beta, make sure to stop (or even remove) the OpenZWave add-on, also make sure it doesn't start automatically at startup. 4) Restart your Home Assistant host. This step is important to make sure that your Z-Wave stick is released by the operating system. diff --git a/source/_posts/2021-09-15-home-assistant-amber.markdown b/source/_posts/2021-09-15-home-assistant-yellow.markdown similarity index 50% rename from source/_posts/2021-09-15-home-assistant-amber.markdown rename to source/_posts/2021-09-15-home-assistant-yellow.markdown index febd594d31b..3df7daff9c6 100644 --- a/source/_posts/2021-09-15-home-assistant-amber.markdown +++ b/source/_posts/2021-09-15-home-assistant-yellow.markdown @@ -1,6 +1,6 @@ --- layout: post -title: "Home Assistant Amber" +title: "Home Assistant Yellow" description: "Join our crowdfunding campaign for the easiest way to run Home Assistant." date: 2021-09-13 00:00:00 date_formatted: "September 15, 2021" @@ -9,18 +9,20 @@ author_twitter: balloob comments: true categories: - Announcements -og_image: /images/blog/2021-09-home-assistant-amber/social.png +og_image: /images/blog/2021-09-home-assistant-yellow/social.png --- - + -To celebrate our 8th birthday we're launching a crowdfunding campaign for Home Assistant Amber. We designed Home Assistant Amber from scratch for both beginners and home automation enthusiasts +_This project was originally published under the name Home Assistant Amber._ + +To celebrate our 8th birthday we're launching a crowdfunding campaign for Home Assistant Yellow. We designed Home Assistant Yellow from scratch for both beginners and home automation enthusiasts to be the easiest way to run Home Assistant. -### [Go to campaign on CrowdSupply »](https://www.crowdsupply.com/nabu-casa/home-assistant-amber) +### [Go to campaign on CrowdSupply »](https://www.crowdsupply.com/nabu-casa/home-assistant-yellow) -We will be hosting a Home Assistant Amber live stream today at 12.00 PDT / 21.00 CEST. We will talk about how Home Assistant Amber came to be and answer any questions you might have! +We will be hosting a Home Assistant Yellow live stream today at 12.00 PDT / 21.00 CEST. We will talk about how Home Assistant Yellow came to be and answer any questions you might have!
diff --git a/source/_posts/2021-10-06-release-202110.markdown b/source/_posts/2021-10-06-release-202110.markdown index f1b8e7a3a7d..deb00b39e14 100644 --- a/source/_posts/2021-10-06-release-202110.markdown +++ b/source/_posts/2021-10-06-release-202110.markdown @@ -47,7 +47,7 @@ Enjoy the release! [hacktoberfest]: https://hacktoberfest.digitalocean.com/ -- [Home Assistant Amber](#home-assistant-amber) +- [Home Assistant Yellow](#home-assistant-yellow) - [Z-Wave JS updates!](#z-wave-js-updates) - [S2 is now supported](#s2-is-now-supported) - [Migration wizard from the old Z-Wave integration](#migration-wizard-from-the-old-z-wave-integration) @@ -69,20 +69,20 @@ Enjoy the release! - [Farewell to the following](#farewell-to-the-following) - [All changes](#all-changes) -## Home Assistant Amber +## Home Assistant Yellow In case you've missed it: Home Assistant turned 8 years old! 🥳 -And to celebrate that, we've revealed the **Home Assistant Amber**! +And to celebrate that, we've revealed the **Home Assistant Yellow**! -Home Assistant Amber was launched using a crowdfunding campaign, which already +Home Assistant Yellow was launched using a crowdfunding campaign, which already reached its funding goal! This is absolutely fantastic! -And... You can still back the campaign to get your own Home Assistant Amber! +And... You can still back the campaign to get your own Home Assistant Yellow! -### [Go to campaign on CrowdSupply »](https://www.crowdsupply.com/nabu-casa/home-assistant-amber) +### [Go to campaign on CrowdSupply »](https://www.crowdsupply.com/nabu-casa/home-assistant-yellow) - + ## Z-Wave JS updates! diff --git a/source/_posts/2021-11-03-release-202111.markdown b/source/_posts/2021-11-03-release-202111.markdown index 841bcc63b66..92786e90658 100644 --- a/source/_posts/2021-11-03-release-202111.markdown +++ b/source/_posts/2021-11-03-release-202111.markdown @@ -63,6 +63,9 @@ Enjoy the release! - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) - [Release 2021.11.1 - November 5](#release-2021111---november-5) - [Release 2021.11.2 - November 9](#release-2021112---november-9) +- [Release 2021.11.3 - November 11](#release-2021113---november-11) +- [Release 2021.11.4 - November 15](#release-2021114---november-15) +- [Release 2021.11.5 - November 19](#release-2021115---november-19) - [If you need help...](#if-you-need-help) - [Breaking Changes](#breaking-changes) - [Farewell to the following](#farewell-to-the-following) @@ -473,6 +476,135 @@ The following integrations are now available via the Home Assistant UI: [xiaomi_miio docs]: /integrations/xiaomi_miio/ [zha docs]: /integrations/zha/ +## Release 2021.11.3 - November 11 + +- Fix rpi_camera setup hanging on initialization ([@enegaard] - [#59316]) ([rpi_camera docs]) +- Fix state of sense net_production sensor ([@kbickar] - [#59391]) ([sense docs]) ([emulated_kasa docs]) +- Update frontend to 20211109.0 ([@bramkragten] - [#59451]) ([frontend docs]) +- Fix zeroconf with sonos v1 firmware ([@bdraco] - [#59460]) ([sonos docs]) +- Ignore None state in state_change_event ([@dgomes] - [#59485]) ([integration docs]) +- Fix wirelesstag switch arm/disarm ([@sergeymaysak] - [#59515]) ([wirelesstag docs]) +- Remove incomplete segment on stream restart ([@uvjustin] - [#59532]) ([stream docs]) + +[#59316]: https://github.com/home-assistant/core/pull/59316 +[#59391]: https://github.com/home-assistant/core/pull/59391 +[#59451]: https://github.com/home-assistant/core/pull/59451 +[#59460]: https://github.com/home-assistant/core/pull/59460 +[#59485]: https://github.com/home-assistant/core/pull/59485 +[#59515]: https://github.com/home-assistant/core/pull/59515 +[#59532]: https://github.com/home-assistant/core/pull/59532 +[@bdraco]: https://github.com/bdraco +[@bramkragten]: https://github.com/bramkragten +[@dgomes]: https://github.com/dgomes +[@enegaard]: https://github.com/enegaard +[@kbickar]: https://github.com/kbickar +[@sergeymaysak]: https://github.com/sergeymaysak +[@uvjustin]: https://github.com/uvjustin +[emulated_kasa docs]: /integrations/emulated_kasa/ +[frontend docs]: /integrations/frontend/ +[integration docs]: /integrations/integration/ +[rpi_camera docs]: /integrations/rpi_camera/ +[sense docs]: /integrations/sense/ +[sonos docs]: /integrations/sonos/ +[stream docs]: /integrations/stream/ +[wirelesstag docs]: /integrations/wirelesstag/ + +## Release 2021.11.4 - November 15 + +- Air visual : robustness at startup when evaluate time interval ([@jugla] - [#59544]) ([airvisual docs]) +- Override api url in norway_air ([@ludeeus] - [#59573]) ([norway_air docs]) ([met docs]) +- Fix firmware status check for Fritz ([@chemelli74] - [#59578]) ([fritz docs]) +- Always use a step size of 1 for z-wave js fans ([@mkowalchuk] - [#59622]) ([zwave_js docs]) +- Fix favorite RPM max value in Xiaomi Miio ([@bieniu] - [#59631]) ([xiaomi_miio docs]) +- Bump zeroconf to 0.36.12 ([@bdraco] - [#59133]) ([zeroconf docs]) +- Bump zeroconf to 0.36.13 ([@bdraco] - [#59644]) ([zeroconf docs]) +- Bump greecliamate to 0.12.4 ([@cmroche] - [#59645]) ([gree docs]) +- Ensure flux_led bulbs turn on even if brightness is 0 ([@bdraco] - [#59661]) +- Update aiolookin to 0.0.4 version ([@ANMalko] - [#59684]) ([lookin docs]) +- Fix bug in AirVisual re-auth ([@bachya] - [#59685]) ([airvisual docs]) +- Bump greeclimate to 0.12.5 ([@cmroche] - [#59730]) ([gree docs]) +- Bump flux_led to 0.24.21 ([@bdraco] - [#59662]) ([flux_led docs]) +- Bump flux_led to 0.24.24 ([@bdraco] - [#59740]) ([flux_led docs]) +- Fix invalid string syntax in French OwnTracks config flow ([@spacegaier] - [#59752]) ([owntracks docs]) + +[#59133]: https://github.com/home-assistant/core/pull/59133 +[#59544]: https://github.com/home-assistant/core/pull/59544 +[#59573]: https://github.com/home-assistant/core/pull/59573 +[#59578]: https://github.com/home-assistant/core/pull/59578 +[#59622]: https://github.com/home-assistant/core/pull/59622 +[#59631]: https://github.com/home-assistant/core/pull/59631 +[#59644]: https://github.com/home-assistant/core/pull/59644 +[#59645]: https://github.com/home-assistant/core/pull/59645 +[#59661]: https://github.com/home-assistant/core/pull/59661 +[#59662]: https://github.com/home-assistant/core/pull/59662 +[#59684]: https://github.com/home-assistant/core/pull/59684 +[#59685]: https://github.com/home-assistant/core/pull/59685 +[#59730]: https://github.com/home-assistant/core/pull/59730 +[#59740]: https://github.com/home-assistant/core/pull/59740 +[#59752]: https://github.com/home-assistant/core/pull/59752 +[@ANMalko]: https://github.com/ANMalko +[@bachya]: https://github.com/bachya +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@chemelli74]: https://github.com/chemelli74 +[@cmroche]: https://github.com/cmroche +[@jugla]: https://github.com/jugla +[@ludeeus]: https://github.com/ludeeus +[@mkowalchuk]: https://github.com/mkowalchuk +[@spacegaier]: https://github.com/spacegaier +[airvisual docs]: /integrations/airvisual/ +[flux_led docs]: /integrations/flux_led/ +[fritz docs]: /integrations/fritz/ +[gree docs]: /integrations/gree/ +[lookin docs]: /integrations/lookin/ +[met docs]: /integrations/met/ +[norway_air docs]: /integrations/norway_air/ +[owntracks docs]: /integrations/owntracks/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[zeroconf docs]: /integrations/zeroconf/ +[zwave_js docs]: /integrations/zwave_js/ + +## Release 2021.11.5 - November 19 + +- Use source list property instead of the attribute in Denon AVR integration ([@bieniu] - [#59768]) ([denonavr docs]) +- Fix typo in attribute for Fritz ([@chemelli74] - [#59791]) ([fritz docs]) +- Fix Netgear init error on orbi models ([@starkillerOG] - [#59799]) ([netgear docs]) +- Bump velbusaio to 2021.11.7 ([@Cereal2nd] - [#59817]) ([velbus docs]) +- Fix invalid string syntax in OwnTracks config flow translations ([@spacegaier] - [#59838]) ([owntracks docs]) +- Strip out deleted entities when configuring homekit ([@bdraco] - [#59844]) ([homekit docs]) +- Bugfix in Tuya Number value scaling ([@PlusPlus-ua] - [#59903]) ([tuya docs]) +- Fix Tuya back scaling in Climate and Humidifer entities ([@frenck] - [#59909]) ([tuya docs]) +- Store: copy pending data ([@balloob] - [#59934]) +- Remove test_check_package_version_does_not_match ([@emontnemery] - [#59785]) + +[#59768]: https://github.com/home-assistant/core/pull/59768 +[#59785]: https://github.com/home-assistant/core/pull/59785 +[#59791]: https://github.com/home-assistant/core/pull/59791 +[#59799]: https://github.com/home-assistant/core/pull/59799 +[#59817]: https://github.com/home-assistant/core/pull/59817 +[#59838]: https://github.com/home-assistant/core/pull/59838 +[#59844]: https://github.com/home-assistant/core/pull/59844 +[#59903]: https://github.com/home-assistant/core/pull/59903 +[#59909]: https://github.com/home-assistant/core/pull/59909 +[#59934]: https://github.com/home-assistant/core/pull/59934 +[@Cereal2nd]: https://github.com/Cereal2nd +[@PlusPlus-ua]: https://github.com/PlusPlus-ua +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@chemelli74]: https://github.com/chemelli74 +[@emontnemery]: https://github.com/emontnemery +[@frenck]: https://github.com/frenck +[@spacegaier]: https://github.com/spacegaier +[@starkillerOG]: https://github.com/starkillerOG +[denonavr docs]: /integrations/denonavr/ +[fritz docs]: /integrations/fritz/ +[homekit docs]: /integrations/homekit/ +[netgear docs]: /integrations/netgear/ +[owntracks docs]: /integrations/owntracks/ +[tuya docs]: /integrations/tuya/ +[velbus docs]: /integrations/velbus/ + ## If you need help... ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). diff --git a/source/_posts/2021-11-12-100k-analytics.markdown b/source/_posts/2021-11-12-100k-analytics.markdown new file mode 100644 index 00000000000..56d4218dc29 --- /dev/null +++ b/source/_posts/2021-11-12-100k-analytics.markdown @@ -0,0 +1,122 @@ +--- +layout: post +title: "100,000 installations in analytics!" +description: "Our opt-in analytics have reached their first milestone: 100k users." +date: 2021-11-12 00:00:00 +date_formatted: "November 12, 2021" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: +- Announcement +og_image: /images/blog/2021-11-analytics/social.png +--- + + + +Today we have reached a major milestone for [Home Assistant Analytics][analytics]: 100,000 users have opted in to be included! + +This is a big deal because it's not enabled by default, users have to opt-in, and we only launched Home Assistant Analytics last April. We promoted it in the release blog post and during live streams, but have never nagged existing users in the interface. New users did get asked to opt-in as part of onboarding. + +The 100,000 installations are not the total number of Home Assistant users. The truth here is that we don't know the total number of installations because Home Assistant is private by design. Our estimate is that there are 4-5x more installations than people that opt-in to analytics. + +_For the latest version of the graphs in this post, visit [Home Assistant Analytics][analytics]_ + +![Line graph showing active installations over time hitting 100000 installations.](/images/blog/2021-11-analytics/active-installations.png) + + + +## Why we collect data + +It's good to start off with why we allow users to opt-in to share some data with us. + +Manufacturers of IoT products live in their own world in which we have little presence. We don't have stands at CES or other trade shows. Instead, manufacturers see we're open source and assume it's a small user base. They assume the ability to integrate with Home Assistant and other platforms is not profitable enough to allocate resources to add the necessary APIs to integrate. + +With the data collected by Home Assistant Analytics, we can show that providing an API can expand their market around the globe. + +

+ +Screenshot of analytics during Home Assistant onboarding +

+ +## How people run Home Assistant + +The collected data is also used to give us, the Home Assistant developers, insight into how Home Assistant is installed and what we should improve. As you can see in our installation breakdown, the operating system installation type is by far the most popular. This makes sense because it is our recommended installation type and the easiest to use. It gives the full Home Assistant experience and can be fully managed via the user interface. No text editors, Linux experience, or computer science degree necessary. + +![Pie chart of installation types. Operating System has 66.9%. Container has 17.9%. Supervised has 10.2%. Core has 5%.](/images/blog/2021-11-analytics/installation-types.png) + +The board breakdown below only applies to the operating system installation type. The Raspberry Pi family of devices is by far the most popular way of running Home Assistant, followed by running it in a virtual machine. Running Home Assistant in a virtual machine is popular because it is our recommended approach for people that already have a server at home. + +![Pie chart showing what boards are used. Raspberry Pi 4 has 38.8% (32 and 64 bit combined). Virtual Machine has 32.9%.](/images/blog/2021-11-analytics/board-breakdown.png) + +## Tracking updates + +We have spent a lot of time making sure that it is easy to update both Home Assistant Core and Home Assistant Operating System. Ease of updates is important because when critical bugs or security issues arise, users should feel confident to hit the update button. + +Home Assistant can be updated using a single click in the interface and will automatically roll back if the update fails or the system fails to come online afterward. This gives our users the confidence to update and we see this reflected in the speed at which our users update when a new monthly release drops: + +![version-history](/images/blog/2021-11-analytics/version-history.png) + +![os-breakdown](/images/blog/2021-11-analytics/os-breakdown.png) + +## Home Assistant around the world + +It's our goal to make the privacy focused smart home a viable option for everyone, everywhere. That's why Home Assistant is free and open source, translated into 60 different languages and why we integrate with products from around the world, not just the ones that are big enough to come to America or Europe. + +As you can see on our map we have a global reach. Some countries only see a few users, like the country of Nepal having 13 installations. However, with open source all we need is 1 contributor to help translate our user interface into their native language and make it more accessible for speakers of that language. To learn more about helping translating Home Assistant, [check the documentation](https://developers.home-assistant.io/docs/translations). + +![World map colored by number of Home Assistant users in each country](/images/blog/2021-11-analytics/map.png) + +## Integrations + +There are multiple levels of analytics that users can opt-in to. The basic level is how you run Home Assistant but you can also share what integrations you use. + +This data is integrated into the Home Assistant website when users navigate the various integrations. It sometimes highlights certain integrations that serve their purpose but don't have a big audience, like the integration for the [Dublin bus schedule](/integrations/dublin_bus_transport/): + +![dublin-bus-stats](/images/blog/2021-11-analytics/dublin-bus-stats.png) + +However, more interesting is of course the most popular integrations. I'm always surprised how high MQTT is on this list and very happy to see ESPHome doing so well. + +| Rank | Integration | Installations +| - | - | - +| 1 | [FFmpeg](/integrations/ffmpeg/) | 35151 (43.5 %) +| 2 | [Google Cast](/integrations/cast/) | 33252 (41.2 %) +| 3 | [MQTT](/integrations/mqtt/) | 30338 (37.5 %) +| 4 | [UPnP/IGD](/integrations/upnp/) | 22771 (28.2 %) +| 5 | [Google Assistant](/integrations/google_assistant/) | 16422 (20.3 %) +| 6 | [ESPHome](/integrations/esphome/) | 14315 (17.7 %) +| 7 | [HomeKit](/integrations/homekit/) | 13705 (17.0 %) +| 8 | [Philips Hue](/integrations/hue/) | 12592 (15.6 %) +| 9 | [System Monitor](/integrations/system_monitor/) | 12110 (15.0 %) +| 10 | [Spotify](/integrations/spotify/) | 11533 (14.3 %) + +_For the full list, see [Home Assistant Analytics][analytics-integrations]._ + +We see that integrations that offer automated discovery do very well. This makes sense because once discovered we'll prompt the user to set them up: + +

+ +Screenshot of setting up integrations during Home Assistant onboarding +

+ +## Statistics + +It is also possible to share some basic statistics about your installation like how many states and users you have. + +- Average number of automations: 24 +- Average number of integrations: 74 +- Average number of installed add-ons: 7.01 +- Average number of entities: 204 +- Average number of users: 1.87 + +It's impressive to see the high number of integrations and entities that are being used in Home Assistant. Our users sure love automating their homes! + +## Opt-in to analytics! + +If you haven't yet, please opt-in to Home Assistant Analytics by clicking the button below to help us and manufacturers better understand our impact. + +{% my general badge %} + +[analytics]: https://analytics.home-assistant.io +[analytics-integrations]: https://analytics.home-assistant.io/#integrations +[analytics-source]: https://github.com/home-assistant/analytics.home-assistant.io/ diff --git a/source/_posts/2021-11-27-netdaemon-release.markdown b/source/_posts/2021-11-27-netdaemon-release.markdown new file mode 100644 index 00000000000..23f512327e8 --- /dev/null +++ b/source/_posts/2021-11-27-netdaemon-release.markdown @@ -0,0 +1,22 @@ +--- +layout: post +title: "New NetDaemon Release: Use C# to automate Home Assistant" +description: "NetDaemon just released a new version of their .Net platform for Home Assistant" +date: 2021-11-27 00:00:00 +date_formatted: "November 27, 2021" +author: Frank Bakker +comments: true +categories: +- Announcement +og_image: /images/blog/2021-11-NetDaemon/NetDaemonLogo.png +--- + + + +Great news for Home Assistant users who's preferred way of coding is C#: [NetDaemon](https://netdaemon.xyz/) has just released a new version of their open source platform that allows you to use C# 10 for .Net 6 to write your applications or automations for Home Assistant. + +This release includes a new API called [`HassModel`](https://netdaemon.xyz/docs/hass_model/hass_model) which makes it easier than ever to interact with Home Assistant from .Net. It generates strong typed interfaces based on the entities in your own Home Assistant instance, their attributes and all available services and their parameters. Intellisense can be used to discover all your entities and available services directly from your IDE. + +[Check out the documentation and how to get started with NetDaemon](https://netdaemon.xyz/) + +_This project is not affiliated with Home Assistant, but leverages our [open API](https://developers.home-assistant.io/docs/api/websocket)._ diff --git a/source/_redirects b/source/_redirects index 6eec93367d4..2ca0cb706f9 100644 --- a/source/_redirects +++ b/source/_redirects @@ -11,7 +11,9 @@ /energy /home-energy-management /integrations/energy /docs/energy 301! -/amber https://www.crowdsupply.com/nabu-casa/home-assistant-amber +/amber https://www.crowdsupply.com/nabu-casa/home-assistant-yellow +/yellow https://www.crowdsupply.com/nabu-casa/home-assistant-yellow +/blog/2021/09/13/home-assistant-amber/ /blog/2021/09/13/home-assistant-yellow/ # Older development pages /developers https://developers.home-assistant.io diff --git a/source/blue/index.html b/source/blue/index.html index 8a741f05aee..b228e100fc2 100644 --- a/source/blue/index.html +++ b/source/blue/index.html @@ -585,11 +585,11 @@ All other parts of the bundle will remain available for purchase. {% enddetails %} -{% details "What is the difference with Home Assistant Amber?" %} +{% details "What is the difference with Home Assistant Yellow?" %} We partnered with a single-board computer (SBC) manufacturer to introduce Home Assistant Blue, our first foray into creating hardware that runs Home Assistant. Home Assistant Blue was always meant to be a limited edition and its production has been discontinued.

-Though Blue has been limited, we will continue to support it and, just like Amber, it is able to run the latest version of Home Assistant. +Though Home Assistant Blue has been limited, we will continue to support it and, just like Home Assistant Yellow, it is able to run the latest version of Home Assistant. {% enddetails %} diff --git a/source/examples/index.markdown b/source/examples/index.markdown index c45af3e8d26..8190d71582d 100644 --- a/source/examples/index.markdown +++ b/source/examples/index.markdown @@ -21,7 +21,7 @@ A great place to find popular configurations is on this ## Popular Blueprints -This is a list of the most popular [blueprints](/integrations/blueprint) in the [Blueprint Exchange category on the forums](https://community.home-assistant.io/c/blueprints-exchange/53/l/top/all). +This is a list of the most popular [blueprints](/integrations/blueprint) in the [Blueprint Exchange category on the forums](https://www.home-assistant.io/get-blueprints). {% for post in site.data.blueprint_exchange_data limit:25 %} diff --git a/source/images/blog/2021-09-home-assistant-amber/overview.png b/source/images/blog/2021-09-home-assistant-amber/overview.png deleted file mode 100644 index 8fec5ddba7c..00000000000 Binary files a/source/images/blog/2021-09-home-assistant-amber/overview.png and /dev/null differ diff --git a/source/images/blog/2021-09-home-assistant-amber/social.png b/source/images/blog/2021-09-home-assistant-amber/social.png deleted file mode 100644 index 8fcef7dfb19..00000000000 Binary files a/source/images/blog/2021-09-home-assistant-amber/social.png and /dev/null differ diff --git a/source/images/blog/2021-09-home-assistant-yellow/overview.png b/source/images/blog/2021-09-home-assistant-yellow/overview.png new file mode 100644 index 00000000000..8edf7d7d95d Binary files /dev/null and b/source/images/blog/2021-09-home-assistant-yellow/overview.png differ diff --git a/source/images/blog/2021-09-home-assistant-yellow/social.png b/source/images/blog/2021-09-home-assistant-yellow/social.png new file mode 100644 index 00000000000..253fa607c30 Binary files /dev/null and b/source/images/blog/2021-09-home-assistant-yellow/social.png differ diff --git a/source/images/blog/2021-11-NetDaemon/NetDaemonLogo.png b/source/images/blog/2021-11-NetDaemon/NetDaemonLogo.png new file mode 100644 index 00000000000..9116ba0b6e6 Binary files /dev/null and b/source/images/blog/2021-11-NetDaemon/NetDaemonLogo.png differ diff --git a/source/images/blog/2021-11-analytics/active-installations.png b/source/images/blog/2021-11-analytics/active-installations.png new file mode 100644 index 00000000000..ee68a0ee5de Binary files /dev/null and b/source/images/blog/2021-11-analytics/active-installations.png differ diff --git a/source/images/blog/2021-11-analytics/board-breakdown.png b/source/images/blog/2021-11-analytics/board-breakdown.png new file mode 100644 index 00000000000..cebae9da1ee Binary files /dev/null and b/source/images/blog/2021-11-analytics/board-breakdown.png differ diff --git a/source/images/blog/2021-11-analytics/discovery.png b/source/images/blog/2021-11-analytics/discovery.png new file mode 100644 index 00000000000..b450b8106f8 Binary files /dev/null and b/source/images/blog/2021-11-analytics/discovery.png differ diff --git a/source/images/blog/2021-11-analytics/dublin-bus-stats.png b/source/images/blog/2021-11-analytics/dublin-bus-stats.png new file mode 100644 index 00000000000..bbcaaeb4f87 Binary files /dev/null and b/source/images/blog/2021-11-analytics/dublin-bus-stats.png differ diff --git a/source/images/blog/2021-11-analytics/installation-types.png b/source/images/blog/2021-11-analytics/installation-types.png new file mode 100644 index 00000000000..daac3599292 Binary files /dev/null and b/source/images/blog/2021-11-analytics/installation-types.png differ diff --git a/source/images/blog/2021-11-analytics/map.png b/source/images/blog/2021-11-analytics/map.png new file mode 100644 index 00000000000..d0129cdf541 Binary files /dev/null and b/source/images/blog/2021-11-analytics/map.png differ diff --git a/source/images/blog/2021-11-analytics/onboarding-analytics.png b/source/images/blog/2021-11-analytics/onboarding-analytics.png new file mode 100644 index 00000000000..38ad018a513 Binary files /dev/null and b/source/images/blog/2021-11-analytics/onboarding-analytics.png differ diff --git a/source/images/blog/2021-11-analytics/onboarding-discovery.png b/source/images/blog/2021-11-analytics/onboarding-discovery.png new file mode 100644 index 00000000000..12f722e48fd Binary files /dev/null and b/source/images/blog/2021-11-analytics/onboarding-discovery.png differ diff --git a/source/images/blog/2021-11-analytics/os-breakdown.png b/source/images/blog/2021-11-analytics/os-breakdown.png new file mode 100644 index 00000000000..14342552cb4 Binary files /dev/null and b/source/images/blog/2021-11-analytics/os-breakdown.png differ diff --git a/source/images/blog/2021-11-analytics/release-breakdown.png b/source/images/blog/2021-11-analytics/release-breakdown.png new file mode 100644 index 00000000000..9e1e8236e88 Binary files /dev/null and b/source/images/blog/2021-11-analytics/release-breakdown.png differ diff --git a/source/images/blog/2021-11-analytics/social.png b/source/images/blog/2021-11-analytics/social.png new file mode 100644 index 00000000000..81b8b399ad5 Binary files /dev/null and b/source/images/blog/2021-11-analytics/social.png differ diff --git a/source/images/blog/2021-11-analytics/statistics.png b/source/images/blog/2021-11-analytics/statistics.png new file mode 100644 index 00000000000..f075032bed6 Binary files /dev/null and b/source/images/blog/2021-11-analytics/statistics.png differ diff --git a/source/images/blog/2021-11-analytics/version-history.png b/source/images/blog/2021-11-analytics/version-history.png new file mode 100644 index 00000000000..905a1290d70 Binary files /dev/null and b/source/images/blog/2021-11-analytics/version-history.png differ diff --git a/source/images/frontpage/amber-frontpage.jpg b/source/images/frontpage/amber-frontpage.jpg deleted file mode 100644 index 48def1b7cee..00000000000 Binary files a/source/images/frontpage/amber-frontpage.jpg and /dev/null differ diff --git a/source/images/frontpage/yellow-frontpage.jpg b/source/images/frontpage/yellow-frontpage.jpg new file mode 100644 index 00000000000..a2520c94789 Binary files /dev/null and b/source/images/frontpage/yellow-frontpage.jpg differ diff --git a/source/images/integrations/iammeter/demo.jpg b/source/images/integrations/iammeter/demo.jpg deleted file mode 100644 index 57eede1761a..00000000000 Binary files a/source/images/integrations/iammeter/demo.jpg and /dev/null differ diff --git a/source/images/integrations/tasmota/tasmota_button_automations.png b/source/images/integrations/tasmota/tasmota_button_automations.png new file mode 100644 index 00000000000..9ff3fcbb263 Binary files /dev/null and b/source/images/integrations/tasmota/tasmota_button_automations.png differ diff --git a/source/images/integrations/tasmota/tasmota_status_sensors.png b/source/images/integrations/tasmota/tasmota_status_sensors.png new file mode 100644 index 00000000000..e890363d569 Binary files /dev/null and b/source/images/integrations/tasmota/tasmota_status_sensors.png differ diff --git a/source/images/state-of-the-open-home/promo.png b/source/images/state-of-the-open-home/promo.png new file mode 100644 index 00000000000..fdb48defbc5 Binary files /dev/null and b/source/images/state-of-the-open-home/promo.png differ diff --git a/source/images/state-of-the-open-home/social.png b/source/images/state-of-the-open-home/social.png new file mode 100644 index 00000000000..816cf78c1d6 Binary files /dev/null and b/source/images/state-of-the-open-home/social.png differ diff --git a/source/index.html b/source/index.html index c61a38e866a..29483e0c658 100644 --- a/source/index.html +++ b/source/index.html @@ -90,18 +90,28 @@ feedback: false
+ + +
- Home Assistant Amber + Home Assistant Yellow
- Join our crowdfunding campaign for the easiest way to run Home Assistant + The easiest way to run Home Assistant. Now available for pre-order.
diff --git a/source/more-info/local-media/setup-media.markdown b/source/more-info/local-media/setup-media.markdown index cc6d1618ae9..3dc217bfd72 100644 --- a/source/more-info/local-media/setup-media.markdown +++ b/source/more-info/local-media/setup-media.markdown @@ -4,7 +4,7 @@ description: "More information on how to set up local media sources in Home Assi --- In order to use the media browser with Home Assistant, it needs to know where to -find you local media. +find your local media. ## Home Assistant OS and Supervised diff --git a/source/state-of-the-open-home/index.markdown b/source/state-of-the-open-home/index.markdown new file mode 100644 index 00000000000..b836abc581f --- /dev/null +++ b/source/state-of-the-open-home/index.markdown @@ -0,0 +1,22 @@ +--- +title: State of the Open Home 2021 +show_title: false +feedback: false +description: December 11, 2021 we will host the State of the Open Home. +og_image: /images/state-of-the-open-home/social.png +--- + +![Banner State of the Open Home](/images/state-of-the-open-home/promo.png) + +Where: YouTube
+When: Saturday, December 11, at 11am PST / 8pm CET + +For over 8 years we've been working on the open home. We envision the open home as one where you are in control of the technology, your data and who can access it. At the State of the Open Home 2021 we will present on the progress we made this year in making the open home a viable choice for everyone. + +The event is hosted by Nabu Casa, Home Assistant & ESPHome and we'll be joined by our friends from WLED and Z-Wave JS to talk about our work on making this vision a reality. + +To be notified when the live stream is online, [visit YouTube](https://www.youtube.com/watch?v=6ZMXE5PXPqU) and click “Set Reminder”. + +
+ +