mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-13 12:26:50 +00:00
Merge branch 'current' into rc
This commit is contained in:
commit
a33116bb44
10
.github/workflows/test.yml
vendored
10
.github/workflows/test.yml
vendored
@ -14,6 +14,16 @@ jobs:
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
- name: Check for .md files and suggest renaming
|
||||
run: |
|
||||
echo "Checking for .md files in source/_integrations..."
|
||||
MD_FILES=$(find source/_integrations -type f -name "*.md")
|
||||
if [ -n "$MD_FILES" ]; then
|
||||
echo "Found the following .md files:"
|
||||
echo "$MD_FILES"
|
||||
echo "⚠️ Please rename these files from .md to .markdown"
|
||||
exit 1
|
||||
fi
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
env:
|
||||
|
8
Gemfile
8
Gemfile
@ -3,16 +3,16 @@ source 'https://rubygems.org'
|
||||
ruby '> 2.5.0'
|
||||
|
||||
group :development do
|
||||
gem 'rake', '13.2.1'
|
||||
gem 'rake', '13.3.0'
|
||||
gem 'jekyll', '4.4.1'
|
||||
gem 'compass', '1.0.3'
|
||||
gem 'sass-globbing', '1.1.5'
|
||||
gem 'stringex', '2.8.6'
|
||||
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
|
||||
gem 'sassc', '2.1.0'
|
||||
gem 'sass-embedded', '1.89.0'
|
||||
gem 'rubocop', '1.75.7'
|
||||
gem 'ruby-lsp', '0.23.23'
|
||||
gem 'sass-embedded', '1.89.2'
|
||||
gem 'rubocop', '1.76.1'
|
||||
gem 'ruby-lsp', '0.24.1'
|
||||
gem 'rackup', '2.2.1'
|
||||
end
|
||||
|
||||
|
36
Gemfile.lock
36
Gemfile.lock
@ -4,8 +4,8 @@ GEM
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
ast (2.4.3)
|
||||
base64 (0.2.0)
|
||||
bigdecimal (3.1.9)
|
||||
base64 (0.3.0)
|
||||
bigdecimal (3.2.2)
|
||||
chunky_png (1.4.0)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.11)
|
||||
@ -22,7 +22,7 @@ GEM
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
concurrent-ruby (1.3.5)
|
||||
csv (3.3.4)
|
||||
csv (3.3.5)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
@ -30,10 +30,10 @@ GEM
|
||||
ffi (1.17.2-arm64-darwin)
|
||||
ffi (1.17.2-x86_64-linux-gnu)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (4.31.0-arm64-darwin)
|
||||
google-protobuf (4.31.1-arm64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.31.0-x86_64-linux-gnu)
|
||||
google-protobuf (4.31.1-x86_64-linux-gnu)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
http_parser.rb (0.8.0)
|
||||
@ -99,7 +99,7 @@ GEM
|
||||
prism (1.4.0)
|
||||
public_suffix (6.0.2)
|
||||
racc (1.8.1)
|
||||
rack (3.1.15)
|
||||
rack (3.1.16)
|
||||
rack-protection (4.1.1)
|
||||
base64 (>= 0.1.0)
|
||||
logger (>= 1.6.0)
|
||||
@ -110,7 +110,7 @@ GEM
|
||||
rackup (2.2.1)
|
||||
rack (>= 3)
|
||||
rainbow (3.1.1)
|
||||
rake (13.2.1)
|
||||
rake (13.3.0)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
@ -119,7 +119,7 @@ GEM
|
||||
regexp_parser (2.10.0)
|
||||
rexml (3.4.1)
|
||||
rouge (4.5.2)
|
||||
rubocop (1.75.7)
|
||||
rubocop (1.76.1)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.1.0)
|
||||
@ -127,13 +127,13 @@ GEM
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.9.3, < 3.0)
|
||||
rubocop-ast (>= 1.44.0, < 2.0)
|
||||
rubocop-ast (>= 1.45.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.44.1)
|
||||
rubocop-ast (1.45.1)
|
||||
parser (>= 3.3.7.2)
|
||||
prism (~> 1.4)
|
||||
ruby-lsp (0.23.23)
|
||||
ruby-lsp (0.24.1)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 1.2, < 2.0)
|
||||
rbs (>= 3, < 5)
|
||||
@ -142,9 +142,9 @@ GEM
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-embedded (1.89.0-arm64-darwin)
|
||||
sass-embedded (1.89.2-arm64-darwin)
|
||||
google-protobuf (~> 4.31)
|
||||
sass-embedded (1.89.0-x86_64-linux-gnu)
|
||||
sass-embedded (1.89.2-x86_64-linux-gnu)
|
||||
google-protobuf (~> 4.31)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
@ -159,7 +159,7 @@ GEM
|
||||
rack-protection (= 4.1.1)
|
||||
rack-session (>= 2.0.0, < 3)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.12130)
|
||||
sorbet-runtime (0.5.12167)
|
||||
stringex (2.8.6)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
@ -184,10 +184,10 @@ DEPENDENCIES
|
||||
jekyll-toc (= 0.19.0)
|
||||
nokogiri (= 1.18.8)
|
||||
rackup (= 2.2.1)
|
||||
rake (= 13.2.1)
|
||||
rubocop (= 1.75.7)
|
||||
ruby-lsp (= 0.23.23)
|
||||
sass-embedded (= 1.89.0)
|
||||
rake (= 13.3.0)
|
||||
rubocop (= 1.76.1)
|
||||
ruby-lsp (= 0.24.1)
|
||||
sass-embedded (= 1.89.2)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
sinatra (= 4.1.1)
|
||||
|
1274
package-lock.json
generated
1274
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@
|
||||
"remark-lint-prohibited-strings": "^4.0.0",
|
||||
"remark-lint-unordered-list-marker-style": "^4.0.1",
|
||||
"remark-stringify": "^11.0.0",
|
||||
"textlint": "^14.7.2",
|
||||
"textlint": "^14.8.0",
|
||||
"textlint-filter-rule-comments": "^1.2.2",
|
||||
"textlint-rule-common-misspellings": "^1.0.1",
|
||||
"textlint-rule-terminology": "^5.0.13"
|
||||
|
@ -161,7 +161,7 @@ Assuming you have only the owner created though onboarding process, no other use
|
||||
|
||||
The command line auth provider executes a configurable shell command to perform user authentication. Two environment variables, `username` and `password`, are passed to the command. Access is granted when the command exits successfully (with exit code 0).
|
||||
|
||||
This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. A compatible script for LDAP authentication is [this one](https://github.com/bob1de/ldap-auth-sh), for instance. Please note, this will only work when using the Home Assistant Core installation type.
|
||||
This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS.
|
||||
|
||||
Here is a configuration example:
|
||||
|
||||
|
@ -16,16 +16,18 @@ related:
|
||||
|
||||
## The blueprint schema
|
||||
|
||||
Blueprint schemas currently supports three types of schema depending on its domain: [`automation`](/docs/automation/yaml/); `script`; and [`template`](/integrations/template/#using-blueprints).
|
||||
|
||||
The configuration schema of a blueprint consists of 2 parts:
|
||||
|
||||
1. The blueprint's high-level metadata: name, description, the input required from the user.
|
||||
2. The schema of the thing the blueprint describes.
|
||||
1. The blueprint's high-level metadata: name, domain and, optionally, any input required from the user.
|
||||
2. The schema for the blueprint domain it describes.
|
||||
|
||||
The first part is referred to as the *blueprint schema*. It contains the
|
||||
blueprint's metadata.
|
||||
|
||||
The only requirement for a blueprint is a name. In its most basic form,
|
||||
a blueprint would look like:
|
||||
Minimum required metadata for a blueprint is its name and domain. In its most basic form,
|
||||
a blueprint looks like:
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
@ -35,10 +37,9 @@ blueprint:
|
||||
|
||||
Although this is a valid blueprint, it is not very useful.
|
||||
|
||||
The second part depends on the use case of the blueprint. For example, if you create a blueprint for an automation, the full
|
||||
The second part depends on its domain, the type of blueprint. For example, when creating a blueprint for an automation, the full
|
||||
schema for an [automation](/docs/automation/yaml/) applies.
|
||||
|
||||
You can add a description of the blueprint's use case and user inputs.
|
||||
|
||||
This is the full blueprint schema:
|
||||
|
||||
@ -50,13 +51,13 @@ name:
|
||||
description:
|
||||
description: >
|
||||
The description of the blueprint. While optional, this field is highly
|
||||
recommended. Describe what the blueprint does and describe the inputs the blueprint provide. The description can
|
||||
recommended. Describe what the blueprint does and describe the inputs the blueprint requires. The description can
|
||||
include [Markdown](https://commonmark.org/help/).
|
||||
type: string
|
||||
required: false
|
||||
domain:
|
||||
description: >
|
||||
The domain in which this blueprint is used. Currently, only
|
||||
The domain in which this blueprint is used. Currently, only three types,
|
||||
[`automation`](/docs/automation/yaml/), `script` and [`template`](/integrations/template/#using-blueprints) are supported.
|
||||
type: string
|
||||
required: true
|
||||
@ -66,7 +67,7 @@ author:
|
||||
required: false
|
||||
homeassistant:
|
||||
description: >
|
||||
Home Assistant requirements to be able to use the blueprint successfully.
|
||||
Home Assistant version required for the blueprint to work successfully.
|
||||
type: map
|
||||
required: false
|
||||
keys:
|
||||
@ -90,10 +91,9 @@ input:
|
||||
|
||||
### Blueprint inputs
|
||||
|
||||
As described above, a blueprint can accept one (or multiple)
|
||||
inputs from the blueprint user.
|
||||
A blueprint can accept one or multiple inputs from the user, but does not require any input.
|
||||
|
||||
These inputs can be of any type (string, boolean, list, dictionary). They can have
|
||||
These inputs can be of any type (string, boolean, list, map). They can have
|
||||
a default value and also provide a [selector](/docs/blueprint/selectors/) that
|
||||
ensures a matching input field in the user interface.
|
||||
|
||||
@ -126,9 +126,9 @@ A blueprint input has the following configuration:
|
||||
{% endconfiguration %}
|
||||
|
||||
Each input field can be referred to, outside of the blueprint metadata, using
|
||||
the `!input` custom YAML tag.
|
||||
the `!input` custom YAML tag before its name.
|
||||
|
||||
The following example shows a minimal blueprint with a single input:
|
||||
The following example shows a minimal *blueprint schema* with a single input:
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
@ -161,7 +161,7 @@ A section is differentiated from an input by the presence of an additional `inpu
|
||||
Input sections are a new feature in version 2024.6.0. Set the `min_version` for the blueprint to at least this version if using input sections. Otherwise, the blueprint will generate errors on older versions. See [this section](/docs/blueprint/schema/#min_version) for more details.
|
||||
{% endcaution %}
|
||||
|
||||
The full configuration for a section is below:
|
||||
The full configuration for an input section is below:
|
||||
|
||||
{% configuration %}
|
||||
|
||||
@ -194,7 +194,7 @@ input:
|
||||
|
||||
|
||||
|
||||
The following example shows a blueprint with some inputs in a section:
|
||||
The following example shows a *blueprint schema* with some inputs in a section:
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
@ -232,7 +232,8 @@ variables:
|
||||
The [built-in blueprints][blueprint-built-in]
|
||||
are great examples to get a bit of a feeling of how blueprints work.
|
||||
|
||||
Here is the built-in motion light automation blueprint:
|
||||
Here is the built-in motion light automation blueprint.
|
||||
Note the *blueprint schema* under the blueprint key is followed by its domain schema. In this example, an automation schema.
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
|
@ -52,8 +52,8 @@ There are a few very important rules to remember when adding templates to YAML:
|
||||
|
||||
1. You **must** surround single-line templates with double quotes (`"`) or single quotes (`'`).
|
||||
2. It is advised that you prepare for undefined variables by using `if ... is not none` or the [`default` filter](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.default), or both.
|
||||
3. It is advised that when comparing numbers, you convert the number(s) to a [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) or an [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) by using the respective [filter](https://jinja.palletsprojects.com/en/latest/templates/#list-of-builtin-filters).
|
||||
4. While the [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) and [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) filters do allow a default fallback value if the conversion is unsuccessful, they do not provide the ability to catch undefined variables.
|
||||
3. It is advised that when comparing numbers, you convert the number(s) to a [`float`](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.float) or an [`int`](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.int) by using the respective [filter](https://jinja.palletsprojects.com/en/latest/templates/#list-of-builtin-filters).
|
||||
4. While the [`float`](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.float) and [`int`](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.int) filters do allow a default fallback value if the conversion is unsuccessful, they do not provide the ability to catch undefined variables.
|
||||
|
||||
Remembering these simple rules will help save you from many headaches and endless hours of frustration when using automation templates.
|
||||
|
||||
|
@ -69,13 +69,11 @@
|
||||
{%- endif -%}
|
||||
|
||||
{% if page.works_with %}
|
||||
{%- for type in page.works_with -%}
|
||||
<div class="section">
|
||||
<a href="https://works-with.home-assistant.io/">
|
||||
<img src="../../images/works_with/works-with.png" alt="Works with Home assistant">
|
||||
</a>
|
||||
</div>
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{% if page.ha_domain %}
|
||||
|
@ -1,9 +1,12 @@
|
||||
Best practice for updating Home Assistant Core:
|
||||
#### Prerequisites
|
||||
|
||||
1. [Back up your installation](/common-tasks/general/#backups) and store the backup and the [backup emergency kit](/more-info/backup-emergency-kit/) somewhere safe.
|
||||
- This ensures that you can [restore your installation from backup](/common-tasks/general/#restoring-a-backup) if needed.
|
||||
2. Check the release notes for backward-incompatible changes on [Home Assistant release notes](/blog/categories/core/). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f` / `CMD + f`) and search for **Backward-incompatible changes**.
|
||||
3. To update Home Assistant Core, choose one of the following options.
|
||||
|
||||
#### To update Home Assistant Core
|
||||
|
||||
To update Home Assistant Core, choose one of the following options.
|
||||
|
||||
{% if page.installation == "os" %}
|
||||
|
||||
@ -20,6 +23,10 @@ Best practice for updating Home Assistant Core:
|
||||
- Go to {% my updates title="**System** > **Updates**" %}.
|
||||
- Select the update notification.
|
||||
- Select the cogwheel {% icon "mdi:cog-outline" %}, then set **Visible** to active.
|
||||
4. Open the notification for the component you want to update.
|
||||
5. If you want to backup the system first (recommended), enable the backup toggle.
|
||||
6. Select **Update**.
|
||||
7. After the update completed, check if there are any repair issues and check the logs to see if there are any issues with your configuration that need to be addressed.
|
||||
|
||||
- title: Using the CLI
|
||||
content: |
|
||||
@ -57,6 +64,7 @@ Best practice for updating Home Assistant Core:
|
||||
|
||||
{% endtabbed_block %}
|
||||
|
||||
After the update, check if there are any repair issues and check the logs to see if there are any issues with your configuration that need to be addressed.
|
||||
|
||||
{% endif %}
|
||||
|
||||
4. Check if there are any repair issues and check the logs to see if there are any issues with your configuration that need to be addressed.
|
||||
|
@ -1,13 +1,6 @@
|
||||
<!-- Left column begins -->
|
||||
<div class="grid__item one-third lap-one-half palm-one-whole">
|
||||
|
||||
<!-- Community Day 2025 - To move on/after event -->
|
||||
<a href="/blog/2025/04/24/community-day/" class="material-card picture-promo" style="
|
||||
background-image: url(/images/frontpage/community-day-2025.webp);
|
||||
aspect-ratio: 500/263;
|
||||
" aria-label="State of the Open Home - Saturday April 12th 2025">
|
||||
</a>
|
||||
|
||||
{% assign releases_post_limit = 2 %}
|
||||
{% assign blog_post_limit = 4 %}
|
||||
<!-- Home Assistant updates posts -->
|
||||
@ -65,6 +58,13 @@
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<!-- Community Day 2025 - To move on/after event -->
|
||||
<a href="https://lu.ma/homeassistant" class="material-card picture-promo" target="_blank" style="
|
||||
background-image: url(/images/frontpage/community-meetup.webp);
|
||||
aspect-ratio: 500/263;
|
||||
" aria-label="State of the Open Home - Saturday April 12th 2025">
|
||||
</a>
|
||||
|
||||
<!-- OHF notice -->
|
||||
<a href="https://www.openhomefoundation.org/blog/announcing-the-open-home-foundation/"
|
||||
class="material-card highlight-blog-post">
|
||||
|
@ -3,6 +3,7 @@ title: Adax
|
||||
description: Instructions on how to integrate Adax heater into Home Assistant.
|
||||
ha_category:
|
||||
- Climate
|
||||
- Sensor
|
||||
ha_release: 2021.8
|
||||
ha_iot_class: Local Polling
|
||||
ha_codeowners:
|
||||
@ -12,6 +13,7 @@ ha_domain: adax
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- climate
|
||||
- sensor
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
@ -42,3 +44,13 @@ You will also need a credential, which you can create in the Adax app:
|
||||
In the configuration popup you will need the Account ID, and the generated API password (not the account password)
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Energy monitoring
|
||||
|
||||
When using the cloud integration, the Adax integration provides energy monitoring sensors that track the power consumption of your heaters. These sensors are only available when using the cloud connection, as the local integration does not support energy data.
|
||||
|
||||
The integration creates the following energy sensors:
|
||||
|
||||
- **Individual energy sensors** - One sensor for each Adax heater showing its energy consumption in Wh
|
||||
|
||||
The energy sensors use the `total_increasing` state class, making them suitable for use with Home Assistant's energy dashboard to track your heating costs and consumption over time.
|
||||
|
@ -27,6 +27,18 @@ ha_zeroconf: true
|
||||
The AirGradient integration will fetch data from your [AirGradient devices](https://www.airgradient.com/).
|
||||
AirGradient creates indoor and outdoor air quality monitors that enable you know if the air quality is healthy or not. They measure metrics such as PM2.5, CO2, TVOCs, and NOx. Both the software and hardware are open-source, allowing you to customize or extend the device functionality.
|
||||
|
||||
## Use cases
|
||||
|
||||
- Monitor indoor and outdoor air quality.
|
||||
- Warn to open windows when CO2 levels are too high.
|
||||
- Control ventilation systems based on air quality.
|
||||
|
||||
## Supported devices
|
||||
|
||||
- AirGradient DIY Air Quality Monitor
|
||||
- AirGradient Indoor Air Quality Monitor
|
||||
- AirGradient Outdoor Air Quality Monitor
|
||||
|
||||
{% important %}
|
||||
In order for the device to be set up or discovered by Home Assistant, the [firmware](https://www.airgradient.com/documentation/firmwares) version should be at least 3.1.1.
|
||||
{% endimportant %}
|
||||
@ -38,7 +50,11 @@ Host:
|
||||
description: "The IP address or hostname for your AirGradient device."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Available sensors
|
||||
## Supported functionality
|
||||
|
||||
Below is a complete overview of the entities this integration provides.
|
||||
|
||||
### Available sensors
|
||||
|
||||
The integration will fetch data from each device. The following sensors are supported:
|
||||
|
||||
@ -65,7 +81,7 @@ A number of configuration entities are available as sensors to automate with if
|
||||
- Display temperature unit
|
||||
- Display brightness
|
||||
|
||||
## Available configuration entities
|
||||
### Available configuration entities
|
||||
|
||||
The integration provides a few configuration entities to customize the device experience.
|
||||
The settings are only available when the configuration source is set to local.
|
||||
@ -84,6 +100,67 @@ The following entities are supported:
|
||||
- NOx learning offset
|
||||
- Total volatile organic compounds learning offset
|
||||
|
||||
### Updates
|
||||
|
||||
The AirGradient integration provides an update entity that checks for firmware updates for your AirGradient device.
|
||||
To install the update, the device needs to be rebooted.
|
||||
|
||||
## Data updates
|
||||
|
||||
This integration uses local {% term polling %}, meaning it checks for changes to all entities by regularly communicating with the AirGradient device.
|
||||
|
||||
The integration will retrieve data from the device every minute.
|
||||
|
||||
The updates for the device are checked once every hour.
|
||||
|
||||
## Actions
|
||||
|
||||
This integration does not provide additional actions. All actions available
|
||||
for this integration are provided by their respective entities.
|
||||
|
||||
## Examples
|
||||
|
||||
The following examples show how to use the AirGradient integration in Home
|
||||
Assistant automations. These examples are just a starting point, and you can
|
||||
use them as inspiration to create your own automations.
|
||||
|
||||
### Notify when the CO2 level is too high
|
||||
|
||||
The following example sends a notification to your mobile device when the CO2 level exceeds 1000 ppm.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Notify when CO2 level is too high"
|
||||
triggers:
|
||||
- trigger: numeric_state
|
||||
entity_id: sensor.airgradient_carbon_dioxide
|
||||
above: 1000
|
||||
|
||||
actions:
|
||||
- action: notify.mobile_app_your_device
|
||||
data:
|
||||
title: "High CO2 Level Alert"
|
||||
message: >
|
||||
The CO2 level is too high at {{ states('sensor.airgradient_carbon_dioxide') }} ppm.
|
||||
Please consider ventilating the room.
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Known limitations
|
||||
|
||||
The AirGradient integration currently has the following limitations:
|
||||
- The update entity is not able to install updates automatically. You will need to reboot the device manually after installing the update.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If you're experiencing issues with your AirGradient integration, try these general troubleshooting steps:
|
||||
|
||||
1. Make sure your AirGradient is powered on and properly connected to your home network.
|
||||
2. If the integration shows as unavailable, try restarting both your AirGradient and Home Assistant.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal, no extra steps are required.
|
||||
|
@ -49,11 +49,12 @@ ha_quality_scale: platinum
|
||||
|
||||
## Overview
|
||||
|
||||
This integration allows [ESPHome](https://esphome.io) devices to connect directly to Home Assistant with the [native ESPHome API](https://esphome.io/components/api.html).
|
||||
The **ESPHome** {% term integration %} allows [ESPHome](https://esphome.io) devices to connect directly to Home Assistant with the [native ESPHome API](https://esphome.io/components/api.html).
|
||||
|
||||
ESPHome is a firmware generator and configuration system that enables the transformation of microcontrollers into fully customizable smart home devices. Using a simple YAML configuration file, ESPHome allows users to define hardware components like sensors, actuators, and peripherals. These configurations are then compiled into custom firmware that can be flashed onto the target device.
|
||||
|
||||
### Key Features
|
||||
### Key features
|
||||
|
||||
- **YAML Configuration**: Specify hardware components, sensors, actuators, and integrations using a clean and straightforward YAML syntax.
|
||||
- **Custom Firmware Generation**: ESPHome compiles the provided configuration into a highly optimized, device-specific firmware image that is ready to be flashed onto microcontrollers.
|
||||
- **Seamless Integration**: After flashing, ESPHome devices can integrate seamlessly with Home Assistant using the ESPHome native API. This documentation page focuses on the [native API](https://esphome.io/components/api.html), which allows devices to communicate directly with Home Assistant for real-time automation and monitoring. For other integrations, such as MQTT or HTTP, please refer to the relevant sections of the [ESPHome documentation](https://esphome.io/).
|
||||
@ -95,12 +96,6 @@ password:
|
||||
|
||||
For more information, see the [ESPHome Native API Component documentation](https://esphome.io/components/api.html).
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows the standard integration removal process; no extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
||||
{% include integrations/option_flow.md %}
|
||||
|
||||
These options are disabled by default and not required—only set them if specifically needed.
|
||||
@ -114,25 +109,26 @@ Subscribe to logs from the device:
|
||||
|
||||
## Supported devices
|
||||
|
||||
The ESPHome integration works with devices that run ESPHome firmware and expose their functionality through the [native ESPHome API](https://esphome.io/components/api.html). This API is designed for tight, efficient integration with Home Assistant, enabling ESPHome devices to push updates directly to Home Assistant in **near real time**.
|
||||
The ESPHome {% term integration %} works with devices that run ESPHome firmware and expose their functionality through the [native ESPHome API](https://esphome.io/components/api.html). This API is designed for tight, efficient integration with Home Assistant, enabling ESPHome devices to push updates directly to Home Assistant in **near real time**.
|
||||
|
||||
## Updating data
|
||||
|
||||
Rather than polling for sensor values or device states, Home Assistant maintains a persistent connection to each ESPHome device using the native API. This allows state changes—such as a temperature sensor update, a button press, or a binary sensor trigger—to be sent immediately as they happen, reducing latency and improving responsiveness in automations.
|
||||
|
||||
### Additional Technical Details
|
||||
### Additional technical details
|
||||
|
||||
- **Efficient Communication Protocol**: ESPHome uses a lightweight, bi-directional protocol over TCP, optimized for microcontrollers. This protocol is implemented in [aioesphomeapi](https://github.com/esphome/aioesphomeapi), the async Python library used by Home Assistant to handle real-time communication with ESPHome devices. It enables low-latency updates and near instant command execution.
|
||||
- **Automatic Reconnection**: Home Assistant maintains a persistent connection to each ESPHome device and will automatically attempt to reconnect if the connection is lost. This includes support for "sleepy" or battery-powered devices that periodically wake from deep sleep. When such a device comes online, Home Assistant quickly re-establishes the connection—especially when **mDNS** (Multicast DNS) is available—allowing the device to be discovered and connected without requiring static IPs or manual configuration.
|
||||
|
||||
This real-time behavior enables fast, reactive automations and a smooth user experience compared to traditional polling-based integrations.
|
||||
|
||||
## Supported Functionality
|
||||
## Supported functionality
|
||||
|
||||
### Entities
|
||||
|
||||
The available entities depend on the components defined in the ESPHome YAML configuration for each device. These entities are exposed through the [Native API Component](https://esphome.io/components/api.html).
|
||||
|
||||
### Firing Events on the Home Assistant Event Bus
|
||||
### Firing events on the Home Assistant event bus
|
||||
|
||||
When using the native API with Home Assistant, you can trigger events on the Home Assistant event bus directly from ESPHome. For more details, see the [homeassistant.event Action](https://esphome.io/components/api.html#homeassistant-event-action).
|
||||
|
||||
@ -140,15 +136,15 @@ When using the native API with Home Assistant, you can trigger events on the Hom
|
||||
|
||||
Each device can define Home Assistant Actions based on its ESPHome YAML configuration. For more information, refer to the [Actions](https://esphome.io/components/api.html#actions) section in the [Native API Component](https://esphome.io/components/api.html) documentation.
|
||||
|
||||
### Retrieving Data from Home Assistant
|
||||
### Retrieving data from Home Assistant
|
||||
|
||||
ESPHome can retrieve the state of Home Assistant entities using the [Native API](https://esphome.io/components/api.html) with [User-Defined Actions](https://esphome.io/components/api.html#user-defined-actions).
|
||||
|
||||
### Home Assistant Actions
|
||||
### Home Assistant actions
|
||||
|
||||
ESPHome devices can call any [Home Assistant Action](https://esphome.io/components/api.html#homeassistant-service-action). This feature is not enabled by default for newly added devices but can be enabled through the options flow on a per-device basis.
|
||||
|
||||
### Tag Scanning Support
|
||||
### Tag scanning support
|
||||
|
||||
The [Native API Component](https://esphome.io/components/api.html) also supports sending tag scan events to Home Assistant. See the [homeassistant.tag_scanned Action](https://esphome.io/components/api.html#homeassistant-tag-scanned-action) for more information.
|
||||
|
||||
@ -184,18 +180,20 @@ The entity will be named `livingroomdesk Temperature` and will default to having
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Viewing Live Logs
|
||||
### Viewing live logs
|
||||
|
||||
To troubleshoot your ESPHome devices, you can easily view live logs, whether you're using the [**ESPHome Device Builder Add-on**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon) or the **ESPHome CLI**. The logs contain detailed information such as Wi-Fi connection status, errors, and debug messages, which can help you identify and resolve issues with your device.
|
||||
|
||||
#### Using the [**ESPHome Device Builder Add-on**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon)
|
||||
|
||||
1. In the [**ESPHome Device Builder Add-on**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon) add-on, find the device you're working with.
|
||||
2. Click the **LOGS** button to open the log view.
|
||||
|
||||
#### Using the **ESPHome CLI**
|
||||
|
||||
If you're using the **ESPHome CLI**, follow the instructions for the [logs Command](https://esphome.io/guides/cli.html#logs-command) to access the logs.
|
||||
|
||||
### Obtaining Logs from the Device
|
||||
### Obtaining logs from the device
|
||||
|
||||
If you want the device to send logs without requiring you to be actively monitoring, follow these steps:
|
||||
|
||||
@ -216,7 +214,7 @@ If you want the device to send logs without requiring you to be actively monitor
|
||||
|
||||
This integration supports reconfiguration, allowing you to make changes—such as updating the IP address—even after a device has already been set up.
|
||||
|
||||
### Name Conflict Resolution
|
||||
### Name conflict resolution
|
||||
|
||||
If Home Assistant detects multiple devices with the same [**name**](https://esphome.io/components/esphome.html#configuration-variables), it will automatically initiate **Name Conflict Resolution**. This process is designed to help you seamlessly replace a failed or retired device with new hardware, while preserving your existing configuration if desired.
|
||||
|
||||
@ -232,7 +230,7 @@ If you’re using the same YAML file on the new device, choose **Migrate**. If i
|
||||
|
||||
---
|
||||
|
||||
### Requirements for Name Conflict Resolution
|
||||
### Requirements for name conflict resolution
|
||||
|
||||
To trigger Name Conflict Resolution, all of the following must be true:
|
||||
|
||||
@ -242,7 +240,7 @@ To trigger Name Conflict Resolution, all of the following must be true:
|
||||
|
||||
---
|
||||
|
||||
### How to Trigger Name Conflict Resolution
|
||||
### How to trigger name conflict resolution
|
||||
|
||||
You can trigger Name Conflict Resolution in several ways:
|
||||
|
||||
@ -251,8 +249,14 @@ You can trigger Name Conflict Resolution in several ways:
|
||||
- Configuring a **newly discovered device** that uses the same name.
|
||||
- **Manually adding** a device with the same name via the integration setup.
|
||||
|
||||
## Known Limitations
|
||||
## Known limitations
|
||||
|
||||
Each ESPHome device must have a **unique name**. This name is important for mDNS announcements, ensuring that the device can be properly discovered, quickly reconnected when it comes online or wakes from deep sleep (for devices that support deep sleep), and correctly linked to the [**ESPHome Device Builder Add-on**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon). It's also crucial for **DHCP discovery** if mDNS is not available.
|
||||
|
||||
Using duplicate names can lead to connection issues, failed discovery, and unexpected behavior with both the integration and the add-on.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows the standard integration removal process; no extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
@ -13,6 +13,8 @@ ha_platforms:
|
||||
- sensor
|
||||
ha_iot_standard: matter
|
||||
ha_brand: true
|
||||
works_with:
|
||||
- matter
|
||||
---
|
||||
|
||||
[Eve](https://www.evehome.com/) is a member of the Works with Home Assistant partner program for their Matter products. Eve is committed to making sure their products are up-to-date and ready to use in Home Assistant.
|
||||
|
@ -32,7 +32,7 @@ The Govee BLE integration will automatically discover devices once the [Bluetoot
|
||||
- H5071 Hygrometer Thermometer
|
||||
- H5072 Hygrometer Thermometer
|
||||
- H5074 Hygrometer Thermometer (Active scans required)
|
||||
- [H5075 Bluetooth Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-bluetooth-hygrometer-thermometer-h5075)
|
||||
- [H5075 Bluetooth Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-bluetooth-hygrometer-thermometer-h5075) (Active scans required)
|
||||
- [H5100 Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-h5100-mini-hygrometer-thermometer-sensors)
|
||||
- H5101 Hygrometer Thermometer
|
||||
- H5102 Hygrometer Thermometer
|
||||
@ -49,6 +49,7 @@ The Govee BLE integration will automatically discover devices once the [Bluetoot
|
||||
- H5125 2 Button Switch
|
||||
- H5126 6 Button Switch
|
||||
- H5127 Presence Sensor
|
||||
- [H5129 Hygrometer Thermometer](https://us.govee.com/products/wi-fi-temperature-humidity-sensor) (Active scans required)
|
||||
- H5130 Pressure Sensor
|
||||
- [H5177/5178 Bluetooth Thermo-Hygrometer](https://us.govee.com/collections/thermo-hydrometer/products/bluetooth-thermo-hygrometer)
|
||||
- H5174 Hygrometer Thermometer
|
||||
|
@ -725,7 +725,7 @@ Both entities can use these options, but the availability of these will depend o
|
||||
|
||||
### Sensor
|
||||
|
||||
{% details "List of binary sensors" %}
|
||||
{% details "List of sensors" %}
|
||||
|
||||
- **Finish time**:
|
||||
- **Description**: Represents the time when the program will end.
|
||||
|
@ -555,7 +555,7 @@ address:
|
||||
required: true
|
||||
type: [string, list]
|
||||
remove:
|
||||
description: If `True` the group address will be removed.
|
||||
description: If `true` the group address will be removed.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -571,7 +571,7 @@ The `knx.exposure_register` action can be used to register (or unregister) expos
|
||||
|
||||
{% configuration %}
|
||||
remove:
|
||||
description: In addition to the configuration variables of [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus) `remove` set to `True` can be used to remove exposures. Only `address` is required for removal.
|
||||
description: In addition to the configuration variables of [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus) `remove` set to `true` can be used to remove exposures. Only `address` is required for removal.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -1279,7 +1279,7 @@ state_address:
|
||||
required: false
|
||||
type: [string, list]
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -1346,7 +1346,7 @@ state_address:
|
||||
required: false
|
||||
type: [string, list]
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -1750,7 +1750,7 @@ type:
|
||||
required: true
|
||||
type: [string, integer]
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -1883,7 +1883,7 @@ options:
|
||||
required: true
|
||||
type: integer
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -2219,7 +2219,7 @@ invert:
|
||||
type: boolean
|
||||
default: false
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -2282,7 +2282,7 @@ type:
|
||||
type: [string, integer]
|
||||
default: latin_1
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
@ -2335,7 +2335,7 @@ state_address:
|
||||
required: false
|
||||
type: [string, list]
|
||||
respond_to_read:
|
||||
description: Respond to GroupValueRead telegrams received to the configured `address`.
|
||||
description: If `true`, the entity will respond to GroupValueRead telegrams received on the configured `address` by sending a GroupValueResponse to the same `address`. This is typically used when Home Assistant acts as the state provider for the KNX bus. In such cases, only `address` is configured, and `state_address` is not set. Read-requests to passive or state addresses don't trigger responses.
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
@ -386,7 +386,7 @@ NOTE for Android users: You need to follow the instructions at the bottom of the
|
||||
|
||||
### General recommendations
|
||||
|
||||
- Using Thread-based Matter devices in Home Assistant requires Home Assistant OS version 10 and above. Not using Home Assistant OS is at your own risk. We do provide some [documentation](https://github.com/home-assistant-libs/python-matter-server/blob/main/README.md) on how to run the Matter Server as a Docker container. The documentation includes a description of the host and networking requirements.
|
||||
- Using Thread-based Matter devices in Home Assistant requires Home Assistant OS version 10 and above. Home Assistant OS with the Matter Server add-on is the supported path for using Matter with Home Assistant. Running Matter Server as a standalone Docker container is unsupported, but we provide [documentation](https://github.com/home-assistant-libs/python-matter-server/blob/main/README.md) including a description of the host and networking requirements.
|
||||
|
||||
- To use {% term Thread %} devices you will need a {% term Thread %} network with at least one Thread border router in your network nearby the {% term Thread %} device(s). Apple users, for example, need the Apple TV 4K or the HomePod Mini, while Google users need a Nest Hub (2nd Gen). Use the Thread integration in Home Assistant to diagnose your {% term Thread %} network(s).
|
||||
|
||||
|
@ -17,14 +17,14 @@ ha_integration_type: integration
|
||||
The Met Éireann integration uses the [Met Éireann](https://met.ie) (The Irish Meteorological Service) Public Weather Forecast API to provide current and forecasted weather data for a given location. This integration is in no way affiliated with or endorsed by Met Éireann.
|
||||
|
||||
{% note %}
|
||||
The Met Éireann API will only provide data for Ireland, the UK and a small part of northern France. For specific coverage, please see the Notes on API document available [here](https://data.gov.ie/dataset/met-eireann-weather-forecast-api/resource/027da6d5-d819-48d1-9b16-331dba169bd1).
|
||||
The Met Éireann API will only provide data for Ireland, the UK and a small part of northern France. For specific coverage, please see the Notes on API document available [here](https://data.gov.ie/dataset/met-eireann-forecast-api/resource/027da6d5-d819-48d1-9b16-331dba169bd1).
|
||||
{% endnote %}
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Data license
|
||||
|
||||
The data provided by Met Éireann is licensed under the Met Éireann Open Data Custom License (similar to a Creative Commons CC BY 4.0 license). A license summary and the full license are available [here](https://data.gov.ie/dataset/met-eireann-weather-forecast-api/resource/027da6d5-d819-48d1-9b16-331dba169bd1). In short, if you distribute, broadcast or make Met Éireann data available on the public internet you must give credit to Met Éireann and display their weather warnings.
|
||||
The data provided by Met Éireann is licensed under the Met Éireann Open Data Custom License (similar to a Creative Commons CC BY 4.0 license). A license summary and the full license are available [here](https://data.gov.ie/dataset/met-eireann-forecast-api/resource/027da6d5-d819-48d1-9b16-331dba169bd1). In short, if you distribute, broadcast or make Met Éireann data available on the public internet you must give credit to Met Éireann and display their weather warnings.
|
||||
|
||||
## Data changes
|
||||
|
||||
|
@ -1371,7 +1371,7 @@ The following software has built-in support for MQTT discovery:
|
||||
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
|
||||
- [TeddyCloud](https://github.com/toniebox-reverse-engineering/teddycloud)
|
||||
- [Teleinfo MQTT](https://fmartinou.github.io/teleinfo2mqtt) (starting with 3.0.0)
|
||||
- [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/)
|
||||
- [Tydom2MQTT](https://tydom2mqtt.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)
|
||||
|
@ -35,3 +35,100 @@ This integration has the following Nextcloud Server prerequisites:
|
||||
- (Recommended) A Nextcloud App password should be generated for use in Home Assistant (__*Nextcloud*__ > __*Settings*__ > __*Personal*__ > __*Security*__ > __*Devices & sessions*__ > __*Create new app password*__)
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Sensors
|
||||
|
||||
For each entry, the integration will create the following {% term sensors %}:
|
||||
|
||||
| Sensor | Enabled by default |
|
||||
| ------ | ------------------ |
|
||||
| Amount of active users last 5 minutes | ✅ |
|
||||
| Amount of active users last day | ✅ |
|
||||
| Amount of active users last hour | ✅ |
|
||||
| Amount of files | ✅ |
|
||||
| Amount of group shares | ✅ |
|
||||
| Amount of link shares | ✅ |
|
||||
| Amount of local storages | ✅ |
|
||||
| Amount of mail shares | ✅ |
|
||||
| Amount of other storages | ✅ |
|
||||
| Amount of passwordless link shares | ✅ |
|
||||
| Amount of room shares | ✅ |
|
||||
| Amount of shares | ✅ |
|
||||
| Amount of shares received | ✅ |
|
||||
| Amount of shares sent | ✅ |
|
||||
| Amount of storages | ✅ |
|
||||
| Amount of storages at home | ✅ |
|
||||
| Amount of user | ✅ |
|
||||
| Amount of user shares | ✅ |
|
||||
| Apps installed | ✅ |
|
||||
| Avatars enabled | ✅ |
|
||||
| CPU load last 1 minute | ✅ |
|
||||
| CPU load last 15 minutes | ✅ |
|
||||
| CPU load last 5 minutes | ✅ |
|
||||
| Cache TTL | ❌ |
|
||||
| Cache expunges | ❌ |
|
||||
| Cache memory | ❌ |
|
||||
| Cache memory size | ✅ |
|
||||
| Cache number of entries | ❌ |
|
||||
| Cache number of hits | ❌ |
|
||||
| Cache number of inserts | ❌ |
|
||||
| Cache number of misses | ❌ |
|
||||
| Cache number of slots | ❌ |
|
||||
| Cache start time | ❌ |
|
||||
| Database size | ✅ |
|
||||
| Database type | ✅ |
|
||||
| Database version | ✅ |
|
||||
| Debug enabled | ✅ |
|
||||
| Filelocking enabled | ✅ |
|
||||
| Free memory | ✅ |
|
||||
| Free space | ✅ |
|
||||
| Free swap memory | ✅ |
|
||||
| Interned buffer size | ❌ |
|
||||
| Interned free memory | ❌ |
|
||||
| Interned number of strings | ❌ |
|
||||
| Interned used memory | ❌ |
|
||||
| JIT active | ❌ |
|
||||
| JIT buffer free | ❌ |
|
||||
| JIT buffer size | ❌ |
|
||||
| JIT enabled | ❌ |
|
||||
| JIT kind | ❌ |
|
||||
| JIT opt flags | ❌ |
|
||||
| JIT opt level | ❌ |
|
||||
| Opcache blacklist miss ratio | ❌ |
|
||||
| Opcache blacklist misses | ❌ |
|
||||
| Opcache cached keys | ❌ |
|
||||
| Opcache cached scripts | ❌ |
|
||||
| Opcache current wasted percentage | ❌ |
|
||||
| Opcache free memory | ❌ |
|
||||
| Opcache hash restarts | ❌ |
|
||||
| Opcache hit rate | ❌ |
|
||||
| Opcache hits | ❌ |
|
||||
| Opcache last restart time | ❌ |
|
||||
| Opcache manual restarts | ❌ |
|
||||
| Opcache max cached keys | ❌ |
|
||||
| Opcache misses | ❌ |
|
||||
| Opcache out of memory restarts | ❌ |
|
||||
| Opcache start time | ❌ |
|
||||
| Opcache used memory | ❌ |
|
||||
| Opcache wasted memory | ❌ |
|
||||
| PHP max execution time | ✅ |
|
||||
| PHP memory limit | ✅ |
|
||||
| PHP upload maximum filesize | ✅ |
|
||||
| PHP version | ✅ |
|
||||
| Previews enabled | ✅ |
|
||||
| SMA available memory | ❌ |
|
||||
| SMA number of segments | ❌ |
|
||||
| SMA segment size | ❌ |
|
||||
| System memcache distributed | ❌ |
|
||||
| System memcache local | ❌ |
|
||||
| System memcache locking | ❌ |
|
||||
| System theme | ✅ |
|
||||
| System version | ✅ |
|
||||
| Total memory | ✅ |
|
||||
| Total swap memory | ✅ |
|
||||
| Updates available | ✅ |
|
||||
| Webserver | ✅ |
|
||||
|
||||
## Update entity
|
||||
|
||||
An {% term update %} entity will be created for each entry.
|
||||
|
@ -27,6 +27,7 @@ This integration allows you to connect the following controllers:
|
||||
|
||||
- Russound MBX-PRE
|
||||
- Russound MBX-AMP
|
||||
- Russound ACA-E5
|
||||
- Russound MCA-C3
|
||||
- Russound MCA-C5
|
||||
- Russound MCA-66
|
||||
|
@ -27,7 +27,6 @@ Connecting to the Russound device is only possible by TCP, you can make use of a
|
||||
|
||||
This integration allows you to connect the following controllers:
|
||||
|
||||
- Russound ACA-E5
|
||||
- Russound CAS44
|
||||
- Russound CAA66
|
||||
- Russound CAM6.6
|
||||
|
@ -54,6 +54,10 @@ payload:
|
||||
description: The payload to send with a POST request. Depends on the service, but usually formed as JSON.
|
||||
required: false
|
||||
type: string
|
||||
payload_template:
|
||||
description: The payload to send with a POST request with template support.
|
||||
required: false
|
||||
type: template
|
||||
verify_ssl:
|
||||
description: Verify the SSL certificate of the endpoint.
|
||||
required: false
|
||||
|
@ -49,11 +49,11 @@ to allow you to log in with your Spotify account.
|
||||
|
||||
4. Enter a name and description; feel free to use any name and description you like.
|
||||
|
||||
Set the _"Redirect URI"_ to the following:
|
||||
- Set the _"Redirect URI"_ to the following:
|
||||
|
||||
`https://my.home-assistant.io/redirect/oauth`
|
||||
|
||||
Please copy and paste the exact URL above. You **do not** have to change it.
|
||||
- Please copy and paste the exact URL above. You **do not** have to change it.
|
||||
|
||||

|
||||
|
||||
@ -70,7 +70,7 @@ to allow you to log in with your Spotify account.
|
||||
8. Before we can start configuring Home Assistant, we need to grab the application
|
||||
credentials Home Assistant needs.
|
||||
|
||||
Select on the **View client secret** button to reveal the client secret.
|
||||
- Select on the **View client secret** button to reveal the client secret.
|
||||
|
||||

|
||||
|
||||
@ -80,7 +80,7 @@ to allow you to log in with your Spotify account.
|
||||
|
||||

|
||||
|
||||
You will need the _"Client ID"_ and _"Client secret"_ during the Spotify
|
||||
- You will need the _"Client ID"_ and _"Client secret"_ during the Spotify
|
||||
integration setup process in Home Assistant.
|
||||
|
||||
You can now continue with the next chapter to configure the Spotify integration
|
||||
@ -103,7 +103,7 @@ Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://hom
|
||||
|
||||
## Data updates
|
||||
|
||||
The integration polls at least every 30 seconds.
|
||||
The integration {% term polling polls %} at least every 30 seconds.
|
||||
If the track that is playing ends in less than 30 seconds, the integration will poll again after the track has ended to update the state again.
|
||||
|
||||
## Using multiple Spotify accounts
|
||||
|
@ -120,6 +120,17 @@ sql:
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
||||
## Data updates
|
||||
|
||||
By default, the integration executes the SQL query to update the sensor every 30 seconds.
|
||||
If you wish to update at a different interval, you can disable the automatic refresh in the integration’s system options (**Enable polling for updates**) and create your own automation with your desired frequency.
|
||||
|
||||
For more detailed steps on how to define a custom interval, follow the procedure below.
|
||||
|
||||
### Defining a custom polling interval
|
||||
|
||||
{% include common-tasks/define_custom_polling.md %}
|
||||
|
||||
## Information
|
||||
|
||||
See [supported engines](/integrations/recorder/#custom-database-engines) for which you can connect with this integration.
|
||||
|
@ -352,7 +352,7 @@ cover:
|
||||
type: map
|
||||
keys:
|
||||
state:
|
||||
description: Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. In addition, `true` is valid as a synonym to `open` and `false` as a synonym to `closed`. If [both a `value_template` and a `position_template`](#combining-value_template-and-position_template) are specified, only `opening` and `closing` are set from the `value_template`. If the template produces a `None` value the state will be set to `unknown`.
|
||||
description: Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. In addition, `true` is valid as a synonym to `open` and `false` as a synonym to `closed`. If [both a `state` and a `position` template](/integrations/cover.template/#combining-value_template-and-position_template) are specified, only `opening` and `closing` are set from the `state` template. If the template produces a `None` value the state will be set to `unknown`.
|
||||
required: false
|
||||
type: template
|
||||
position:
|
||||
|
@ -46,7 +46,7 @@ Screenshot showing the state of a text-to-speech entity in the developer tools.
|
||||
|
||||
Modern platforms will create entities under the `tts` domain, where each entity represents one text-to-speech service provider. These entities may be used as targets for the `tts.speak` action.
|
||||
|
||||
the `tts.speak` action supports `language` and on some platforms also `options` for settings, e.g., _voice, motion, speed, etc_. The text that should be spoken is set with `message`, and the media player that should output the sound is selected with `media_player_entity_id`.
|
||||
The `tts.speak` action supports `message`, `language`, `cache`, `media_player_entity_id` and `options` options. The text that should be spoken is set with `message`, and the media player that should output the sound is selected with `media_player_entity_id`. The language can be set with `language`, using the format required by the target entity platform (refer to specific platform documentation). See [cache section](#cache) for information on `cache` option. Additional settings can be specified with the `options` option, which include preferred audio settings (see [preferred audio settings](#preferred-audio-settings) section for more info) and further settings of the target entity platform, e.g., _voice, motion, speed, etc._ (refer to specific platform documentation for any supported settings).
|
||||
|
||||
```yaml
|
||||
action: tts.speak
|
||||
@ -59,7 +59,7 @@ data:
|
||||
|
||||
### Action say (legacy)
|
||||
|
||||
The `say` action supports `language` and on some platforms also `options` for settings, e.g., _voice, motion, speed, etc_. The text that should be spoken is set with `message`. Since release 0.92, action name can be defined in configuration `service_name` option.
|
||||
The `say` action supports `message`, `language`, `cache` and `options` options. The text that should be spoken is set with `message`. The language can be set with `language`, using the format required by the platform (refer to specific platform documentation). See [cache section](#cache) for information on `cache` option. Additional settings can be specified with the `options` option, which include preferred audio settings (see [preferred audio settings](#preferred-audio-settings) section for more info) and further settings of the target platform, e.g., _voice, motion, speed, etc._ (refer to specific platform documentation for any supported settings). Since release 0.92, action name can be defined in configuration `service_name` option.
|
||||
|
||||
Say to all `media_player` entities:
|
||||
|
||||
@ -105,13 +105,40 @@ data:
|
||||
|
||||
## Cache
|
||||
|
||||
The integration cache can be controlled with the `cache` option in the action to `speak` or `say`. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.
|
||||
The integration cache can be controlled with the `cache` option in the action to `speak` or `say`, setting it to `True` to enable it (default), or `False` to disable it. A long time cache will be located on the file system. The in-memory cache for fast responses to media players will be auto-cleaned after a short period.
|
||||
|
||||
## Preferred audio settings
|
||||
|
||||
Each TTS platform produces audio samples in different formats, not always compatible with every media player. TTS integration building block supports a way to configure preferred target audio format through `options` option of `speak` or `say` actions.
|
||||
|
||||
TTS integration building block uses [FFmpeg integration](/integrations/ffmpeg) to perform audio transcoding when target entity platform does not support one or all the specified preferred audio format settings (refer to specific platform documentation for any supported setting with related supported values).
|
||||
|
||||
Available preferred audio settings, all optional, are:
|
||||
|
||||
- `preferred_format`: Set the audio format. When not supported by the target entity platform, the value is a file extension like `wav`, `mp3`, `ogg`, etc., among ones supported by FFmpeg tool for output files.
|
||||
- `preferred_sample_rate`: Set the sample rate. When not supported by the target entity platform, the value is in Hz as a number, among ones supported by the `-ar` parameter of FFmpeg tool.
|
||||
- `preferred_sample_channels`: Set the number of audio channels. When not supported by the target entity platform, the value is a number among ones supported by the `-ac` parameter of FFmpeg tool.
|
||||
- `preferred_sample_bytes`: Set the audio bit sampling. When not supported by the target entity platform, can only be set to `2` to use 16-bit audio sampling (any other value is ignored).
|
||||
|
||||
Example to produce an MP3 audio at 22050Hz:
|
||||
|
||||
```yaml
|
||||
action: tts.speak
|
||||
target:
|
||||
entity_id: tts.example
|
||||
data:
|
||||
media_player_entity_id: media_player.kitchen
|
||||
message: "May the force be with you."
|
||||
options:
|
||||
preferred_format: mp3
|
||||
preferred_sample_rate: 22050
|
||||
```
|
||||
|
||||
## REST API
|
||||
|
||||
### POST `/api/tts_get_url`
|
||||
|
||||
Returns a URL to the generated TTS file. The `engine_id` or `platform` parameter together with `message` are required.
|
||||
Returns a URL to the generated TTS file. The `engine_id` (which is the entity id) or `platform` parameter together with `message` are required. Additional parameters `cache`, `language` and `options` are supported, as JSON attributes, as described for `speak` action.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -166,3 +193,9 @@ These requirements present the following problems, all of which create problems
|
||||
- If you are using SSL (e.g., `https://yourhost.example.org/...`) then you _must_ use the hostname in the certificate (e.g., `external_url: https://yourhost.example.org`). You cannot use an IP address since the certificate won't be valid for the IP address, and the cast device will refuse the connection.
|
||||
|
||||
The recommended way to overcome these obstacles is to not manually configure a local Home Assistant URL.
|
||||
|
||||
### Partial, corrupted or no audio
|
||||
|
||||
Some media players could reproduce only partial, corrupted or no audio at all when the audio format is not fully supported. In such cases it is required to experiment with different combinations of audio formats, channels, sample rates and bits using [preferred audio settings](#preferred-audio-settings) options.
|
||||
|
||||
For example, some Google Cast devices skip initial audio part when the audio is sampled at 22050Hz, and to fix the problem it is required to set the `preferred_sample_rate` setting in the `options` option to `44100`.
|
||||
|
@ -82,7 +82,7 @@ For more Z-Wave term definitions, refer to the [terminology section](#z-wave-ter
|
||||
To run a Z-Wave network, you need the following elements:
|
||||
|
||||
- A [supported Z-Wave controller](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules). First-time user? For recommendations on what to buy, go [here](#which-z-wave-controller-should-i-buy).
|
||||
- A running Z-Wave JS server.
|
||||
- A running [Z-Wave JS server](#setting-up-a-z-wave-js-server).
|
||||
- An installed Z-Wave integration in Home Assistant.
|
||||
|
||||
### Setting up a Z-Wave JS server
|
||||
@ -155,6 +155,8 @@ While your Z-Wave mesh is permanently stored on your dongle, the additional meta
|
||||
|
||||
### Removing a device from the Z-Wave network
|
||||
|
||||
Do this before using the device with another controller, or when you don't use the device anymore. It removes the device from the Z-Wave network stored on the controller. It also removes the device and all its entities from Home Assistant. You can not join a device to a new network if it is still paired with a controller.
|
||||
|
||||
1. In Home Assistant, go to {% my integrations title="**Settings** > **Devices & services**" %}.
|
||||
2. Select the **Z-Wave** integration. Then, select **Configure**.
|
||||
3. Select **Remove device**, then **Start exclusion**.
|
||||
@ -162,6 +164,23 @@ While your Z-Wave mesh is permanently stored on your dongle, the additional meta
|
||||
4. Put the device you want to remove in exclusion mode. Refer to its manual how this is done.
|
||||
5. The UI should confirm that the device was removed and the device and entities will be removed from Home Assistant.
|
||||
|
||||
## Migrating a Z-Wave network to a new controller
|
||||
|
||||
Do this if you have an existing Z-Wave network and want to use a new controller. This will reset your current controller (remove all network information from it) and remove the controller from Home Assistant. The Z-Wave integration with all its entities will stay in Home Assistant. The new controller is added to Home Assistant and paired with the existing network.
|
||||
|
||||
To migrate a Z-Wave network to a new controller, follow these steps:
|
||||
|
||||
1. In Home Assistant, go to {% my integrations title="**Settings** > **Devices & services**" %}.
|
||||
2. Select the **Z-Wave** integration. Then, select **Configure**.
|
||||
3. Under **Backup and restore**, select **Migrate controller**.
|
||||
4. Select **Migrate to a new controller**.
|
||||
- To confirm device reset, select **Submit**.
|
||||
- **Info**: This will initiate a backup of the network information and factory reset the controller. All the stored network information will be removed.
|
||||
5. When the **Unplug your controller** dialog shows up, unplug your old controller.
|
||||
- Connect the new controller.
|
||||
- Confirm that you connected the new controller by selecting **Submit**.
|
||||
6. Follow the steps on screen.
|
||||
|
||||
## Special Z-Wave entities
|
||||
|
||||
The Z-Wave integration provides several special entities, some of which are available for every Z-Wave device, and some of which are conditional based on the device.
|
||||
@ -1062,3 +1081,25 @@ No further action is required and the SmartStart product will be added automatic
|
||||
### Terminology mapping table
|
||||
|
||||
For some of the concepts, the terminology used in Home Assistant does not correspond to the terminology used in Z-Wave documentation. Refer to the [terminology mapping table](#z-wave-terminology-and-home-assistant) for a list of term equivalents.
|
||||
|
||||
## Removing Z-Wave JS from Home Assistant
|
||||
|
||||
This removes all paired Z-Wave devices and their entities, the Z-Wave JS add-on, and the Z-Wave integration from Home Assistant.
|
||||
|
||||
### To remove Z-Wave JS from Home Assistant
|
||||
|
||||
1. [Remove the device from your Z-Wave network](/integrations/zwave_js/#removing-a-device-from-the-z-wave-network).
|
||||
- Do this for each device that is joined to your network so that it is no longer paired to the controller.
|
||||
- You cannot add a device to a new controller while it is still paired with an old one.
|
||||
- Alternatively, you can factory reset each device. Refer to the device manual to see how this is done.
|
||||
- This usually involves finding the device in your household and pressing a button.
|
||||
2. Remove the Z-Wave integration.
|
||||
- Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
|
||||
- Next to the integration entry, select the three-dot {% icon "mdi:dots-vertical" %} menu.
|
||||
- Select **Delete**.
|
||||
3. If it hasn't been deleted automatically, remove the Z-Wave JS add-on.
|
||||
- Go to {% my supervisor_addon addon="core_zwave_js" title="**Settings** > **Add-ons** > **Z-Wave JS**" %}.
|
||||
- Select **Uninstall**.
|
||||
- Decide whether to also delete the data related to the add-on or whether to keep it.
|
||||
4. Done. Z-Wave JS is now completely removed from your Home Assistant server.
|
||||
- You can now use your Z-Wave devices and controller on a new server.
|
||||
|
@ -13,11 +13,11 @@ This section provides tasks that do not depend on a specific Home Assistant inst
|
||||
|
||||
If you want to define a specific interval at which your device is being polled for data, you can disable the default polling interval and create your own polling automation.
|
||||
|
||||
## What is data polling?
|
||||
### What is data polling?
|
||||
|
||||
Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.
|
||||
|
||||
## Why use an automation instead of changing the integration's polling configuration?
|
||||
### Why use an automation instead of changing the integration's polling configuration?
|
||||
|
||||
Creating an automation for polling gives you more flexibility on when to poll:
|
||||
|
||||
|
@ -31,7 +31,9 @@ If you have the {% term "Home Assistant Operating System" %} installed, you rece
|
||||
- {% term "Home Assistant Operating System" %}
|
||||
- {% term "Home Assistant Supervisor" %}
|
||||
- {% term "Home Assistant Core" %}
|
||||
- Add-ons, if you have any installed
|
||||
- {% term "Add-ons" %}, if you have any installed
|
||||
|
||||
Each of these components needs to be updated separately.
|
||||
|
||||
### Updating the Home Assistant Operating System
|
||||
|
||||
@ -39,8 +41,9 @@ Updates of the {% term "Home Assistant Operating System" %} are independent of o
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
- [Backup](/common-tasks/general/#backups) your installation.
|
||||
- Make sure the backup is downloaded and stored outside of the system.
|
||||
- [Backup your installation](/common-tasks/general/#backups).
|
||||
- Make sure the backup is stored on a [backup location](/common-tasks/general/#defining-backup-locations) outside of the device where Home Assistant is installed.
|
||||
- For example, if Home Assistant is installed on [Home Assistant Green](https://www.home-assistant.io/green), make sure it is stored on [Home Assistant Cloud](/common-tasks/general/#about-the-backup-storage-on-home-assistant-cloud) or another location.
|
||||
- So that you can [restore from that backup](/common-tasks/general/#restoring-a-backup) in case there is an issue with the system.
|
||||
|
||||
#### To update the Home Assistant Operating System
|
||||
@ -52,8 +55,15 @@ Updates of the {% term "Home Assistant Operating System" %} are independent of o
|
||||
|
||||
1. Open the **Settings** panel.
|
||||
2. On the top you will be presented with an update notification.
|
||||
|
||||
_If you do not see that notification, in the top right, select the three dots menu and select **Check for updates**"._
|
||||
- **Troubleshooting**: If you do not see that notification:
|
||||
- In the top right corner, select the three dots {% icon "mdi:dots-vertical" %} menu and select **Check for updates**.
|
||||
- Go to {% my updates title="**System** > **Updates**" %}.
|
||||
- Select the update notification.
|
||||
- Select the cogwheel {% icon "mdi:cog-outline" %}, then set **Visible** to active.
|
||||
3. Open the notification for the component you want to update.
|
||||
4. If you want to update the system first (recommended), enable the backup toggle.
|
||||
5. Select **Update**.
|
||||
6. Check if there are any repair issues and check the logs to see if there are any issues with your configuration that need to be addressed.
|
||||
|
||||
- title: Using the CLI
|
||||
content: |
|
||||
@ -66,6 +76,8 @@ Updates of the {% term "Home Assistant Operating System" %} are independent of o
|
||||
|
||||
{% endtabbed_block %}
|
||||
|
||||
{% details "Advanced: changing the boot slot used during the update" %}
|
||||
|
||||
#### About boot slots used during the update
|
||||
|
||||
The {% term "Home Assistant Operating System" %} uses two boot slots. On first installation, boot slot A is used. After that, on each Operating System update, the other boot slot is updated and reboot is triggered. On that reboot, the system boots from the other boot slot (A ➝ B ➝ A,...). When booting fails, the system automatically uses the previous boot slot, so that it boots from the last working operating system.
|
||||
@ -89,6 +101,8 @@ You can manually define that the previous boot slot is used. This can be useful
|
||||
|
||||
Alternatively, if the Operating Systems runs on a platform that uses the GRUB bootloader, a boot menu is presented early in the boot. The alternative boot slot can be selected here, marking it active for future boots if the following boot attempt is successful.
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
### Updating Home Assistant Core
|
||||
|
||||
{% include common-tasks/update.md %}
|
||||
|
@ -485,8 +485,7 @@ dark_header: true
|
||||
</div>
|
||||
<div class="heading-wrapper-min">
|
||||
<p>
|
||||
Home Assistant Green is the easiest way to run Home Assistant for the
|
||||
low price of $99. Try out Home Assistant for your smart home or share
|
||||
Home Assistant Green is the easiest way to run Home Assistant. Try out Home Assistant for your smart home or share
|
||||
the love with family and friends.
|
||||
</p>
|
||||
<p class="small-legal-text">
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Binary file not shown.
Before Width: | Height: | Size: 81 KiB |
BIN
source/images/frontpage/community-meetup.webp
Normal file
BIN
source/images/frontpage/community-meetup.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
@ -72,7 +72,7 @@ You are in the onboarding procedure, but the process seems stuck at the step **P
|
||||
|
||||
### Resolution
|
||||
|
||||
1. Select the pulsing blue dot to view the log files.
|
||||
1. Select **Show details** to view the log files.
|
||||
- The log files might provide more information on the current status.
|
||||
2. Make sure your network has internet access.
|
||||
- During first startup, time will be synchronized. Ensure NTP is allowed in your network.
|
||||
|
@ -12,4 +12,4 @@ with the Supervisor is not supported.
|
||||
## The solution
|
||||
|
||||
You need to reinstall the host operating system that runs the Supervisor,
|
||||
for instructions on how to prosed with that [have a look here](/more-info/unsupported/os).
|
||||
for instructions on how to proceed with that [have a look here](/more-info/unsupported/os).
|
||||
|
@ -208,7 +208,7 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
|
||||
<div class="wrapper">
|
||||
<div class="content">
|
||||
<div class="subtitle-medium">Preview the future of voice for just</div>
|
||||
<div class="fs-price">$59<span>*</span></div>
|
||||
<div class="fs-price">$69 / €59 <span>*</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wrapper outer">
|
||||
@ -217,7 +217,7 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
|
||||
alt="Front view of the Voice Preview Edition showing the speaker holes">
|
||||
<div class="wrapper">
|
||||
<a class="button secondary buy">Buy now</a>
|
||||
<small>* Recommended MSRP. Pricing subject to individual retailers.</small>
|
||||
<small>* Recommended MSRP. Prices differ between regions due to varying local market costs and conditions, and subject to individual retailers.</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -174,7 +174,7 @@ article.page h3 {
|
||||
--subtitle-medium-mobile: 24;
|
||||
|
||||
--price: 170;
|
||||
--price-mobile: 120;
|
||||
--price-mobile: 60;
|
||||
|
||||
--wrapper-radius: 0px;
|
||||
|
||||
@ -182,6 +182,11 @@ article.page h3 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 875px) {
|
||||
:root{
|
||||
--price-mobile: 120;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width: 2180px) {
|
||||
.vpe-main {
|
||||
--wrapper-radius: 40px;
|
||||
@ -2881,7 +2886,7 @@ section#hero .bg-gradient {
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
margin-bottom: -20px;
|
||||
margin-bottom: -10px;
|
||||
display: flex;
|
||||
margin-top: 8px;
|
||||
}
|
||||
@ -4894,6 +4899,11 @@ section#hero .bg-gradient {
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 940px) {
|
||||
.vpe-main #pricing .fs-price {
|
||||
margin-bottom: -10px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 940px) {
|
||||
.vpe-main {
|
||||
--columns: 11;
|
||||
@ -5190,7 +5200,7 @@ section#hero .bg-gradient {
|
||||
}
|
||||
|
||||
.vpe-main #pricing .fs-price {
|
||||
margin-bottom: -26px;
|
||||
margin-bottom: -20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ As for the rest of Home Assistant core functionalities, Assist can be personaliz
|
||||
|
||||
<lite-youtube videoid="XF53wUbeLxA" videotitle="Voice at Home Assistant"></lite-youtube>
|
||||
|
||||
## Getting Started
|
||||
## Getting started
|
||||
|
||||
When you configure voice assistant hardware made for Home Assistant, it will use a wizard to help you configure your system and get started to use voice.
|
||||
|
||||
@ -41,7 +41,7 @@ In case your hardware does not support our wizard, do not worry. Here are two de
|
||||
- [I plan to process my voice locally](/voice_control/voice_remote_local_assistant/)
|
||||
- [I plan to use Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) (recommended as it is the simplest)
|
||||
|
||||
## Expand and Experiment
|
||||
## Expand and experiment
|
||||
|
||||
Once your setup is up and running and you follow the [best practices](/voice_control/best_practices), check all the possibilities we found for [Expanding your Assist setup](/voice_control/expanding_assist), and further experiment with different setups like [wake words](/voice_control/about_wake_word/). Do you want to talk to Super Mario? Or another figure? If you want Assist to respond in a fun way, you can create an assistant with an [AI personality](/voice_control/assist_create_open_ai_personality/).
|
||||
|
||||
|
@ -70,18 +70,15 @@ Before you can use this device with Home Assistant, you need to install a bit of
|
||||
|
||||

|
||||
|
||||
6. To add the newly discovered device, select the ATOM Echo from the list.
|
||||
- Add your ATOM Echo to a room and select **Finish**.
|
||||
7. You should now see the **ESPHome** integration.
|
||||

|
||||
8. Select the **ESPHome** integration. Under **Devices**, you should see the **M5Stack Atom Echo** listed.
|
||||

|
||||
- Your ATOM Echo is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply.
|
||||
9. Congratulations! You can now voice control Home Assistant. Now give some commands.
|
||||
6. This starts the a wizard to customize the your voice assistant.
|
||||
- Follow the wizard steps to define the wake word and choose the voice.
|
||||
- When you are finished, select **Done**.
|
||||
7. Your ATOM Echo is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply.
|
||||
8. Congratulations! You can now voice control Home Assistant. Now give some commands.
|
||||
|
||||
## Controlling Home Assistant over the ATOM Echo
|
||||
|
||||
1. Say your wake word. For this tutorial, use "OK, Nabu".
|
||||
1. Say the wake word you configured. For example, use "OK, Nabu".
|
||||
- Wait for the LED to start blinking in blue.
|
||||
2. Say a [supported voice command](/voice_control/builtin_sentences/). For example, *Turn off the light in the kitchen*.
|
||||
- While you are speaking, the blue LED keeps pulsing.
|
||||
@ -93,8 +90,8 @@ Before you can use this device with Home Assistant, you need to install a bit of
|
||||
3. Your command is not supported? Add your own commands using [a sentence trigger](/voice_control/custom_sentences/).
|
||||
4. You find ATOM Echo takes too long to start processing your command?
|
||||
- Adjust the silence detection settings.
|
||||
- Go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the **ESPHome** integration.
|
||||
- Under **M5Stack ATOM Echo**, select **1 device**. Under **Configuration**, change the **Finish speaking detection**.
|
||||
- Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the **ESPHome** integration.
|
||||
- Under **M5Stack ATOM Echo**, select **1 device**. Under **Configuration**, change the **Finished speaking detection**.
|
||||
- This setting defines how much silence is needed for Assist to find you're done speaking and it can start processing your command.
|
||||
|
||||

|
||||
@ -104,3 +101,21 @@ Before you can use this device with Home Assistant, you need to install a bit of
|
||||
Are things not working as expected?
|
||||
|
||||
- Checkout the [general troubleshooting section for Assist](/voice_control/troubleshooting/).
|
||||
|
||||
## Removing the Wi-Fi credentials from the ATOM Echo
|
||||
|
||||
If you no longer use the device or want to pass it on to someone else, you can remove the Wi-Fi credentials that are stored on the device.
|
||||
|
||||
1. Make sure this page is opened in a Chromium-based browser on a desktop. It does not work on a tablet or phone.
|
||||
- Select the **Connect** button below. If your browser does not support web serial, you will see a warning instead of a button.
|
||||
|
||||
<script type="module" src="https://unpkg.com/esp-web-tools@10/dist/web/install-button.js?module"></script>
|
||||
<esp-web-install-button manifest="https://firmware.esphome.io/wake-word-voice-assistant/m5stack-atom-echo/manifest.json"></esp-web-install-button>
|
||||
|
||||
2. To connect the ATOM Echo to your computer, follow these steps:
|
||||
- In the pop-up window, view the available ports.
|
||||
- Plug the USB-C cable into the ATOM Echo and connect it to your computer.
|
||||
- In the pop-up window, there should now appear a new entry. Select this USB serial port and select **Connect**.
|
||||
3. In the dialog, select **Erase user data**.
|
||||
- **Result**: Your Wi-Fi credentials are deleted from the device.
|
||||
- The firmware stays on the device.
|
||||
|
Loading…
x
Reference in New Issue
Block a user