Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2024-11-26 13:05:33 +01:00
commit d40330bc61
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
118 changed files with 2847 additions and 562 deletions

View File

@ -10,10 +10,10 @@ group :development do
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.80.6'
gem 'sass-embedded', '1.81.0'
gem 'rubocop', '1.68.0'
gem 'ruby-lsp', '0.21.3'
gem 'rackup', '2.2.0'
gem 'ruby-lsp', '0.22.1'
gem 'rackup', '2.2.1'
end
group :jekyll_plugins do
@ -23,7 +23,7 @@ group :jekyll_plugins do
gem 'jekyll-toc', '0.19.0'
end
gem 'sinatra', '4.0.0'
gem 'sinatra', '4.1.1'
gem 'nokogiri', '1.16.7'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem

View File

@ -8,7 +8,7 @@ GEM
bigdecimal (3.1.8)
chunky_png (1.4.0)
colorator (1.1.0)
commonmarker (0.23.10)
commonmarker (0.23.11)
compass (1.0.3)
chunky_png (~> 1.2)
compass-core (~> 1.0.2)
@ -66,9 +66,9 @@ GEM
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.8.1)
kramdown (2.4.0)
rexml
json (2.8.2)
kramdown (2.5.1)
rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
language_server-protocol (3.17.0.3)
@ -95,12 +95,13 @@ GEM
public_suffix (6.0.1)
racc (1.8.1)
rack (3.1.8)
rack-protection (4.0.0)
rack-protection (4.1.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-session (2.0.0)
rack (>= 3.0.0)
rackup (2.2.0)
rackup (2.2.1)
rack (>= 3)
rainbow (3.1.1)
rake (13.2.1)
@ -111,7 +112,7 @@ GEM
logger
regexp_parser (2.9.2)
rexml (3.3.9)
rouge (4.4.0)
rouge (4.5.1)
rubocop (1.68.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
@ -122,9 +123,9 @@ GEM
rubocop-ast (>= 1.32.2, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.34.0)
rubocop-ast (1.36.1)
parser (>= 3.3.1.0)
ruby-lsp (0.21.3)
ruby-lsp (0.22.1)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
@ -133,9 +134,9 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.80.6-arm64-darwin)
sass-embedded (1.81.0-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.6-x86_64-linux-gnu)
sass-embedded (1.81.0-x86_64-linux-gnu)
google-protobuf (~> 4.28)
sass-globbing (1.1.5)
sass (>= 3.1)
@ -143,13 +144,14 @@ GEM
ffi (~> 1.9)
sassc (2.1.0-x86_64-linux)
ffi (~> 1.9)
sinatra (4.0.0)
sinatra (4.1.1)
logger (>= 1.6.0)
mustermann (~> 3.0)
rack (>= 3.0.0, < 4)
rack-protection (= 4.0.0)
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11641)
sorbet-runtime (0.5.11663)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@ -173,14 +175,14 @@ DEPENDENCIES
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.19.0)
nokogiri (= 1.16.7)
rackup (= 2.2.0)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.68.0)
ruby-lsp (= 0.21.3)
sass-embedded (= 1.80.6)
ruby-lsp (= 0.22.1)
sass-embedded (= 1.81.0)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.0.0)
sinatra (= 4.1.1)
stringex (= 2.8.6)
tzinfo (~> 2.0)
tzinfo-data

View File

@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2024
current_minor_version: 11
current_patch_version: 0
date_released: 2024-11-06
current_patch_version: 3
date_released: 2024-11-22
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -366,7 +366,7 @@ header .breadcrumbs {
margin: 0 -24px;
text-align: left;
h4 {
h3 {
text-transform: uppercase;
font-size: .9rem;
letter-spacing: 0.005em;

View File

@ -85,3 +85,7 @@ Joakim Sørensen:
Andy Gill:
name: Andy Gill
github: ncandyg
Missy Quarry:
name: Missy Quarry
github: missyquarry

View File

@ -41,61 +41,198 @@ Get all available tables from your current Home Assistant database:
sqlite> SELECT sql FROM sqlite_master;
-------------------------------------------------------------------------------------
CREATE TABLE events (
event_id INTEGER NOT NULL,
event_type VARCHAR(32),
event_data TEXT,
origin VARCHAR(32),
time_fired DATETIME,
created DATETIME,
context_id VARCHAR(36),
context_user_id VARCHAR(36), context_parent_id CHARACTER(36),
PRIMARY KEY (event_id)
CREATE TABLE event_data (
data_id INTEGER NOT NULL,
hash BIGINT,
shared_data TEXT,
PRIMARY KEY (data_id)
)
CREATE TABLE event_types (
event_type_id INTEGER NOT NULL,
event_type VARCHAR(64),
PRIMARY KEY (event_type_id)
)
CREATE TABLE state_attributes (
attributes_id INTEGER NOT NULL,
hash BIGINT,
shared_attrs TEXT,
PRIMARY KEY (attributes_id)
)
CREATE TABLE states_meta (
metadata_id INTEGER NOT NULL,
entity_id VARCHAR(255),
PRIMARY KEY (metadata_id)
)
CREATE TABLE statistics_meta (
id INTEGER NOT NULL,
statistic_id VARCHAR(255),
source VARCHAR(32),
unit_of_measurement VARCHAR(255),
has_mean BOOLEAN,
has_sum BOOLEAN,
name VARCHAR(255),
PRIMARY KEY (id)
)
CREATE TABLE recorder_runs (
run_id INTEGER NOT NULL,
start DATETIME,
"end" DATETIME,
closed_incorrect BOOLEAN,
created DATETIME,
PRIMARY KEY (run_id),
CHECK (closed_incorrect IN (0, 1))
run_id INTEGER NOT NULL,
start DATETIME NOT NULL,
"end" DATETIME,
closed_incorrect BOOLEAN NOT NULL,
created DATETIME NOT NULL,
PRIMARY KEY (run_id)
)
CREATE TABLE migration_changes (
migration_id VARCHAR(255) NOT NULL,
version SMALLINT NOT NULL,
PRIMARY KEY (migration_id)
)
CREATE TABLE schema_changes (
change_id INTEGER NOT NULL,
schema_version INTEGER,
changed DATETIME,
PRIMARY KEY (change_id)
change_id INTEGER NOT NULL,
schema_version INTEGER,
changed DATETIME NOT NULL,
PRIMARY KEY (change_id)
)
CREATE TABLE statistics_runs (
run_id INTEGER NOT NULL,
start DATETIME NOT NULL,
PRIMARY KEY (run_id)
)
CREATE TABLE events (
event_id INTEGER NOT NULL,
event_type CHAR(0),
event_data CHAR(0),
origin CHAR(0),
origin_idx SMALLINT,
time_fired CHAR(0),
time_fired_ts FLOAT,
context_id CHAR(0),
context_user_id CHAR(0),
context_parent_id CHAR(0),
data_id INTEGER,
context_id_bin BLOB,
context_user_id_bin BLOB,
context_parent_id_bin BLOB,
event_type_id INTEGER,
PRIMARY KEY (event_id),
FOREIGN KEY(data_id) REFERENCES event_data (data_id),
FOREIGN KEY(event_type_id) REFERENCES event_types (event_type_id)
)
CREATE TABLE states (
state_id INTEGER NOT NULL,
domain VARCHAR(64),
entity_id VARCHAR(255),
state VARCHAR(255),
attributes TEXT,
event_id INTEGER,
last_changed DATETIME,
last_updated DATETIME,
created DATETIME,
context_id VARCHAR(36),
context_user_id VARCHAR(36), context_parent_id CHARACTER(36), old_state_id INTEGER,
PRIMARY KEY (state_id),
FOREIGN KEY(event_id) REFERENCES events (event_id)
state_id INTEGER NOT NULL,
entity_id CHAR(0),
state VARCHAR(255),
attributes CHAR(0),
event_id SMALLINT,
last_changed CHAR(0),
last_changed_ts FLOAT,
last_reported_ts FLOAT,
last_updated CHAR(0),
last_updated_ts FLOAT,
old_state_id INTEGER,
attributes_id INTEGER,
context_id CHAR(0),
context_user_id CHAR(0),
context_parent_id CHAR(0),
origin_idx SMALLINT,
context_id_bin BLOB,
context_user_id_bin BLOB,
context_parent_id_bin BLOB,
metadata_id INTEGER,
PRIMARY KEY (state_id),
FOREIGN KEY(old_state_id) REFERENCES states (state_id),
FOREIGN KEY(attributes_id) REFERENCES state_attributes (attributes_id),
FOREIGN KEY(metadata_id) REFERENCES states_meta (metadata_id)
)
CREATE TABLE statistics (
id INTEGER NOT NULL,
created CHAR(0),
created_ts FLOAT,
metadata_id INTEGER,
start CHAR(0),
start_ts FLOAT,
mean FLOAT,
min FLOAT,
max FLOAT,
last_reset CHAR(0),
last_reset_ts FLOAT,
state FLOAT,
sum FLOAT,
PRIMARY KEY (id),
FOREIGN KEY(metadata_id) REFERENCES statistics_meta (id) ON DELETE CASCADE
)
CREATE TABLE statistics_short_term (
id INTEGER NOT NULL,
created CHAR(0),
created_ts FLOAT,
metadata_id INTEGER,
start CHAR(0),
start_ts FLOAT,
mean FLOAT,
min FLOAT,
max FLOAT,
last_reset CHAR(0),
last_reset_ts FLOAT,
state FLOAT,
sum FLOAT,
PRIMARY KEY (id),
FOREIGN KEY(metadata_id) REFERENCES statistics_meta (id) ON DELETE CASCADE
)
CREATE TABLE sqlite_stat1(tbl,idx,stat)
CREATE INDEX ix_events_context_user_id ON events (context_user_id)
CREATE INDEX ix_events_event_type ON events (event_type)
CREATE INDEX ix_events_context_id ON events (context_id)
CREATE INDEX ix_events_time_fired ON events (time_fired)
CREATE INDEX ix_event_data_hash ON event_data (hash)
CREATE UNIQUE INDEX ix_event_types_event_type ON event_types (event_type)
CREATE INDEX ix_state_attributes_hash ON state_attributes (hash)
CREATE UNIQUE INDEX ix_states_meta_entity_id ON states_meta (entity_id)
CREATE UNIQUE INDEX ix_statistics_meta_statistic_id ON statistics_meta (statistic_id)
CREATE INDEX ix_recorder_runs_start_end ON recorder_runs (start, "end")
CREATE INDEX ix_states_entity_id ON states (entity_id)
CREATE INDEX ix_states_context_user_id ON states (context_user_id)
CREATE INDEX ix_states_last_updated ON states (last_updated)
CREATE INDEX ix_states_event_id ON states (event_id)
CREATE INDEX ix_states_entity_id_last_updated ON states (entity_id, last_updated)
CREATE INDEX ix_states_context_id ON states (context_id)
CREATE INDEX ix_states_context_parent_id ON states (context_parent_id)
CREATE INDEX ix_events_context_parent_id ON events (context_parent_id)
CREATE INDEX ix_statistics_runs_start ON statistics_runs (start)
CREATE INDEX ix_events_data_id ON events (data_id)
CREATE INDEX ix_events_event_type_id_time_fired_ts ON events (event_type_id, time_fired_ts)
CREATE INDEX ix_events_context_id_bin ON events (context_id_bin)
CREATE INDEX ix_events_time_fired_ts ON events (time_fired_ts)
CREATE INDEX ix_states_attributes_id ON states (attributes_id)
CREATE INDEX ix_states_metadata_id_last_updated_ts ON states (metadata_id, last_updated_ts)
CREATE INDEX ix_states_old_state_id ON states (old_state_id)
CREATE INDEX ix_states_context_id_bin ON states (context_id_bin)
CREATE INDEX ix_states_last_updated_ts ON states (last_updated_ts)
CREATE UNIQUE INDEX ix_statistics_statistic_id_start_ts ON statistics (metadata_id, start_ts)
CREATE INDEX ix_statistics_start_ts ON statistics (start_ts)
CREATE INDEX ix_statistics_short_term_start_ts ON statistics_short_term (start_ts)
CREATE UNIQUE INDEX ix_statistics_short_term_statistic_id_start_ts ON statistics_short_term (metadata_id, start_ts)
```
To only show the details about the `states` table (since we are using that one in the next examples):
@ -110,7 +247,7 @@ The identification of the available columns in the table is done and we are now
```bash
sqlite> .width 30, 10,
sqlite> SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10;
sqlite> SELECT states_meta.entity_id, COUNT(*) as count FROM states INNER JOIN states_meta ON states.metadata_id = states_meta.metadata_id GROUP BY states_meta.entity_id ORDER BY count DESC LIMIT 10;
entity_id count
------------------------------ ----------
sensor.cpu 28874

View File

@ -106,6 +106,10 @@ Extensions allow templates to access all of the Home Assistant specific states a
Templates for some [triggers](/docs/automation/trigger/) as well as `trigger_variables` only support a subset of the Home Assistant template extensions. This subset is referred to as "Limited Templates".
### This
State-based and trigger-based template entities have the special template variable `this` available in their templates and actions. See more details and examples in the [Template integration documentation](/integrations/template).
### States
Not supported in [limited templates](#limited-templates).
@ -318,7 +322,7 @@ List of lights that are on with a brightness of 255:
{% raw %}
```text
{{ ['light.kitchen', 'light.dinig_room'] | select('is_state', 'on') | select('is_state_attr', 'brightness', 255) | list }}
{{ ['light.kitchen', 'light.dining_room'] | select('is_state', 'on') | select('is_state_attr', 'brightness', 255) | list }}
```
{% endraw %}
@ -1459,12 +1463,14 @@ To evaluate a response, go to **{% my developer_template title="Developer Tools
### Using templates with the MQTT integration
The [MQTT integration](/integrations/mqtt/) relies heavily on templates. Templates are used to transform incoming payloads (value templates) to status updates or incoming actions (command templates) to payloads that configure the MQTT device.
The [MQTT integration](/integrations/mqtt/) relies heavily on templates. Templates are used to transform incoming payloads (value templates) to state updates or incoming actions (command templates) to payloads that configure the MQTT device.
#### Using value templates with MQTT
For incoming data a value template translates incoming JSON or raw data to a valid payload.
Incoming payloads are rendered with possible JSON values, so when rendering the `value_json` can be used access the attributes in a JSON based payload.
Value templates translate received MQTT payload to a valid state or attribute.
The received MQTT is available in the `value` template variable, and in the `value_json` template variable if the received MQTT payload is valid JSON.
In addition, the template variables `entity_id`, `name` and `this` are available for MQTT entity value templates. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item.
{% note %}
@ -1478,13 +1484,13 @@ With given payload:
Template {% raw %}`{{ value_json.temperature | round(1) }}`{% endraw %} renders to `21.9`.
Additional the MQTT entity attributes `entity_id`, `name` and `this` can be used as variables in the template. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item.
{% endnote %}
#### Using command templates with MQTT
For actions, command templates are defined to format the outgoing MQTT payload to the device. When an action is executed, `value` can be used to generate the correct payload to the device.
For actions, command templates are defined to format the outgoing MQTT payload to a format supported by the remote device. When an action is executed, the template variable `value` has the action data in most cases unless otherwise specified in the documentation.
In addition, the template variables `entity_id`, `name` and `this` are available for MQTT entity command templates. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item.
{% note %}
@ -1498,8 +1504,6 @@ With given value `21.9` template {% raw %}`{"temperature": {{ value }} }`{% endr
}
```
Additional the MQTT entity attributes `entity_id`, `name` and `this` can be used as variables in the template. The `this` attribute refers to the [entity state](/docs/configuration/state_object) of the MQTT item.
{% endnote %}
**Example command template with raw data:**

View File

@ -5,7 +5,7 @@ description: "Details about the classification of integrations."
The Integration Quality Scale scores each integration based on the code quality and user experience. Each level of the quality scale consists of a list of requirements. If an integration matches all requirements, it's considered to have reached that level.
[Integration Quality Scale](https://developers.home-assistant.io/docs/en/integration_quality_scale_index.html) for developers.
[Integration Quality Scale](https://developers.home-assistant.io/docs/core/integration-quality-scale/) for developers.
## No score

View File

@ -38,7 +38,7 @@ name:
type: string
description:
description: Description of the scene.
required: true
required: false
type: string
entities:
description: Entities to control and their desired state.

View File

@ -109,44 +109,48 @@
</li>
<li>
{% icon "mdi:microphone" %} {% active_link /voice_control/ Voice assistants %}
{% icon "mdi:microphone" %} Voice assistants
{% if root == 'voice_control' or include.docs_index %}
<ul>
<li><iconify-icon icon="mdi:devices"></iconify-icon> Devices
<li>{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Assist up and running %}
<ul>
<li>{% active_link /voice_control/voice_remote_local_assistant/ Getting started - Local %}</li>
<li>{% active_link /voice_control/voice_remote_cloud_assistant/ Getting started - Home Assistant Cloud %}</li>
</ul>
</li>
<li>{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/best_practices Best practices %}
<ul>
<li>{% active_link /voice_control/voice_remote_expose_devices/ Exposing entities to Assist %}</li>
<li>{% active_link /voice_control/assign_areas_floors/ Assigning devices to areas and areas to floors %}</li>
<li>{% active_link /voice_control/aliases/ Aliases for entities, areas and floors %}</li>
<li>{% active_link /voice_control/builtin_sentences/ Talking to Assist - Sentences starter pack %}</li>
</ul>
</li>
<li>{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/expanding_assist Expanding Assist %}
<ul>
<li>{% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with AI %}</li>
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/android/ Assist for Android %}</li>
<li>{% active_link /voice_control/apple/ Assist for Apple %}</li>
<li>{% active_link /voice_control/start_assist_from_dashboard/ Starting Assist from your dashboard %}</li>
</ul>
</li>
<li>{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Voice assistants %}
<ul>
<li>{% active_link /voice_control/voice_remote_local_assistant/ Configuring a local assistant %}</li>
<li>{% active_link /voice_control/voice_remote_cloud_assistant/ Configuring a cloud assistant %}</li>
<li>{% active_link /voice_control/voice_remote_expose_devices/ Exposing devices to voice assistant %}</li>
<li>{% active_link /voice_control/install_wake_word_add_on/ Enabling a wake word %}</li>
<li>{% active_link /voice_control/about_wake_word/ About wake words %}</li>
<li>{% active_link /voice_control/builtin_sentences/ Sentences starter kit %}</li>
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/aliases/ Using aliases %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
<li>{% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with AI %}</li>
</ul>
</li>
<li>{% icon "mdi:checkbox-marked" %} Projects
<li>{% icon "mdi:checkbox-marked" %} Experiment with Assist setups
<ul>
<li>{% active_link /voice_control/about_wake_word/ The Home Assistant Approach to Wake Words %}</li>
<li>{% active_link /voice_control/create_wake_word/ Wake words for Assist %}</li>
<li>{% active_link /voice_control/s3_box_voice_assistant/ Tutorial: ESP32-S3-BOX voice assistant %}</li>
<li>{% active_link /voice_control/s3-box-customize/ Tutorial: Customize the S3-BOX %}</li>
<li>{% active_link /voice_control/thirteen-usd-voice-remote/ Tutorial: $13 voice assistant %}</li>
<li>{% active_link /voice_control/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}</li>
<li>{% active_link /voice_control/create_wake_word/ Tutorial: Create your own wake word %}</li>
<li>{% active_link /voice_control/assist_daily_summary/ Tutorial: Your daily summary by Assist %}</li>
<li>{% active_link /voice_control/start_assist_from_dashboard/ Starting Assist from your dashboard %}</li>
</ul>
</li>
<li>{% icon "mdi:account-help" %} Troubleshooting
<ul>
<li>{% active_link /voice_control/troubleshooting/ Troubleshooting Assist %}</li>
<li>{% active_link /voice_control/troubleshooting_the_s3_box/ Troubleshooting the ESP32-S3-BOX %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
</ul>
</li>
</ul>

View File

@ -1,38 +1,41 @@
<section class="aside-module grid__item one-whole lap-one-half">
<div class="section">
<h1 class="title epsilon"><iconify-icon icon="mdi:devices"></iconify-icon> Devices</h1>
<h1 class="title epsilon">{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Assist up and running %}</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/voice_remote_local_assistant/ Getting started - Local %}</li>
<li>{% active_link /voice_control/voice_remote_cloud_assistant/ Getting started - Home Assistant Cloud %}</li>
</ul>
</div>
<div class="section">
<h1 class="title epsilon"><iconify-icon icon="mdi:devices">{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/best_practices Best Practices %}</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/voice_remote_expose_devices/ Exposing entities to Assist %}</li>
<li>{% active_link /voice_control/assign_areas_floors/ Assigning devices to areas and areas to floors %}</li>
<li>{% active_link /voice_control/aliases/ Aliases for entities, areas and floors %}</li>
<li>{% active_link /voice_control/builtin_sentences/ Talking to Assist - Sentences starter pack %}</li>
</ul>
</div>
<div class="section">
<h1 class="title epsilon"><iconify-icon icon="mdi:devices">{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/expanding_assist Expanding Assist %}</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with AI %}</li>
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/android/ Assist for Android %}</li>
<li>{% active_link /voice_control/apple/ Assist for Apple %}</li>
<li>{% active_link /voice_control/start_assist_from_dashboard/ Starting Assist from your dashboard %}</li>
</ul>
</div>
<div class="section">
<h1 class="title epsilon">{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Voice assistants %}</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/voice_remote_local_assistant/ Configuring a local assistant %}</li>
<li>{% active_link /voice_control/voice_remote_cloud_assistant/ Configuring a cloud assistant %}</li>
<li>{% active_link /voice_control/voice_remote_expose_devices/ Exposing devices to voice assistant %}</li>
<li>{% active_link /voice_control/install_wake_word_add_on/ Enabling a wake word %}</li>
<li>{% active_link /voice_control/about_wake_word/ About wake words %}</li>
<li>{% active_link /voice_control/builtin_sentences/ Built-in sentences %}</li>
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/aliases/ Using aliases %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
<li>{% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with AI %}</li>
</ul>
</div>
<div class="section">
<h1 class="title epsilon">{% icon "mdi:checkbox-marked" %} Projects</h1>
<h1 class="title epsilon">{% icon "mdi:checkbox-marked" %} Experiment with Assist setups</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/about_wake_word/ The Home Assistant Approach to Wake Words %}</li>
<li>{% active_link /voice_control/create_wake_word/ Wake words for Assist %}</li>
<li>{% active_link /voice_control/s3_box_voice_assistant/ Tutorial: ESP32-S3-BOX voice assistant %}</li>
<li>{% active_link /voice_control/s3-box-customize/ Tutorial: Customize the S3-BOX %}</li>
<li>{% active_link /voice_control/thirteen-usd-voice-remote/ Tutorial: $13 voice assistant %}</li>
<li>{% active_link /voice_control/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}</li>
<li>{% active_link /voice_control/create_wake_word/ Tutorial: Create your own wake word %}</li>
<li>{% active_link /voice_control/assist_daily_summary/ Tutorial: Your daily summary by Assist %}</li>
<li>{% active_link /voice_control/start_assist_from_dashboard/ Starting Assist from your dashboard %}</li>
</ul>
</div>
<div class="section">
@ -40,6 +43,7 @@
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/troubleshooting/ Troubleshooting Assist %}</li>
<li>{% active_link /voice_control/troubleshooting_the_s3_box/ Troubleshooting the ESP32-S3-BOX %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
</ul>
</div>
</section>

View File

@ -1,13 +0,0 @@
## Removing an integration instance
If you no longer want to use a device or service in Home Assistant, you can remove the integration instance including the device or service with all its entities.
The following steps describe the general steps needed to remove an integration instance. Depending on the integration, additional steps can be needed, such as resetting the device or to delete credentials. Refer to the integration documentation to see if additional steps are needed.
### To remove an integration instance from Home Assistant
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
2. From the list of devices, select the integration instance you want to remove.
3. Next to the entry, select the three-dot menu. Then, select **Delete**.
![Screenshot showing how to remove an integration instance](/images/organizing/integration_instance_delete.png)

View File

@ -85,3 +85,7 @@ The steps would be:
- Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Qnap NAS IP address - for example `http://192.xxx.xxx.xxx:8123`)
Remark: To update your Home Assistant on your Docker within Qnap NAS, you just remove container and image and do steps again (Don't remove "config" folder).
### Community Notes
Note that some users have reported issues creating Home Assistant containers on ARM QNAP systems (e.g., TS-233) with Container Station 3. A possible workaround is the "Docker compose" approach based on a YAML file (see section "Docker compose"). In the QNAP Container Station 3 UI, this can be accessed by going to the "Applications" section and clicking on "Create". You are then prompted to enter YAML code, which can be copied from that shown in the "Docker compose" section. Take care to modify this code in two ways: firstly, add a first line reading "version: '3'"; secondly, replace the text "/PATH_TO_YOUR_CONFIG" by a valid path on your NAS system, e.g., "/share/Container/HomeAssistant/config".

View File

@ -0,0 +1,5 @@
### To remove an integration instance from Home Assistant
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
2. From the list of devices, select the integration instance you want to remove.
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.

View File

@ -0,0 +1,21 @@
### Using templates
For incoming data, a value template translates incoming JSON or raw data to a valid payload.
Incoming payloads are rendered with possible JSON values, so when rendering, the `value_json` can be used to access the attributes in a JSON based payload, otherwise the `value` variable can be used for non-json based data.
Additional, the `this` can be used as variables in the template. The `this` attribute refers to the current [entity state](/docs/configuration/state_object) of the entity.
Further information about `this` variable can be found in the [template documentation](/integrations/template/#template-and-action-variables)
{% note %}
**Example value template with json:**
With given payload:
```json
{ "state": "ON", "temperature": 21.902 }
```
Template {% raw %}`{{ value_json.temperature | round(1) }}`{% endraw %} renders to `21.9`.
{% endnote %}

View File

@ -22,7 +22,7 @@
</div>
<div class="grid__item one-quarter lap-one-half palm-one-whole">
<h4>Join us and contribute!</h4>
<h3>Join us and contribute!</h3>
<ul>
<li><a class="external-link" href="https://github.com/home-assistant/">GitHub repo {% icon "tabler:external-link" %}</a></li>
<li><a class="external-link" href="https://developers.home-assistant.io">Developers Portal {% icon "tabler:external-link" %}</a></li>
@ -32,7 +32,7 @@
<li><a href="/help/reporting_issues/">Reporting issues</a></li>
<li><a href="https://home-assistant-store.creator-spring.com/">Community Merch Store</a></li>
</ul>
<h4>System status</h4>
<h3>System status</h3>
<ul>
<li>
<a class="external-link" href="https://alerts.home-assistant.io">Integration Alerts {% icon "tabler:external-link" %}</a>
@ -45,13 +45,13 @@
</div>
<div class="grid__item one-quarter lap-one-half palm-one-whole">
<h4>Companion apps</h4>
<h3>Companion apps</h3>
<ul>
<li><a class="external-link" href="https://apps.apple.com/us/app/home-assistant/id1099568401">iOS and Apple devices</a></li>
<li><a class="external-link" href="https://play.google.com/store/apps/details?id=io.homeassistant.companion.android">Android and Wear OS</a></li>
<li><a class="external-link" href="https://companion.home-assistant.io/">...and more!</a></li>
</ul>
<h4>Governance</h4>
<h3>Governance</h3>
<ul>
<li><a href="/privacy/">Privacy Notices</a></li>
<li><a href="/developers/cla/">Contributor License Agreement</a></li>
@ -64,7 +64,7 @@
<div class="socials grid__item one-quarter lap-one-half palm-one-whole">
<h4>Follow us</h4>
<h3>Follow us</h3>
<p><a class="external-link" href='https://building.open-home.io/#/portal'>Sign up for our newsletter {% icon "tabler:external-link" %}</a></p>
<div class="icons">
<a

View File

@ -222,6 +222,7 @@ file:
cover:
- platform: ads
name: Curtain master bed room
adsvar: covers.master_bed_room_is_closed
adsvar_open: covers.master_bed_room_open
adsvar_close: covers.master_bed_room_close
adsvar_stop: covers.master_bed_room_stop

View File

@ -150,7 +150,7 @@ The first thing you need to do after signing into the [AWS console](https://cons
Next you need create a Lambda function.
- Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home)
- **IMPORTANT - Alexa Skills are only supported in certain AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server below that is closest to your location and in your region, based on your Amazon accounts country. Alexa Lambda functions created on other servers will not work properly and may prevent account linking!
**IMPORTANT - Alexa Skills are only supported in specific AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server from the list below ([reference](https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html#deploy)) based on your Amazon account's locale, not your physical location. **Alexa Lambda functions created in other regions will not work properly and may prevent account linking! For example, if your locale is set to English (US) and you live in California, you must use US East (N.Virginia), not US West (Oregon). While the setup process will complete with an incorrect region, the skill will not function, and there will be no clear error messages indicating the cause.**
- **US East (N.Virginia)** region for English (US) or English (CA) skills
- **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills
- **US West (Oregon)** region for Japanese and English (AU) skills.

View File

@ -22,6 +22,17 @@ Autarco is a Dutch company that provides solar panels, inverters and batteries.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Email:
description: The email address of your Autarco account.
Password:
description: The password of your Autarco account.
{% endconfiguration_basic %}
## Data updates
The integration will poll the Autarco API every 5 minutes to update the data in Home Assistant.
## Sensors
The Autarco platform mainly provides sensors that you can use in your [energy dashboard](/energy).
@ -54,3 +65,9 @@ If you have a battery connected to your system, you can monitor the battery stat
- Charged energy today (kWh)
- Charged energy this month (kWh)
- Charged energy total (kWh)
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -33,7 +33,7 @@ Devices that have been tested and _should_ work without any trouble are:
- [Beosound Level](https://www.bang-olufsen.com/en/dk/speakers/beosound-level)
- [Beosound Theatre](https://www.bang-olufsen.com/en/dk/soundbars/beosound-theatre)
and any other Mozart based products.
and any other [Mozart](https://support.bang-olufsen.com/hc/en-us/articles/24766979863441-Which-platform-is-my-Connected-Audio-product-based-on) based products. This means all [Connected Speakers](https://www.bang-olufsen.com/en/dk/story/connected-speakers) that have been launched after 2020.
{% include integrations/config_flow.md %}
@ -48,6 +48,10 @@ Device model:
type: string
{% endconfiguration_basic %}
## Data updates
The **Bang & Olufsen** integration uses the [Mozart API](https://bang-olufsen.github.io/mozart-open-api), which is a local REST API with a WebSocket notification channel for immediate state information for media metadata, playback progress, volume etc. The only exception to this is the repeat and shuffle controls which are polled every 30 seconds.
## Actions
### play_media actions
@ -308,3 +312,8 @@ beolink:
listeners: Beolink listeners (if available)
peers: Beolink peers (if available)
```
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -151,6 +151,8 @@ params:
type: [list, template]
{% endconfiguration %}
{% include integrations/using_templates.md %}
## Examples
In this section you find some real-life examples of how to use this sensor.

View File

@ -397,6 +397,43 @@ This integration adds the Blebox device as a sensor entity to Home Assistant.
- Periodic read of current wind speed
### actionBox, actionBoxS, and proxiBox
This integration does not add direct support for actionBox, actionBoxS, and proxiBox
devices. It is however possible to integrate these devices with Home Assistant using
automations via webhooks and wBox mobile app.
The configuration consists of two steps:
- [Generating the compatible webhook in Home Assistant](#generating-the-compatible-webhook-in-home-assistant)
- [Configuring the device in the wBox app](#configuring-the-device-in-the-wbox-app)
#### Generating the compatible webhook in Home Assistant
1. Go to {% my automations title="**Settings** > **Automations & scenes**" %} and in the lower right corner, select the **Create Automation** button.
2. Choose the **Webhook** as the trigger type
3. Next to the webhook ID, select on the cog icon to allow the GET method.
4. Copy the webhook URL to the clipboard by clicking the "copy" icon next to the webhook ID.
5. Save the URL for later reference.
6. If applicable, add any desired conditions (the *And if* section) and actions.
(the *Then do* section)
Note: The webhook ID will be later needed in phase two and will have to be entered
into the wBox mobile app. You may decide to use a more convenient text value. However, remember
that this is the only thing that authenticates webhooks within your network. Treat
this ID like a password.
#### Configuring the device in the wBox app
1. Configure the device by adding the action of
type "send URL".
2. Enter the webhook URL that you copied when generating the webhook. It is the URL address for the action.
Note: in order for this integration flow to work, the webhook URL host must be
resolvable and accessible within the device network. If in doubt, please refer to the
general [documentation of automations with webhook triggers](https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger).
### luxSensor
This integration adds the Blebox device as a sensor entity to Home Assistant.
@ -536,6 +573,17 @@ This integration adds the Simon 55 GO device ("blebox inside") as a switch entit
- Brightness
- Color
### Simon 54 GO Control and Simon 55 GO Control
This integration does not add direct support for Simon 54 GO Control and Simon 55 GO
Control devices. It is however possible to integrate these devices with Home Assistant
using automations via webhooks and wBox mobile app.
The configuration consists of two steps:
- [Generating the compatible webhook in Home Assistant](#generating-the-compatible-webhook-in-home-assistant)
- [Configuring the device in the wBox app](#configuring-the-device-in-the-wbox-app)
### FAKRO FTP-V/FTU-V WiFi
This integration adds the Fakro device ("blebox inside") as a cover entity to Home Assistant.

View File

@ -19,9 +19,9 @@ ha_integration_type: device
ha_zeroconf: true
---
The **Cambridge Audio** {% term integration %} allows you to control all receivers and streamers that support the StreamMagic app.
The **Cambridge Audio** {% term integration %} allows you to control all receivers and streamers that support the [StreamMagic](https://www.cambridgeaudio.com/usa/en/products/streammagic) app.
The integration automatically discovers all enabled zones and sources. Each zone is added as a media player device with the enabled sources available as inputs. Media information and controls (such as play, pause, skip) are supported if the selected source reports it.
The integration automatically discovers all enabled zones and sources. Each zone is added as a media player device with the enabled sources available as inputs. Media information and controls (such as play, pause, skip) are supported if the selected source reports it. The integration allows you to navigate presets, control streaming (Spotify, Tidal, Qobuz), and play radio stations all from your Home Assistant dashboard.
## Supported devices
@ -51,6 +51,16 @@ Host:
type: string
{% endconfiguration_basic %}
## Data updates
Cambridge Audio devices push data directly to Home Assistant, enabling immediate updates for device state changes, media information, and playback status.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}
## Available configuration entities
The integration provides a few entities to configure the device settings. The following entities are supported:

View File

@ -296,6 +296,8 @@ While `command` is accepting a template for `sensor` and `binary_sensor`, it's o
{% endnote %}
{% include integrations/using_templates.md %}
## Binary sensor
To use your Command binary sensor in your installation, add the following to your {% term "`configuration.yaml`" %} file:

View File

@ -30,7 +30,7 @@ ha_zeroconf: true
ha_integration_type: device
---
The devolo Home Network integration allows you to monitor your PLC network.
The **devolo Home Network** {% term integration %} integration allows you to monitor and control your [devolo](https://www.devolo.global) PLC network.
{% include integrations/config_flow.md %}
@ -115,3 +115,7 @@ Since firmware 7.10 also the following device without Wi-Fi can be used as long
- Magic 2 DinRail
- Magic 2 LAN 1-1
- Magic 1 LAN 1-1
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -200,3 +200,12 @@ Depending on your setup of the self-hosted instance, you can connect to the serv
Replace `SELF_HOSTED_INSTANCE` with either the IP address or the hostname of your instance.
The above configuration is based on the information from [Bumper's documentation](https://bumper.readthedocs.io).
## Troubleshooting
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue re-occurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
### Your device is not supported?
Because Ecovacs doesn't provide a public documentation about their APIs, the support of devices is based on reverse engineering of the communication of the device. This reverse engineering can only be done by persons, who are in possession of such a device and the knowledge how to do the reverse engineering. Therefore the support of devices heavily depends on contributions from the community.
If your device is not supported, please request for help or contribute on your own the support of your device directly to the [`deebot_client`](https://github.com/DeebotUniverse/client.py) library.

View File

@ -24,15 +24,19 @@ ha_integration_type: integration
The **Ecowitt** {% term integration %} works by first creating a callback endpoint on your Home Assistant instance and then adding this configuration to the Ecowitt console so that it starts sending data.
To set up this integration:
The integration will display a Server IP / Host Name, Path, and Port. You can input it into the Ecowitt configuration in one of two ways:
1. Add the Ecowitt integration to your Home Assistant instance. When doing so, the config flow will display a Server IP, Path, and Port.
2. Use the Ecowitt App (on your phone) or access the Ecowitt WebUI in a browser at the station IP address.
3. Select your station > Menu **Others** > **DIY Upload Servers**.
4. Select **Next**, then select **Customized**.
5. Select the protocol **Ecowitt**.
6. Enter the Server IP, Path, and Port that were displayed in step 1.
- The path has to match! If using the Ecowitt app, remove the first forward slash from the path, as the app will prepend one.
7. Save the configuration.
1. Use the Ecowitt App (on your phone):
- Select the Menu Icon ({% icon "mdi:menu" %}) on the upper left, then **My Devices** → **Pick your station**
- Select the Ellipsis Icon ({% icon "mdi:dots-horizontal" %}) → **Others**
- Select **DIY Upload Servers** → **Customized**
- Make sure to choose 'Protocol Type Same As: Ecowitt'
- Enter the Server IP / Host Name, Path, and Port from the integration. _Note: The path has to match! Remove the first forward slash from the path, as the app will prepend one._
- Save
1. Navigate to the Ecowitt web UI in a browser at the station IP address:
- Select **Weather Services** then scroll down to 'Customized'
- Make sure to select 'Customized: 🔘 Enable' and 'Protocol Type Same As: 🔘 Ecowitt'
- Enter the Server IP / Host Name, Path, and Port from the integration.
- Save
Ecowitt doesn't support TLS/SSL, you can use the NGINX TLS Proxy Add-on to support HTTPS and HTTP at the same time.

View File

@ -162,6 +162,9 @@ You can verify that the `emulated_hue` integration has been loaded and is respon
- `http://<HA IP Address>:80/description.xml` - This URL should return a descriptor file in the form of an XML file.
- `http://<HA IP Address>:80/api/v2/lights` - This will return a list of devices, lights, scenes, groups, etc.. that `emulated_hue` is exposing to Alexa.
You can use the "curl" command to switch a light on or off:
- `curl -X PUT -d '{"on":true}' http://<HA IP Address>/api/v2/lights/219/state` - This command switches light 219 on.
Verify that the URLs above are using port 80, rather than port 8300 (i.e., `http://<HA IP Address>:80/description.xml`). Both Google Home and Amazon Alexa/Echo (as of the 2019-08 firmware) require port 80.
### Platform specific instructions

View File

@ -27,16 +27,46 @@ As the device doesn't contain a temperature sensor ([read more](https://forum.fh
### Pairing
Pairing is only required with firmware versions above 120 and when not using ESPHome Bluetooth proxies.
Pairing your eQ-3 Bluetooth Smart Thermostat device works differently based on your method of connection and the device's firmware version.
#### [ESPHome Bluetooth Proxies](https://esphome.io/components/bluetooth_proxy.html)
For firmware versions below 148, no additional configuration is required when using ESPHome Bluetooth Proxies.
Since version 148, a security flaw in the devices has been fixed that now requires entering a passkey.
To configure the passkey, add the following to your ESPHome Bluetooth Proxy's configuration:
```yaml
esp32_ble:
io_capability: keyboard_only
ble_client:
- mac_address: <MAC>
id: my_eq3_thermostat
auto_connect: true
on_passkey_request:
then:
- ble_client.passkey_reply:
id: my_eq3_thermostat
passkey: <PIN code displayed on the thermostat. To display the PIN hold down the main button.>
```
For further information see the [ESPHome documentation](https://esphome.io/components/ble_client.html#on-passkey-request).
#### Other
Pairing is only required with firmware versions above 120.<br>
Before configuring Home Assistant you need to pair the thermostat to your Bluetooth adapter using `bluetoothctl`.
```bash
bluetoothctl
scan on
<Wait for the thermostat to show up and copy the MAC address. It will look something like this: [NEW] Device 00:1A:23:27:F8:4E CC-RT-BLE>
# Wait for the thermostat to show up and copy its MAC address
# Expected output: [NEW] Device 00:1A:23:27:F8:4E CC-RT-BLE
scan off
pair <MAC>
<Input the PIN displayed on the thermostat. To display the PIN hold down the main button.>
# Hold down the main button on the thermostat to display the PIN
# Enter the displayed PIN when prompted
trust <MAC>
disconnect <MAC>
exit

View File

@ -51,12 +51,37 @@ The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [
- Magenta SmartHome LED E27 warmwhite
- [Rademacher RolloTron DECT 1213][rademacher_rollotron_dect_1213]
{% include integrations/config_flow.md %}
## Prerequisites
It is recommended to create a separate user to connect Home Assistant to your FRITZ!Box. To create a user, in the FRITZ!Box go to **System** > **FRITZ!Box Users** > **Users** > **Add User**. Make sure the user has the **Smart Home** permission.
{% note %}
The configuration asks for a username. Starting from FRITZ!OS 7.24 the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visiting **System** > **FRITZ!Box Users** > **Users**. The username starts with `fritz` followed by four random numbers. Under **Properties** on the right, it says **created automatically**. Prior to FRITZ!OS 7.24, the default username was `admin`.
If you still want to use the predefined user, please note that as of FRITZ!OS 7.24, the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visit **System** > **FRITZ!Box Users** > **Users**. The username starts with `fritz` followed by four random numbers. Under properties on the right it says `created automatically`. Prior to FRITZ!OS 7.24, the default username was `admin`.
{% endnote %}
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The hostname or IP address of your FRITZ!Box router."
required: true
type: string
Username:
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
required: true
type: string
Password:
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
required: true
type: string
{% endconfiguration_basic %}
## Data fetching and limitations
Since the API of the FRITZ!Box does not provide a push mechanism, this integration polls the data every 30 seconds from the FRITZ!Box. Because of this, the integration can't support the main features of event-based devices like the [FRITZ!DECT 350][fritzdect_350] door/window contact sensors or the [FRITZ!DECT 440][fritzdect_440] buttons (_see the [other devices](#other-devices) section for details_).
## Devices
### Light bulbs
Light bulbs like the [FRITZ!DECT 500][fritzdect_500] or [Magenta SmartHome LED E27 Color][magenta_led_e27_color] will be integrated as {% term light %} entities.
@ -85,7 +110,7 @@ Shutter drivers like the [Rademacher RolloTron DECT 1213][rademacher_rollotron_d
### Templates
Self defined templates within the FRITZ!Box smart home configuration menu, will be integrated as {% term button %} entities and those can be triggered from within Home Assistant.
Self defined [templates](https://en.avm.de/guide/three-smart-home-templates-that-will-make-your-life-easier) within the FRITZ!Box smart home configuration menu, will be integrated as {% term button %} entities and those can be triggered from within Home Assistant.
### Thermostats
@ -115,7 +140,7 @@ Further there are additional {% term sensor %} and {% term binary_sensor "binary
### Other devices
Some devices like the [FRITZ!DECT 440][fritzdect_440] can't be controlled via this integration, but its sensors can still be integrated.
Some devices like the [FRITZ!DECT 350][fritzdect_350] or the [FRITZ!DECT 440][fritzdect_440] can't be controlled via this integration, but its sensors can still be integrated.
The availability of these {% term sensor %} and {% term binary_sensor "binary sensor" %} entities depends on the features and capabilities of the connected device and can be one or multiple of:
@ -134,6 +159,7 @@ The availability of these {% term sensor %} and {% term binary_sensor "binary se
[fritzdect_210]: https://en.avm.de/products/smart-home/fritzdect-210
[fritzdect_301]: https://en.avm.de/products/smart-home/fritzdect-301
[fritzdect_302]: https://en.avm.de/products/smart-home/fritzdect-302
[fritzdect_350]: https://en.avm.de/products/smart-home/fritzdect-350
[fritzdect_440]: https://en.avm.de/products/smart-home/fritzdect-440
[fritzdect_500]: https://en.avm.de/products/smart-home/fritzdect-500
[eurotronic_comet_dect]: https://eurotronic.org/produkte/dect-ule-heizkoerperthermostat/comet-dect
@ -143,3 +169,9 @@ The availability of these {% term sensor %} and {% term binary_sensor "binary se
## Troubleshooting
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue re-occurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
## Remove the integration
{% include integrations/remove_device_service.md %}
If you don't use the separate created FRITZ!Box user anymore, than remove it from the FRITZ!Box under to **System** > **FRITZ!Box Users** > **Users**.

View File

@ -38,6 +38,17 @@ You will need the IP address of your device, and the Fully Remote Admin password
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: The IP address or hostname of your device.
Password:
description: The Fully Remote Admin password from the Fully Kiosk Browser app.
Uses an SSL certificate:
description: Whether Fully Kiosk Browser is configured to use an SSL certificate for connections.
Verify SSL certificate:
description: Whether to verify the SSL certificate when connecting to Fully Kiosk Browser. This should be off for self-signed certificates.
{% endconfiguration_basic %}
## Capabilities
The following is available as sensors:
@ -146,3 +157,9 @@ data:
target:
device_id: a674c90eca95eca91f6020415de07713
```
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -18,13 +18,31 @@ ha_quality_scale: platinum
The **FYTA** {% term integration %} uses the open API of [FYTA](https://www.fyta.de) to obtain the data from your plant sensors and integrate these into Home Assistant.
For the authentication on the FYTA server, you need your login-credentials (email and password).
## Supported devices
The integration provides a device for all plants with a [FYTA Beam](https://fyta.de/collections/all/products/single-beam) sensor. In order to be able to access your plant data over the API, you need a [FYTA hub](https://fyta.de/collections/all/products/single-hub) that uploads the data from the Beam sensor to the FYTA server. Alternatively, the mobile app can serve as gateaway to upload the data from the Beam to the server. No direct connection to the FYTA Beam is supported.
The integration should work with any [FYTA Beam](https://fyta.de/collections/all/products/single-beam).
## Prerequisites
For the integration to work you need a [FYTA Beam](https://fyta.de/collections/all/products/single-beam) and a FYTA account.
{% include integrations/config_flow.md %}
## Sensors
To setup the integration you need the following information:
{% configuration_basic %}
Email:
description: "The email address used to access the FYTA account."
Password:
description: "The password used to access the FYTA account."
{% endconfiguration_basic %}
## Configuration options
The integration has no additional configuration options.
## Supported functionality
### Sensors
The following sensors are currently available per plant:
@ -41,3 +59,23 @@ The following sensors are currently available per plant:
| moisture | % | Moisture measured by sensor |
| salinity | mS/cm | Salinity measured by sensor (measured as conductivity)|
| battery_level | % | Battery level of the sensor |
## Data updates
The integration fetches data from the device every 4 minutes.
## Actions
The integration provides no additional actions.
## Known limitations
The integration provides the data exposed by means of the plant API. The light measurement as current daily light integral (DLI) is not yet available (currently only the PAR value is provided).
Please note that in order to be able to access your plant data over the API, you need a [FYTA hub](https://fyta.de/collections/all/products/single-hub) that uploads the data from the Beam sensor to the FYTA server. Alternatively, the mobile app can serve as a gateway to upload the data from the Beam to the server. No direct connection to the FYTA Beam is supported (as the Beam only provides raw data, that needs to be processed on the FYTA server).
## Remove integration
For this integration the general process to remove integrations applies:
{% include integrations/remove_device_service.md %}

View File

@ -84,11 +84,12 @@ The integration setup will next give you instructions to enter the [Application
You can use the `google_photos.upload` action to upload Photos from Home Assistant
to Google Photos.
{% details "Create event action details" %}
{% details "Upload action details" %}
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `filename` | no | Path to the image to upload. | /mnt/image.jpg
| `filename` | no | Path to the image to upload. | /mnt/image.jpg |
| `album` | no | Album name that is the destination for the uploaded content. | London vacation |
| `config_entry_id` | no | The ID of the Google Photos config entry. | a1bee602deade2b09bc522749bbce48e |
{% enddetails %}

View File

@ -32,7 +32,15 @@ related:
title: Habitica
---
The Habitca {% term integration %} enables you to monitor your adventurer's progress and stats in Home Assistant and seamlessly integrates your to-do's and daily tasks.
The Habitica {% term integration %} enables you to monitor your adventurer's progress and stats from [Habitica](https://habitica.com/) in Home Assistant and seamlessly integrates your to-do's, daily tasks, and many more things.
## About Habitica
Habitica is a gamified task manager and habit tracker that turns your daily goals and to-dos into a role-playing game, helping you stay motivated and productive while earning rewards and leveling up your avatar.
## How you can use this integration
The Habitica integration lets you automate task management, such as creating to-dos when appliances finish or marking dailies complete using smart sensors. You can visualize tasks and stats in Home Assistant dashboards or create notifications for due tasks, keeping you organized and on track with your goals.
## Prerequisites for Habitica integration
@ -44,21 +52,45 @@ The Habitca {% term integration %} enables you to monitor your adventurer's prog
{% include integrations/config_flow.md %}
### Login to Habitica
{% configuration_basic %}
"Email or username":
description: "Email or username (case-sensitive) to connect Home Assistant to your Habitica account"
Password:
description: "Password for the account to connect Home Assistant to Habitica"
{% endconfiguration_basic %}
### Advanced configuration
If you choose "**Login to other instances**" you will be presented the following configuration options:
{% configuration_basic %}
"User ID":
description: "User ID of your Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
API Token:
description: "API Token of the Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
URL:
description: "URL of the Habitica installation to connect to. Defaults to `https://habitica.com` (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
Verify SSL certificate:
description: Enable SSL certificate verification for secure connections. Disable only if connecting to a Habitica instance using a self-signed certificate
{% endconfiguration_basic %}
## Sensors
- **Class:** Indicates the class of your character (Warrior, Rogue, Healer, or Mage).
- **Display name:** Shows the character's display name.
- **Experience:** Displays the current experience points of the character (for example, "144 XP").
- **Gold:** Shows the amount of gold owned by your character (for example, "22.29 GP").
- **Health:** Shows the current health points of the character (for example, "42 HP").
- **Level:** Displays the current level of the character.
- **Mana:** Displays the current mana points of your character (for example, "61 MP").
- **Max. mana:** Indicates the maximum mana points your character can have at the current level (for example, "70 MP").
- **Next level:** Indicates the remaining experience points needed to reach the next level (for example, "440 XP").
- **Habits:** Shows the number of habits being tracked (for example, "4 tasks").
- **Rewards:** Displays the rewards that can be redeemed (for example, "1 task")
- **Gems:** Shows the total number of gems currently owned by your Habitica character, used for purchasing items and customizations.
- **Mystic hourglasses:** Displays the number of mystic hourglasses earned as a subscriber, which can be redeemed for exclusive items from past events.
- **Class**: Indicates the class of your character (Warrior, Rogue, Healer, or Mage).
- **Display name**: Shows the character's display name.
- **Experience**: Displays the current experience points of the character (for example, "144 XP").
- **Gold**: Shows the amount of gold owned by your character (for example, "22.29 GP").
- **Health**: Shows the current health points of the character (for example, "42 HP").
- **Level**: Displays the current level of the character.
- **Mana**: Displays the current mana points of your character (for example, "61 MP").
- **Max. mana**: Indicates the maximum mana points your character can have at the current level (for example, "70 MP").
- **Next level**: Indicates the remaining experience points needed to reach the next level (for example, "440 XP").
- **Ha Dispbits**: Shows the number of habits being tracked (for example, "4 tasks").
- **Rewards**:lays the rewards that can be redeemed (for example, "1 task")
- **Gems**: Shows the total number of gems currently owned by your Habitica character, used for purchasing items and customizations.
- **Mystic hourglasses**: Displays the number of mystic hourglasses earned as a subscriber, which can be redeemed for exclusive items from past events.
- **Strength, intelligence, constitution, perception**: Display your character's attribute points (stats). The sensors' attributes provide a breakdown of contributions from level, battle gear, class equip bonus, allocation, and buffs.
## Binary sensors
@ -69,8 +101,8 @@ The Habitca {% term integration %} enables you to monitor your adventurer's prog
The following Habitica tasks are available as to-do lists in Home Assistant. You can add, delete, edit and check-off completed tasks
- **To-Do's:** Displays a comprehensive list of active and completed to-dos. Each to-do includes its due date if applicable, allowing you to check them off, edit them, delete them, and create new to-dos seamlessly.
- **Dailies:** Shows the daily tasks that need to be completed today or in the future. Tasks completed yesterday can still be marked off as "yesterdailies" until a new day starts.
- **To-Do's**: Displays a comprehensive list of active and completed to-dos. Each to-do includes its due date if applicable, allowing you to check them off, edit them, delete them, and create new to-dos seamlessly.
- **Dailies**: Shows the daily tasks that need to be completed today or in the future. Tasks completed yesterday can still be marked off as "yesterdailies" until a new day starts.
## Calendars
@ -81,9 +113,9 @@ The following Habitica tasks are available as to-do lists in Home Assistant. You
## Button controls
- **Start my day:** Initiates daily routine actions in Habitica, including resetting your dailies, deal damage from unfinished dailies and quest bosses, habits adjustment, buff expiration, and mana regeneration based on completed dailies.
- **Revive from death:** Allows your character to revive from death in Habitica. Upon revival, HP is fully restored, but your character will lose all gold, 1 level, all experience points, one stat point, and one piece of equipment.
- **Buy a health potion:** Allows your character to purchase a health potion in Habitica. Instantly applies the potion upon purchase, healing 15 HP at a cost of 25 GP.
- **Start my day**: Initiates daily routine actions in Habitica, including resetting your dailies, deal damage from unfinished dailies and quest bosses, habits adjustment, buff expiration, and mana regeneration based on completed dailies.
- **Revive from death**: Allows your character to revive from death in Habitica. Upon revival, HP is fully restored, but your character will lose all gold, 1 level, all experience points, one stat point, and one piece of equipment.
- **Buy a health potion**: Allows your character to purchase a health potion in Habitica. Instantly applies the potion upon purchase, healing 15 HP at a cost of 25 GP.
- **Allocate all stat points**: Assigns all unallocated stat points based on the previously set automatic allocation method. If no method is set, all points are assigned to strength (STR).
## Button controls for class skills
@ -266,6 +298,10 @@ actions:
{% enddetails %}
{% note %}
When creating automations, be mindful of the [rate limits](#known-limitations). Frequent triggers or multiple concurrent automations can quickly exceed the allowed number of requests.
{% endnote %}
### Create "Empty the dishwasher" to-do
Automatically create a Habitica to-do when the dishwasher finishes its cycle.
@ -357,3 +393,25 @@ actions:
```
{% endraw %}
## Data updates
This integration retrieves data from Habitica every 60 seconds to ensure timely updates.
## Known limitations
Habitica imposes a rate limit of 30 requests per minute for third-party applications, which applies collectively to all tools and integrations you use.
This integration performs the following requests:
- 3 requests per data update (every 60 seconds).
- 1 request per action, such as executing skills or interacting with to-dos and dailies.
- 1 additional request 5 seconds after an action to sync the data with Habitica.
Please keep these limits in mind to avoid exceeding Habitica's request allowance. Efforts are ongoing to optimize the integration and reduce the number of requests it makes.
## Remove integration
This integration can be removed by following these steps:
{% include integrations/remove_device_service.md %}

View File

@ -42,6 +42,7 @@ To get started with the general settings in YAML, follow these steps:
latitude: 32.87336
longitude: 117.22743
elevation: 430
radius: 100
unit_system: metric
currency: USD
country: US
@ -78,6 +79,10 @@ elevation:
description: Altitude above sea level in meters. Impacts sunrise data.
required: false
type: integer
radius:
description: Radius in meters defining your locations area. Impacts location awareness.
required: false
type: integer
unit_system:
description: "`metric` for Metric, `us_customary` for US Customary. This also sets temperature_unit, Celsius for Metric and Fahrenheit for US Customary"
required: false

View File

@ -358,7 +358,7 @@ To add a single entity in accessory mode:
## Configure Filter
By default, all entities except categorized entities (config, diagnostic, and system entities) are included. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported integrations](#supported-integrations) can be added.
By default, all entities except hidden entities and categorized entities (config, diagnostic, and system entities) are included. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported integrations](#supported-integrations) can be added.
```yaml
# Example filter to include specified domains and exclude specified entities
@ -375,7 +375,7 @@ homekit:
{% include common-tasks/filters.md %}
Categorized entities are not included (config, diagnostic, and system entities) unless they are explicitly matched by `include_entity_globs` or `include_entities` or selected in the UI in include mode.
Hidden entities and categorized entities (config, diagnostic, and system entities) are not included unless they are explicitly matched by `include_entity_globs` or `include_entities` or selected in the UI in include mode.
## Docker Network Isolation

View File

@ -22,80 +22,117 @@ works_with:
- local
---
Integration for the [HomeWizard Energy](https://www.homewizard.com) platform. It can collect data locally from the HomeWizard Energy products and create them as sensors in Home Assistant.
Integration for the [HomeWizard Energy](https://www.homewizard.com) platform. It can collect data locally from the HomeWizard Energy products and create them as sensors in Home Assistant. Use this integration to monitor your energy, gas and water usage to optimize your energy consumption. The information collected by this integration can be used by the [Energy dashboard](/home-energy-management).
**Supported devices**
## Supported devices
- [Wi-Fi P1 Meter](https://www.homewizard.com/p1-meter): Sensors for power import/export, energy consumption (single or three phases). information about your smart meter and gas. (Model: `HWE-P1`)
- [Wi-Fi Energy Socket](https://www.homewizard.com/energy-socket): Sensors for power import/export and energy consumption and switches for controlling the outlet (model: `HWE-SKT`)
- [Wi-Fi Watermeter](https://www.homewizard.com/watermeter): Sensors for active and total water usage (model: `HWE-WTR`)
- [Wi-Fi kWh Meter](https://www.homewizard.com/kwh-meter): Sensors for power import/export and energy consumption. (Models: `HWE-KWH1`, `HWE-KWH3`, `SDM230-wifi`, and `SDM630-wifi`)
{% note %}
The Watermeter can be powered via a USB-C cable and with batteries. When using batteries they only connect to Wi-Fi every couple of hours. Because of this, the API can only be used when powered via the USB-C cable. It is not possible to use this integration when the water meter is powered by batteries.
{% endnote %}
- [Wi-Fi P1 Meter](https://www.homewizard.com/p1-meter): Sensors for power import/export, energy consumption (single or three phases), and information about your smart meter and gas (model: `HWE-P1`).
- [Wi-Fi Energy Socket](https://www.homewizard.com/energy-socket): Sensors for power import/export and energy consumption, and switches for controlling the outlet (model: `HWE-SKT`).
- [Wi-Fi Watermeter](https://www.homewizard.com/watermeter): Sensors for active and total water usage (model: `HWE-WTR`).
- [Wi-Fi kWh Meter](https://www.homewizard.com/kwh-meter): Sensors for power import/export and energy consumption (models: `HWE-KWH1`, `HWE-KWH3`, `SDM230-wifi`, and `SDM630-wifi`.).
## Enable the API
You have to enable the local API to allow Home Assistant to communicate with your device. Do this in the HomeWizard Energy app:
1. Go to Settings. (Gear icon in the upper-right)
1. Go to Settings (gear icon in the upper-right).
2. Go to 'Meters'.
3. Select your device.
4. Scroll down and turn on 'Local API'.
{% include integrations/config_flow.md %}
{% configuration_basic %}
IP address:
description: "The IP address of your device. You can find it in your router."
{% endconfiguration_basic %}
## Sensors
Sensors for the P1 meter, Energy socket, and kWh meter:
Sensors for the P1 meter, Energy Socket, and kWh meter:
- **Energy import/export (kWh)**: Total energy imported or exported since installation. Each tariff has its own sensor (e.g., T1, T2) and a sensor for the combined value.
- **Power (W)**: Active power that is measured on each phase.
Sensors for P1 meter, only available when smart meter exposes these values:
Sensors for P1 meter, only available when the smart meter exposes these values:
- **Gas usage (m³)**: Total gas used since the installation of the gas meter. A gas meter sends its measurement once every 5 minutes or per hour, depending on the version of the smart meter.
- **Tariff**: Current tariff that is used. Can be used to keep consumption as low as possible during peak hours.
- **Voltage (V)**: Active voltage that is measured on each phase.
- **Current (A)**: Active current that is measured on each phase.
- **Voltage (V)**: Active voltage measured on each phase.
- **Current (A)**: Active current measured on each phase.
- **Frequency (Hz)**: Net frequency.
- **Voltage sags and swells**: Number of times a voltage sag or well has been detected.
- **Power failures**: Two sensors that indicate the number of power failures that have been detected by the smart meter. One for all power failures and another for 'long' power failures.
- **Peak demand**: Belgium users are starting to get charged for the peak usage per month (see [capaciteitstarief](https://www.fluvius.be/thema/factuur-en-tarieven/capaciteitstarief)). Two sensors are available: One that shows the current quarterly average and another that shows the peak measured this month. Both these sensors are provided directly from the smart meter and can be used to keep the peak as low as possible.
- **Voltage sags and swells**: Number of times a voltage sag or swell has been detected.
- **Power failures**: Two sensors indicate the number of power failures detected by the smart meter. One for all power failures and another for 'long' power failures.
- **Peak demand**: Belgium users are starting to get charged for the peak usage per month (see [capaciteitstarief](https://www.fluvius.be/thema/factuur-en-tarieven/capaciteitstarief)). Two sensors are available: one shows the current quarterly average, and another shows the peak measured this month. Both sensors are provided directly from the smart meter and can be used to keep the peak as low as possible.
Sensors for Energy Socket and kWh meter:
- **Voltage (V)**: Active voltage that is measured on each phase.
- **Current (A)**: Active current that is measured on each phase.
- **Voltage (V)**: Active voltage measured on each phase.
- **Current (A)**: Active current measured on each phase.
- **Frequency (Hz)**: Net frequency.
- **Reactive power (VAR)**: Active reactive power measurement on each phase.
- **Apparent power (VA)**: Active apparent power measurement on each phase.
Sensors for Water meter:
- **Water usage (L/min)**: Flow of water that is measured at that time.
- **Total Water usage (m³)**: Total water usage since the installation of the HomeWizard Water meter.
- **Water usage (L/min)**: Flow of water measured at that time.
- **Total water usage (m³)**: Total water usage since the installation of the HomeWizard Water meter.
## Energy Socket
The Energy Socket outlet state and status light can be controlled. There are two switches:
- **Switch**: Controls the outlet state of the Energy Socket. This switch is locked out when _Switch Lock_ is turned on.
- **Switch lock**: Forces the outlet state in the _on_ position and disables the physical button. This option is useful when the socket is used for a device that must not be turned off, such as a refrigerator.
- **Switch**: Controls the outlet state of the Energy Socket. This switch is permanently on when _Switch Lock_ is turned on. Use this to control the power of simple devices, such as a heater or a charger.
- **Switch lock**: Forces the outlet state to the _on_ position and disables the physical button. This option is useful when the socket is used for a device that must not be turned off, such as a refrigerator.
You can also control the green status light brightness with **Status light brightness**. This light turns on when the switch is on.
## Identify
The identify button can be pressed to let the status light blink for a few seconds.
_This feature not available for the kWh Meter._
_This feature is not available for the kWh Meter._
## Cloud communication
The HomeWizard Energy devices are designed to work with the HomeWizard Energy app and require communication with the HomeWizard cloud to make them function with the app. The "Cloud connection" configuration toggle can be used to turn off all communication with the HomeWizard cloud, making the device fully local. The device cannot communicate with the app, and the device won't receive any future firmware updates.
The HomeWizard Energy devices are designed to work with the HomeWizard Energy app and require communication with the HomeWizard cloud to function with the app. The "Cloud connection" configuration toggle can be used to turn off all communication with the HomeWizard cloud, making the device fully local. The device cannot communicate with the app, and the device won't receive any future firmware updates.
Cloud communication is restored when the switch is turned on again. Cloud communications are also restored after a factory reset, or when the device is put in pairing mode.
{% include common-tasks/remove_device_service.md %}
After deleting the integration, go to the HomeWizard Energy app and disable the local API if no other integrations are using it.
## Examples
### Send a notification when your washing machine is done
If you know the energy characteristics of your washing machine, you can create an automation that sends a notification when the energy usage drops below a certain threshold. This can notify you when your washing machine is done. You can use the following blueprint for this:
- [Appliance Power Monitor Blueprint With Elapsed Time and Energy Used Variables](https://community.home-assistant.io/t/appliance-power-monitor-blueprint-with-elapsed-time-and-energy-used-variables/549073), created by [@Jhonattan-Souza](https://community.home-assistant.io/u/jhonattan-souza)
## Data fetching interval
The integration is {% term polling %} new data every 5 seconds. There is no limitation on the number or frequency of requests that can be made to the device.
{% include common-tasks/define_custom_polling.md %}
## Known limitations
### Watermeter cannot be used with batteries
The Water meter can be powered via a USB-C cable and with batteries. When using batteries, it only connects to Wi-Fi every couple of hours. Because of this, the API can only be used when powered via the USB-C cable. It is not possible to use this integration when the water meter is powered by batteries.
### P1 Meter may update slowly
The P1 Meter is updated by the smart meter, which usually updates every 1 or 10 seconds. This means that the P1 Meter may not update as fast as the other devices.
## Troubleshooting
### My device is not showing up
It may happen that you can't find your devices or they won't show up in the integration setup. This can be caused by the following:
- The device is not connected to the network. You have to connect your new device to the network first via the HomeWizard Energy app.
- Make sure you have updated the device to the latest firmware. Follow this guide to learn how to update your device: [How do I check if I have the latest software on my HomeWizard product?](https://helpdesk.homewizard.com/en/articles/9167578-how-do-i-check-if-i-have-the-latest-software-on-my-homewizard-product)
- Make sure you have enabled the local API in device settings via the HomeWizard Energy app.
- Make sure both Home Assistant and the device are on the same network.

View File

@ -328,3 +328,9 @@ template:
```
{% endraw %}
## Remove an IMAP service
This integration follows standard config entry removal.
{% include integrations/remove_device_service.md %}

View File

@ -16,9 +16,38 @@ ha_integration_type: integration
The **ista EcoTrend** {% term integration %} for Home Assistant allows you to import your monthly meter readings from the [ista EcoTrend](https://ecotrend.ista.de) service.
## About ista SE
**ista SE** is a company based in Germany that provides metering services for lessors and property owners. Its solutions are designed for rented or self-inhabited multi-party properties, enabling accurate measurement, assignment, and billing of heating and water consumption for renters or individual property owners.
## How you can use this integration
The **ista EcoTrend** integration allows you to monitor your monthly heating and water usage in Home Assistant's energy dashboard. View historical usage trends, track monthly consumption, and receive notifications when new data is available. This integration helps you stay informed about your household's resource usage and make informed decisions about energy efficiency.
## Prerequisites
### For new users
1. If you received an activation code by mail, register at [ecotrend.ista.com](https://ecotrend.ista.com/).
2. If you did not receive an activation code after moving into a property with **ista** metering devices, contact your lessor or property manager.
### For existing users
1. Ensure you have an active **ista EcoTrend** account to set up the integration.
2. During the setup process in Home Assistant, enter the email address and password associated with your **ista EcoTrend** account.
{% note %}
The integration currently supports only the German EcoTrend service.
{% endnote %}
{% include integrations/config_flow.md %}
{% configuration_basic %}
"Email":
description: "Enter the email address associated with your ista EcoTrend account to connect it to Home Assistant."
Password:
description: "Enter the password for your ista EcoTrend account to enable the connection with Home Assistant."
{% endconfiguration_basic %}
## Sensors
@ -33,7 +62,7 @@ The **ista EcoTrend** integration exposes the last monthly readings as sensors.
- **Water**: consumption readings in m³
- **Water costs**: estimated costs in EUR
Not all values may be available in your ista EcoTrend account. Cost estimation is an optional service that has to be booked by your property manager. Therefore, the cost sensors are deactivated by default.
Not all values may be available in your ista EcoTrend account. Cost estimation is an optional service that has to be booked by your property manager or lessor. Therefore, the cost sensors are deactivated by default.
## Long-term statistics
@ -68,3 +97,18 @@ To set up the **ista EcoTrend** long-term statistics in your Home Assistant ener
- Select the corresponding **Hot water costs** entity (for example, `ista_ecotrend:luxemburger_str_1_hot_water_cost`).
- **Add water consumption**
- To track cold water consumption and costs (for example, `ista_ecotrend:luxemburger_str_1_water` and `ista_ecotrend:luxemburger_str_1_water_cost`), repeat the above steps for your **Water** and **Water costs** entities.
## Data updates
The integration checks for new readings every 24 hours.
## Known limitations
- The integration does not support two-factor authentication. To connect Home Assistant to **ista Ecotrend**, you must first disable two-factor authentication. To do this, navigate to **Menü -> Benutzerkonto -> Zwei-Stufen-Authentifizierung** and remove any registered authentication devices.
- Sensor values reflect the meter readings from the previous month, as **ista** publishes new readings a few days after the end of the billing period. Long-term statistics are adjusted to display these readings as of the last day of the corresponding month.
## Remove integration
This integration can be removed by following these steps:
{% include integrations/remove_device_service.md %}

View File

@ -34,6 +34,8 @@ This integration interacts with [La Marzocco](https://lamarzocco.com/it/en/) cof
If your Home Assistant host can perform [DHCP discovery](https://www.home-assistant.io/integrations/dhcp/), your machine will be discovered automatically. Otherwise, if your machine is in Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the machine will be discovered as well.
By default, this integration will query your machine every 30 seconds for an update, every 5 minutes for new statistics, and every hour for a firmware update. If configure the optional local connection, your machine will receive immediate push updates about its state for everything except statistics and firmware updates.
## Prerequisites
- To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first.
@ -57,6 +59,13 @@ Host:
type: boolean
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
Use Bluetooth:
description: Allows you to manually disable Bluetooth communication with the machine (if available). This can be used to avoid longer timeouts, e.g., when your machine is only sometimes in range.
{% endconfiguration_basic %}
# Available platforms & entities
## Buttons
@ -178,6 +187,12 @@ mode: single
- Only La Marzocco native app accounts are supported, social logins (Google, Apple & WeChat) are not supported
- Currently it is only possible to view the schedules configured in the La Marzocco Home app, but not to edit the schedules from Home Assistant. You can, of course, build Home Assistant native automations to reflect the same functionality in Home Assistant.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}
## Troubleshooting
{% details "Problem: Connection to machine is not possible" %}
@ -189,4 +204,3 @@ Check the La Marzocco Home app to see if you can connect to your machine there.
Check the La Marzocco Home app to see if your machine is connected to Wi-Fi. Ensure Home Assistant can reach the machine. Ensure you configured the host option in the integration options.
{% enddetails %}

View File

@ -67,7 +67,7 @@ Support LG Appliances as follows:
- [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dryer/)
- [Home Brew](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/home-brew/)
- [Hood](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/hood/)
- [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/)
- [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/)
- [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/kimchi-refrigerator/)
- [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/microwave-oven/)
- [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/oven/)
@ -77,8 +77,8 @@ Support LG Appliances as follows:
- [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/)
- [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/)
- [System Boiler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/system-boiler/)
- [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)
- [Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)
- [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)
- [Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)
- [Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)
- [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)
- [Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)
@ -117,7 +117,7 @@ A read-only property which has only two states that can be toggled is represente
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Door<br>Eco friendly<br>Power saving mode<br>Sabbath |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Fresh air filter |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Remote start |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Remote start |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Remote start |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Remote start |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Power |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Sabbath |
@ -143,7 +143,7 @@ A notification message pushed from the server is represented as an event platfor
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Notification |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Error<br>Notification |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Error<br>Notification |
| [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/) | Notification |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Notification |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Notification |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Notification |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Notification |
@ -151,7 +151,7 @@ A notification message pushed from the server is represented as an event platfor
| [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/) | Error<br>Notification |
| [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/) | Notification |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Error<br>Notification |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Error<br>Notification |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Error<br>Notification |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Error<br>Notification |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Notification |
@ -173,12 +173,12 @@ A read-write property which has numeric value is represented as a number platfor
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Sleep timer<br>Wind temperature |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Delay ends in<br>Delay starts in |
| [Hood](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Hood/) | Fan<br>Light |
| [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/) | Sleep timer<br>Target humidity |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Sleep timer<br>Target humidity |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Fan<br>Light |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Temperature |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Temperature |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Delay ends in |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Delay ends in<br>Delay starts in |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Delay ends in<br>Delay starts in |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Delay ends in<br>Delay starts in |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Temperature |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Light<br>Temperature |
@ -195,11 +195,11 @@ A writable property which has a list of selectable values is represented as a se
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Speed |
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Operation |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Operation |
| [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/) | Display brightness<br>Drying mode<br>Operating mode<br>Speed |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Display brightness<br>Drying mode<br>Operating mode<br>Speed |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Cook mode<br>Operation<br> |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Fresh air filter |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Operation |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Operation |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Operation |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Operation |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Operating mode |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Light<br>Operating mode |
@ -218,7 +218,7 @@ A read-only property which has states is represented as a sensor platform.
| [Dish Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dish-washer/) | Current cycle<br>Current status<br>Delay starts in<br>Remaining time<br>Rinse aid dispenser level<br>Softening level<br>Total time |
| [Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Dryer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Home Brew](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Home-Brew/)| Brewing duration<br>Brewing period<br>Current status<br>Flavor<br>Homebrew recipe<br>Hops<br>Recipe progress<br>Wort<br>Yeast |
| [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/) | Air quality sensor<br>Humidity<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer<br>Temperature |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Air quality sensor<br>Humidity<br>Overall air quality<br>PM1<br>PM10<br>PM2.5<br>Schedule turn-off<br>Schedule turn-on<br>Sleep timer<br>Temperature |
| [Kimchi Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Kimchi-Refrigerator/) | Fresh air filter<br>Temperature |
| [Microwave Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Microwave-Oven/) | Current status<br>Remaining time |
| [Oven](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Oven/) | Cook time<br>Current status<br>Remaining time<br>Temperature |
@ -227,7 +227,7 @@ A read-only property which has states is represented as a sensor platform.
| [Robot Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/robot-cleaner/) | Current status<br>Operating mode<br>Running time |
| [Stick Cleaner](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Stick-Cleaner/) | Battery<br>Current status<br>Operating mode |
| [Styler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/styler/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Washcombo Main](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Main-WashCombo/)<br>[Washcombo Mini](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Mini-WashCombo/)<br>[Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/washer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Washtower](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Single-Unit/)<br>[Washtower Dryer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Dryer/)<br>[Washtower Washer](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/WashTower-Washer/) | Current status<br>Delay ends in<br>Delay starts in<br>Remaining time<br>Total time |
| [Water Heater](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Water-Heater/) | Temperature |
| [Water Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/water-purifier/) | High-temp sterilization<br>Type<br>UVnano|
@ -242,7 +242,7 @@ A read-write property which has only two states that can be toggled is represent
| [Air Purifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/air-purifier/) | Power |
| [Air Purifier Fan](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Air-Purifier-Fan/) | Heating<br>Power<br>UVnano |
| [Dehumidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/dehumidifier/) | Power |
| [Humidifier](https://thinq.developer.lge.com/ko/cloud/docs/thinq-connect/device-profile/humidifier/) | Auto mode<br>Heating<br>Mood light<br>Power<br>Sleep mode |
| [Humidifier](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/humidifier/) | Auto mode<br>Heating<br>Mood light<br>Power<br>Sleep mode |
| [Refrigerator](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/refrigerator/) | Ice plus<br>Quick freeze |
| [System Boiler](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/System-Boiler/) | Hot water |
| [Wine Cellar](https://thinq.developer.lge.com/en/cloud/docs/thinq-connect/device-profile/Wine-Cellar/) | Ventilation |

View File

@ -18,6 +18,7 @@ This is a presence detection scanner for OpenWrt using [luci](https://openwrt.or
Before this scanner can be used you have to install the luci RPC package on OpenWrt:
```bash
# opkg update
# opkg install luci-mod-rpc
```

View File

@ -26,6 +26,17 @@ If you want to grant only required accesses, uncheck all checkboxes then check o
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: The URL of your Mastodon instance, for example `https://mastodon.social`.
Client key:
description: The client key for the application created within your Mastodon account web interface.
Client secret:
description: The client secret for the application created within your Mastodon account web interface.
Access token:
description: The access token for the application created within your Mastodon account web interface.
{% endconfiguration_basic %}
## Sensors
The integration will create sensors for the Mastodon account showing total followers, following, and posts. Sensors are updated once an hour.
@ -99,3 +110,13 @@ This will post a message to Mastodon that includes an image and a target of `unl
```
For more on how to use notifications in your automations, please see the [getting started with automation page](/getting-started/automation/).
## Known limitations
The integration only allows reading the status of the authenticated account and posting to that account. It does not provide functionality to get the stream, favorite, bookmark, or boost posts of that account.
## Remove integration
This integration follows standard integration removal, once the integration is removed you can remove the application registration (assuming it was only used by this integration) from your Mastodon account by going to **Preferences** in the Mastodon web interface, then to **Development** and deleting the application you created for Home Assistant.
{% include integrations/remove_device_service.md %}

View File

@ -34,6 +34,15 @@ You create your API token on your Mealie installation:
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: The URL of your Mealie installation.
API token:
description: The API token for your Mealie installation you generated in the prerequisites.
Verify SSL certificate:
description: Enable this unless you are using a self-signed certificate on your Mealie installation.
{% endconfiguration_basic %}
## Available calendars
The integration will create a calendar for every type of meal plan, which are updated once an hour:
@ -154,3 +163,9 @@ template:
{% endraw %}
{% enddetails %}
## Remove integration
This integration follows standard integration removal, once the integration is removed you can remove the API token (assuming it was only used by this integration) by going to your Account in the Mealie web interface, then to **Manage Your API Tokens** and deleting the token you created for Home Assistant.
{% include integrations/remove_device_service.md %}

View File

@ -62,10 +62,10 @@ If everything is working fine you can disable the pure `api` service in RouterOS
## The user privileges in RouterOS
To use this device tracker, you only need limited privileges. To enhance the security of your MikroTik device, create a "read only" user who can connect to API and perform ping test only:
To use this device tracker, you only need limited privileges. To enhance the security of your MikroTik device, create a "read only" group with solely API and ping test permissions and add a user to that group:
```bash
/user group add name=homeassistant policy=read,api,test,!local,!telnet,!ssh,!ftp,!reboot,!write,!policy,!winbox,!password,!web,!sniff,!sensitive,!romon,!dude,!tikapp
/user add group=homeassistant name=homeassistant
/user set password="YOUR_PASSWORD" homeassistant
/user
group add name=homeassistant policy=read,api,test
add group=homeassistant name=homeassistant
```

View File

@ -528,7 +528,7 @@ The master configuration like device_class are automatically copied to the slave
## Configuring climate entities
The Modbus climate platform allows you to monitor a thermostat or heaters as well as set a target temperature, HVAC mode and fan state.
The Modbus climate platform allows you to monitor a thermostat or heaters as well as set a target temperature, HVAC mode, swing mode, and fan state.
Please refer to [Parameter usage](#parameters-usage-matrix) for conflicting parameters.
@ -538,13 +538,43 @@ climates:
required: false
type: map
keys:
temperature_unit:
description: "Temperature unit: C or F."
required: false
default: C
type: list
keys:
C:
description: "Celsius"
F:
description: "Fahrenheit"
precision:
description: "Number of valid decimals for temperature."
required: false
type: integer
default: 0
temp_step:
description: "Step size target temperature."
required: false
type: float
default: 0.5
max_temp:
description: "Maximum setpoint for target temperature."
required: false
type: integer
default: 35
min_temp:
description: "Minimum setpoint for target temperature."
required: false
type: integer
default: 5
count:
description: "Number of registers to read.
description: "Number of registers to read to fetch the current temperature.
**only valid for `data_type: custom` and `data_type: string`**, for other data types count is automatically calculated."
required: false
type: integer
data_type:
description: "Response representation."
description: "Response representation when reading the current temperature register(s)."
required: false
default: int16
type: list
@ -575,6 +605,54 @@ climates:
description: "32 bit unsigned integer (2 registers holds 1 value)."
uint64:
description: "64 bit unsigned integer (4 registers holds 1 value)."
input_type:
description: Modbus register type for current temperature.
required: false
default: holding
type: list
keys:
holding:
description: "Holding register."
input:
description: "Input register."
offset:
description: "Final offset for current temperature (output = scale * value + offset)."
required: false
type: float
default: 0
target_temp_register:
description: "Register address for target temperature (Setpoint). Using a list, it is possible to define one register for each of the available HVAC Modes. The list has to have a fixed size of 7 registers corresponding to the 7 available HVAC Modes, as follows: Register **1: HVAC AUTO mode**; Register **2: HVAC Cool mode**; Register **3: HVAC Dry mode**; Register **4: HVAC Fan only mode**; Register **5: HVAC Heat mode**; Register **6: HVAC Heat Cool mode**; Register **7: HVAC OFF mode**. It is possible to set duplicated values for the modes where the devices don't have a related register."
required: true
type: [integer, list]
target_temp_write_registers:
description: "If `true` use `write_registers` for target temperature (`target_temp_register`), else use `write_register`."
required: false
type: boolean
default: false
scale:
description: "Scale factor (output = scale * value + offset) for setting target temperature."
required: false
type: float
default: 1
structure:
description: "If `data_type: custom` is specified a double-quoted Python struct is expected,
to format the string to unpack the value. See Python documentation for details.
Example: `>i`."
required: false
type: string
default: ">f"
swap:
description: "Swap the order of bytes/words, **not valid with `custom` and `datatype: string`** when setting target temperature"
required: false
default: none
type: list
keys:
byte:
description: "Swap bytes AB -> BA."
word:
description: "Swap word ABCD -> CDAB, **not valid with data types: `int16`, `uint16`**"
word_byte:
description: "Swap word ABCD -> DCBA, **not valid with data types: `int16`, `uint16`**"
hvac_mode_register:
description: "Configuration of register for HVAC mode"
required: false
@ -585,7 +663,7 @@ climates:
required: true
type: integer
write_registers:
description: "Request type, use `write_registers` if true else `write_register`.
description: "Request type for setting HVAC mode, use `write_registers` if true else `write_register`.
If more than one value is specified for a specific mode, only the first one is used for writing to the register."
required: false
type: boolean
@ -596,7 +674,8 @@ climates:
type: map
keys:
state_off:
description: "Value corresponding to HVAC Off mode."
description: "Value corresponding to HVAC Off mode.
If the On/Off state handled on a different address and/or register the `state_off` state should be omitted from your configuration"
required: false
type: [integer, list]
state_heat:
@ -678,14 +757,6 @@ climates:
description: "Value corresponding to Fan Diffuse mode."
required: false
type: integer
hvac_onoff_register:
description: "Address of On/Off state.
When zero is read from this register, the HVAC state is set to Off, otherwise the `hvac_mode_register`
dictates the state of the HVAC. If no such register is defined, it defaults to Auto.
When the HVAC mode is set to Off, the value 0 is written to the register, otherwise the
value 1 is written."
required: false
type: integer
swing_mode_register:
description: "Configuration of the register for swing mode"
required: false
@ -720,86 +791,18 @@ climates:
description: "Value corresponding to Swing mode both."
required: false
type: integer
input_type:
description: Modbus register type for current temperature.
required: false
default: holding
type: list
keys:
holding:
description: "Holding register."
input:
description: "Input register."
max_temp:
description: "Maximum setpoint temperature."
hvac_onoff_register:
description: "Address of On/Off state.
Only use this setting if your On/Off state is not handled as a HVAC mode.
When zero is read from this register, the HVAC state is set to Off, otherwise the `hvac_mode_register`
dictates the state of the HVAC. If no such register is defined, it defaults to Auto.
When the HVAC mode is set to Off, the value 0 is written to the register, otherwise the
value 1 is written."
required: false
type: integer
default: 35
min_temp:
description: "Minimum setpoint temperature."
required: false
type: integer
default: 5
offset:
description: "Final offset (output = scale * value + offset)."
required: false
type: float
default: 0
precision:
description: "Number of valid decimals."
required: false
type: integer
default: 0
scale:
description: "Scale factor (output = scale * value + offset)."
required: false
type: float
default: 1
structure:
description: "If `data_type: custom` is specified a double-quoted Python struct is expected,
to format the string to unpack the value. See Python documentation for details.
Example: `>i`."
required: false
type: string
default: ">f"
swap:
description: "Swap the order of bytes/words, **not valid with `custom` and `datatype: string`**"
required: false
default: none
type: list
keys:
byte:
description: "Swap bytes AB -> BA."
word:
description: "Swap word ABCD -> CDAB, **not valid with data types: `int16`, `uint16`**"
word_byte:
description: "Swap word ABCD -> DCBA, **not valid with data types: `int16`, `uint16`**"
target_temp_register:
description: "Register address for target temperature (Setpoint). Using a list, it is possible to define one register for each of the available HVAC Modes. The list has to have a fixed size of 7 registers corresponding to the 7 available HVAC Modes, as follows: Register **1: HVAC AUTO mode**; Register **2: HVAC Cool mode**; Register **3: HVAC Dry mode**; Register **4: HVAC Fan only mode**; Register **5: HVAC Heat mode**; Register **6: HVAC Heat Cool mode**; Register **7: HVAC OFF mode**. It is possible to set duplicated values for the modes where the devices has not a related register."
required: true
type: [integer, list]
target_temp_write_registers:
description: "If `true` use `write_registers` for target temperature."
required: false
type: boolean
default: false
temp_step:
description: "Step size target temperature."
required: false
type: float
default: 0.5
temperature_unit:
description: "Temperature unit reported by current_temp_register. C or F."
required: false
default: C
type: list
keys:
C:
description: "Celsius"
F:
description: "Fahrenheit"
write_registers:
description: "Request type, use `write_registers` if true else `write_register`."
description: "If `true` use `write_registers` to control the On/Off state (`hvac_onoff_register`), else use `write_register`.
Note that it is not yet possible to control the On/Off state via a coil."
required: false
type: boolean
default: false

View File

@ -51,6 +51,20 @@ MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things
{% include integrations/config_flow.md %}
### Removing the MQTT integration
The MQTT integration and its entities can be removed by following these steps:
1. Navigate to **Settings** > **Devices & Services**
2. Find the MQTT integration and click on it
3. Click the delete button to remove the MQTT config entry
Note: This action does not remove the [MQTT broker](#setting-up-a-broker) or its data. If you want to completely remove MQTT:
1. Check your `configuration.yaml` and other YAML files for MQTT-related configurations and remove them
2. Review your automations and scripts for any MQTT dependencies
3. Consider backing up your configuration before making these changes
<a name="configuration-via-mqtt-discovery"></a>
{% details "Configuration of MQTT components via MQTT discovery" %}
@ -209,6 +223,14 @@ See also [MQTT Discovery section](#mqtt-discovery)
Home Assistant's MQTT integration supports so-called Birth and Last Will and Testament (LWT) messages. The former is used to send a message after the service has started, and the latter is used to notify other clients about a disconnected client. Please note that the LWT message will be sent both in case of a clean (e.g. Home Assistant shutting down) and in case of an unclean (e.g. Home Assistant crashing or losing its network connection) disconnect.
If a disabled entity is enabled and added after 30 seconds, the MQTT integration will be reloaded and will cause all discovered MQTT entities to be unloaded.
When MQTT starts up, all existing MQTT devices, entities, tags, and device triggers, will be unavailable until a discovery message is received and processed. A device or service that exposes the MQTT discovery should subscribe to the Birth message and use this as a trigger to send the [discovery payload](#discovery-payload). To avoid high IO loads on the MQTT broker, adding some random delay in sending the discovery payload is recommended.
Alternative approaches:
- Retaining the [discovery payload](#discovery-payload): This will store the discovery payload at the MQTT broker, and offer it to the MQTT integration as soon as it subscribes for MQTT discovery. When there are a lot of entities, this can cause high IO loads.
- Periodically resending the discovery payload: This can cause some delay, or a lot of IO if there are a lot of MQTT discovery messages.
By default, Home Assistant sends `online` and `offline` to `homeassistant/status`.
MQTT Birth and Last Will messages can be customized or disabled from the UI. To do this, click on "Configure" in the integration page in the UI, then "Re-configure MQTT" and then "Next".
@ -621,6 +643,8 @@ For more examples [see](/integrations/mqtt/#discovery-examples-with-component-di
The payload must be a serialized JSON dictionary and will be checked like an entry in your {% term "`configuration.yaml`" %} file if a new device is added, with the exception that unknown configuration keys are allowed but ignored. This means that missing variables will be filled with the integration's default values. All configuration variables which are *required* must be present in the payload. The reason for allowing unknown documentation keys is allow some backwards compatibility, software generating MQTT discovery messages can then be used with older Home Assistant versions which will simply ignore new features.
A discovery payload can be sent with a retain flag set. In that case, the discovery message will be stored at the MQTT broker and processed automatically when the MQTT integrations start. This method removes the need for it to be resent. A better approach, though, is for the software generating MQTT discovery messages to send discovery payload(s) when the MQTT integration sends the [Birth message](#birth-and-last-will-messages).
Subsequent messages on a topic where a valid payload has been received will be handled as a configuration update, and a configuration update with an empty payload will cause a previously discovered device to be deleted.
A base topic `~` may be defined in the payload to conserve memory when the same topic base is used multiple times.
@ -1297,6 +1321,7 @@ The following software has built-in support for MQTT discovery:
- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
- [Arilux AL-LC0X LED controllers](https://github.com/smrtnt/Arilux_AL-LC0X)
- [ble2mqtt](https://github.com/devbis/ble2mqtt)
- [diematic_server](https://github.com/IgnacioHR/diematic_server)
- [digitalstrom-mqtt](https://github.com/gaetancollaud/digitalstrom-mqtt)
- [ebusd](https://github.com/john30/ebusd)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
@ -1308,6 +1333,7 @@ The following software has built-in support for MQTT discovery:
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
- [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon)
- [MyElectricalData](https://github.com/MyElectricalData/myelectricaldata_import#english)
- [MqDockerUp](https://github.com/MichelFR/MqDockerUp)
- [Nuki Hub](https://github.com/technyon/nuki_hub)
- [Nuki Smart Lock 3.0 Pro](https://support.nuki.io/hc/articles/12947926779409-MQTT-support), [more info](https://developer.nuki.io/t/mqtt-api-specification-v1-3/17626)
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)

View File

@ -105,7 +105,7 @@ your cloud project.
2. Click [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent) and configure it.
3. Select **External** (the only choice if you are not a G-Suite user) then click **Create**. While you are here, you may click the *Let us know what you think* to give Google's OAuth team any feedback about your experience configuring credentials for self-hosted software. They make regular improvements to this flow and appear to value feedback.
3. Select **External** then click **Create**. While you are here, you may click the *Let us know what you think* to give Google's OAuth team any feedback about your experience configuring credentials for self-hosted software. They make regular improvements to this flow and appear to value feedback.
![Screenshot of OAuth consent screen creation](/images/integrations/nest/oauth_consent_create.png)
4. The *App Information* screen needs you to enter an **App name** and **User support email**, then enter your email again under **Developer contact email**. These are only shown while you later go through the OAuth flow to authorize Home Assistant to access your account. Click **Save and Continue**. Omit unnecessary information (e.g. logo) to avoid additional review by Google.
@ -125,11 +125,11 @@ your cloud project.
{% enddetails %}
{% details "Configure OAuth Application Credentials[Cloud Console]" %}
{% details "Configure OAuth Application Credentials [Cloud Console]" %}
By the end of this section you will have the OAuth *Client ID* and *Client Secret* needed for Application Credentials setup.
The steps below use *Web Application Auth* with *My Home Assistant* to handle Google's strict URL validation rules like requiring SSL and a publicly resolvable redirect URL. *Desktop Auth* has been [deprecated](https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html) by Google to improve security, and it can no longer be used with Home Assistant.
The steps below use *Web Application Auth* with *My Home Assistant* to handle Google's strict URL validation rules like requiring SSL and a publicly resolvable redirect URL.
1. Navigate to the [Credentials](https://console.cloud.google.com/apis/credentials) page and click **Create Credentials**.
![Screenshot of APIs and Services Cloud Console](/images/integrations/nest/create_credentials.png)
@ -158,16 +158,18 @@ The steps below use *Web Application Auth* with *My Home Assistant* to handle Go
Now that you have authentication configured, you will create a Nest Device Access Project which *requires a US$5 fee*. Once completed, you will have a *Device Access Project ID*.
1. Go to the [Device Access Registration](https://developers.google.com/nest/device-access/registration) page. Click on the button **[Go to the Device Access Console](https://console.nest.google.com/device-access/)**.
1. Go to the [Device Access Registration](https://developers.google.com/nest/device-access/registration) page.
{% note %}
Read the warnings on the page before proceeding, including Google Account type limitations.
{% endnote %}
1. Click on the button **[Go to the Device Access Console](https://console.nest.google.com/device-access/)**.
![Screenshot of Device Access Registration](/images/integrations/nest/device_access.png)
2. Check the box to "Accept the Terms of Service" and click **Continue to Payment** where you need to pay a fee (currently US$5).
![Screenshot of accepting terms](/images/integrations/nest/accept_terms.png)
{% note %}
It is currently not possible to share/be invited to a home with a G-Suite account. Make sure that you pay the fee with an account that has access to your devices.
{% endnote %}
3. Now the [Device Access Console](https://console.nest.google.com/device-access/project-list) should be visible. Click on **Create project**.
4. Give your Device Access project a name and click **Next**.
@ -518,9 +520,7 @@ Once you have completed the above steps, you can continue through the flow to re
- *No access to partner information* "Information could not be retrieved" error message during the setup wizard means that the Google Account used is not able to access the Home. Please ensure that you have successfully migrated your Nest Account to a Google Account using the Google Nest App. Additionally, if your home has multiple members, please note that the individual who initially set up the home must complete the migration of their Nest Account to a Google Account before you can establish a connection with Home Assistant.
- You can manage devices and permissions granted to Home Assistant in the Nest [Partner Connections Manager](https://nestservices.google.com/partnerconnections). Restart Home Assistant to make new devices available. See the [SDM API Troubleshooting](https://developers.google.com/nest/device-access/authorize#modify_account_permissions) documentation for more details.
- *Error 400: invalid_request* plus a message about not complying with *Google's OAuth Policy for keeping accounts secure* is shown when using *App Auth* or *Desktop Auth* or *OOB Auth* which has been [deprecated](https://developers.googleblog.com/2022/02/making-oauth-flows-safer.html) by Google. Follow the steps in the previous section to upgrade Home Assistant and restore access.
- You can add or remove devices and permissions granted to Home Assistant in the Nest [Partner Connections Manager](https://nestservices.google.com/partnerconnections). Reload the Nest integration to make new devices available. See the [SDM API Troubleshooting](https://developers.google.com/nest/device-access/authorize#modify_account_permissions) documentation for more details.
- *Error 400: redirect_uri_mismatch* means that your OAuth Client ID is not configured to match the *My Home Assistant* callback URL. Home Assistant's redirect URL behavior may have changed since you initially set this up!
@ -550,7 +550,9 @@ authentication process.
{% enddetails %}
- *Something went wrong: Please contact the developer of this app if the issue persists*: This typically means you are using the wrong type of credential (e.g. *Desktop Auth*). Make sure the credential in the [Google Cloud Console](https://console.developers.google.com/apis/credentials) is a *Web Application* credential following the instructions above.
- *Something went wrong: Please contact the developer of this app if the issue persists*: This
typically means you are using the wrong type of credential or have credentials
mixed up between accounts. Make sure the credential in the [Google Cloud Console](https://console.developers.google.com/apis/credentials) is a *Web Application* credential following the instructions above. If you have multiple Google accounts logged into the current browser session, Google may default to the first logged in account while switching between pages. To avoid this, log out of other accounts or use a private/incognito browser window with only the desired Google account logged in.
- *Something went wrong, please try again in a few minutes*: According to Google's [Partner Connections Manager Error Reference](https://developers.google.com/nest/device-access/reference/errors/pcm), this error covers all other undocumented internal errors within Partner Connections. One of the issues that cause this error is synchronization problems between the Nest and Google Home apps. Confirm that your Nest device is visible within both apps under the same Home. If it is missing within Google Home, create a new dummy home on the Nest app, which triggers the synchronization process. (This is the workaround recommended by the Google support team). The dummy entry can be deleted once the Nest device is visible within the Google Home app.
@ -599,8 +601,6 @@ The *OAuth Client ID* used must be consistent, so check these:
- *Error: invalid_client no application name* means the [OAuth Consent Screen](https://console.developers.google.com/apis/credentials/consent) has not been fully configured for the project. Enter the required fields (App Name, Support Email, Developer Email) and leave everything else as default.
- *Subscriber error* means that {% term "`configuration.yaml`" %} has an incorrect `subscriber_id` or the subscription is misconfigured. It is recommended to delete this from the configuration, then delete and re-add the integration to let it create a subscription for you.
- *Not receiving updates* typically means a problem with the subscriber configuration. Make sure to check the logs for any error messages. Changes for things like sensors or thermostat temperature set points should be instantly published to a topic and received by the Home Assistant subscriber when everything is configured correctly.
- You can see stats about your subscriber in the [Cloud Console](https://console.cloud.google.com/cloudpubsub/subscription/list) which includes counts of messages published by your devices, and how many have been acknowledged by your Home Assistant subscriber. You can also `View Messages` to see examples of published. Many old unacknowledged messages indicate the subscriber is not receiving the messages and working properly or not connected at all.
@ -625,6 +625,4 @@ logger:
google_nest_sdm.event: debug
```
- It is recommended to let Home Assistant create the Pub/Sub subscription for you. However, if you would like more control you can enter a `subscriber_id` in the configuration. See [Subscribe to Events](https://developers.google.com/nest/device-access/subscribe-to-events) for more instructions on how to manually create a subscription and use the full subscription name in the Home Assistant configuration e.g. `projects/gcp-project-name/subscriptions/subscription-id`
- *Not receiving camera motion and person events*: assuming the integration is correctly configured (for example, the oauth and SDM API are set up correctly, you can see camera streams, and permissions are correctly set in [Partner Connections Manager](https://nestservices.google.com/partnerconnections)): If you are then still not seeing events, it's possible you need to adjust the Google Home App settings. Refer to the [Google Home App Notification Settings](#google-home-app-notification-settings) for details.

View File

@ -80,3 +80,5 @@ data:
{% endconfiguration %}
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
{% include integrations/using_templates.md %}

View File

@ -133,3 +133,9 @@ UPDATE states SET entity_id='sensor.<sensor_name>_humidity' WHERE entity_id LIKE
```
Remember to replace `<sensor_name>` with the actual name of the sensor, as seen in the `SELECT` query.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -7,7 +7,7 @@ ha_codeowners:
- '@arturpragacz'
ha_config_flow: true
ha_domain: onkyo
ha_integration_type: integration
ha_integration_type: device
ha_iot_class: Local Push
ha_platforms:
- media_player
@ -17,14 +17,11 @@ related:
title: Configuration file
---
The `onkyo` {% term integration %} allows you to control a [Onkyo](https://www.onkyo.com), [Integra](http://www.integrahometheater.com)
and some recent [Pioneer](https://www.pioneerelectronics.com) receivers from Home Assistant.
Please be aware that you need to enable "Network Standby" for this integration to work in your Hardware.
The `onkyo` {% term integration %} allows you to control [Onkyo](https://www.onkyo.com) and [Integra](http://www.integrahometheater.com) (from 2011 onward) and also [Pioneer](https://www.pioneerelectronics.com) (from 2016 onward) receivers using Home Assistant.
Please be aware that you need to enable "Network Standby" for this integration to work with your hardware.
{% include integrations/config_flow.md %}
If your receiver has second or third zone available, they are displayed as additional media players with the same functionality as the main zone.
{% configuration_basic %}
Host:
description: Hostname or IP address of the device, for example:`192.168.1.2`.
@ -37,6 +34,8 @@ Input sources:
type: list
{% endconfiguration_basic %}
The above settings can also be adjusted later. To do this, click the three-dot menu on the integration entry and select **Reconfigure**.
{% include integrations/option_flow.md %}
{% configuration_basic %}
@ -49,6 +48,10 @@ Input sources:
type: list
{% endconfiguration_basic %}
### Zones
If your receiver has a second or third zone available, they are displayed as additional media players with functionality similar to the main zone.
### Action `onkyo_select_hdmi_output`
Changes HDMI output of your receiver

View File

@ -56,6 +56,7 @@ The Overkiz (by Somfy) integration platform is used by many different vendors, l
- Atlantic Cozytouch
- Hitachi Hi Kumo
- Nexity Eugénie
- Rexel Energeasy
- Somfy Connectivity Kit
- Somfy Connexoon IO _(local API available)_
- Somfy Connexoon RTS _(local API available)_

View File

@ -18,11 +18,35 @@ ha_integration_type: service
This integration uses the data from the German Federal Waterways and Shipping Administration (_Wasserstraßen- und Schifffahrtsverwaltung des Bundes_) [PEGELONLINE](https://www.pegelonline.wsv.de/) to provide different [sensors](#sensors), based on the available data of the selected measurement station.
## Data fetching and limitations
The data are polled every 5 minutes. You can add as many measurement stations as want, there is no authentication needed nor any official usage limitation, but keep the "fair use" in mind.
{% include integrations/config_flow.md %}
### Step 1 - Location selection
Select the area, where you want to search for available water measuring stations
{% configuration_basic %}
Latitude:
description: "The latitude of the center of the search area (_automatically filled by the location picker_)."
Longitude:
description: "The longitude of the center of the search area (_automatically filled by the location picker_)."
Radius:
description: "Search radius (_in km_)"
{% endconfiguration_basic %}
### Step 2 - Station selection
{% configuration_basic %}
Station:
description: "Select the measurement station you want to add."
{% endconfiguration_basic %}
## Sensors
Currently, the integration supports the following sensors:
The following {% term sensors %} are created, based on the capabilities of the selected measurement station:
| Sensor name | Common unit of measurement |
| --- | --- |
@ -34,3 +58,31 @@ Currently, the integration supports the following sensors:
| Water level | cm |
| Water temperature | °C |
| Water volume flow | m³/s |
## Usage example
### Flood alert level notification
Create an automation to get notified, when your local river reaches a specific flood alert level.
```yaml
mode: single
triggers:
- trigger: numeric_state
entity_id:
- sensor.dresden_elbe_water_level
above: 500
actions:
- action: notify.persistent_notification
metadata: {}
data:
message: Flood alert level 2 reached!
```
## Troubleshooting
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue reoccurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
## Remove the integration
{% include integrations/remove_device_service.md %}

View File

@ -23,7 +23,7 @@ ha_platforms:
ha_integration_type: integration
---
This `rainbird` integration allows interacting with [LNK WiFi](https://www.rainbird.com/products/lnk-wifi-module) module of the Rain Bird Irrigation system in Home Assistant.
This Rain Bird integration allows interacting with [LNK WiFi](https://www.rainbird.com/products/lnk-wifi-module) module of the Rain Bird Irrigation system in Home Assistant.
There is currently support for the following device types within Home Assistant:
@ -32,30 +32,77 @@ There is currently support for the following device types within Home Assistant:
- [Number](#number)
- [Switch](#switch)
Home Assistant allows you to control the irrigation values, log details about
the device including optional rain sensor, and allow you to view any upcoming
irrigations schedules on a calendar.
## Prerequisites
1. Follow the Rain Bird instructions for set up of your sprinkler system
1. Follow the setup guide for installing your LNK WiFi Module
1. Complete the necessary steps in the Rain Bird App
1. Home Assistant should auto discover the device on your network based on the mac address. Otherwise you will need to know the devices IP address on your network to let Home Assistant know how to connect to it.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The IP address of your Rain Bird device. You can find the IP address under the
device in the Rain Bird app under **Controller Settings** -> **Network Info**."
Password:
description: "The password used to authenticate the Rain Bird device."
{% endconfiguration_basic %}
## Configuration options
The integration has a configuration option to change the default amount of time that the irrigation
will run when turning on a zone switch (default is 6 minutes). This can be overridden with an action (see below).
The integration provides the following configuration options:
## Binary sensor
{% configuration_basic %}
Default irrigation time:
description: The number of minutes that the irrigation will run when turning on a zone switch. The default is 6 minutes. This can be overridden with an action (see below).
{% endconfiguration_basic %}
The `rainsensor` sensor will tell if you if the device has detected rain.
## Data updates
## Calendar
The Rain Bird integration fetches available irrigation zones once, then polls
every minute to check the current state of each valve. The irrigation schedule
calendar is only fetched every 15 minutes.
Some Rain Bird devices support automatic irrigation schedules configured with the Rain Bird app.
and are available in Home Assistant as a [Calendar](https://www.home-assistant.io/integrations/calendar/) entity. You can view the program schedule in the UI, or trigger other automations
based on the irrigation start or end time.
## Supported functionality
## Number
### Entities
The Rain Delay Number Entity lets you set and view the number of days, if any, the automatic irrigation schedule has been delayed.
The Rain Bird integration provides the following entities.
## Switch
#### Binary sensor
Switches are automatically added for all available zones of configured controllers.
- **Rain sensor**
- **Description**: The rain sensor will tell if you if the device has detected rain.
- **Available for devices**: The rain sensor is an optional add-on for the device purchased from Rain Bird.
#### Calendar
- **Controller irrigation schedule**
- **Description**: The irrigation schedule [Calendar](https://www.home-assistant.io/integrations/calendar/)
entity is created for each schedule configured in the Rain Bird app. You can view the program schedule
in the Home Assistant calendar UI, or trigger other automations based on the irrigation start or end time.
- **Available for devices**: Only available for Rain Bird devices irrigation schedules.
#### Number
- **Rain Delay**
- **Description**: Lets you set and view the number of days, if any, the automatic irrigation schedule has
been delayed due to rain. You may use the number entity with an automation such as increasing the number
of days to delay irrigation when combined with another weather forecast integration in Home Assistant.
- **Available for devices**: Only available for Rain Bird devices irrigation schedules.
#### Switch
- **Irrigation Zone**
- **Description**: Switches are automatically added for all available zones of
configured controllers. Turning on the switch will open the irrigation valve for that zone.
- **Available for devices**: All
## Actions
@ -85,3 +132,19 @@ automation:
entity_id: switch.rain_bird_sprinkler_1
duration: 5
```
This lets you other triggers in Home Assistant to set a more complex schedule
than what is possible using the built in schedule in the Rain Bird app.
## Known Limitations
The Rain Bird LNK WiFi can only receive one incoming request at a time. It may
not be possible for Home Assistant to send commands to the device while you
are also using the Rain Bird App. Home Assistant tries to carefully limit
connections to the device to avoid failures.
## Remove integration
This integration can be removed by following these steps:
{% include integrations/remove_device_service.md %}

View File

@ -36,6 +36,17 @@ This integration provides the following platforms:
{% include integrations/config_flow.md %}
{% configuration_basic %}
Locale:
description: "The country code (e.g., 'fr_FR', 'en_GB') used to connect to the Renault servers. This should match your MyRenault account's locale setting."
Username:
description: "The username used to connect to the Renault servers."
Password:
description: "The password used to connect to the Renault servers."
Kamereon account id:
description: "The Kamereon account ID that your vehicles are assigned to. If there is only one account available it will be automatically selected."
{% endconfiguration_basic %}
All vehicles linked to the account should then get added as devices, with sensors added as linked entity.
In some situations, some of the features may require a subscription such as the *Pack EV Remote Control* and/or the *Pack Smart Navigation* subscription.
@ -121,3 +132,9 @@ Notes:
startTime: 'T12:00Z'
duration: 15
```
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -2,7 +2,9 @@
title: Reolink IP NVR/camera
description: Instructions on how to integrate Reolink devices (NVR/cameras) into Home Assistant.
ha_category:
- Doorbell
- Camera
- Media source
- Update
ha_iot_class: Local Push
ha_release: 2023.1
@ -31,13 +33,31 @@ related:
title: Reolink product page
---
The integration allows you to control [Reolink](https://reolink.com/) NVRs or cameras.
The integration allows you to control [Reolink](https://reolink.com/) NVRs or cameras. Reolink cameras are known for their local storage, without the need for a cloud subscription or account. Reolink cameras can operate fully locally on your network, putting privacy first. When blocking internet access for the Reolink devices, the Home Assistant integration, as well as the Reolink app/client, will continue to work as usual. Reolink cameras provide excellent day- and nighttime video clarity at an affordable price. An SD card in the camera offers local recording, while an optional Reolink NVR/Hub can offer a large recording capacity indoors. As evident by the list of entities in this documentation, Reolink cameras are highly configurable and tightly integrated into Home Assistant.
{% include integrations/config_flow.md %}
## Prerequisites
A brand new Reolink camera needs to be connected to the network and initialized. During initialization, the camera's credentials need to be set. Refer to the [Initial setup](#initial-setup) section for detailed instructions.
- On the Reolink device, a user account with admin privileges is needed for the proper operation of this integration.
- The password used for the Reolink device can only contain characters `a-z, A-Z, 0-9 or @$*~_-+=!?.,:;'()[]`. Other special characters will cause encoding issues in the video streams used by this integration and are, therefore, not allowed. When using an incompatible special character in the password, the integration will prompt you to change the password.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The hostname or IP address of your Reolink device. For example: '192.168.1.25'. You can find it in your router or in the Reolink app under **Settings** -> **Device** (top icon) -> **Networkinformation** -> **IP-address**. Normally, the Reolink device is automatically discovered, and you do not need to provide this."
required: false
type: string
Username:
description: "Username to log in to the Reolink device itself. Not the Reolink cloud account."
required: true
type: string
Password:
description: "Password to log in to the Reolink device itself. Not the Reolink cloud account."
required: true
type: string
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
Protocol:
@ -54,7 +74,9 @@ If an entity listed below has a plus (+) next to its name, it means this entity
For redundancy, the state of all entities is also polled every 60 seconds. For entities without a plus (+), this is the only update method. Therefore, a device's state change can take up to 60 seconds to be reflected in Home Assistant.
An exception is the firmware update entity, which is polled every 12 hours.
## Camera streams
## Supported functionality
### Camera streams
This integration creates a few camera entities, one for each stream type with different resolutions:
@ -68,7 +90,7 @@ The Fluent stream camera entity is enabled by default; the other streams are dis
The Snapshots stream provides a sequence of image snapshots giving very low latency at the cost of a very low frame rate; this can be used when the RTMP/RTSP/FLV video stream has too much lag.
Dual lens cameras provide additional streams for the second lens.
## Binary sensors
### Binary sensors
Depending on the supported features of the camera, binary sensors are added for:
@ -87,7 +109,7 @@ The latency for receiving the events is the best for TCP push and the worst for
For redundancy, these sensors are polled every 60 seconds together with the update of all other entities.
To ensure you have the best latency possible, refer to the [Reducing latency of motion events](#reducing-latency-of-motion-events) section.
## Number entities
### Number entities
Depending on the supported features of the camera, number entities are added for:
@ -135,7 +157,7 @@ If the **Auto tracking** switch entity is enabled, and a object disappears from
**Day night switch threshold** determines at which light level the camera switches from **Color** to **Black & white**. This value only applies if the **Day night mode** select is on **Auto**.
## Button entities
### Button entities
Depending on the supported features of the camera, button entities are added for:
@ -155,7 +177,7 @@ Depending on the supported features of the camera, button entities are added for
**Guard set current position** will set the current position as the new guard position.
### Action reolink.ptz_move
#### Action reolink.ptz_move
Some Reolink <abbr title="pan, tilt, and zoom">PTZ</abbr> cameras can move at different speeds. For those cameras, the `reolink.ptz_move` action can be used in combination with the **PTZ left**, **right**, **up**, **down**, **zoom in**, or **zoom out** entity which allows specifying the speed attribute. If the <abbr title="pan, tilt, and zoom">PTZ</abbr> button entities for a specific camera are not shown under **Choose entity** under **targets** of the `reolink.ptz_move` action, it means that this camera does not support custom <abbr title="pan, tilt, and zoom">PTZ</abbr> speeds.
@ -164,7 +186,7 @@ Some Reolink <abbr title="pan, tilt, and zoom">PTZ</abbr> cameras can move at di
| `entity_id` | no | Name of the Reolink <abbr title="pan, tilt, and zoom">PTZ</abbr> button entity to control. For example, `button.trackmix_ptz_left`. |
| `speed` | no | <abbr title="pan, tilt, and zoom">PTZ</abbr> move speed. For example `10`. |
## Select entities
### Select entities
Depending on the supported features of the camera, select entities are added for:
@ -191,7 +213,7 @@ Depending on the supported features of the camera, select entities are added for
**Play quick reply messages**/**Auto quick reply messages** can be recorded in the Reolink phone app where a name is also supplied. New or updated quick reply messages will be loaded into Home Assistant at the start of the integration. When adding new quick reply messages, please restart the Reolink integration.
### Action reolink.play_chime
#### Action reolink.play_chime
To play a ringtone on a Reolink chime, the `reolink.play_chime` action can be used.
@ -200,14 +222,14 @@ To play a ringtone on a Reolink chime, the `reolink.play_chime` action can be us
| `device_id` | no | List of device ids of the Reolink Chimes to control. For example, `- 12a34b56c7d8ef9ghijklm0n1op2345q`. |
| `ringtone` | no | The ringtone to play. For example `operetta`. |
## Siren entities
### Siren entities
If the camera supports a siren, a siren entity will be created.
When using the siren turn-on action, the siren will continue to sound until the siren turn-off action is called.
In some camera models, there is a delay of up to 5 seconds between the turn-off command and the sound stopping. The siren turn-on action supports setting a volume and a duration (no turn-off action call is needed in that case).
## Switch entities
### Switch entities
Depending on the supported features of the camera, switch entities are added for:
@ -242,7 +264,7 @@ The Push-notification in the Reolink app is independent of the Home Assistant se
The **PTZ patrol** positions first need to be configured using the Reolink [app](https://support.reolink.com/hc/en-us/articles/360008746833/)/[windows](https://support.reolink.com/hc/en-us/articles/900003738126/)/web client. When no positions are configured, the PTZ patrol entity will not be added. When adding patrol positions for the first time, you need to restart the Reolink integration.
## Light entities
### Light entities
Depending on the supported features of the camera, light entities are added for:
@ -251,7 +273,7 @@ Depending on the supported features of the camera, light entities are added for:
When the **floodlight** entity is ON always ON, when OFF controlled based on the internal camera floodlight mode (Off, Auto, Schedule), see the **Floodlight mode** select entity.
## Sensor entities
### Sensor entities
Depending on the supported features of the camera, the following sensor entities are added:
@ -264,13 +286,13 @@ Depending on the supported features of the camera, the following sensor entities
- Battery temperature*+
- Battery state*+ (discharging, charging, charge complete)
## Update entity
### Update entity
An update entity is available that checks for firmware updates every 12 hours.
Updates are checked both through the camera API and directly from the [Reolink download center](https://reolink.com/download-center/).
Therefore the update entity in Home Assistant can find and install a firmware update from the [Reolink download center](https://reolink.com/download-center/) while the Reolink app/windows/web client does not always find this update.
## Media browser for playback of recordings
### Media browser for playback of recordings
Depending on the support of the camera, the Reolink integration will provide a media browser through which recorded videos of the camera can be accessed.
In the sidebar, select "Media" > "Reolink" and select the **camera** of which you want to see recordings. Optionally, select if you want a high or low **resolution** stream and select the recording **date**. Here, all available video files of that day will be shown.
@ -278,6 +300,8 @@ Recordings up to 1 month old can be viewed in Home Assistant.
## Tested models
### Tested directly connected models
The following models have been tested and confirmed to work with a direct link to Home Assistant:
- C1 Pro*
@ -323,6 +347,7 @@ The following models have been tested and confirmed to work with a direct link t
- [Reolink Duo 3 PoE](https://reolink.com/product/reolink-duo-3-poe/)
- Reolink Duo Floodlight ([PoE](https://reolink.com/product/reolink-duo-floodlight-poe/) and [Wi-Fi](https://reolink.com/product/reolink-duo-floodlight-wifi/))
- [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/)
- [Reolink Home Hub Pro](https://reolink.com/product/reolink-home-hub-pro/)
- Reolink TrackMix ([PoE](https://reolink.com/product/reolink-trackmix-poe/) and [Wi-Fi](https://reolink.com/product/reolink-trackmix-wifi/))
- Reolink Video Doorbell ([PoE Black](https://reolink.com/product/reolink-video-doorbell/), [Wi-Fi Black](https://reolink.com/product/reolink-video-doorbell-wifi/), [PoE White](https://reolink.com/product/reolink-video-doorbell/) and [Wi-Fi White](https://reolink.com/product/reolink-video-doorbell-wifi/))
@ -330,9 +355,16 @@ The following models have been tested and confirmed to work with a direct link t
### Tested battery-powered models
Battery-powered Reolink cameras can be used with Home Assistant with the help of a [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/). The Home Hub will act as a bridge between the battery-powered cameras and Home Assistant, conserving the battery life. All features of the battery-powered cameras will be available just like regular-powered cameras. Viewing the camera stream in Home Assistant will keep the battery camera awake during viewing, consuming battery life. Therefore, ensure you do not use the camera stream on a dashboard that is constantly being viewed, like a wall panel dashboard. You can check proper operation by ensuring that the "Sleep status" entity will go to "Sleeping" if the battery camera is not being actively used.
Battery-powered Reolink cameras can be used with Home Assistant with the help of a [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/) or NVR. The Home Hub/NVR will act as a bridge between the battery-powered cameras and Home Assistant, conserving the battery life. All features of the battery-powered cameras will be available just like regular-powered cameras. Viewing the camera stream in Home Assistant will keep the battery camera awake during viewing, consuming battery life. Therefore, ensure you do not use the camera stream on a dashboard that is constantly being viewed, like a wall panel dashboard. You can check proper operation by ensuring that the "Sleep status" entity will go to "Sleeping" if the battery camera is not being actively used.
The following battery-powered models have been tested and confirmed to work through the Reolink Home Hub:
The following hubs/NVRs have been tested and confirmed to work with battery-powered models in Home Assistant:
- [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/)
- [Reolink Home Hub Pro](https://reolink.com/product/reolink-home-hub-pro/)
- [RLN8-410 NVR](https://reolink.com/product/rln8-410/) (only the latest hardware version N7MB01, older versions might receive the required firmware update later)
- [RLN16-410 NVR](https://reolink.com/product/rln16-410/) (only the latest hardware version N6MB01, older versions might receive the required firmware update later)
The following battery-powered models have been tested and confirmed to work through the Reolink Home Hub/NVR:
- [Argus 3 Pro](https://reolink.com/product/argus-3-pro/)
- [Argus 4 Pro](https://reolink.com/product/argus-4-pro/)
@ -351,6 +383,18 @@ However, these cameras can work with this integration through an NVR or Home Hub
- E1
- Reolink Lumus
### Incompatible models
Reolink LTE cameras do not work with this integration.
- Reolink Go Plus
- Reolink Go PT Plus
- Reolink Go PT Ultra
- Reolink Go Ranger PT
- Reolink Go Ultra
- Reolink TrackMix LTE
- Reolink TrackMix LTE Plus
## Initial setup
### 1. Initializing and configuring camera credentials.
@ -391,21 +435,87 @@ Then power up the camera while pointing it at the QR code. It takes about a minu
Set up the Reolink integration in Home Assistant using the credentials you set in step 1.
## Showing the camera in the dashboard
## Remove integration
1. One way to show the camera in the dashboard is by using the picture glance card.
2. For example, you can place arrow buttons on the card to [control the camera](/dashboards/picture-glance/#creating-a-card-to-control-the-camera).
### Removing a directly connected camera/NVR/Home Hub
Removing a directly connected camera/NVR/Home Hub can be done by removing the integration following these steps:
{% include integrations/remove_device_service.md %}
This will also remove all cameras/chimes connected to the NVR/Home Hub from Home Assistant.
### Removing a camera from a NVR/Home Hub
Removing a camera from a NVR/Home Hub can be done by deleting the device following these steps:
1. First physically disconnect the ethernet cable of the camera from the NVR if the camera is directly connected to the NVR (PoE).
2. Then remove the camera from the NVR/Home Hub following the [NVR instructions](https://support.reolink.com/hc/en-us/articles/900003769346-How-to-delete-offline-camera-information-on-Channel-Management-Page-via-Reolink-NVR-New-UI-/) or [Home Hub instructions](https://support.reolink.com/hc/en-us/articles/33883674141977-How-to-Change-Camera-Order-Remove-Device-from-Reolink-Home-Hub/).
3. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
4. From the list of integration entries, select the **x devices** underneath the integration instance of the NVR/Home Hub from which you want to remove a camera.
5. Select the camera you want to remove from the list of devices
6. Underneath the **Device info**, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
### Removing a chime
Removing a chime from a doorbell can be done by deleting the chime following these steps:
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
2. From the list of integration entries, select the **x devices** underneath the integration instance of the Doorbell/NVR/Home Hub from which you want to remove a chime.
3. Select the chime you want to remove from the list of devices
4. Underneath the **Device info**, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
This will also decouple the chime from the doorbell in the Reolink app/client. Therefore, the chime will no longer ring when the doorbell is pressed.
## Examples
### Showing the camera in the dashboard
One way to show the camera in the dashboard is by using the picture glance card.
For example, you can place arrow buttons on the card to [control the camera](/dashboards/picture-glance/#creating-a-card-to-control-the-camera).
### Sending rich notifications
You can receive rich notifications on your phone when someone rings a Reolink doorbell or a Reolink camera detects an event like motion or a person.
### Automation ideas
- Turn on (outdoor) lights near the camera to improve image clarity at night once the camera detects a person, vehicle, or animal.
- Turn off notifications and recording when you get home (based on, e.g., geofencing) and turn it back on when you leave home.
When someone presses the doorbell, Play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- Pause a TV and show a notification badge on the TV when the doorbell is pressed (only when the TV is already on).
- Play the quick replay messages of a Reolink doorbell only when not home (geofencing)
- Wake up and start recording on other battery cameras nearby if one camera/motion sensor detects an event.
- Turn on the spotlights or sirens of other cameras nearby when one camera detects a person, vehicle, or animal.
- If a camera detects a person/vehicle/animal, then point other PTZ cameras in that direction using PTZ presets.
- Switch day night mode (Color/IR Black&White) based on sunset/sunrise times or the status of (outdoor) lights instead of relying on the internal light sensor.
- Change the camera volume based on the time and/or when you are home or not (geofencing)
- Increase the framerate and maximum bitrate of a camera when a person/vehicle/animal is detected and lower them again after 1 minute of no detection. This saves storage space, so you can record longer when recording 24/7 without compromising image clarity during events.
- Turn on indoor lights close to windows in a sequence with some time delays if a camera detects a person to make it look like someone is home.
- Show a camera stream on a full screen on a wall panel, tablet, or Google Home display when someone rings the doorbell.
- Switch HDR mode of the camera based on sunset/sunrise
- Make an input boolean helper to easily disable notifications on all cameras and automatically enable notifications again after 1 hour.
## Known limitations
- 2-way audio or Text-to-speech is not available in the Reolink Home Assistant integration.
- The 4K camera streams are H265 encoded, support for playing H265 encoding in browsers (Chrome/Firefox/Edge/Safari etc.) is still very limited, therefore the 4K clear stream may not play in all browsers or on all phones in the Home Assistant Companion app. By default only the lower resolution Fluent camera entity is enabled in Home Assistant. This Fluent stream is H264 encoded and will play on any browser or phone.
## Troubleshooting
### Cant setup the integration
- Older firmware versions do not expose the necessary information the integration needs to function. Ensure the camera is updated to the [latest firmware](https://reolink.com/download-center/) prior to setting up the integration. Note that Reolink auto update and check for update functions in the app/windows/web client often do not show the latest available firmware version. Therefore check the version in the [Reolink download center](https://reolink.com/download-center/) online.
- Test if you can access the camera by its IP address in your browser `https://<your-camera-ip>`. If you cannot, in the [Reolink mobile app, Windows, or Mac client](https://reolink.com/software-and-manual/) ensure at least one of the HTTP/HTTPS ports are enabled under **Settings** > **top camera model box** > **Network Information** > **Advanced** (mobile) or **Settings** > **Network** > **Advanced** > **Port Settings** (PC). See [additional instructions](https://support.reolink.com/hc/en-us/articles/900000621783-How-to-Set-up-Reolink-Ports-Settings/) on the Reolink site.
- On some camera models, the RTMP port needs to be enabled in order for the HTTP(S) port to function properly. Make sure this port is also enabled if you get a `Cannot connect to host` error while one of the HTTP/HTTPS ports is already enabled.
- If the integration and the browser can't connect to the camera even after you enable the HTTP/HTTPS ports, try to create a new user on the camera; that fixes the problem in some cases.
### Entities intermittently become unavailable
- Setting a static IP address for Reolink cameras/NVRs in your router is advisable to prevent (temporal) connectivity issues when the IP address changes.
- Do not set a static IP in the Reolink device itself, but leave the **Connection Type** on **DHCP** under **Settings** > **Network** > **Network Information** > **Set Up**. If you set it to **static** on the Reolink device itself, this is known to cause incorrect DHCP requests on the network. The incorrect DHCP request causes Home Assistant to use the wrong IP address for the camera, resulting in connection issues. The issue originates from the Reolink firmware, which keeps sending DCHP requests even when you set a static IP address in the Reolink device.
- Reolink cameras can support a limited amount of simultaneous connections. Therefore using third-party software like Frigate, Blue Iris, or Scrypted, or using the ONVIF integration at the same time can cause the camera to drop connections. This results in short unavailabilities of the Reolink entities in Home Assistant. Especially when the connections are coming from the same device (IP) where Home Assistant is running, the Reolink cameras can get confused, dropping one connection in favor of the other originating from the same host IP. If you experience disconnections/unavailabilities of the entities, please first temporarily shut down the other connections (like Frigate) to diagnose if that is the problem. If that is indeed the problem, you could try moving the third-party software to a different host (IP address) since that is known to solve the problem most of the time. You could also try switching the protocol to FLV on Home Assistant and/or the third-party software, as that is known to be less resource-intensive on the camera.
- If the Reolink entities go to unavailable for short periods, the camera may be overloaded with requests resulting in short connection drops. To resolve this, first, check if the integration is using `ONVIF push` instead of `ONVIF long polling` (resource intensive) or `Fast polling` (very resource intensive), see the [Reducing latency of motion events](#reducing-latency-of-motion-events) section. Moreover, try switching to the <abbr title="flash video">FLV</abbr> streaming protocol which is the least resource-intensive for the camera, see the [options](#options) section.
- If the integration and the browser can't connect to the camera even after you enable the HTTP/HTTPS ports, try to create a new user on the camera; that fixes the problem in some cases.
### Reducing latency of motion events

View File

@ -189,3 +189,6 @@ binary_sensor:
{% important %}
Use either `resource` or `resource_template`.
{% endimportant %}
{% include integrations/using_templates.md %}

View File

@ -3,6 +3,11 @@ title: RFLink
description: Instructions on how to integrate RFLink gateway into Home Assistant.
ha_category:
- Hub
- Cover
- Binary sensor
- Light
- Sensor
- Switch
ha_iot_class: Assumed State
ha_release: 0.38
ha_domain: rflink
@ -22,6 +27,12 @@ related:
The `rflink` {% term integration %} supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example, the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink Gateway is an Arduino Mega firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
This {% term integration %} is tested with the following hardware/software:
- Nodo RFLink Gateway V1.4/RFLink R46
### Device support
The 433 MHz spectrum is used by many manufacturers. Mostly using their own protocol/standard, they use this spectrum to communicate with devices such as light switches, blinds, weather stations, alarms, and various other sensors.
The RFLink Gateway supports a number of RF frequencies, using a wide range of low-cost hardware. [Their website](https://www.rflink.nl) provides details for various RF transmitters, receivers, and transceiver modules for 433MHz, 868MHz, and 2.4 GHz.
@ -32,9 +43,7 @@ Versions later than R44 add support for IKEA Ansluta, Philips Living Colors Gen1
A complete list of devices supported by RFLink can be found [here](https://www.rflink.nl/devlist.php).
This {% term integration %} is tested with the following hardware/software:
- Nodo RFLink Gateway V1.4/RFLink R46
Even though many devices are supported by RFLink, not all have been tested/implemented. If you have a device supported by RFLink but not by this integration, please consider testing and adding support yourself.
## Configuration
@ -137,7 +146,7 @@ sensor:
automatic_add: true
```
[RFLink Switches](/integrations/switch.rflink/) and [RFLink Binary Sensors](/integrations/binary_sensor.rflink/) cannot be added automatically.
[RFLink Switches](#switch) and [RFLink Binary Sensors](#binary-sensor) cannot be added automatically.
The RFLink integration does not know the difference between a binary sensor, a switch and a light. Therefore, all switchable devices are automatically added as light by default. However, once the ID of a switch is known, it can be used to configure it as a switch or a binary sensor type in Home Assistant, for example, to add it to a different group or configure a nice name.
@ -179,10 +188,6 @@ cover:
This configuration uses `0a0a0a` to control the inverted shutter (send UP to close and Down to open) and listen commands sent by `0f1f2f` remote control.
### Device support
Even though a lot of devices are supported by RFLink, not all have been tested/implemented. If you have a device supported by RFLink but not by this integration please consider testing and adding support yourself.
### Device Incorrectly Identified
If you find a device is recognized differently, with different protocols or the ON OFF is swapped or detected as two ON commands, it can be overcome with the RFLink 'RF Signal Learning' mechanism from RFLink Rev 46 (11 March 2017). [Link to further detail.](https://www.rflink.nl/faq.php#RFFind)
@ -259,7 +264,7 @@ devices:
required: false
type: list
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend.
required: false
type: string
off_delay:
@ -277,9 +282,9 @@ devices:
Initially, the state of a binary sensor is unknown. When a sensor update is received, the state is known and will be shown in the frontend.
### Device support
### Device support for binary sensors
See [device support](/integrations/rflink/#device-support)
See [device support](#device-support)
### Additional configuration examples
@ -490,9 +495,9 @@ cover:
name: "Room blinds"
```
### Device support
### Device support for covers
See [device support](/integrations/rflink/#device-support).
See [device support](#device-support).
## Additional configuration examples
@ -523,7 +528,7 @@ cover:
fire_event: true
```
## Lights
## Light
After configuring the RFLink hub, lights will be automatically discovered and added.
@ -581,7 +586,7 @@ devices:
default: RFLink ID
type: string
type:
description: "Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See [Light Types](/integrations/light.rflink/#light-types) below."
description: "Override automatically detected type of the light device, can be: switchable, dimmable, hybrid or toggle. See [Light Types](#light-types) below."
required: false
default: switchable
type: string
@ -650,11 +655,11 @@ Lights are added automatically when the RFLink gateway intercepts a wireless com
- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
- Hide unwanted devices using [customizations](/getting-started/customizing-devices/)
- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
- [Ignore devices on a platform level](#ignoring-devices)
### Device support
### Device support for lights
See [device support](/integrations/rflink/#device-support)
See [device support](#device-support)
### Additional configuration examples
@ -683,7 +688,7 @@ light:
name: Bedroom Lamp
```
## Sensors
## Sensor
After configuring the RFLink hub, sensors will be automatically discovered and added.
@ -723,7 +728,7 @@ devices:
default: RFLink ID
type: string
sensor_type:
description: Override automatically detected type of sensor. For list of [values](/integrations/sensor.rflink/#sensors-types) see below.
description: Override automatically detected type of sensor. For list of [values](#sensor-types) see below.
required: true
type: string
unit_of_measurement:
@ -779,11 +784,11 @@ Sensor type values:
Sensors are added automatically when the RFLink gateway intercepts a wireless command in the ether. To prevent cluttering the frontend use any of these methods:
- Disable automatically adding of unconfigured new sensors (set `automatic_add` to `false`).
- [Ignore devices on a platform level](/integrations/rflink/#ignoring-devices)
- [Ignore devices on a platform level](#ignoring-devices)
### Device support
### Device support for sensors
See [device support](/integrations/rflink/#device-support)
See [device support](#device-support)
### Additional configuration examples
@ -924,9 +929,9 @@ switch:
Any on/off command from any alias ID updates the current state of the switch. However, when sending a command through the frontend only the primary ID is used.
### Device support
### Device support for switches
See [device support](/integrations/rflink/#device-support)
See [device support](#device-support)
#### Additional configuration examples

View File

@ -147,13 +147,39 @@ The event entity captures events like doorbell rings, motion alerts, and interco
### Realtime event stability
If you are experiencing issues with receiving ring alerts, the reason could be that you have too many authenticated devices on your ring account.
Prior to version 2023.12.0, the Home Assistant ring integration would register a new entry in `Authorized Client Devices` in the `Control Centre` at [ring.com](https://account.ring.com/account/control-center/authorized-devices) every time it restarted.
If you have been using the ring integration before this, you may have many `Authorized Client Devices` in the `Control Centre` on [ring.com](https://account.ring.com/account/control-center/authorized-devices).
This can cause issues receiving ring alerts.
You should delete all authorised devices from [ring.com](https://account.ring.com/account/control-center/authorized-devices) `Control Centre` which are from Home Assistant
(i.e. do not delete those named `iPhone` or `Android`; Home Assistant authorized devices are named `ring-doorbell:HomeAssistant/something` or `Python`).
If you have too many `Authorised Client Devices` to delete them individually, it might be easier to `Remove all devices` and then re-authorize your required devices.
Home Assistant requires outbound TCP access to port 5228 to connect to Ring's real-time event service.
Ensure your firewall and network configuration allow this connection.
Below are steps to follow if realtime events are not working.
#### Step 1
Issues with Ring alerts may be caused by having too many authenticated devices on your Ring account. Before version 2023.12.0, the Home Assistant Ring integration would register a new entry in `Authorized Client Devices` in the `Control Center` at [ring.com](https://account.ring.com/account/control-center/authorized-devices) on every restart.
{% warning %}
When cleaning up devices:
1. Only delete entries that start with `ring-doorbell:HomeAssistant` or `Python`
2. Do NOT delete entries for your phones or other Ring apps
3. If there are too many devices to delete individually, you can use the `Remove all devices` option, but you'll need to re-authorize all your devices afterward
{% endwarning %}
#### Step 2
If you're still experiencing issues after Step 1, try generating a new unique ID for the Home Assistant Ring integration instance.
To do this, click the three-dot menu on the integration entry and select the `Reconfigure` option.
Do not try this step before clearing down all the excess `Authorized Client Devices` as per Step 1, or it will simply invalidate the reconfigured entry.
#### Step 3
If alerts are still not working after Steps 1 and 2, try toggling the Motion Warning setting:
1. Go to [ring.com](https://ring.com) and sign in
2. Select your device
3. Navigate to Device Settings
4. Find the Motion Warning toggle
5. Turn it off, wait 30 seconds
6. Turn it back on
This has successfully restored alerts for many users.
## Sensor

View File

@ -18,7 +18,7 @@ related:
title: Configuration file
---
The `scrape` sensor {% term integration %} is scraping information from websites. The sensor loads an HTML page and gives you the option to search and split out a value. As this is not a full-blown web scraper like [scrapy](https://scrapy.org/), it will most likely only work with simple web pages and it can be time-consuming to get the right section.
The `scrape` sensor {% term integration %} scrapes information from websites. The sensor loads an HTML page, and allows you to search and extract specific values. As this is not a fully featured web scraper like [scrapy](https://scrapy.org/), it will work with simple web pages and it can be time-consuming to get the right section.
If you are not using Home Assistant Container or Home Assistant Operating System, this integration requires `libxml2` to be installed. On Debian based installs, run:
@ -160,6 +160,8 @@ sensor:
default: None
{% endconfiguration %}
{% include integrations/using_templates.md %}
## Examples
In this section you find some real-life examples of how to use this sensor. There is also a [Jupyter notebook](https://nbviewer.jupyter.org/github/home-assistant/home-assistant-notebooks/blob/master/other/web-scraping.ipynb) available for this example to give you a bit more insight.

View File

@ -61,9 +61,9 @@ The following device classes are supported for sensors:
- **data_size**: Data size in bit, kbit, Mbit, Gbit, B, kB, MB, GB, TB, PB, EB, ZB, YB, KiB, MiB, GiB, TiB, PiB, EiB, ZiB or YiB
- **date**: Date string (ISO 8601)
- **distance**: Generic distance in km, m, cm, mm, mi, nmi, yd, or in
- **duration**: Duration in d, h, min, or s
- **energy**: Energy in J, kJ, MJ, GJ, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **energy_storage**: Stored energy in J, kJ, MJ, GJ, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **duration**: Duration in d, h, min, s, or ms
- **energy**: Energy in J, kJ, MJ, GJ, Wh, kWh, MWh, cal, kcal, Mcal, or Gcal
- **energy_storage**: Stored energy in J, kJ, MJ, GJ, Wh, kWh, MWh, cal, kcal, Mcal, or Gcal
- **enum**: Has a limited set of (non-numeric) states
- **frequency**: Frequency in Hz, kHz, MHz, or GHz
- **gas**: Gasvolume in m³, ft³ or CCF

View File

@ -164,6 +164,8 @@ $ curl -X GET http://192.168.1.31/temperature/
The response is expected to be a dictionary or a list with a dictionary as its 0th element.
{% include integrations/using_templates.md %}
## Examples
In this section you find some real-life examples of how to use this sensor.

View File

@ -62,7 +62,7 @@ type: markdown
title: Packages in transit
content: >
{% for package in
states.sensor['17track_in_transit'].attributes.packages %}
states.sensor['seventeentrack_in_transit'].attributes.packages %}
>- **{{ package.friendly_name }} ({{ package.tracking_number }}):** {{
package.info_text }}

View File

@ -32,3 +32,9 @@ This integration provides the following platforms:
The integration uses the REST API, which is known to be available on models `NB4`, `NB5`, `NB6`, `NB6V`, and `NB6VAC`.
However, `NCC` models do not appear to expose this REST API, and are therefore unsupported by the integration.
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -174,3 +174,20 @@ actions:
data:
message: "Message received!"
```
**NOTE** If the parameter `mode` is set to `json-rpc`, then you can use [signal-api-receiver](https://github.com/kalbasit/signal-api-receiver) to receive from Signal as follows:
```yaml
- resource: "http://127.0.0.1:8105/receive/pop"
sensor:
- name: "Signal message received"
value_template: >
{{ value_json['envelope']['dataMessage']['message'] }}
json_attributes_path: envelope
json_attributes:
- source
- sourceNumber
- sourceUuid
- sourceDevice
- timestamp
```

View File

@ -153,6 +153,30 @@ triggers:
last_event_type: doorbell_detected
```
### Using secret alerts for sensor changes
For cases where the default {% term polling %} interval of 30 seconds is too long for automations, you can use secret alerts to get push notifications of a sensor being triggered.
To enable secret alerts for sensor changes, follow these steps:
1. Enable the secret alert for the device in the Simplisafe App.
2. Make a note of the serial number of the device.
- You can see it in the top-left corner of the page where you set the alert.
3. Use the following event trigger:
```yaml
triggers:
- trigger: event
event_type: SIMPLISAFE_EVENT
event_data:
last_event_type: secret_alert_triggered
last_event_sensor_serial: "abc123xyz" # Replace with your device's serial number (use lowercase letters)
```
{% note %}
Due to the way Simplisafe implements secret alerts, you can only determine when a sensor is triggered, not when it is cleared.
{% endnote %}
### `SIMPLISAFE_NOTIFICATION`
`SIMPLISAFE_NOTIFICATION` events represent system notifications that would appear in the

View File

@ -24,6 +24,9 @@ There is currently support for the following device types within Home Assistant:
- [Presence detection](#presence-detection)
- [Sensor](#sensor)
- [Finding OIDs](#finding-oids)
- [Examples](#examples)
- [Printer uptime minutes](#printer-uptime-minutes)
- [Switch](#switch)
{% important %}
@ -102,6 +105,8 @@ priv_key:
See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked.
{% include integrations/using_templates.md %}
## Sensor
The `snmp` sensor platform displays information available through the [Simple Network Management Protocol (SNMP)](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol). SNMP uses a tree-like hierarchy where each node is an object, and is mainly supported by network-oriented devices such as routers, modems and printers.

View File

@ -17,7 +17,11 @@ ha_platforms:
ha_integration_type: integration
---
The **Solarlog** {% term integration %} uses the open JSON interface on [Solar-Log PV monitoring systems](https://www.solar-log.com/) to get details from your Solar-Log device and integrate these into your Home Assistant installation.
The **Solarlog** {% term integration %} uses the open JSON interface on [Solar-Log PV monitoring systems](https://www.solar-log.com/) to get details from your Solar-Log device and integrate these into your Home Assistant installation. With the integration you may monitor the solar power production and power consumption as tracked with your Solar-Log device.
## Supported devices
The integration should work with all Solar-Log devices.
## Prerequisites
@ -34,25 +38,33 @@ Please note that the open JSON interface only exposes a limited amount of data.
{% include integrations/config_flow.md %}
## Additional template sensor
To setup the integration you need the following information:
In case you would like to get additional calculated sensors such as the amount of excess solar power available, you can use the [template platform](/integrations/template/).
{% configuration_basic %}
Name:
description: "The name for your Solar-Log device in Home Assistant. This will also be uses as prefix for the entity names."
Host:
description: "The URL or IP address of your Solar-Log."
User password available:
description: "Check the box, if you have the password for the Solar-Log user to securely access [all data](#additional-data)."
Password:
description: "Password for the Solar-Log user. Will only be asked for in a second step, if in the first step the checkbox has been selected."
{% endconfiguration_basic %}
{% raw %}
## Configuration options
```yaml
# Example configuration.yaml entry for sensor template platform
template:
- sensor:
- name: "Solarlog yield day"
state: "{{ (states('sensor.solarlog_yield_day') | float(default=0) * 1000) | round(0,default=0) }}"
```
The integration has no additional configuration options.
{% endraw %}
## Remove integration
## Sensors
This integration can be removed by following these steps:
The following sensors are available via the open JSON intervace:
{% include integrations/remove_device_service.md %}
## Supported functionality
### Sensors
The following sensors are available via the open JSON interface:
| name | Unit | Description |
|-----------------------|--------|:-------------------------------------------|
@ -79,7 +91,11 @@ The following sensors are available via the open JSON intervace:
| power_available | W | Available power (equals to power_ac - consumption_ac) |
| usage | % | Usage (equals to consumption_ac / power_ac) |
## Additional data
{% note %}
The solarlog integration is using the solarlog_cli pypi package to get the data from your Solar-Log device. The last five sensors are not reported by your Solar-Log device directly, but are computed by the library.
{% endnote %}
### Additional data
{% important %}
The additional data is only accessible if the user's password is available (or password protection is deactivated). Obviously, deactivating password protection is a security risk and should only be done in specific circumstances. In any event, you do this at your own risk.
@ -98,6 +114,30 @@ In addition, information from devices connected to the Solar-Log device becomes
| current_power | W | Current power provided/used by the device. |
| consumption_year | kWh | Total energy provided/used by the device. |
{% note %}
The solarlog integration is using the solarlog_cli pypi package to get the data from your Solar-Log device. The last five sensors are not reported by your Solar-Log device directly, but are computed by the library.
{% endnote %}
### Additional template sensor
In case you would like to get additional calculated sensors such as the amount of excess solar power available or the energy returned to the grid, you can use the [template platform](/integrations/template/).
{% raw %}
```yaml
# Example configuration.yaml entry for sensor template platform
template:
- sensor:
- name: "Solarlog return to grid"
state: "{{ states('sensor.solarlog_consumption_year') | float(0) - states('sensor.self_consumption_year') | float(0) }}"
```
{% endraw %}
## Data updates
The integration fetches data from the device every minute.
## Actions
The integration provides no additional actions.
## Known limitations
The integration only provides the (limited) data exposed by means of the JSON interface. This also entails that the values for the self-consumption are rounded to full kWh.

View File

@ -130,6 +130,8 @@ There is no explicit configuration required for attributes. The integration will
Note that in all cases only the first row returned will be used.
{% include integrations/using_templates.md %}
## Examples
In this section, you find some real-life examples of how to use this sensor.

View File

@ -20,14 +20,19 @@ ha_config_flow: true
The `statistics` integration observes the state of a source sensor and provides aggregated statistical characteristics about its recent past. This integration can be useful in automation, for example, to trigger an action when the air humidity in the bathroom settles after a hot shower or when the number of brewed coffees over a day gets too high.
The statistics sensor updates with every update of the source sensor, for which the numeric `sensor` and `binary_sensor` are supported. The time period and/or number of recent state changes, which should be considered, must be given in configuration. Check the configuration section below for details.
The statistics sensor can use either the numeric sensor or binary_sensor as its input. The configuration must include the time period and/or a number of recent state changes that should be considered. Check the configuration section below for details.
Assuming the [`recorder`](/integrations/recorder/) integration is running, historical sensor data is read from the database on startup and is available immediately after a restart of the platform. If the [`recorder`](/integrations/recorder/) integration is *not* running, it can take some time for the sensor to start reporting data because some characteristics calculations require more than one source sensor value.
{% tip %}
The `statistics` integration is different to [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics).
The statistics integration is different from [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics).
{% endtip %}
The statistics sensor has an internal buffer that stores the values it needs for the computation of the various functions (for example, average step). The sensor is updated whenever new values are added to the buffer or when elements are removed. This is triggered either by a change of the source sensor (which may or may not change its actual value) or by values expiring (in cases where max age was specified). This means that the buffer can hold a sequence of identical values in cases where values are not changing over time.
When using a time-based buffer (by providing a max-age), it is recommended that the buffer contains at least a decent number of values spanning the full range of time. For sensors that don't change much, this can be achieved by using a template sensor with a time-based trigger as input. If the input values don't cover most of the time range, the computed output values could lead to unexpected results.
Example: To find out whether a switch was used in the last 5 minutes, "Count on" could be used. However, if there are no frequent readings a single "Off" (maybe only a second ago) in the buffer would produce 0 even though the sensor was "On" for most of the last five minutes.
{% include integrations/config_flow.md %}
Further information about these configuration options can be found under the [YAML configuration](#yaml-configuration)
@ -61,8 +66,8 @@ The following are supported for `sensor` source sensors `state_characteristic`:
| State Characteristic | Description |
| -------------------- | ----------- |
| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This type of average may show unexpected behavior in cases where values remain stable (e.g. an equally spaced sequence of t1:0 -> t2:0 -> t3:0 -> t4:0 -> t5:10 would produce an average of 5 instead of 1,25 because the non-changing zeros in the middle (t2 to t4) are being filtered out by Home Assistant and so the actually computed curve already starts rising at t1 instead of staying flat until t4). Accordingly, this function is only making sense in the context of noisy sensors that keep changing constantly. |
| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: Even when a time interval is specified by the max age parameter, the average is not necessarily matching the average over that whole interval (e.g. when values were removed due to the sampling size limit). |
| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. |
| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. |
| `average_timeless` | The average value of stored measurements. This method assumes that all measurements are equally spaced and, therefore, time is ignored and a simple average of values is computed. Equal to `mean`. |
| `change_sample` | The average change per sample. The difference between the newest and the oldest measurement is divided by the number of in-between measurements (n-1). |
| `change_second` | The average change per second. The difference between the newest and the oldest measurement is divided by seconds between them. |

View File

@ -102,6 +102,8 @@ verify_ssl:
Make sure that the URL matches exactly your endpoint or resource.
{% endimportant %}
{% include integrations/using_templates.md %}
## Example
### Switch with templated value

View File

@ -44,6 +44,7 @@ Please note, device names configured in the SwitchBot app are transferred into H
- ON/OFF for all appliance types excepted "Others"
- Air Conditioner
- Lock
- Lock Pro
- Meter
- MeterPlus
- MeterPro

View File

@ -26,13 +26,13 @@ This integration interacts with your [Tedee](https://tedee.com) locks by communi
## Prerequisites
- You will need the bridge to add your locks using this integration.
- You need to have the local API enabled.
- You need to have the **local API** and **encrypted token** enabled.
- The bridge firmware needs to be at least version `2.2.18086` for push updates to work without errors.
If you do not own the bridge, you can still add your locks to Home Assistant through the [HomeKit device integration](/integrations/homekit_controller/) (only for PRO model). Communication will happen over Bluetooth in that case, and features will be limited.
{% note %}
The integration will try to configure callbacks to receive near-real-time push updates from your bridge about your lock state changes. For this to work properly, the bridge must be able to reach your Home Assistant instance. It will prefer the configured `internal_url`, so ensure this address is reachable from your bridge on your network.
The integration will try to configure webhooks to receive near-real-time push updates from your bridge about your lock state changes. For this to work properly, the bridge must be able to reach your Home Assistant instance. It will prefer the configured `internal_url`, so ensure this address is reachable from your bridge on your network. If communication through the webhooks is not possible, the integration will query for an update every 30 seconds.
{% endnote %}
{% include integrations/config_flow.md %}
@ -110,12 +110,24 @@ This integration only supports functionality that is available locally. This mea
- Updates
- Key pads
## Remove integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}
## Troubleshooting
{% details "Lock state is not updated in real-time" %}
Make sure your bridge can reach your Home Assistant instance. This means that if you use separate VLANs, you need to configure your Firewall appropriately. Additionally, if you have configured an SSL-enabled endpoint for your Internal URL ({% my network title="Settings > System > Network" %}> Home Assistant URL), try setting it back to the IP address of your instance (or a non-HTTPS URL), as HTTPS sometimes leads to problems with the push updates.
{% enddetails %}
{% details "Authentication failures when trying to use the integration" %}
The token that is used to talk to your lock is time limited. Sometimes there were issues when the clock of the Home Assistant host was slightly out of sync, so try to sync your host's clock.
- This integration works with *local* tokens only, tokens from the cloud won't work
- In the [bridge settings](https://docs.tedee.com/bridge-api#tag/Authenticate) **encrypted token** must be enabled
- The token that is used to talk to your lock is time-limited. Sometimes there were issues when the clock of the Home Assistant host was slightly out of sync, so try to sync your host's clock.
{% enddetails %}

View File

@ -435,13 +435,18 @@ template:
[trigger-doc]: /docs/automation/trigger
#### Video tutorial
This video tutorial explains how to set up a Trigger based template that makes use of an action to retrieve the weather forecast (precipitation).
<lite-youtube videoid="zrWqDjaRBf0" videotitle="How to create Action Template Sensors in Home Assistant" posterquality="maxresdefault"></lite-youtube>
### Template and action variables
State-based and trigger-based template entities have the special template variable `this` available in their templates and actions. The `this` variable is the [state object](/docs/configuration/state_object) of the entity and aids [self-referencing](#self-referencing) of an entity's state and attribute in templates and actions. Trigger-based entities also provide [the trigger data](/docs/automation/templating/).
State-based and trigger-based template entities have the special template variable `this` available in their templates and actions. The `this` variable is the current [state object](/docs/configuration/state_object) of the entity and aids [self-referencing](#self-referencing) of an entity's state and attributes in templates and actions. Trigger-based entities also provide [the trigger data](/docs/automation/templating/).
{% note %}
Self-referencing using `this` provides the state and attributes for the entity before rendering the templates to calculate a new state. To access the new state, use the `value` or `value_json` variable.
{% endnote %}
### Rate limiting updates

View File

@ -40,7 +40,7 @@ ha_integration_type: integration
The `tplink` integration allows you to control your [TP-Link Kasa Smart Home Devices](https://www.tp-link.com/kasa-smart/) and [TP-Link Tapo Devices](https://www.tapo.com/) such as plugs, power strips, wall switches and bulbs.
You need to provision your newly purchased device to connect to your network before it can be added via the integration. This can be done either by using [kasa command-line tool](https://python-kasa.readthedocs.io/en/latest/cli.html#provisioning) or by adding it to the official Kasa or Tapo app before trying to add them to Home Assistant.
You need to provision your newly purchased device to connect to your network before it can be added via the integration. This can be done either by using [kasa command-line tool](https://python-kasa.readthedocs.io/en/latest/cli.html#provisioning) or by adding it to the official Kasa or Tapo app before trying to add them to Home Assistant. Some apps for TP-Link's other products, such as the Deco app, also allow you to add Kasa and Tapo devices. Since these devices use the same TP-Link Cloud Account for authorization, they work with this integration as well.
If your device is a newer Kasa or Tapo device it will require your TP-Link cloud username and password to authenticate for local access.
If you have an older device that does not currently require authentication, you may consider disabling automatic firmware updates to keep it that way.

View File

@ -32,7 +32,8 @@ To begin with enable *LG Connect Apps* feature in *Network* settings of the TV.
## Turn on action
Home Assistant is able to turn on an LG webOS Smart TV if you specify an action, provided by an {% term integration %} like [HDMI-CEC](/integrations/hdmi_cec/) or [WakeOnLan](/integrations/wake_on_lan/).
If you want to use an automation to turn on an LG webOS Smart TV, install an {% term integration %} such as the [HDMI-CEC](/integrations/hdmi_cec/) or [WakeOnLan](/integrations/wake_on_lan/). They provide an action that can be used for that.
Common for webOS 3.0 and higher would be to use WakeOnLan feature. To use this feature your TV should be connected to your network via Ethernet rather than Wireless and you should enable the *LG Connect Apps* feature in *Network* settings of the TV (or *Mobile App* in *General* settings for older models) (*may vary by version).
@ -66,6 +67,43 @@ Any other [actions](/docs/automation/action/) to power on the device can be conf
It is possible to select which sources will be available to the media player. When the TV is powered on press the **CONFIGURE** button in the {% term integration %} card and select the sources to enable. If you don't select any source the media player will offer all of the sources of the TV.
### Switching source with automation
Imagine you want your LG TV to automatically switch to a specific source when it turns on. Below is a simple automation example that launches `YouTube` after the TV is switched on.
It leverages `select_source` action from the [Media player](/integrations/media_player/) integration to launch a specific app installed on your LG TV.
To find available sources for your TV
1. Go to {% my developer_states title="**Developer Tools** > **States**" %}.
2. Find your TV's media_player entity.
3. Look for the `source_list` attribute which contains all available sources.
{% tip %}
Source list example: `source_list: ARD Mediathek, Apps, HDMI 1, Home Dashboard, JBL Bar 1300, Media Player, Netflix, Prime Video, Public Value, Spotify - Music and Podcasts, Timer, Web Browser, YouTube, ZDFmediathek`
{% endtip %}
The automation can be created entirely through the Home Assistant UI. When setting it up, you'll only need to manually enter the source name (for example, "YouTube") in the action configuration. Below is the YAML code generated as a result:
```yml
alias: Switch TV source to YouTube by Default
description: 'Regardless if started from TV remote or via wake-on-lan, the TV will switch to YouTube right after it is on'
triggers:
- device_id: <TV DEVICE ID>
domain: media_player
entity_id: <TV MEDIA PLAYER ENTITY ID>
type: turned_on
trigger: device
conditions: []
actions:
- action: media_player.select_source
metadata: {}
data:
source: YouTube
target:
device_id: <TV DEVICE ID>
mode: single
```
## Change channel through play_media action
The `play_media` action can be used in a script to switch to the specified TV channel. It selects the best matching channel according to the `media_content_id` parameter:

View File

@ -42,6 +42,7 @@ The login credentials used to authenticate the integration are the same as the o
| Yale Conexis L2 | yes |
| Yale Doorman L3 | yes |
| Yale Linus | yes |
| Yale Linus L2 | no |
| Yale Smart Safe | yes |
Other devices not listed above have not been tested and may not function as expected.

View File

@ -602,16 +602,20 @@ Some end devices (for example, Xiaomi door sensors) sleep for an extended period
This is what causes devices to show a missing link. Even though the device is no longer in the child table, the end device can still communicate via the parent Zigbee router.
#### How to interpret RSSI and LQI values
Interpreting RSSI and LQI values is complex. Unless you are a Zigbee specialist yourself or are guided by one, please ignore those values. They can be misleading. If you delve into this, it is important to understand not to judge RSSI or LQI values on their own. When troubleshooting Zigbee messages that are being dropped, you must interpret the combination of both RSSI and LQI.
Interpreting RSSI and LQI values can be complex, as metrics of network health and communication quality are provided by the devices themselves, and each device could get to its results in different ways. Unless you are a Zigbee specialist yourself or are guided by one, please ignore those values. They can be misleading. If you delve into this, it is important to understand not to judge RSSI or LQI values on their own. When troubleshooting Zigbee messages that are being dropped, you must interpret the combination of both RSSI and LQI.
RSSI (Received Signal Strength Indicator) values are an indicator value of the raw signal strength between two devices. RSSI values are negative numbers in -dBm format (0 to -100 power ratio in decibels of the measured power referenced to one milliwatt). Lower negative values indicate less interference and a good signal. RSSI information is only between the endpoint device and the first hop from that device. As such, it may not necessarily show signal strength to the Zigbee Coordinator but instead could be showing signal strength to the nearest Zigbee Router device.
- Generally, anything -60 and above (meaning -50, -40, etc.) in RSSI should be considered a strong signal (not losing messages).
- Anything at -80 and below (meaning -85, -90, etc.) should be considered a noise environment and you risk losing messages.
- Usually, anything at -80 and below (meaning -85, -90, etc.) in RSSI should be considered a noisy environment and you risk losing messages.
LQI (Link Quality Index) values can be hard to interpret for Zigbee. This is because the Zigbee specifications and the (IEEE 802.15.4 specification) do not standardize how to perform LQI measurements. LQI values are shown as positive numbers on a scale. But because the value provided by the Zigbee devices is not measured using unified standards from all device manufacturers and Zigbee stacks, the values can not always be trusted. For example, Zigbee devices based on Silicon Labs EmberZNet stack use positive display numbers for LQI, where higher is better and lower is worse. The Texas Instruments Z-Stack computes LQI for each received packet from the raw “received signal strength index” (RSSI) by linearly scaling it between the minimum and maximum defined RF power levels for the radio that more or less just provides an LQI value that, based on the strength of the received signal. This can be misleading in case the user has a noisy environment with interference within the same frequency range (as the RSSI value may be shown as increased even though the true link quality decreases). Other manufacturers and Zigbee stacks measure and calculate LQI values in another way.
LQI (Link Quality Index) values are shown as positive numbers on a scale but can be very hard to interpret for Zigbee and not as useful for troubleshooting. This is because the Zigbee specifications and the (IEEE 802.15.4 specification) do not standardize how to perform LQI measurements. The LQI value provided by the Zigbee devices is not measured using unified standards from all device manufacturers and Zigbee stacks, and often, LQI is only a measure of the last-hop link quality anyway, which is most of the time not useful information as such the values can not always be trusted.
- In theory, an LQI value of 255 means a zero error rate in theory. In general, a positive high LQI value is better and a lower LQI value is worse. However, depending on your devices, that might not be the reality.
For example, Zigbee devices based on Silicon Labs EmberZNet stack use positive display numbers for LQI, where higher is better and lower is worse. The Texas Instruments Z-Stack computes LQI for each received packet from the raw “received signal strength index” (RSSI) by linearly scaling it between the minimum and maximum defined RF power levels for the radio that more or less just provides an LQI value that, based on the strength of the received signal. This can be misleading in case you have a noisy environment with interference within the same frequency range (as the RSSI value may be shown as increased even though the true link quality decreases). Other manufacturers and Zigbee stacks measure and calculate LQI values in another way.
In theory, a positive high LQI value is better, and a lower LQI value is worse, but depending on your devices, that might not always be the reality.
- Best practice is to ignore LQI value.
### Reporting issues

View File

@ -12,6 +12,9 @@ categories:
og_image: /images/blog/2022-07-12-partner-program/partner_program_og.jpg
---
{% note %}
**This blog is outdated.** For the latest information on the partner program, please visit our [Works with Home Assistant webpage](https://partner.home-assistant.io/).
{% endnote %}
With Home Assistant, we integrate with over 1000 different APIs. The majority of these integrations are created and maintained by the Home Assistant community. Over the years a number of companies have stepped up to work with our community offering samples and engineering support. In a few cases, we saw companies pick up the maintenance of integrating their products in Home Assistant.
@ -21,7 +24,7 @@ Today were introducing the Works with Home Assistant program to allow manufac
The program requires manufacturers to maintain the integration of their products in Home Assistant, offer a good user experience, provide product samples and give us an engineering contact to escalate issues. In return, manufacturers will be able to use the “Works with Home Assistant” badge on their products and documentation. The terms of the Works with Home Assistant program are enforced in an agreement signed by both Nabu Casa and the manufacturer.
<img src='/images/blog/2022-07-12-partner-program/partner-program-logos.jpg' alt="Decorative header." class='no-shadow'>
<img src='/images/blog/2022-07-12-partner-program/partner-program-logos.jpg' alt="Do not use - old partner logos" class='no-shadow'>
<br><br>
With Home Assistant we are always working on educating our users about preferring local control and open standards when acquiring new products. This is also reflected in the “Works with Home Assistant” badges.

View File

@ -62,6 +62,10 @@ Enjoy the release!
- [Voice](#voice)
- [Home Assistant intents improvements](#home-assistant-intents-improvements)
- [Join the Wake Word Collective](#join-the-wake-word-collective)
- [Patch releases](#patch-releases)
- [2024.11.1 - November 8](#2024111---november-8)
- [2024.11.2 - November 15](#2024112---november-15)
- [2024.11.3 - November 22](#2024113---november-22)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@ -396,6 +400,342 @@ browser or mobile, no need to install anything!
You can read more about the Wake Word Collective in our
[dedicated blog post](/blog/2024/10/24/wake-word-collective/).
## Patch releases
We will also release patch releases for Home Assistant 2024.11 in November.
These patch releases only contain bug fixes. Our goal is to release a patch
release every Friday.
### 2024.11.1 - November 8
- Bump intents to 2024.11.6 ([@synesthesiam] - [#129982])
- Fix Trunks in Teslemetry and Tesla Fleet ([@Bre77] - [#129986])
- Update sense energy library to 0.13.3 ([@kbickar] - [#129998])
- Bump google-nest-sdm to 6.1.4 ([@allenporter] - [#130005])
- Add missing placeholder description to twitch ([@epenet] - [#130013])
- Bump agent-py to 0.0.24 ([@ispysoftware] - [#130018])
- Don't create repairs asking user to remove duplicate ignored config entries ([@emontnemery] - [#130056])
- Fix `KeyError` in nest integration when the old key format does not exist ([@allenporter] - [#130057])
- Don't create repairs asking user to remove duplicate flipr config entries ([@emontnemery] - [#130058])
- Add missing string to tedee plus test ([@zweckj] - [#130081])
- Force int value on port in P1Monitor ([@klaasnicolaas] - [#130084])
- Fix typo in insteon strings ([@KelvinDekker] - [#130085])
- Update frontend to 20241106.1 ([@bramkragten] - [#130086])
- Bump python-roborock to 2.7.2 ([@Lash-L] - [#130100])
- Update frontend to 20241106.2 ([@bramkragten] - [#130128])
- Fix issue when timestamp is None ([@shaiu] - [#130133])
- Add go2rtc workaround for HA managed one until upstream fixes it ([@edenhaus] - [#130139])
- Bump spotifyaio to 0.8.7 ([@joostlek] - [#130140])
- Bump ha-ffmpeg to 3.2.2 ([@MartinHjelmare] - [#130142])
- Fix volume_up not working in some cases in bluesound integration ([@LouisChrist] - [#130146])
- Fix bugs in nest stream expiration handling ([@allenporter] - [#130150])
- Refrase imap fetch service description string ([@jbouwh] - [#130152])
[@Bre77]: https://github.com/Bre77
[@KelvinDekker]: https://github.com/KelvinDekker
[@Lash-L]: https://github.com/Lash-L
[@LouisChrist]: https://github.com/LouisChrist
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@allenporter]: https://github.com/allenporter
[@bramkragten]: https://github.com/bramkragten
[@edenhaus]: https://github.com/edenhaus
[@emontnemery]: https://github.com/emontnemery
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@ispysoftware]: https://github.com/ispysoftware
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@kbickar]: https://github.com/kbickar
[@klaasnicolaas]: https://github.com/klaasnicolaas
[@shaiu]: https://github.com/shaiu
[@synesthesiam]: https://github.com/synesthesiam
[@zweckj]: https://github.com/zweckj
[#129970]: https://github.com/home-assistant/core/pull/129970
[#129982]: https://github.com/home-assistant/core/pull/129982
[#129986]: https://github.com/home-assistant/core/pull/129986
[#129998]: https://github.com/home-assistant/core/pull/129998
[#130005]: https://github.com/home-assistant/core/pull/130005
[#130013]: https://github.com/home-assistant/core/pull/130013
[#130018]: https://github.com/home-assistant/core/pull/130018
[#130056]: https://github.com/home-assistant/core/pull/130056
[#130057]: https://github.com/home-assistant/core/pull/130057
[#130058]: https://github.com/home-assistant/core/pull/130058
[#130081]: https://github.com/home-assistant/core/pull/130081
[#130084]: https://github.com/home-assistant/core/pull/130084
[#130085]: https://github.com/home-assistant/core/pull/130085
[#130086]: https://github.com/home-assistant/core/pull/130086
[#130100]: https://github.com/home-assistant/core/pull/130100
[#130128]: https://github.com/home-assistant/core/pull/130128
[#130133]: https://github.com/home-assistant/core/pull/130133
[#130139]: https://github.com/home-assistant/core/pull/130139
[#130140]: https://github.com/home-assistant/core/pull/130140
[#130142]: https://github.com/home-assistant/core/pull/130142
[#130146]: https://github.com/home-assistant/core/pull/130146
[#130150]: https://github.com/home-assistant/core/pull/130150
[#130152]: https://github.com/home-assistant/core/pull/130152
### 2024.11.2 - November 15
- Bump aiohttp to 3.10.11 ([@bdraco] - [#130483])
- Fix RecursionError in Husqvarna Automower coordinator ([@Thomas55555] - [#123085])
- Bump python-linkplay to v0.0.18 ([@silamon] - [#130159])
- Allow dynamic max preset in linkplay play preset ([@silamon] - [#130160])
- No longer thrown an error when device is offline in linkplay ([@silamon] - [#130161])
- Fix translations in ollama ([@sheldonip] - [#130164])
- Bump nice-go to 0.3.10 ([@IceBotYT] - [#130173])
- Fix wording in Google Calendar create_event strings for consistency ([@maxshcherbina] - [#130183])
- Fix uptime sensor for Vodafone Station ([@chemelli74] - [#130215])
- Bump pyTibber ([@Danielhiversen] - [#130216])
- Bump SoCo to 0.30.6 ([@jjlawren] - [#130223])
- Bump google-nest-sdm to 6.1.5 ([@allenporter] - [#130229])
- Rename "CO2 Signal" display name to Electricity Maps for consistency ([@corradio] - [#130242])
- Update generic thermostat strings for clarity and accuracy ([@maxshcherbina] - [#130243])
- Fix translation key for `done` response in conversation ([@mib1185] - [#130247])
- Improve nest camera stream expiration to be defensive against errors ([@allenporter] - [#130265])
- Add more f-series models to myuplink ([@astrandb] - [#130283])
- Make Hydrawise poll non-critical data less frequently ([@dknowles2] - [#130289])
- Ignore WebRTC candidates for nest cameras ([@allenporter] - [#130294])
- Avoid Shelly data update during shutdown ([@chemelli74] - [#130301])
- Fix Homekit error handling alarm state unknown or unavailable ([@gjohansson-ST] - [#130311])
- Fix fan's warning TURN_ON, TURN_OFF ([@LG-ThinQ-Integration] - [#130327])
- Bump python-linkplay to 0.0.20 ([@silamon] - [#130348])
- Add seek support to LinkPlay ([@silamon] - [#130349])
- Add Spotify and Tidal to playingmode mapping ([@silamon] - [#130351])
- Disable brightness from devices with no display in Cambridge Audio ([@noahhusby] - [#130369])
- Use f-strings in go2rtc code and test and do not use abbreviation ([@jbouwh] - [#130158])
- Fix typo in go2rtc ([@jbouwh] - [#130165])
- Go2rtc bump and set ffmpeg logs to debug ([@edenhaus] - [#130371])
- Bump spotifyaio to 0.8.8 ([@joostlek] - [#130372])
- Bump Tibber 0.30.8 ([@Danielhiversen] - [#130388])
- Fix missing title placeholders in powerwall reauth ([@bdraco] - [#130389])
- Bump ring library ring-doorbell to 0.9.9 ([@sdb9696] - [#129966])
- Bump ring-doorbell to 0.9.12 ([@sdb9696] - [#130419])
- Do not trigger events for updated ring events ([@sdb9696] - [#130430])
- Add title to water heater component ([@joostlek] - [#130446])
- Fix translation in statistics ([@gjohansson-ST] - [#130455])
- Fix typo in file strings ([@KelvinDekker] - [#130465])
- Bump aiowithings to 3.1.2 ([@joostlek] - [#130469])
- Ensure ZHA setup works with container installs ([@puddly] - [#130470])
- Fix legacy _attr_state handling in AlarmControlPanel ([@gjohansson-ST] - [#130479])
- Bump reolink_aio to 0.11.0 ([@starkillerOG] - [#130481])
- Fix translations in subaru ([@sheldonip] - [#130486])
- Bump aioruckus to 0.42 ([@ms264556] - [#130487])
- Bump go2rtc-client to 0.1.1 ([@edenhaus] - [#130498])
- Bump aiowithings to 3.1.3 ([@joostlek] - [#130504])
- Add go2rtc recommended version ([@edenhaus] - [#130508])
- fix translation in srp_energy ([@briglx] - [#130540])
- Fix non-thread-safe operation in powerview number ([@bdraco] - [#130557])
- Bump ZHA dependencies ([@puddly] - [#130563])
- Update uptime deviation for Vodafone Station ([@chemelli74] - [#130571])
- Fixes webhook schema for different temp and volume units ([@JohNan] - [#130578])
- Bump reolink-aio to 0.11.1 ([@starkillerOG] - [#130600])
- Fix hassfest by adding go2rtc reqs ([@edenhaus] - [#130602])
- Add missing translation string to smarty ([@epenet] - [#130624])
- Bump sense-energy to 0.13.4 ([@kbickar] - [#130625])
- Fix scene loading issue ([@alistairg] - [#130627])
- Add missing translation string to hvv_departures ([@epenet] - [#130634])
- Add missing translation string to lg_netcast ([@epenet] - [#130635])
- Add missing translation string to philips_js ([@epenet] - [#130637])
- Bump pyplaato to 0.0.19 ([@JohNan] - [#130641])
- Remove dumping config entry to log in setup of roborock ([@jpbede] - [#130648])
- Fix missing translations in vilfo ([@epenet] - [#130650])
- Fix missing translations in utility_meter ([@epenet] - [#130652])
- Fix missing translations in tradfri ([@epenet] - [#130654])
- Fix missing translations in toon ([@epenet] - [#130655])
- Fix missing translations in madvr ([@epenet] - [#130656])
- Fix missing translations in generic ([@epenet] - [#130672])
- Fix missing translations in onewire ([@epenet] - [#130673])
- Bump python-smarttub to 0.0.38 ([@mdz] - [#130679])
[#123085]: https://github.com/home-assistant/core/pull/123085
[#129966]: https://github.com/home-assistant/core/pull/129966
[#129970]: https://github.com/home-assistant/core/pull/129970
[#130156]: https://github.com/home-assistant/core/pull/130156
[#130158]: https://github.com/home-assistant/core/pull/130158
[#130159]: https://github.com/home-assistant/core/pull/130159
[#130160]: https://github.com/home-assistant/core/pull/130160
[#130161]: https://github.com/home-assistant/core/pull/130161
[#130164]: https://github.com/home-assistant/core/pull/130164
[#130165]: https://github.com/home-assistant/core/pull/130165
[#130173]: https://github.com/home-assistant/core/pull/130173
[#130183]: https://github.com/home-assistant/core/pull/130183
[#130215]: https://github.com/home-assistant/core/pull/130215
[#130216]: https://github.com/home-assistant/core/pull/130216
[#130223]: https://github.com/home-assistant/core/pull/130223
[#130229]: https://github.com/home-assistant/core/pull/130229
[#130242]: https://github.com/home-assistant/core/pull/130242
[#130243]: https://github.com/home-assistant/core/pull/130243
[#130247]: https://github.com/home-assistant/core/pull/130247
[#130265]: https://github.com/home-assistant/core/pull/130265
[#130283]: https://github.com/home-assistant/core/pull/130283
[#130289]: https://github.com/home-assistant/core/pull/130289
[#130294]: https://github.com/home-assistant/core/pull/130294
[#130301]: https://github.com/home-assistant/core/pull/130301
[#130311]: https://github.com/home-assistant/core/pull/130311
[#130327]: https://github.com/home-assistant/core/pull/130327
[#130348]: https://github.com/home-assistant/core/pull/130348
[#130349]: https://github.com/home-assistant/core/pull/130349
[#130351]: https://github.com/home-assistant/core/pull/130351
[#130369]: https://github.com/home-assistant/core/pull/130369
[#130371]: https://github.com/home-assistant/core/pull/130371
[#130372]: https://github.com/home-assistant/core/pull/130372
[#130388]: https://github.com/home-assistant/core/pull/130388
[#130389]: https://github.com/home-assistant/core/pull/130389
[#130419]: https://github.com/home-assistant/core/pull/130419
[#130430]: https://github.com/home-assistant/core/pull/130430
[#130446]: https://github.com/home-assistant/core/pull/130446
[#130455]: https://github.com/home-assistant/core/pull/130455
[#130465]: https://github.com/home-assistant/core/pull/130465
[#130469]: https://github.com/home-assistant/core/pull/130469
[#130470]: https://github.com/home-assistant/core/pull/130470
[#130479]: https://github.com/home-assistant/core/pull/130479
[#130481]: https://github.com/home-assistant/core/pull/130481
[#130483]: https://github.com/home-assistant/core/pull/130483
[#130486]: https://github.com/home-assistant/core/pull/130486
[#130487]: https://github.com/home-assistant/core/pull/130487
[#130498]: https://github.com/home-assistant/core/pull/130498
[#130504]: https://github.com/home-assistant/core/pull/130504
[#130508]: https://github.com/home-assistant/core/pull/130508
[#130540]: https://github.com/home-assistant/core/pull/130540
[#130557]: https://github.com/home-assistant/core/pull/130557
[#130563]: https://github.com/home-assistant/core/pull/130563
[#130571]: https://github.com/home-assistant/core/pull/130571
[#130578]: https://github.com/home-assistant/core/pull/130578
[#130600]: https://github.com/home-assistant/core/pull/130600
[#130602]: https://github.com/home-assistant/core/pull/130602
[#130624]: https://github.com/home-assistant/core/pull/130624
[#130625]: https://github.com/home-assistant/core/pull/130625
[#130627]: https://github.com/home-assistant/core/pull/130627
[#130634]: https://github.com/home-assistant/core/pull/130634
[#130635]: https://github.com/home-assistant/core/pull/130635
[#130637]: https://github.com/home-assistant/core/pull/130637
[#130641]: https://github.com/home-assistant/core/pull/130641
[#130648]: https://github.com/home-assistant/core/pull/130648
[#130650]: https://github.com/home-assistant/core/pull/130650
[#130652]: https://github.com/home-assistant/core/pull/130652
[#130654]: https://github.com/home-assistant/core/pull/130654
[#130655]: https://github.com/home-assistant/core/pull/130655
[#130656]: https://github.com/home-assistant/core/pull/130656
[#130672]: https://github.com/home-assistant/core/pull/130672
[#130673]: https://github.com/home-assistant/core/pull/130673
[#130679]: https://github.com/home-assistant/core/pull/130679
[@Danielhiversen]: https://github.com/Danielhiversen
[@IceBotYT]: https://github.com/IceBotYT
[@JohNan]: https://github.com/JohNan
[@KelvinDekker]: https://github.com/KelvinDekker
[@LG-ThinQ-Integration]: https://github.com/LG-ThinQ-Integration
[@Thomas55555]: https://github.com/Thomas55555
[@alistairg]: https://github.com/alistairg
[@allenporter]: https://github.com/allenporter
[@astrandb]: https://github.com/astrandb
[@bdraco]: https://github.com/bdraco
[@briglx]: https://github.com/briglx
[@chemelli74]: https://github.com/chemelli74
[@corradio]: https://github.com/corradio
[@dknowles2]: https://github.com/dknowles2
[@edenhaus]: https://github.com/edenhaus
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@jbouwh]: https://github.com/jbouwh
[@jjlawren]: https://github.com/jjlawren
[@joostlek]: https://github.com/joostlek
[@jpbede]: https://github.com/jpbede
[@kbickar]: https://github.com/kbickar
[@maxshcherbina]: https://github.com/maxshcherbina
[@mdz]: https://github.com/mdz
[@mib1185]: https://github.com/mib1185
[@ms264556]: https://github.com/ms264556
[@noahhusby]: https://github.com/noahhusby
[@puddly]: https://github.com/puddly
[@sdb9696]: https://github.com/sdb9696
[@sheldonip]: https://github.com/sheldonip
[@silamon]: https://github.com/silamon
[@starkillerOG]: https://github.com/starkillerOG
### 2024.11.3 - November 22
- Prevent endless loop in recorder when using a filter and there are no more states to purge ([@davinkevin] - [#126149])
- Fix and bump apsystems-ez1 to 2.4.0 ([@patman15] - [#130740])
- Fix file uploads in MQTT config flow not processed in executor ([@jbouwh] - [#130746])
- Update twentemilieu to 2.1.0 ([@frenck] - [#130752])
- Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices ([@mib1185] - [#130788])
- Bump homematicip to 1.1.3 ([@hahn-th] - [#130824])
- UPB integration: Change unique ID from int to string. ([@gwww] - [#130832])
- Reolink fix dev/entity id migration ([@starkillerOG] - [#130836])
- Use default device sensors also for AirQ devices in Sensibo ([@gjohansson-ST] - [#130841])
- Pass config_entry explicitly in rachio ([@epenet] - [#130865])
- Bump bluetooth-adapters to 0.20.2 ([@bdraco] - [#130877])
- Fixed Small Inaccuracy in Description String for myUplink ([@CharlesYuan02] - [#130900])
- Unscape HTML Entities from RSS feeds ([@skgsergio] - [#130915])
- Update elmax_api to v0.0.6.1 ([@ElmaxSrl] - [#130917])
- Bump aioairq to 0.4.3 ([@Sibgatulin] - [#130963])
- Strip whitespaces from host in ping config flow ([@jpbede] - [#130970])
- Add more UI user-friendly description to six Supervisor actions ([@NoRi2909] - [#130971])
- Add missing catholic category in workday ([@gjohansson-ST] - [#130983])
- Bump holidays to 0.61 ([@gjohansson-ST] - [#130984])
- Bump aioairzone to 0.9.6 ([@Noltari] - [#130559])
- Update aioairzone to v0.9.7 ([@Noltari] - [#131033])
- Replace "service" with "action" in zha:reconfigure_device ([@NoRi2909] - [#131111])
- Fix typo in name of "Alarm arm home instant" action ([@NoRi2909] - [#131151])
- Fix cast translation string ([@NoRi2909] - [#131156])
- Fix typo in ESPHome repair text ([@jesserockz] - [#131200])
- Reolink log fast poll errors once ([@starkillerOG] - [#131203])
- Fix fibaro cover state is not always correct ([@rappenze] - [#131206])
- Bump reolink_aio to 0.11.2 ([@starkillerOG] - [#131237])
[#126149]: https://github.com/home-assistant/core/pull/126149
[#129970]: https://github.com/home-assistant/core/pull/129970
[#130156]: https://github.com/home-assistant/core/pull/130156
[#130559]: https://github.com/home-assistant/core/pull/130559
[#130713]: https://github.com/home-assistant/core/pull/130713
[#130740]: https://github.com/home-assistant/core/pull/130740
[#130746]: https://github.com/home-assistant/core/pull/130746
[#130752]: https://github.com/home-assistant/core/pull/130752
[#130788]: https://github.com/home-assistant/core/pull/130788
[#130824]: https://github.com/home-assistant/core/pull/130824
[#130832]: https://github.com/home-assistant/core/pull/130832
[#130836]: https://github.com/home-assistant/core/pull/130836
[#130841]: https://github.com/home-assistant/core/pull/130841
[#130865]: https://github.com/home-assistant/core/pull/130865
[#130877]: https://github.com/home-assistant/core/pull/130877
[#130900]: https://github.com/home-assistant/core/pull/130900
[#130915]: https://github.com/home-assistant/core/pull/130915
[#130917]: https://github.com/home-assistant/core/pull/130917
[#130963]: https://github.com/home-assistant/core/pull/130963
[#130970]: https://github.com/home-assistant/core/pull/130970
[#130971]: https://github.com/home-assistant/core/pull/130971
[#130983]: https://github.com/home-assistant/core/pull/130983
[#130984]: https://github.com/home-assistant/core/pull/130984
[#131033]: https://github.com/home-assistant/core/pull/131033
[#131111]: https://github.com/home-assistant/core/pull/131111
[#131151]: https://github.com/home-assistant/core/pull/131151
[#131156]: https://github.com/home-assistant/core/pull/131156
[#131200]: https://github.com/home-assistant/core/pull/131200
[#131203]: https://github.com/home-assistant/core/pull/131203
[#131206]: https://github.com/home-assistant/core/pull/131206
[#131237]: https://github.com/home-assistant/core/pull/131237
[@CharlesYuan02]: https://github.com/CharlesYuan02
[@ElmaxSrl]: https://github.com/ElmaxSrl
[@NoRi2909]: https://github.com/NoRi2909
[@Noltari]: https://github.com/Noltari
[@Sibgatulin]: https://github.com/Sibgatulin
[@bdraco]: https://github.com/bdraco
[@davinkevin]: https://github.com/davinkevin
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@gwww]: https://github.com/gwww
[@hahn-th]: https://github.com/hahn-th
[@jbouwh]: https://github.com/jbouwh
[@jesserockz]: https://github.com/jesserockz
[@jpbede]: https://github.com/jpbede
[@mib1185]: https://github.com/mib1185
[@patman15]: https://github.com/patman15
[@rappenze]: https://github.com/rappenze
[@skgsergio]: https://github.com/skgsergio
[@starkillerOG]: https://github.com/starkillerOG
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing

View File

@ -0,0 +1,208 @@
---
layout: post
title: "Roadmap 2024 Year-end Update: Full steam ahead!"
description: "Update on the progress of our 2024 roadmap and a glimpse of what's coming up next."
date: 2024-11-15 00:00:00
date_formatted: "November 15, 2024"
author: Madelena Mak
comments: true
categories: Announcements Roadmap
og_image: /images/blog/2024-11-roadmap-2024h2/banner.jpg
---
<p><img src='/images/blog/2024-11-roadmap-2024h2/ha-roadmap-2024h2.png' class='no-shadow' alt='Roadmap 2024 H2 diagram, showing the priorities as a table'/></p>
**TL;DR** We are making great progress on our roadmap, and moving forward onto the next priorities on the roadmap. 🚂🚃🚃🚃🚃🚃🚃🚃🚃
As [we had previously mentioned](/blog/2024/06/12/roadmap-introduction/), the goal of the roadmap is to provide a North Star for all of our product initiatives to follow in a coherent and consistent direction. At the [State of the Open Home](/blog/2024/04/24/state-of-the-open-home-2024/) in April this year, we introduced to our community [our first roadmap](/blog/2024/06/12/roadmap-2024h1/). We intend to keep our community informed every half year, and this is our first update to our public roadmap.
We are happy to report that we have made good progress on the product initiatives on our roadmap so far, thanks to our core maintainers along with the help of the team at [Nabu Casa](https://nabucasa.com), the commercial partner of the [Open Home Foundation](https://www.openhomefoundation.org). Most of the product initiatives in the 2024 roadmap have matured according to plan, and now the team has begun to focus on the ones that we had planned for next.
\- [Madelena] & [JLo]
<!--more-->
- [Home Assistant: “A Home-Approved Smart Home”](#home-assistant-a-home-approved-smart-home)
- [Automations](#automations)
- [In good shape: Make automations easier to organize](#in-good-shape-make-automations-easier-to-organize)
- [Newly in progress: Make automations easier to create](#newly-in-progress-make-automations-easier-to-create)
- [Later priority: Make blueprints easier to use](#later-priority-make-blueprints-easier-to-use)
- [Dashboards](#dashboards)
- [In good shape: Make customization of dashboards easy and intuitive](#in-good-shape-make-customization-of-dashboards-easy-and-intuitive)
- [Newly in progress: Make default dashboards more useful and relevant](#newly-in-progress-make-default-dashboards-more-useful-and-relevant)
- [Next priority: Improve privacy in user, guest, and public access](#next-priority-improve-privacy-in-user-guest-and-public-access)
- [Voice Assistants](#voice-assistants)
- [In good shape: Improve Assist capabilities out of the box](#in-good-shape-improve-assist-capabilities-out-of-the-box)
- [In progress: Make Assist easier to start with](#in-progress-make-assist-easier-to-start-with)
- [Later priority: Make Assist more conversational](#later-priority-make-assist-more-conversational)
- [Research](#research)
- [In good shape: Build local LLM infrastructure](#in-good-shape-build-local-llm-infrastructure)
- [In progress: Investigate on privacy](#in-progress-investigate-on-privacy)
- [Home Assistant Cloud](#home-assistant-cloud)
- [Open Protocols](#open-protocols)
- [Z-Wave](#z-wave)
- [Matter](#matter)
- [Zigbee](#zigbee)
- [Whats next?](#whats-next)
## Home Assistant: “A Home-Approved Smart Home”
The theme of the Home Assistant roadmap is to improve the [Home Approval Factor](https://newsletter.openhomefoundation.org/open-home-approval-factor/) of our platform, ensuring the adoption of Home Assistant by other household members within a smart home.
This can be done by improving the touchpoints that all members of the household will interact with, such as [automations](#automations), [dashboards](#dashboards), and [voice assistants](#voice-assistants), while maintaining the power and depth of the platform for our power users and admins. Our plan is categorized into the following product areas:
### Automations
#### In good shape: Make automations easier to organize
For a long time, the ability to organize automation was at the top of our feature requests. Therefore, organizing automations was our first focus on the automation product area.
We gave users the ability to categorize automations, which makes the process of managing, editing, debugging, and searching automations much simpler. The categories are up to the users to define. For instance, I personally created categories per functionality such as “Smart Heating” or “Smart Cleaning”, and I particularly like my “Tests” categories where I keep all the automations that are currently being tested in my home.
![Screenshot of Automations settings with filter panel](/images/blog/2024-04/filter-panel.png)
On top of categories, users can now attach labels to automations, just like any other entity found in Home Assistant. Labels can be used to filter the automation list further, but what I am most interested in is the automation capabilities of the labels themselves. I saw some great ideas in the community, one of them that struck me was the idea to label some automation as “Not Guest Friendly” and deactivate them when a guest mode was activated. Its nice to see labels as a tool to automate everything, even your automations themselves. 😀
All in all, Home Assistant truly made automations easier to organize in the past 6 months. We could still work on that, no opportunity is ever really done, but for the time being, we are considering this one done so that we can focus on bigger problems.
#### Newly in progress: Make automations easier to create
Automations are one of the cornerstones of Home Assistant, but its not an easy task to create them, especially if you are just starting out. There are a dozen things to know before you start and a dozen things to learn along the way.
<img class="no-shadow" src="/images/blog/2024-01/add-action-search.png" alt="Screenshot showing the new add action dialog utilizing the search function to find whatever you need.">
Last year we redesigned our action picker and replaced a single option with an obscure name, **“Call Service”**, with hundreds of neatly categorized entries that we called **“Actions”**. This improved the automation creation process by quite a margin.
Today, the automation editor feels like it has progressed at two different speeds; our actions are easy to use, but our triggers and conditions are not. So we have begun bringing the same level of convenience that we previously brought to actions to our beloved triggers and conditions.
Our goal is to make our automation editor more approachable without losing what makes us unique: Its capabilities.
#### Later priority: Make blueprints easier to use
Blueprints are amazing, they represent what makes the Home Assistant community truly great: Sharing what you learned with others.
We are aware that using (and sharing) blueprints is not the most straightforward process today. For now, this is the next opportunity we want to tackle inside the automation stream.
### Dashboards
#### In good shape: Make customization of dashboards easy and intuitive
With the stable release of the new Sections view layout in Home Assistant [2024.11](/blog/2024/11/06/release-202411/), our work on making customization of dashboards easier is now in good shape! The learning curve for creating nice dashboards has been vastly reduced, and we are seeing more and more people being interested in and being able to create high-quality dashboards that are usable for everyone in the household.
<p class='img no-shadow'><img class="no-shadow" alt="Screenshots showing the conversion of a view in masonry into sections" src="/images/blog/2024-11/dashboard-conversion.png"/>Screenshots showing the conversion of a view in masonry into sections</p>
Work will continue with the dashboard working group. The group is currently looking into standardizing the appearance of our default cards. **Please [reach out to us](/blog/2024/07/26/dashboard-chapter-2/#process-how-can-we-work-together) if you are a frontend developer** who would like to contribute and be part of the journey!
#### Newly in progress: Make default dashboards more useful and relevant
Now that weve made customization of dashboards easier than ever, whats next? We understand that it can be intimidating for users when they are faced with a blank slate. Some may be full of ideas on how they would like to fill their dashboards up, but some would prefer if Home Assistant came with something useful out-of-the-box. Therefore, we are now looking into making dashboards easier, even if you dont know how to create one.
<p class='img'><img alt="Case studies of many dashboards of our users" src="/images/blog/2024-11-roadmap-2024h2/dashboard-casestudies.png"/>Case studies of many dashboards of our users</p>
Over the past year, we have looked into dozens of case studies - dashboards created by many of you, from the most popular to the most pragmatic - and began to notice patterns in how our users organize their dashboards. Home Assistant is unique compared to other smart home platforms in that our dashboards are not just about controlling devices. After all, the perfect app is no app, as in, opening an app to control your light bulb is less convenient than simply flicking a light switch, or better yet, just automating it.
What we see our users have built instead are dashboards that help them keep track of information for their daily lives at a glance, and keep a birds-eye view of everything that is going on around their homes. For example, while you can automate Home Assistant to notify you when energy usage is too high, or you can ask Assist the current power usage, our dashboards shine at data visualization and its ability to tell you lots of information you need by just glancing at it.
Currently, our default dashboard simply dumps every single entity that a home has onto one page, making it wildly unmanageable as the smart home grows. While it can automatically group entities by areas, we have learned that areas are not the only way users look at their dashboard information. What we saw instead are dashboards that are specialized and focused on the functions of a home, such as energy usage, security and safety, and network status, on complex objects, such as a car and a 3D printer, or on information unrelated to the home itself, such as weather, neighborhood information, or even rocket launches. While we can simply show every entity by domain, we know we can make these function-focused dashboards much more useful by exposing insights by curating and juxtaposing information.
#### Next priority: Improve privacy in user, guest, and public access
The inability to fine-tune access to Home Assistant by guests or other members of the family has been a pain point requested by many of our users. We want to investigate ways to mitigate this while improving the privacy of the household. Our research on what privacy means to users will hopefully bring more clarity to this before we start working on it.
### Voice Assistants
#### In good shape: Improve Assist capabilities out of the box
Assist, our private voice assistant, received a lot of love over the last 6 months. Our first focus was to improve its capabilities out of the box, without needing to tinker with it. We added a lot of features that were heavily requested by the community, features that bring us one step closer to feature parity with our non-private competitors.
We brought area awareness, which allows you to target devices in the same area without mentioning the area (like “Close the curtains” or “Turn off the lights”). We brought floor support, which allows you to target devices across areas on the same floor; very useful for homes with an open floor design (for example “Turn on all lights on the first floor”).
<p class='img'><lite-youtube videoid="v3mNdTsX4J0" videotitle="Voice timers with countdown text and loading bar"></lite-youtube>Timers running on an S3 Box, with countdown text and a loading bar!</p>
We implemented timers, allowing any voice assistant device to “ring” when a timer ends, including supporting the creation of multiple timers. You can also pause and resume them and add or remove time from them. You can combine commands with timers by giving a delayed command, allowing you to perform an action after a specific amount of time (like “Turn off the TV in 30 minutes)”.
We also brought the ability to control media via voice. Pausing or resuming them, controlling the volume, and going to the next track. This, combined with the area awareness capability mentioned above made for some really interesting short commands that work in a room with a TV playing or music streaming, such as “Pause”, “Resume” and “Next”.
Finally, our on-device wake word engine called microWakeWord became much faster and much better at recognizing wake words. This is the result of using real voice data in the training process to fine-tune the models. With [Wake Word Collective](https://ohf-voice.github.io/wake-word-collective/), you can now contribute by lending your voice to improve our community-driven, privacy-focused voice assistant! You can read more about it in [this blog post](/blog/2024/10/24/wake-word-collective/).
#### In progress: Make Assist easier to start with
So Assist is more capable, but what about getting started with Voice?
Voice is hard because it is a combination of great software and great hardware. Up until recently, we primarily focused on making the software experience great and relied on readily available hardware to power our voice assistants.
<p class='img'><img alt="A teaser of our voice hardware" src="/images/blog/2024-11-roadmap-2024h2/voice-hardware-teaser.jpg"/>A teaser of our voice hardware</p>
However, this is changing - over the past 6 months, we have built our own hardware! It will be the first voice assistant hardware built from the ground up to work with Home Assistant, fully open source (firmware and hardware), and it is going to be released *very soon*. It is truly the missing hardware piece to a more approachable voice experience in Home Assistant, and we cannot wait to see what you will build with it.
#### Later priority: Make Assist more conversational
The more functionality we add to Assist, the more we reach its transactional limitations. Indeed, today, an interaction is one way, from a user (issuing a command) to Assist (acting on that command). We would like to improve this, allowing more conversational interactions with Assist.
In the future, Assist will be able to ask for clarifications before fulfilling a command, such as requesting the duration of a timer if it was not part of the original command or asking for confirmation before processing critical actions, such as unlocking all doors. On top of that, we would like to allow the conversation to start from Assist, and not from the user, such as greeting someone when they enter a room.
This pairs very well with LLM-based conversation agents due to their ability to retain context, but we will make sure these types of complex interactions are also possible with our default conversation agent.
### Research
#### In good shape: Build local LLM infrastructure
In the past six months, weve introduced support for LLM local tools and [Ollama](/blog/2024/08/07/release-20248/#control-home-assistant-using-ai-with-ollama), pushing our efforts to make AI more accessible and private for experimentation within Home Assistant. Weve also dedicated significant effort to creating realistic benchmarks, focusing on natural, conversational use cases rather than edge cases. This approach lets us better understand performance and user experience in day-to-day interactions.
Our latest benchmark for local language models (LLMs) can be explored [here](https://github.com/allenporter/home-assistant-datasets/tree/main/reports), showcasing how models like qwen2.5 perform in realistic settings. With these insights, were continuing to refine LLM integrations and to ensure that LLMs can be depended upon for common use cases at home.
<img src='/images/blog/2024-06-voice-chapter-7/voice-script.png' alt="Exposing voice scripts to Assist in Home Assistant Voice settings" class='no-shadow'>
You can now expand LLM capabilities by [allowing them access to your scripts](/blog/2024/07/03/release-20247/#expand-an-llm-using-your-scripts). This feature lets you precisely control what the LLM does in specific situations, while still benefiting from the flexibility and natural language processing that AIs excel at.
#### In progress: Investigate on privacy
Since our last roadmap update, we have expanded the product and design team working on the Home Assistant project, and we have hired our first ever dedicated user researcher!
While we are ramping up our user research pipeline, we have started working on investigating what privacy means to our users. Of the three Open Home values, privacy, choice, and sustainability, while we have a pretty solid understanding of choice and some understanding of sustainability, the idea of privacy can benefit from more clarity. We have interviewed a handful of users on this topic recently, and we cant wait to show you what we have found.
## Home Assistant Cloud
Home Assistant Cloud, powered by our commercial partner Nabu Casa brings, to the many, the hard-to-reach features of Home Assistant usually reserved for power users with expensive hardware at home, with no compromise on privacy.
In recent months, the Nabu Casa team has been hard at work in bringing peace of mind to using Home Assistant. For the cloud backup feature, the Home Assistant team and the Nabu Casa team are now working closely together on a comprehensive revamp of backup integrations, to create an easy one-stop solution to a good backup strategy. We are also working to ensure users have a smooth onboarding for backing up to Home Assistant Cloud, as well as other third-party backup locations.
The team had to postpone some features in favor of others like [WebRTC](/blog/2024/11/06/release-202411/#low-latency-cameras-using-webrtc). They had successfully released the infrastructure needed to support WebRTC, both STUN servers for every Home Assistant user and TURN servers for every Home Assistant Cloud subscriber, enhancing real-time communication capabilities within Home Assistant. Two-factor authentication (2FA) is one of the postponed features, but it is still in the Nabu Casa pipeline.
## Open Protocols
We remain committed to supporting open smart home standards, including Z-Wave Zigbee, Matter, and Thread, aligning with our Open Home mission to offer choice, privacy, and sustainability through locally controlled, cloud-independent devices.
In the past six months, we have made significant steps towards certifications, ensuring our open standards implementations are up to industry standards.
### Z-Wave
In [September](/blog/2024/09/24/we-are-joining-the-z-wave-alliance-board/), Paulus, the founder of Home Assistant, announced his new role on the Z-Wave Alliance Board of Directors, representing Nabu Casa. Serving on the board will allow Nabu Casa to contribute meaningfully to Z-Waves development and ensure that the needs of Home Assistant users and open-source values are represented.
As interest in Z-Wave devices in our ecosystem continues to grow, this has driven Home Assistant to advance the Z-Wave JS stack and create its own Z-Wave hardware. While we are working on the [certification of our Z-Wave implementation](/blog/2024/05/08/zwave-is-not-dead), our work on building our own Z-Wave antenna has also been progressing smoothly. We base the design of our antenna on the [Z-Wave Reference Application Design](https://github.com/drzwave/ZRAD) to create a Z-Wave antenna with the best performance in the market.
### Matter
As one of the first in the industry, in June, we proudly announced that Home Assistant is now based on the [latest Matter 1.3 specification](/blog/2024/06/05/release-20246/#matter-turns-13). Since then, we continued to update our Matter implementation to improve the reliability and compatibility of Matter devices, and Matter certification should hopefully happen any day now soon!
We have brought expanded device support and performance improvements to Home Assistant's Matter integration. Air purifiers, room air conditioners, and thermostats are now better supported, along with custom clusters, which allow Home Assistant to detect data changes in real-time, improving network efficiency.
Update entities now provide firmware updates via official Matter update channels, while event entities provide more event types, allowing you to react to single-press or double-press events with ease. Additional features include water valve support, operation state tracking for appliances, and smoke and CO sensor integration. Matter 1.3 power and energy sensors are also supported, providing useful data for the energy dashboard.
In the meantime, we will continue to work on Matter 1.4 compatibility, as well as making device commissioning easier and working with Thread credentials. We have made major strides forward and hopefully we will be able to get through some of our roadblocks soon.
### Zigbee
The Zigbee Home Automation (ZHA) integration got a massive overhaul [during Summer](/blog/2024/08/07/release-20248/#zigbee-home-automation-zha-updates). The whole integration has been split into a separate codebase, making it easier to maintain and improve. This is a huge step forward for the integration, and took months of work to get done. This change will make the integration easier to maintain and improve in the future, including allowing code contributors to contribute more easily.
## Whats next?
We hope that you can feel the results of all this work. Given the positive feedback we have received from our users, we will continue to follow our roadmap to work on the next product initiatives.
We will also start preparing for the roadmap for next year. It will have a new theme, and we would like to have our community be more involved in the process of its creation. Planning has already begun, and we hope to announce it at the next State of the Open Home. Last but not the least, please get in the comments and give us your feedback - we read it all!
See you next year!
\- [Madelena] & [JLo]
[Madelena]: https://github.com/Madelena
[JLo]: https://github.com/jlpouffier

View File

@ -0,0 +1,86 @@
---
layout: post
title: "Event wrap-up - GitHub Universe '24"
description: "Home Assistant had pretty huge presence at this year's GitHub Universe, and here are the highlights"
date: 2024-11-18 00:00:00
date_formatted: "November 18, 2024"
author: Missy Quarry
comments: true
categories: community
og_image: /images/blog/2024-11-universe/art.jpg
---
<img src='/images/blog/2024-11-universe/art.jpg' alt="Event Wrap-up">
In case you missed it, we had a pretty huge presence at this year's [GitHub Universe](https://githubuniverse.com/), their global annual developer conference. 2024 was the culmination of many years of our community growing, and there were some really big moments---our community meetup in San Francisco, awards, rising in GitHub's rankings, and being a part of the event's Day 2 keynote.
After a few years of being in 2nd place, we are now the #1 open source project on GitHub with over 21,000 contributors helping build Home Assistant. We also won the Wonderfully Welcoming award for being the 2nd most active project for *new* contributors. This is really just scratching the surface of the week we spent together in San Francisco, and I ([Missy Quarry](https://github.com/missyquarry), your Community & Social Media Manager) would like to share the highlights with everyone who couldn't make it this year.
### Table of contents
- [Community comes together](#community-comes-together)
- [We are number 1!](#we-are-number-1)
- [Open Source - ⭐️ of the show](#open-source----of-the-show)
- [Connecting with the community](#connecting-with-the-community)
<!--more-->
## Community comes together
What started as a simple request to attend the event tumbled into not only being a part of the Day 2 Keynote of GitHub Universe ❗❗ but being offered a venue at GitHub HQ for a community meetup. It picked up from there - interviews, speaking on panels, and after-parties - this 2-day event spun into a 7-day trip to San Francisco. Not only was this my first event as a part of an open source project, but it was also my first time meeting [Paulus](https://github.com/balloob) and [Frenck](https://github.com/frenck) in person. Paulus is taller than I expected 😅 and Frenck has legs! 😱
While there is a lot of good news for us that came out of GitHub Universe (and I _will_ get to that), I would be a poor community manager if I didn't start this out with the first in-person meetup I coordinated for Home Assistant. 😌
I knew immediately that I needed custom swag for the event, and got to work with our Graphic Artist, Clelia. We wanted to make sure it was connected to where we were holding the meetup and that it was collectible - we landed on postcards and pins in the shape of stamps.
<p class='img'><img src='/images/blog/2024-11-universe/postcard-badge.png' alt="postcard and badge">Limited edition San Fran postcard and badge</p>
And, of course, you can't go to an event without stickers, so we took our Home Assistant and ESPHome logos with an Open Home Foundation badge and made holographic stickers. ✨
<img src='/images/blog/2024-11-universe/shiny.png' alt="our shiny stickers" style='border: 0;box-shadow: none;'>
The event itself ended up being a small gathering, but it was filled with amazing connections and conversations. Paulus and Frenck talked for over an hour about the status of Home Assistant and what we're working on right now, then took questions from the community members. It was great talking to everyone who attended - being able to bring people from different aspects of life together energizes me, and I am excited to plan whatever the next meetup will be. 👀
<p class='img'><img src='/images/blog/2024-11-universe/meetup-audience.jpg' alt="Universe meetup ahead of the event at GitHub HQ"></p>
## We are number 1!
<p class='img'><img src='/images/blog/2024-11-universe/number-1.png' alt="We are number one"></p>
It was an honor just for Home Assistant to be asked to speak at the Day 2 Keynote; what we _didn't_ know when we started this ride was that the keynote would announce something new: **we are the #1 open source project on GitHub** by active contributors!! 🎉 Not only that, on the rankings for first-time contributors, we moved up to 2nd place, and an Open Home Foundation collaboration partner, [Zigbee2MQTT](https://www.zigbee2mqtt.io/), is also now in the top 10! 🥳 This is all featured in the [GitHub Octoverse 2024 report](https://github.blog/news-insights/octoverse/octoverse-2024/), which is a really interesting read.
<img src='/images/blog/2024-11-universe/octoverse-contributors.png' style='border: 0;box-shadow: none;' alt="top five projects by contributors - source GitHub Octoverse 2024 report">
Our friends at GitHub did a great job of making sure we were surprised by this news---and believe me when I say we lost our collective minds when they revealed it to us. 😎 We also found out that we've won GitHub's [Wonderfully Welcoming Award](https://github.blog/news-insights/company-news/celebrating-the-github-awards-2024-recipients/#wonderfully-welcoming-award), which recognizes how we attract and support new contributors to our project.
<img src='/images/blog/2024-11-universe/wonderfully-welcoming.png' style='border: 0;box-shadow: none;' alt="Wonderfully welcoming award">
## Open Source - ⭐️ of the show
Paulus and Frenck were at keynote rehearsals Friday, Sunday, and Monday to be prepared for Wednesday. So I picked up my badge Monday morning, which was a hackable board with an e-ink display programmed to show our names - the little details they put into this event were quite pleasing. 🤩
There was a community session where GitHub showed off a little of what they would reveal on Day 2. At the breakout session, I was able to share our pain points about moderating a community directly on GitHub, and it was good to hear how other projects do this on the platform.
<p class='img'><img src='/images/blog/2024-11-universe/day-1-keynote.jpg' alt="Paulus, Frenck and myself at the Day 1 keynote">Paulus, Frenck and myself at the Day 1 keynote</p>
Day 1 is when we had our booth in the [Open Source Zone](https://github.blog/open-source/10-projects-in-the-open-source-zone-at-github-universe-2024/), but I was also set to represent Home Assistant at a panel. The session was called [Cha-ching! How to attract funding for your open source projects](https://reg.githubuniverse.com/flow/github/universe24/attendee-portal/page/sessioncatalog/session/1715376172449001OEqW); I was very excited to tell our story since Home Assistant is funded by y'all - the community - through our [Home Assistant Cloud subscription](/cloud/), and not investors. I was pleasantly surprised to hear that others on the panel shared our approach to building a sustainable project through community support! I had great conversations with several people working on other open source projects like Homebrew and Ladybird.
Our booth was a great success, and we had so many members of the community come up to us to let us know how much they love Home Assistant, along with some people who had never heard of us curious to learn more. We were surprised to hear that some people had not yet tried the [new Sections dashboard](/blog/2024/11/06/release-202411/#sections-dashboard-no-longer-experimental), which we were demoing at the booth. It was really useful to get this feedback in person. All of them took stickers. 😆
<p class='img'><img src='/images/blog/2024-11-universe/booth.jpg' alt="Our booth in the Open Source Zone">Our booth in the <a href="https://github.blog/open-source/10-projects-in-the-open-source-zone-at-github-universe-2024/">Open Source Zone</a></p>
Day 2 was when Paulus and Frenck took the stage, and I got there early to ensure I got a good seat up front. We had not only a good crowd in person, but [Joost](https://github.com/joostlek) hosted a watch party on the Community Stage in [our Discord server](/join-chat)!
<p class='img'><img src='/images/blog/2024-11-universe/ha-keynote.jpg' alt="Frenck and Paulus on the keynote stage representing Home Assistant">Their final message to the crowd - <i>what are you going to build?</i></p>
The guys did amazing up on stage! 🤩 It was wonderful to see Paulus explain why Home Assistant was built and how it connects to GitHub's ambitious goal of 1 billion developers. Frenck shared not only what we've done to grow the largest open community on GitHub, but also how the community collectively shapes the project's direction. [Kyle Daigle](https://github.com/kdaigle), a fellow Home Assistant user and GitHub COO, joined Frenck and Paulus on stage and did a really fun Home Assistant live demo. Paulus also shared how he secured the future of the project by giving it to the [Open Home Foundation](https://www.openhomefoundation.org/), and its mission to bring privacy, choice, and sustainability to the smart home. Catch their segment [here](https://www.youtube.com/watch?v=uh9A4LvuGHM&t=679s), but I would recommend watching the entire keynote - GitHub is doing good stuff for new developers. 😌
<lite-youtube videoid="uh9A4LvuGHM" videoStartAt="679" videotitle="GitHub Universe Day 2 Keynote - featuring Home Assistant"></lite-youtube>
After the keynote, Paulus and Frenck both did interviews, and even gave away an extra Home Assistant Green we brought to the guest speaker representing [Hack Club](https://github.com/hackclub). We spent the rest of the day on the show floor, meeting more of the community and enjoying all the fun.
## Connecting with the community
It was an amazing event, and so nice to meet my colleagues Paulus and Frenck after months of working with them remotely. Most of all, it was great to meet the community, get feedback and hear how Home Assistant improves their lives. Thanks to everyone who took the time to talk to us! 🥰
GitHub was an incredible host, and it was nice to give something back to them after so many years of support they have given this project. At Universe, they gave us a platform to explain how important our community is and how your support has kept Home Assistant thriving and continuously growing - becoming the top open source project on the platform. The next time you see a blog from me should be when I announce Home Assistant Community Day. 😌

View File

@ -1326,6 +1326,336 @@ For a summary in a more readable format:
- Bump go2rtc-client to 0.1.0 ([@edenhaus] - [#129965])
- Add state invitation to list access sensor in Bring integration ([@tr4nt0r] - [#129960])
## Release 2024.11.1 - November 8
- Bump intents to 2024.11.6 ([@synesthesiam] - [#129982])
- Fix Trunks in Teslemetry and Tesla Fleet ([@Bre77] - [#129986])
- Update sense energy library to 0.13.3 ([@kbickar] - [#129998])
- Bump google-nest-sdm to 6.1.4 ([@allenporter] - [#130005])
- Add missing placeholder description to twitch ([@epenet] - [#130013])
- Bump agent-py to 0.0.24 ([@ispysoftware] - [#130018])
- Don't create repairs asking user to remove duplicate ignored config entries ([@emontnemery] - [#130056])
- Fix `KeyError` in nest integration when the old key format does not exist ([@allenporter] - [#130057])
- Don't create repairs asking user to remove duplicate flipr config entries ([@emontnemery] - [#130058])
- Add missing string to tedee plus test ([@zweckj] - [#130081])
- Force int value on port in P1Monitor ([@klaasnicolaas] - [#130084])
- Fix typo in insteon strings ([@KelvinDekker] - [#130085])
- Update frontend to 20241106.1 ([@bramkragten] - [#130086])
- Bump python-roborock to 2.7.2 ([@Lash-L] - [#130100])
- Update frontend to 20241106.2 ([@bramkragten] - [#130128])
- Fix issue when timestamp is None ([@shaiu] - [#130133])
- Add go2rtc workaround for HA managed one until upstream fixes it ([@edenhaus] - [#130139])
- Bump spotifyaio to 0.8.7 ([@joostlek] - [#130140])
- Bump ha-ffmpeg to 3.2.2 ([@MartinHjelmare] - [#130142])
- Fix volume_up not working in some cases in bluesound integration ([@LouisChrist] - [#130146])
- Fix bugs in nest stream expiration handling ([@allenporter] - [#130150])
- Refrase imap fetch service description string ([@jbouwh] - [#130152])
[@Bre77]: https://github.com/Bre77
[@KelvinDekker]: https://github.com/KelvinDekker
[@Lash-L]: https://github.com/Lash-L
[@LouisChrist]: https://github.com/LouisChrist
[@MartinHjelmare]: https://github.com/MartinHjelmare
[@allenporter]: https://github.com/allenporter
[@bramkragten]: https://github.com/bramkragten
[@edenhaus]: https://github.com/edenhaus
[@emontnemery]: https://github.com/emontnemery
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@ispysoftware]: https://github.com/ispysoftware
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@kbickar]: https://github.com/kbickar
[@klaasnicolaas]: https://github.com/klaasnicolaas
[@shaiu]: https://github.com/shaiu
[@synesthesiam]: https://github.com/synesthesiam
[@zweckj]: https://github.com/zweckj
[#129970]: https://github.com/home-assistant/core/pull/129970
[#129982]: https://github.com/home-assistant/core/pull/129982
[#129986]: https://github.com/home-assistant/core/pull/129986
[#129998]: https://github.com/home-assistant/core/pull/129998
[#130005]: https://github.com/home-assistant/core/pull/130005
[#130013]: https://github.com/home-assistant/core/pull/130013
[#130018]: https://github.com/home-assistant/core/pull/130018
[#130056]: https://github.com/home-assistant/core/pull/130056
[#130057]: https://github.com/home-assistant/core/pull/130057
[#130058]: https://github.com/home-assistant/core/pull/130058
[#130081]: https://github.com/home-assistant/core/pull/130081
[#130084]: https://github.com/home-assistant/core/pull/130084
[#130085]: https://github.com/home-assistant/core/pull/130085
[#130086]: https://github.com/home-assistant/core/pull/130086
[#130100]: https://github.com/home-assistant/core/pull/130100
[#130128]: https://github.com/home-assistant/core/pull/130128
[#130133]: https://github.com/home-assistant/core/pull/130133
[#130139]: https://github.com/home-assistant/core/pull/130139
[#130140]: https://github.com/home-assistant/core/pull/130140
[#130142]: https://github.com/home-assistant/core/pull/130142
[#130146]: https://github.com/home-assistant/core/pull/130146
[#130150]: https://github.com/home-assistant/core/pull/130150
[#130152]: https://github.com/home-assistant/core/pull/130152
## Release 2024.11.2 - November 15
- Bump aiohttp to 3.10.11 ([@bdraco] - [#130483])
- Fix RecursionError in Husqvarna Automower coordinator ([@Thomas55555] - [#123085])
- Bump python-linkplay to v0.0.18 ([@silamon] - [#130159])
- Allow dynamic max preset in linkplay play preset ([@silamon] - [#130160])
- No longer thrown an error when device is offline in linkplay ([@silamon] - [#130161])
- Fix translations in ollama ([@sheldonip] - [#130164])
- Bump nice-go to 0.3.10 ([@IceBotYT] - [#130173])
- Fix wording in Google Calendar create_event strings for consistency ([@maxshcherbina] - [#130183])
- Fix uptime sensor for Vodafone Station ([@chemelli74] - [#130215])
- Bump pyTibber ([@Danielhiversen] - [#130216])
- Bump SoCo to 0.30.6 ([@jjlawren] - [#130223])
- Bump google-nest-sdm to 6.1.5 ([@allenporter] - [#130229])
- Rename "CO2 Signal" display name to Electricity Maps for consistency ([@corradio] - [#130242])
- Update generic thermostat strings for clarity and accuracy ([@maxshcherbina] - [#130243])
- Fix translation key for `done` response in conversation ([@mib1185] - [#130247])
- Improve nest camera stream expiration to be defensive against errors ([@allenporter] - [#130265])
- Add more f-series models to myuplink ([@astrandb] - [#130283])
- Make Hydrawise poll non-critical data less frequently ([@dknowles2] - [#130289])
- Ignore WebRTC candidates for nest cameras ([@allenporter] - [#130294])
- Avoid Shelly data update during shutdown ([@chemelli74] - [#130301])
- Fix Homekit error handling alarm state unknown or unavailable ([@gjohansson-ST] - [#130311])
- Fix fan's warning TURN_ON, TURN_OFF ([@LG-ThinQ-Integration] - [#130327])
- Bump python-linkplay to 0.0.20 ([@silamon] - [#130348])
- Add seek support to LinkPlay ([@silamon] - [#130349])
- Add Spotify and Tidal to playingmode mapping ([@silamon] - [#130351])
- Disable brightness from devices with no display in Cambridge Audio ([@noahhusby] - [#130369])
- Use f-strings in go2rtc code and test and do not use abbreviation ([@jbouwh] - [#130158])
- Fix typo in go2rtc ([@jbouwh] - [#130165])
- Go2rtc bump and set ffmpeg logs to debug ([@edenhaus] - [#130371])
- Bump spotifyaio to 0.8.8 ([@joostlek] - [#130372])
- Bump Tibber 0.30.8 ([@Danielhiversen] - [#130388])
- Fix missing title placeholders in powerwall reauth ([@bdraco] - [#130389])
- Bump ring library ring-doorbell to 0.9.9 ([@sdb9696] - [#129966])
- Bump ring-doorbell to 0.9.12 ([@sdb9696] - [#130419])
- Do not trigger events for updated ring events ([@sdb9696] - [#130430])
- Add title to water heater component ([@joostlek] - [#130446])
- Fix translation in statistics ([@gjohansson-ST] - [#130455])
- Fix typo in file strings ([@KelvinDekker] - [#130465])
- Bump aiowithings to 3.1.2 ([@joostlek] - [#130469])
- Ensure ZHA setup works with container installs ([@puddly] - [#130470])
- Fix legacy _attr_state handling in AlarmControlPanel ([@gjohansson-ST] - [#130479])
- Bump reolink_aio to 0.11.0 ([@starkillerOG] - [#130481])
- Fix translations in subaru ([@sheldonip] - [#130486])
- Bump aioruckus to 0.42 ([@ms264556] - [#130487])
- Bump go2rtc-client to 0.1.1 ([@edenhaus] - [#130498])
- Bump aiowithings to 3.1.3 ([@joostlek] - [#130504])
- Add go2rtc recommended version ([@edenhaus] - [#130508])
- fix translation in srp_energy ([@briglx] - [#130540])
- Fix non-thread-safe operation in powerview number ([@bdraco] - [#130557])
- Bump ZHA dependencies ([@puddly] - [#130563])
- Update uptime deviation for Vodafone Station ([@chemelli74] - [#130571])
- Fixes webhook schema for different temp and volume units ([@JohNan] - [#130578])
- Bump reolink-aio to 0.11.1 ([@starkillerOG] - [#130600])
- Fix hassfest by adding go2rtc reqs ([@edenhaus] - [#130602])
- Add missing translation string to smarty ([@epenet] - [#130624])
- Bump sense-energy to 0.13.4 ([@kbickar] - [#130625])
- Fix scene loading issue ([@alistairg] - [#130627])
- Add missing translation string to hvv_departures ([@epenet] - [#130634])
- Add missing translation string to lg_netcast ([@epenet] - [#130635])
- Add missing translation string to philips_js ([@epenet] - [#130637])
- Bump pyplaato to 0.0.19 ([@JohNan] - [#130641])
- Remove dumping config entry to log in setup of roborock ([@jpbede] - [#130648])
- Fix missing translations in vilfo ([@epenet] - [#130650])
- Fix missing translations in utility_meter ([@epenet] - [#130652])
- Fix missing translations in tradfri ([@epenet] - [#130654])
- Fix missing translations in toon ([@epenet] - [#130655])
- Fix missing translations in madvr ([@epenet] - [#130656])
- Fix missing translations in generic ([@epenet] - [#130672])
- Fix missing translations in onewire ([@epenet] - [#130673])
- Bump python-smarttub to 0.0.38 ([@mdz] - [#130679])
[#123085]: https://github.com/home-assistant/core/pull/123085
[#129966]: https://github.com/home-assistant/core/pull/129966
[#129970]: https://github.com/home-assistant/core/pull/129970
[#130156]: https://github.com/home-assistant/core/pull/130156
[#130158]: https://github.com/home-assistant/core/pull/130158
[#130159]: https://github.com/home-assistant/core/pull/130159
[#130160]: https://github.com/home-assistant/core/pull/130160
[#130161]: https://github.com/home-assistant/core/pull/130161
[#130164]: https://github.com/home-assistant/core/pull/130164
[#130165]: https://github.com/home-assistant/core/pull/130165
[#130173]: https://github.com/home-assistant/core/pull/130173
[#130183]: https://github.com/home-assistant/core/pull/130183
[#130215]: https://github.com/home-assistant/core/pull/130215
[#130216]: https://github.com/home-assistant/core/pull/130216
[#130223]: https://github.com/home-assistant/core/pull/130223
[#130229]: https://github.com/home-assistant/core/pull/130229
[#130242]: https://github.com/home-assistant/core/pull/130242
[#130243]: https://github.com/home-assistant/core/pull/130243
[#130247]: https://github.com/home-assistant/core/pull/130247
[#130265]: https://github.com/home-assistant/core/pull/130265
[#130283]: https://github.com/home-assistant/core/pull/130283
[#130289]: https://github.com/home-assistant/core/pull/130289
[#130294]: https://github.com/home-assistant/core/pull/130294
[#130301]: https://github.com/home-assistant/core/pull/130301
[#130311]: https://github.com/home-assistant/core/pull/130311
[#130327]: https://github.com/home-assistant/core/pull/130327
[#130348]: https://github.com/home-assistant/core/pull/130348
[#130349]: https://github.com/home-assistant/core/pull/130349
[#130351]: https://github.com/home-assistant/core/pull/130351
[#130369]: https://github.com/home-assistant/core/pull/130369
[#130371]: https://github.com/home-assistant/core/pull/130371
[#130372]: https://github.com/home-assistant/core/pull/130372
[#130388]: https://github.com/home-assistant/core/pull/130388
[#130389]: https://github.com/home-assistant/core/pull/130389
[#130419]: https://github.com/home-assistant/core/pull/130419
[#130430]: https://github.com/home-assistant/core/pull/130430
[#130446]: https://github.com/home-assistant/core/pull/130446
[#130455]: https://github.com/home-assistant/core/pull/130455
[#130465]: https://github.com/home-assistant/core/pull/130465
[#130469]: https://github.com/home-assistant/core/pull/130469
[#130470]: https://github.com/home-assistant/core/pull/130470
[#130479]: https://github.com/home-assistant/core/pull/130479
[#130481]: https://github.com/home-assistant/core/pull/130481
[#130483]: https://github.com/home-assistant/core/pull/130483
[#130486]: https://github.com/home-assistant/core/pull/130486
[#130487]: https://github.com/home-assistant/core/pull/130487
[#130498]: https://github.com/home-assistant/core/pull/130498
[#130504]: https://github.com/home-assistant/core/pull/130504
[#130508]: https://github.com/home-assistant/core/pull/130508
[#130540]: https://github.com/home-assistant/core/pull/130540
[#130557]: https://github.com/home-assistant/core/pull/130557
[#130563]: https://github.com/home-assistant/core/pull/130563
[#130571]: https://github.com/home-assistant/core/pull/130571
[#130578]: https://github.com/home-assistant/core/pull/130578
[#130600]: https://github.com/home-assistant/core/pull/130600
[#130602]: https://github.com/home-assistant/core/pull/130602
[#130624]: https://github.com/home-assistant/core/pull/130624
[#130625]: https://github.com/home-assistant/core/pull/130625
[#130627]: https://github.com/home-assistant/core/pull/130627
[#130634]: https://github.com/home-assistant/core/pull/130634
[#130635]: https://github.com/home-assistant/core/pull/130635
[#130637]: https://github.com/home-assistant/core/pull/130637
[#130641]: https://github.com/home-assistant/core/pull/130641
[#130648]: https://github.com/home-assistant/core/pull/130648
[#130650]: https://github.com/home-assistant/core/pull/130650
[#130652]: https://github.com/home-assistant/core/pull/130652
[#130654]: https://github.com/home-assistant/core/pull/130654
[#130655]: https://github.com/home-assistant/core/pull/130655
[#130656]: https://github.com/home-assistant/core/pull/130656
[#130672]: https://github.com/home-assistant/core/pull/130672
[#130673]: https://github.com/home-assistant/core/pull/130673
[#130679]: https://github.com/home-assistant/core/pull/130679
[@Danielhiversen]: https://github.com/Danielhiversen
[@IceBotYT]: https://github.com/IceBotYT
[@JohNan]: https://github.com/JohNan
[@KelvinDekker]: https://github.com/KelvinDekker
[@LG-ThinQ-Integration]: https://github.com/LG-ThinQ-Integration
[@Thomas55555]: https://github.com/Thomas55555
[@alistairg]: https://github.com/alistairg
[@allenporter]: https://github.com/allenporter
[@astrandb]: https://github.com/astrandb
[@bdraco]: https://github.com/bdraco
[@briglx]: https://github.com/briglx
[@chemelli74]: https://github.com/chemelli74
[@corradio]: https://github.com/corradio
[@dknowles2]: https://github.com/dknowles2
[@edenhaus]: https://github.com/edenhaus
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@jbouwh]: https://github.com/jbouwh
[@jjlawren]: https://github.com/jjlawren
[@joostlek]: https://github.com/joostlek
[@jpbede]: https://github.com/jpbede
[@kbickar]: https://github.com/kbickar
[@maxshcherbina]: https://github.com/maxshcherbina
[@mdz]: https://github.com/mdz
[@mib1185]: https://github.com/mib1185
[@ms264556]: https://github.com/ms264556
[@noahhusby]: https://github.com/noahhusby
[@puddly]: https://github.com/puddly
[@sdb9696]: https://github.com/sdb9696
[@sheldonip]: https://github.com/sheldonip
[@silamon]: https://github.com/silamon
[@starkillerOG]: https://github.com/starkillerOG
## Release 2024.11.3 - November 22
- Prevent endless loop in recorder when using a filter and there are no more states to purge ([@davinkevin] - [#126149])
- Fix and bump apsystems-ez1 to 2.4.0 ([@patman15] - [#130740])
- Fix file uploads in MQTT config flow not processed in executor ([@jbouwh] - [#130746])
- Update twentemilieu to 2.1.0 ([@frenck] - [#130752])
- Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices ([@mib1185] - [#130788])
- Bump homematicip to 1.1.3 ([@hahn-th] - [#130824])
- UPB integration: Change unique ID from int to string. ([@gwww] - [#130832])
- Reolink fix dev/entity id migration ([@starkillerOG] - [#130836])
- Use default device sensors also for AirQ devices in Sensibo ([@gjohansson-ST] - [#130841])
- Pass config_entry explicitly in rachio ([@epenet] - [#130865])
- Bump bluetooth-adapters to 0.20.2 ([@bdraco] - [#130877])
- Fixed Small Inaccuracy in Description String for myUplink ([@CharlesYuan02] - [#130900])
- Unscape HTML Entities from RSS feeds ([@skgsergio] - [#130915])
- Update elmax_api to v0.0.6.1 ([@ElmaxSrl] - [#130917])
- Bump aioairq to 0.4.3 ([@Sibgatulin] - [#130963])
- Strip whitespaces from host in ping config flow ([@jpbede] - [#130970])
- Add more UI user-friendly description to six Supervisor actions ([@NoRi2909] - [#130971])
- Add missing catholic category in workday ([@gjohansson-ST] - [#130983])
- Bump holidays to 0.61 ([@gjohansson-ST] - [#130984])
- Bump aioairzone to 0.9.6 ([@Noltari] - [#130559])
- Update aioairzone to v0.9.7 ([@Noltari] - [#131033])
- Replace "service" with "action" in zha:reconfigure_device ([@NoRi2909] - [#131111])
- Fix typo in name of "Alarm arm home instant" action ([@NoRi2909] - [#131151])
- Fix cast translation string ([@NoRi2909] - [#131156])
- Fix typo in ESPHome repair text ([@jesserockz] - [#131200])
- Reolink log fast poll errors once ([@starkillerOG] - [#131203])
- Fix fibaro cover state is not always correct ([@rappenze] - [#131206])
- Bump reolink_aio to 0.11.2 ([@starkillerOG] - [#131237])
[#126149]: https://github.com/home-assistant/core/pull/126149
[#129970]: https://github.com/home-assistant/core/pull/129970
[#130156]: https://github.com/home-assistant/core/pull/130156
[#130559]: https://github.com/home-assistant/core/pull/130559
[#130713]: https://github.com/home-assistant/core/pull/130713
[#130740]: https://github.com/home-assistant/core/pull/130740
[#130746]: https://github.com/home-assistant/core/pull/130746
[#130752]: https://github.com/home-assistant/core/pull/130752
[#130788]: https://github.com/home-assistant/core/pull/130788
[#130824]: https://github.com/home-assistant/core/pull/130824
[#130832]: https://github.com/home-assistant/core/pull/130832
[#130836]: https://github.com/home-assistant/core/pull/130836
[#130841]: https://github.com/home-assistant/core/pull/130841
[#130865]: https://github.com/home-assistant/core/pull/130865
[#130877]: https://github.com/home-assistant/core/pull/130877
[#130900]: https://github.com/home-assistant/core/pull/130900
[#130915]: https://github.com/home-assistant/core/pull/130915
[#130917]: https://github.com/home-assistant/core/pull/130917
[#130963]: https://github.com/home-assistant/core/pull/130963
[#130970]: https://github.com/home-assistant/core/pull/130970
[#130971]: https://github.com/home-assistant/core/pull/130971
[#130983]: https://github.com/home-assistant/core/pull/130983
[#130984]: https://github.com/home-assistant/core/pull/130984
[#131033]: https://github.com/home-assistant/core/pull/131033
[#131111]: https://github.com/home-assistant/core/pull/131111
[#131151]: https://github.com/home-assistant/core/pull/131151
[#131156]: https://github.com/home-assistant/core/pull/131156
[#131200]: https://github.com/home-assistant/core/pull/131200
[#131203]: https://github.com/home-assistant/core/pull/131203
[#131206]: https://github.com/home-assistant/core/pull/131206
[#131237]: https://github.com/home-assistant/core/pull/131237
[@CharlesYuan02]: https://github.com/CharlesYuan02
[@ElmaxSrl]: https://github.com/ElmaxSrl
[@NoRi2909]: https://github.com/NoRi2909
[@Noltari]: https://github.com/Noltari
[@Sibgatulin]: https://github.com/Sibgatulin
[@bdraco]: https://github.com/bdraco
[@davinkevin]: https://github.com/davinkevin
[@epenet]: https://github.com/epenet
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@gwww]: https://github.com/gwww
[@hahn-th]: https://github.com/hahn-th
[@jbouwh]: https://github.com/jbouwh
[@jesserockz]: https://github.com/jesserockz
[@jpbede]: https://github.com/jpbede
[@mib1185]: https://github.com/mib1185
[@patman15]: https://github.com/patman15
[@rappenze]: https://github.com/rappenze
[@skgsergio]: https://github.com/skgsergio
[@starkillerOG]: https://github.com/starkillerOG
[#102871]: https://github.com/home-assistant/core/pull/102871
[#108171]: https://github.com/home-assistant/core/pull/108171
[#108326]: https://github.com/home-assistant/core/pull/108326

View File

@ -24,4 +24,12 @@ Creating an automation for polling gives you more flexibility on when to poll:
{% include common-tasks/define_custom_polling.md %}
{% include common-tasks/remove_device_service.md %}
## Removing an integration instance
If you no longer want to use a device or service in Home Assistant, you can remove the integration instance including the device or service with all its entities.
The following steps describe the general steps needed to remove an integration instance. Depending on the integration, additional steps can be needed, such as resetting the device or to delete credentials. Refer to the integration documentation to see if additional steps are needed.
{% include integrations/remove_device_service.md %}
![Screenshot showing how to remove an integration instance](/images/docs/configuration/integration_instance_delete.png)

View File

@ -96,7 +96,7 @@ This will leave the default dashboard intact.
- The **Edit dashboard** dialog appears.
- By editing the dashboard, you are taking over control of this dashboard.
- This means that it is no longer automatically updated when new dashboard elements become available.
- Once you've taken control, ou can't get this specific dashboard back to update automatically. However, you can create a new default dashboard.
- Once you've taken control, you can't get this specific dashboard back to update automatically. However, you can create a new default dashboard.
- To continue, in the dialog, select the three dots {% icon "mdi:dots-vertical" %} menu, then select **Take control**.
7. You can now [add a card](/dashboards/cards/#adding-cards-to-your-dashboard) or [add a view](/dashboards/views/#adding-a-view-to-a-dashboard).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Some files were not shown because too many files have changed in this diff Show More