mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-08-04 15:08:04 +00:00
Merge branch 'next' into 2025.8
This commit is contained in:
commit
bcf0fb7a28
54
.github/ISSUE_TEMPLATE/task.yml
vendored
Normal file
54
.github/ISSUE_TEMPLATE/task.yml
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
name: Task
|
||||
description: For staff only - Create a task
|
||||
type: Task
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## ⚠️ RESTRICTED ACCESS
|
||||
|
||||
**This form is restricted to Open Home Foundation staff, authorized contributors, and integration code owners only.**
|
||||
|
||||
If you are a community member wanting to contribute, please:
|
||||
- For bug reports: Use the [bug report form](https://github.com/home-assistant/core/issues/new?template=bug_report.yml)
|
||||
- For feedback: Use the [feedback form](https://github.com/home-assistant/home-assistant.io/issues/new?template=feedback.yml)
|
||||
- For feature requests: Submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)
|
||||
|
||||
---
|
||||
|
||||
### For authorized contributors
|
||||
|
||||
Use this form to create tasks for development work, improvements, or other actionable items that need to be tracked.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Provide a clear and detailed description of the task that needs to be accomplished.
|
||||
|
||||
Be specific about what needs to be done, why it's important, and any constraints or requirements.
|
||||
placeholder: |
|
||||
Describe the task, including:
|
||||
- What needs to be done
|
||||
- Why this task is needed
|
||||
- Expected outcome
|
||||
- Any constraints or requirements
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: |
|
||||
Any additional information, links, research, or context that would be helpful.
|
||||
|
||||
Include links to related issues, research, prototypes, roadmap opportunities etc.
|
||||
placeholder: |
|
||||
- Roadmap opportunity: [link]
|
||||
- Epic: [link]
|
||||
- Feature request: [link]
|
||||
- Technical design documents: [link]
|
||||
- Prototype/mockup: [link]
|
||||
- Dependencies: [links]
|
||||
validations:
|
||||
required: false
|
85
.github/workflows/restrict-task-creation.yml
vendored
Normal file
85
.github/workflows/restrict-task-creation.yml
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
name: Restrict task creation
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
check-authorization:
|
||||
runs-on: ubuntu-latest
|
||||
# Only run if this is a Task issue type (from the issue form)
|
||||
if: github.event.issue.issue_type == 'Task'
|
||||
steps:
|
||||
- name: Check if user is authorized
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const issueAuthor = context.payload.issue.user.login;
|
||||
|
||||
// First check if user is an organization member
|
||||
try {
|
||||
await github.rest.orgs.checkMembershipForUser({
|
||||
org: 'home-assistant',
|
||||
username: issueAuthor
|
||||
});
|
||||
console.log(`✅ ${issueAuthor} is an organization member`);
|
||||
return; // Authorized, no need to check further
|
||||
} catch (error) {
|
||||
console.log(`ℹ️ ${issueAuthor} is not an organization member, checking codeowners...`);
|
||||
}
|
||||
|
||||
// If not an org member, check if they're a codeowner
|
||||
try {
|
||||
// Fetch CODEOWNERS file from the repository
|
||||
const { data: codeownersFile } = await github.rest.repos.getContent({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
path: 'CODEOWNERS',
|
||||
ref: 'dev'
|
||||
});
|
||||
|
||||
// Decode the content (it's base64 encoded)
|
||||
const codeownersContent = Buffer.from(codeownersFile.content, 'base64').toString('utf-8');
|
||||
|
||||
// Check if the issue author is mentioned in CODEOWNERS
|
||||
// GitHub usernames in CODEOWNERS are prefixed with @
|
||||
if (codeownersContent.includes(`@${issueAuthor}`)) {
|
||||
console.log(`✅ ${issueAuthor} is an integration code owner`);
|
||||
return; // Authorized
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error checking CODEOWNERS:', error);
|
||||
}
|
||||
|
||||
// If we reach here, user is not authorized
|
||||
console.log(`❌ ${issueAuthor} is not authorized to create Task issues`);
|
||||
|
||||
// Close the issue with a comment
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number,
|
||||
body: `Hi @${issueAuthor}, thank you for your contribution!\n\n` +
|
||||
`Task issues are restricted to Open Home Foundation staff, authorized contributors, and integration code owners.\n\n` +
|
||||
`If you would like to:\n` +
|
||||
`- Report a bug: Please use the [bug report form](https://github.com/home-assistant/core/issues/new?template=bug_report.yml)\n` +
|
||||
`- For feedback: Use the [feedback form](https://github.com/home-assistant/home-assistant.io/issues/new?template=feedback.yml)\n` +
|
||||
`- Request a feature: Please submit to [Feature Requests](https://github.com/orgs/home-assistant/discussions)\n\n` +
|
||||
`If you believe you should have access to create Task issues, please contact the maintainers.`
|
||||
});
|
||||
|
||||
await github.rest.issues.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number,
|
||||
state: 'closed'
|
||||
});
|
||||
|
||||
// Add a label to indicate this was auto-closed
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number,
|
||||
labels: ['auto-closed']
|
||||
});
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,6 +8,7 @@ source/_data/analytics_data.json
|
||||
source/_data/blueprint_exchange_data.json
|
||||
source/_data/version_data.json
|
||||
source/_data/alerts_data.json
|
||||
source/_data/language_scores.json
|
||||
source/_stash
|
||||
source/stylesheets/screen.css
|
||||
source/.jekyll-cache/
|
||||
|
6
Gemfile
6
Gemfile
@ -11,8 +11,8 @@ group :development do
|
||||
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
|
||||
gem 'sassc', '2.1.0'
|
||||
gem 'sass-embedded', '1.89.2'
|
||||
gem 'rubocop', '1.77.0'
|
||||
gem 'ruby-lsp', '0.24.2'
|
||||
gem 'rubocop', '1.79.0'
|
||||
gem 'ruby-lsp', '0.26.1'
|
||||
gem 'rackup', '2.2.1'
|
||||
end
|
||||
|
||||
@ -24,7 +24,7 @@ group :jekyll_plugins do
|
||||
end
|
||||
|
||||
gem 'sinatra', '4.1.1'
|
||||
gem 'nokogiri', '1.18.8'
|
||||
gem 'nokogiri', '1.18.9'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
37
Gemfile.lock
37
Gemfile.lock
@ -70,7 +70,7 @@ GEM
|
||||
nokogiri (~> 1.12)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.12.2)
|
||||
json (2.13.2)
|
||||
kramdown (2.5.1)
|
||||
rexml (>= 3.3.9)
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
@ -83,15 +83,15 @@ GEM
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.7.0)
|
||||
mercenary (0.4.0)
|
||||
multi_json (1.15.0)
|
||||
multi_json (1.17.0)
|
||||
mustermann (3.0.3)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.18.8-arm64-darwin)
|
||||
nokogiri (1.18.9-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.18.8-x86_64-linux-gnu)
|
||||
nokogiri (1.18.9-x86_64-linux-gnu)
|
||||
racc (~> 1.4)
|
||||
parallel (1.27.0)
|
||||
parser (3.3.8.0)
|
||||
parser (3.3.9.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pathutil (0.16.2)
|
||||
@ -118,8 +118,8 @@ GEM
|
||||
logger
|
||||
regexp_parser (2.10.0)
|
||||
rexml (3.4.1)
|
||||
rouge (4.5.2)
|
||||
rubocop (1.77.0)
|
||||
rouge (4.6.0)
|
||||
rubocop (1.79.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.1.0)
|
||||
@ -127,25 +127,24 @@ GEM
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.9.3, < 3.0)
|
||||
rubocop-ast (>= 1.45.1, < 2.0)
|
||||
rubocop-ast (>= 1.46.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
tsort (>= 0.2.0)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.45.1)
|
||||
rubocop-ast (1.46.0)
|
||||
parser (>= 3.3.7.2)
|
||||
prism (~> 1.4)
|
||||
ruby-lsp (0.24.2)
|
||||
ruby-lsp (0.26.1)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 1.2, < 2.0)
|
||||
rbs (>= 3, < 5)
|
||||
sorbet-runtime (>= 0.5.10782)
|
||||
ruby-progressbar (1.13.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-embedded (1.89.2-arm64-darwin)
|
||||
google-protobuf (~> 4.31)
|
||||
sass-embedded (1.89.2-x86_64-linux-gnu)
|
||||
sass-embedded (1.89.2)
|
||||
google-protobuf (~> 4.31)
|
||||
rake (>= 13)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
sassc (2.1.0)
|
||||
@ -159,11 +158,11 @@ GEM
|
||||
rack-protection (= 4.1.1)
|
||||
rack-session (>= 2.0.0, < 3)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.12216)
|
||||
stringex (2.8.6)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
tilt (2.6.0)
|
||||
tilt (2.6.1)
|
||||
tsort (0.2.0)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
tzinfo-data (1.2025.2)
|
||||
@ -182,11 +181,11 @@ DEPENDENCIES
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.19.0)
|
||||
nokogiri (= 1.18.8)
|
||||
nokogiri (= 1.18.9)
|
||||
rackup (= 2.2.1)
|
||||
rake (= 13.3.0)
|
||||
rubocop (= 1.77.0)
|
||||
ruby-lsp (= 0.24.2)
|
||||
rubocop (= 1.79.0)
|
||||
ruby-lsp (= 0.26.1)
|
||||
sass-embedded (= 1.89.2)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
|
14
Rakefile
14
Rakefile
@ -30,6 +30,8 @@ task :generate do
|
||||
abort("Generating alerts data failed") unless success
|
||||
success = system "rake version_data"
|
||||
abort("Generating version data failed") unless success
|
||||
success = system "rake language_scores_data"
|
||||
abort("Generating language scores data failed") unless success
|
||||
success = system "jekyll build"
|
||||
abort("Generating site failed") unless success
|
||||
if ENV["CONTEXT"] != 'production'
|
||||
@ -67,6 +69,7 @@ task :preview, :listen do |t, args|
|
||||
system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
|
||||
system "rake analytics_data"
|
||||
system "rake version_data"
|
||||
system "rake language_scores_data"
|
||||
system "rake alerts_data"
|
||||
jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll build -t --watch --incremental")
|
||||
compassPid = Process.spawn("compass watch")
|
||||
@ -113,3 +116,14 @@ task :version_data do
|
||||
file.write(JSON.generate(remote_data))
|
||||
end
|
||||
end
|
||||
|
||||
desc "Download supported language data from ohf-voice.github.io"
|
||||
task :language_scores_data do
|
||||
uri = URI('https://ohf-voice.github.io/intents/language_scores.json')
|
||||
|
||||
remote_data = JSON.parse(Net::HTTP.get(uri))
|
||||
|
||||
File.open("#{source_dir}/_data/language_scores.json", "w") do |file|
|
||||
file.write(JSON.generate(remote_data))
|
||||
end
|
||||
end
|
||||
|
@ -108,8 +108,8 @@ social:
|
||||
# Home Assistant release details
|
||||
current_major_version: 2025
|
||||
current_minor_version: 7
|
||||
current_patch_version: 0
|
||||
date_released: 2025-07-02
|
||||
current_patch_version: 4
|
||||
date_released: 2025-07-28
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
|
427
package-lock.json
generated
427
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -15,11 +15,11 @@
|
||||
"remark-lint-prohibited-strings": "^4.0.0",
|
||||
"remark-lint-unordered-list-marker-style": "^4.0.1",
|
||||
"remark-stringify": "^11.0.0",
|
||||
"textlint": "^15.1.0",
|
||||
"textlint": "^15.2.1",
|
||||
"textlint-filter-rule-allowlist": "^4.0.0",
|
||||
"textlint-filter-rule-comments": "^1.2.2",
|
||||
"textlint-rule-common-misspellings": "^1.0.1",
|
||||
"textlint-rule-terminology": "^5.2.13"
|
||||
"textlint-rule-terminology": "^5.2.14"
|
||||
},
|
||||
"resolutions": {
|
||||
"minimist": ">=1.2.5"
|
||||
|
@ -166,10 +166,16 @@ module Jekyll
|
||||
|
||||
vars = SafeYAML.load(contents)
|
||||
|
||||
linkId = [component, platform, 'configuration-variables']
|
||||
.compact
|
||||
.reject(&:empty?)
|
||||
.join('-')
|
||||
|
||||
|
||||
<<~MARKUP
|
||||
<div class="config-vars">
|
||||
<h4>
|
||||
Configuration Variables <a class="title-link" name="configuration-variables" href="#configuration-variables"></a>
|
||||
Configuration Variables <a class="title-link" name="#{linkId}" href="##{linkId}"></a>
|
||||
</h4>
|
||||
<div class="configuration-link">
|
||||
<a href="/docs/configuration/" target="_blank">Looking for your configuration file?</a>
|
||||
|
@ -41,14 +41,27 @@ module Jekyll
|
||||
link.set_attribute('rel', rel.join(' ').strip)
|
||||
end
|
||||
|
||||
# Find all headers, make them linkable
|
||||
dom.css('h2,h3,h4,h5,h6,h7,h8').each do |header|
|
||||
# Find all headers, make them linkable with unique slug names
|
||||
used_slugs = {}
|
||||
|
||||
dom.css('h2,h3,h4,h5,h6,h7,h8').each do |header|
|
||||
# Skip linked headers
|
||||
next if header.at_css('a')
|
||||
|
||||
title = header.content
|
||||
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||
|
||||
# Clean the title to create a slug
|
||||
base_slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||
|
||||
# Make slug unique by adding counter if needed
|
||||
if used_slugs[base_slug]
|
||||
used_slugs[base_slug] += 1
|
||||
slug = "#{base_slug}-#{used_slugs[base_slug] - 1}"
|
||||
else
|
||||
used_slugs[base_slug] = 1
|
||||
slug = base_slug
|
||||
end
|
||||
|
||||
header.children = "#{title} <a class='title-link' name='#{slug}' href='\##{slug}'></a>"
|
||||
end
|
||||
|
||||
|
@ -119,5 +119,9 @@ article {
|
||||
.meta {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
||||
> header + img + p{
|
||||
margin-top: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,9 +95,9 @@ name:
|
||||
|
||||
### Long term statistics
|
||||
|
||||
Home Assistant saves long-term statistics for a sensor if the entity has a state_class of measurement, total, or total_increasing. For short-term statistics, a snapshot is taken every 5 minutes. For long-term statistics, an hourly aggregate is stored of the short-term statistics. Short-term statistics are automatically purged after a predefined period (default is 10 days). Long-term statistics are never purged.
|
||||
Home Assistant saves long-term statistics for a sensor if the entity has a state_class of measurement, total, or total_increasing. For long-term statistics, an hourly aggregate is stored from the sensor history. Long-term statistics are never purged.
|
||||
|
||||
In the history graph card, if the hours to show variable is set to a figure higher than the purge_keep period, long-term statistics will be used, with short term statistics shown in bold.
|
||||
In the history graph card, if the hours to show variable is set to a figure higher than the recorder retention period, long-term statistics will backfill the older parts of the history graph, with more recent actual sensor values from the recorder shown in bold.
|
||||
|
||||
### Examples
|
||||
|
||||
|
@ -32,7 +32,7 @@ type:
|
||||
type: string
|
||||
image:
|
||||
required: true
|
||||
description: "The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the `/local` path, for example, `/local/filename.jpg`."
|
||||
description: "The URL of an image. When you want to store images in your Home Assistant installation use the [hosting files documentation](/integrations/http/#hosting-files). After storing your files, use the `/local` path, for example, `/local/filename.jpg`. To use an image from an existing [media](/integrations/media_source/) directory, provide the full media-source identifier (see examples)."
|
||||
type: string
|
||||
image_entity:
|
||||
required: false
|
||||
@ -85,3 +85,10 @@ tap_action:
|
||||
data:
|
||||
entity_id: light.ceiling_lights
|
||||
```
|
||||
|
||||
Show an image from a [media](/integrations/media_source/) directory:
|
||||
|
||||
```yaml
|
||||
type: picture
|
||||
image: media-source://media_source/local/test.jpg
|
||||
```
|
||||
|
@ -636,3 +636,7 @@
|
||||
link: /integrations/zone/
|
||||
aliases:
|
||||
- zones
|
||||
- term: Long-term statistics
|
||||
definition: >-
|
||||
Home Assistant saves long-term statistics for a sensor if the entity has a state_class of measurement, total, or total_increasing. For short-term statistics, a snapshot is taken every 5 minutes. For long-term statistics, an hourly aggregate is stored of the short-term statistics. Short-term statistics are automatically purged after a predefined period (default is 10 days). Long-term statistics are never purged.
|
||||
link: /blog/2021/08/04/release-20218/#long-term-statistics
|
||||
|
@ -97,3 +97,7 @@ Annika Schulz:
|
||||
Miranda Bishop:
|
||||
name: Miranda Bishop
|
||||
github: miranda-gb
|
||||
|
||||
Timothy Nibeaudeau:
|
||||
name: Timothy Nibeaudeau
|
||||
github: timoPtr
|
||||
|
@ -825,6 +825,101 @@ blueprint:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Weekday filtering
|
||||
|
||||
Time triggers can be filtered to fire only on specific days of the week using the `weekday` option. This allows you to create automations that only run on certain days, such as weekdays or weekends.
|
||||
|
||||
The `weekday` option accepts:
|
||||
- A single weekday as a string: `"mon"`, `"tue"`, `"wed"`, `"thu"`, `"fri"`, `"sat"`, `"sun"`
|
||||
- A list of weekdays using the expanded format
|
||||
|
||||
#### Single weekday
|
||||
|
||||
This example will turn on the lights only on Mondays at 8:00 AM:
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- triggers:
|
||||
- trigger: time
|
||||
at: "08:00:00"
|
||||
weekday: "mon"
|
||||
actions:
|
||||
- action: light.turn_on
|
||||
target:
|
||||
entity_id: light.bedroom
|
||||
```
|
||||
|
||||
#### Multiple weekdays
|
||||
|
||||
This example will run a morning routine only on weekdays (Monday through Friday) at 6:30 AM:
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- triggers:
|
||||
- trigger: time
|
||||
at: "06:30:00"
|
||||
weekday:
|
||||
- "mon"
|
||||
- "tue"
|
||||
- "wed"
|
||||
- "thu"
|
||||
- "fri"
|
||||
actions:
|
||||
- action: script.morning_routine
|
||||
```
|
||||
|
||||
#### Weekend example
|
||||
|
||||
This example demonstrates a different wake-up time for weekends:
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Weekday alarm"
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: "06:30:00"
|
||||
weekday:
|
||||
- "mon"
|
||||
- "tue"
|
||||
- "wed"
|
||||
- "thu"
|
||||
- "fri"
|
||||
actions:
|
||||
- action: script.weekday_morning
|
||||
|
||||
- alias: "Weekend alarm"
|
||||
triggers:
|
||||
- trigger: time
|
||||
at: "08:00:00"
|
||||
weekday:
|
||||
- "sat"
|
||||
- "sun"
|
||||
actions:
|
||||
- action: script.weekend_morning
|
||||
```
|
||||
|
||||
#### Combined with input datetime
|
||||
|
||||
The `weekday` option works with all time formats, including input datetime entities:
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- triggers:
|
||||
- trigger: time
|
||||
at: input_datetime.work_start_time
|
||||
weekday:
|
||||
- "mon"
|
||||
- "tue"
|
||||
- "wed"
|
||||
- "thu"
|
||||
- "fri"
|
||||
actions:
|
||||
- action: notify.mobile_app
|
||||
data:
|
||||
title: "Work Day!"
|
||||
message: "Time to start working"
|
||||
```
|
||||
|
||||
## Time pattern trigger
|
||||
|
||||
With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty).
|
||||
|
@ -75,7 +75,7 @@ The quickest way to get these changes, is by re-importing the blueprint. This wi
|
||||
### To re-import a blueprint
|
||||
|
||||
1. Go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
|
||||
2. On the blueprint that you want to re-import, select the three-dot menu, and select **Re-import blueprint**.
|
||||
2. On the blueprint that you want to re-import, select the three dots {% icon "mdi:dots-vertical" %} menu, and select **Re-import blueprint**.
|
||||
|
||||
## Updating an imported blueprint in YAML
|
||||
|
||||
|
@ -721,6 +721,12 @@ multiple:
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
reorder:
|
||||
description: >
|
||||
Allows reordering of entities (only applies if `multiple` is set to `true`).
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
The output of this selector is the entity ID, or (in case `multiple` is set to
|
||||
@ -1121,11 +1127,11 @@ number:
|
||||
min:
|
||||
description: The minimum user-settable number value.
|
||||
type: [integer, float]
|
||||
required: true
|
||||
required: false
|
||||
max:
|
||||
description: The maximum user-settable number value.
|
||||
type: [integer, float]
|
||||
required: true
|
||||
required: false
|
||||
step:
|
||||
description: The step size of the number value. Set to `"any"` to allow any number.
|
||||
type: [integer, float, "any"]
|
||||
@ -1139,7 +1145,16 @@ mode:
|
||||
description: This can be either `box` or `slider` mode.
|
||||
type: string
|
||||
required: false
|
||||
default: slider
|
||||
default: slider if min and max are set, otherwise box
|
||||
translation_key:
|
||||
description: >
|
||||
Allows translations provided by an integration where `translation_key`
|
||||
is the translation key that is providing the unit_of_measurement string
|
||||
translation. See the documentation on
|
||||
[Backend Localization](https://developers.home-assistant.io/docs/internationalization/core/#selectors)
|
||||
for more information.
|
||||
type: string
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
The output of this selector is a number, for example: `42`
|
||||
@ -1188,8 +1203,8 @@ When used with a `schema`, the selector will force the object to be in this form
|
||||
|
||||
```yaml
|
||||
object:
|
||||
label_key: name
|
||||
description_key: percentage
|
||||
label_field: name
|
||||
description_field: percentage
|
||||
multiple: true
|
||||
fields:
|
||||
name:
|
||||
@ -1407,7 +1422,11 @@ one can be selected.
|
||||
entity_id:
|
||||
description: The entity ID of which an state can be selected from.
|
||||
type: string
|
||||
required: true
|
||||
required: false
|
||||
hide_states:
|
||||
description: The states to exclude from the list of options
|
||||
type: list
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
The output of this selector is the select state (not the translated or
|
||||
@ -1418,7 +1437,7 @@ For example: `heat_cool`.
|
||||
## Statistic selector
|
||||
|
||||
The statistic selector selects the statistic ID of an entity that records
|
||||
long-term statistics. It may resemble an entity ID (like `sensor.temperature`),
|
||||
{% term "Long-term statistics" %}. It may resemble an entity ID (like `sensor.temperature`),
|
||||
or an external statistic ID (like `external:temperature`).
|
||||
|
||||

|
||||
|
@ -127,7 +127,7 @@ Once you enable debug logging, you ideally need to make the error happen. Run yo
|
||||
|
||||
### Download diagnostics
|
||||
|
||||
After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the three dot menu next to the integration configuration.
|
||||
After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the three dots {% icon "mdi:dots-vertical" %} menu next to the integration configuration.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/docs/configuration/download-diagnostics.png' alt='Example of Download Diagnostics'>
|
||||
|
@ -93,7 +93,7 @@ Follow these steps to delete an area. It will be removed from all the floors it
|
||||
If you used this area in automations or script as targets, or with voice assistant, these will no longer work.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select the area card.
|
||||
2. In the top right corner, select the three dot menu. Then, select **Delete**.
|
||||
2. In the top right corner, select the three dots {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
|
||||
|
||||

|
||||
|
||||
|
@ -52,7 +52,7 @@ To rename or delete a category, follow these steps:
|
||||
2. In the top left, select the **Filters** button.
|
||||
|
||||

|
||||
3. In the list, find the category you want to edit and select the three dot menu next to it.
|
||||
3. In the list, find the category you want to edit and select the three dots {% icon "mdi:dots-vertical" %} menu next to it.
|
||||
4. Select **Edit category** or **Delete category**.
|
||||
|
||||

|
||||
|
@ -28,7 +28,7 @@ The Developer Tools is meant for **all** (not just for the developers) to quickl
|
||||
|
||||
The YAML tab provides buttons to trigger a check of configuration files and to reload the configuration. Reloading is needed to apply changes that you've made to the configuration.
|
||||
|
||||
It is almost the same as the option under **Settings** > three dot menu (top right) > **Restart Home Assistant** > **Quick reload**. The only difference is that **Quick reload** reloads all the configuration, whereas this YAML tab allows you to only reload one specific configuration at a time.
|
||||
It is almost the same as the option under **Settings** > three dots {% icon "mdi:dots-vertical" %} menu (top right) > **Restart Home Assistant** > **Quick reload**. The only difference is that **Quick reload** reloads all the configuration, whereas this YAML tab allows you to only reload one specific configuration at a time.
|
||||
|
||||
### Reloading the YAML configuration
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
---
|
||||
title: "Z-Wave Controllers"
|
||||
title: "Z-Wave adapters"
|
||||
description: "Extended instructions how to set up Z-Wave."
|
||||
related:
|
||||
- docs: /integrations/zwave_js/
|
||||
title: Z-Wave integration
|
||||
---
|
||||
|
||||
## Supported Z-Wave USB Sticks & Hardware Modules
|
||||
## Supported Z-Wave adapters
|
||||
|
||||
You need to have a compatible Z-Wave stick or module installed. The following devices have been confirmed to work with Z-Wave JS:
|
||||
You need to have a compatible Z-Wave adapter installed. The following devices have been confirmed to work with Z-Wave JS:
|
||||
|
||||
{% warning %}
|
||||
|
||||
The firmwares of 700 and 800 series Z-Wave controllers have several bugs which impact the stability of the mesh and can cause the controller to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria:
|
||||
The firmwares of 700 and 800 series Z-Wave adapters have several bugs which impact the stability of the mesh and can cause the adapter to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria:
|
||||
|
||||
- 700 series:
|
||||
- prefer SDK versions 7.17.2 to 7.18.x or 7.21.6 and newer
|
||||
@ -32,7 +32,7 @@ The SDK version does not have to match the firmware version. If you are unsure w
|
||||
{% endnote %}
|
||||
|
||||
{% important %}
|
||||
You should upgrade the firmware on all 700 and 800 series controllers to a recommended version.
|
||||
You should upgrade the firmware on all 700 and 800 series adapters to a recommended version.
|
||||
{% endimportant %}
|
||||
|
||||
Firmware can be upgraded using the below directions:
|
||||
@ -44,11 +44,11 @@ Firmware can be upgraded using the below directions:
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
- 800 series controllers (with some caveats, see notes)
|
||||
- 800 series USB adapters (with some caveats, see notes)
|
||||
- HomeSeer SmartStick G8
|
||||
- Zooz 800 Series Z-Wave Long Range S2 Stick (ZST39 LR)
|
||||
|
||||
- 700 series controllers
|
||||
- 700 series USB adapters
|
||||
- Aeotec Z-Stick 7 USB stick (ZWA010) (the EU version is not recommended due to RF performance issues)
|
||||
- HomeSeer SmartStick+ G3
|
||||
- HomeSeer Z-NET G3
|
||||
@ -56,7 +56,7 @@ Firmware can be upgraded using the below directions:
|
||||
- Zooz S2 Stick 700 (ZST10 700)
|
||||
- Z-Wave.Me Z-Station
|
||||
|
||||
- 500 series controllers
|
||||
- 500 series USB adapters
|
||||
- Aeotec Z-Stick Gen5 (see note below)
|
||||
- Everspring USB stick - Gen 5
|
||||
- GoControl HUSBZB-1 stick
|
||||
@ -66,39 +66,34 @@ Firmware can be upgraded using the below directions:
|
||||
- HomeSeer SmartStick+ G2
|
||||
- HomeSeer Z-NET G2
|
||||
|
||||
- Raspberry Pi modules
|
||||
- Raspberry Pi HAT adapters
|
||||
- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield (ZWA025, 700 series)
|
||||
- Z-Wave.Me RaZberry 7 (ZME_RAZBERRY7, 700 series)
|
||||
- Z-Wave.Me RaZberry 7 Pro (ZMEERAZBERRY7_PRO or ZMEURAZBERRY7_PRO, 700 series)
|
||||
- Z-Wave.Me Razberry 2 (500 series)
|
||||
- Z-Wave.Me Razberry 1 (300 series)
|
||||
|
||||
If you are just starting out, we recommend that you purchase a 700 series controller or a Raspberry Pi module. The 700 series controllers are the more recent version (when compared to the 500 series). The 700 series controllers support SmartStart, which allows you to add a device by scanning a QR code.
|
||||
|
||||
If you are just starting out, we recommend that you purchase an 800 series adapter (with firmware updated to ≥ 7.23.2). The 800 series adapters are the most future-proof and offer the best RF performance.
|
||||
{% tip %}
|
||||
It's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.
|
||||
{% endtip %}
|
||||
|
||||
## Stick alternatives
|
||||
## Third-party hubs
|
||||
|
||||
The alternative to a stick is a hub that supports Z-Wave. Home Assistant supports the following hubs with Z-Wave support:
|
||||
For the best experience, it is recommended to use an adapter directly with Home Assistant. If this doesn't work for you, you can use a hub that supports Z-Wave. Home Assistant supports the following third-party hubs with Z-Wave support:
|
||||
|
||||
- [Vera](/integrations/vera/)
|
||||
- [Fibaro](/integrations/fibaro/)
|
||||
- [SmartThings](/integrations/smartthings/)
|
||||
- [Z-Wave.Me Z-Way](/integrations/zwave_me)
|
||||
|
||||
## Controller notes
|
||||
|
||||
### 800 Series Controllers
|
||||
|
||||
Z-Wave JS does not support Z-Wave Long Range yet.
|
||||
## Adapter notes
|
||||
|
||||
### Aeotec Z-Stick
|
||||
|
||||
{% note %}
|
||||
|
||||
The Aeotec Z-Stick and some of its variants (e.g. Z-Wave.Me UZB1) are known to have compatibility issues with the Linux kernel because of their [non-compliant behavior](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245031#p1502030). Plugging these controllers through a USB hub can serve as a workaround that sometimes mitigates the issue.
|
||||
The Aeotec Z-Stick and some of its variants (e.g. Z-Wave.Me UZB1) are known to have compatibility issues with the Linux kernel because of their [non-compliant behavior](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245031#p1502030). Plugging these adapters through a USB hub can serve as a workaround that sometimes mitigates the issue.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
</li>
|
||||
<li><a href='/getting-started/'>Get started with Home Assistant</a></li>
|
||||
<li><a class="external-link" href='https://demo.home-assistant.io'>Try the online demo {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a class="external-link" href='https://building.open-home.io/#/portal'>Sign up for our newsletter {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a class="external-link" href='https://newsletter.openhomefoundation.org/#/portal'>Sign up for our newsletter {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a class="external-link" href="https://twitter.com/Home_Assistant">Follow Home Assistant on X {% icon "tabler:external-link" %}</a></li>
|
||||
{% comment %}
|
||||
<li>
|
||||
|
@ -10,7 +10,7 @@ If you would like to test next release before anyone else, you can install the b
|
||||
content: |
|
||||
|
||||
1. In Home Assistant, go to {% my updates title="**System** > **Updates**" %}.
|
||||
2. In the top-right corner, select the three-dots menu.
|
||||
2. In the top-right corner, select the three dots {% icon "mdi:dots-vertical" %} menu.
|
||||
3. Select **Join beta**.
|
||||
4. Go to the {% my configuration title="**Configuration**" %} panel.
|
||||
5. Install the update that is presented to you.
|
||||
|
@ -13,5 +13,6 @@ To add the automation:
|
||||
- Define any trigger and condition you like.
|
||||
- Select **Add action**, then, select **Other actions**.
|
||||
- Select **Perform action**, and from the list, select the [`homeassistant.update_entity` action](/integrations/homeassistant/#action-homeassistantupdate_entity).
|
||||
- Choose your targets by selecting the **Choose area**, **Choose device**, **Choose entity**, or **Choose label** buttons.
|
||||

|
||||
4. Save your new automation to poll for data.
|
||||
|
@ -12,7 +12,7 @@ In the event that a Home Assistant Core version doesn't play well with your hard
|
||||
|
||||
{% if page.installation == "os"%}
|
||||
|
||||
To upgrade to a specific version, you can use the CLI. The example below shows how to upgrade to `{{current_version}}`.
|
||||
To upgrade to a specific version, you can use the command line (CLI). The example below shows how to upgrade to `{{current_version}}`. To learn how to get started with the command line in Home Assistant, refer to the [SSH add-on setup instructions](/common-tasks/os/#installing-and-using-the-ssh-add-on).
|
||||
|
||||
```bash
|
||||
ha core update --version {{current_version}} --backup
|
||||
|
@ -1,6 +1,6 @@
|
||||
Current transformer (CT) clamp sensors measure your energy usage by looking at the current passing through an electrical wire. This makes it possible to calculate the energy usage. In Home Assistant we have support for off-the-shelf CT clamp sensors or you can build your own.
|
||||
|
||||
- The off-the-shelf solution that we advise is the [Shelly EM](https://www.shelly.com/en/products/shop/shelly-em-120a/shelly-em-50a?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality [integration](/integrations/shelly/).
|
||||
- The off-the-shelf solution that we advise is the [Shelly EM](https://www.shelly.com/products/shelly-em-50a-clamp-1?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality [integration](/integrations/shelly/).
|
||||
- You can build your own using ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html) or energy meter sensors like the [ATM90E32](https://esphome.io/components/sensor/atm90e32.html). For the DIY route, check out [this video by digiblur](https://www.youtube.com/watch?v=n2XZzciz0s4) to get started.
|
||||
- Using a Raspberry Pi, you can use a CT clamp HAT from LeChacal called [RPICT hats](https://lechacal.com/docs/RPICT/Raspberrypi_Current_and_Temperature_Sensor_Adaptor/). They can be stacked to expand the number of lines to monitor. They also provide Active, Apparent, and Reactive power and power factor for single-phase and three-phase installations. They integrate with Home Assistant using MQTT.
|
||||
|
||||
|
@ -134,6 +134,8 @@ To write the HAOS image to the boot medium on your x86-64 hardware, there are 2
|
||||
- If you are getting an **Error unmounting filesystem** error message, stating that the **target is busy**:
|
||||
- Most likely, you are running Ubuntu on your internal disk. Instead, you need to run it on your stick.
|
||||
- Go back to step 3 and during start up, make sure you select **Try Ubuntu** (and NOT **Install Ubuntu**).
|
||||
- Another issue may be that live Ubuntu is using the Swap partition of an existing Linux installation.
|
||||
- If you see "Swap" listed as a partition on the drive you're going to install HAOS, just select the Swap partition, then press the stop button to unmount it and try the restore operation again.
|
||||
6. In the partitions overview, you should now see the restore operation in progress.
|
||||
- The Home Assistant Operating System is now being installed on your system.
|
||||

|
||||
|
@ -1,3 +1,3 @@
|
||||
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**.
|
||||
3. Next to the entry, select the three dots {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
|
||||
|
@ -66,7 +66,7 @@
|
||||
<div class="socials grid__item one-quarter lap-one-half palm-one-whole">
|
||||
|
||||
<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>
|
||||
<p><a class="external-link" href='https://newsletter.openhomefoundation.org/#/portal'>Sign up for our newsletter {% icon "tabler:external-link" %}</a></p>
|
||||
<div class="icons">
|
||||
<a
|
||||
rel="me"
|
||||
@ -128,7 +128,7 @@
|
||||
|
||||
<div class="web-notice">
|
||||
<p>
|
||||
Contact us <a href="mailto:hello@home-assistant.io">here</a> for media and partnership inquiries. (No technical support!)
|
||||
For partnership inquiries please check out <a href="https://works-with.home-assistant.io/">Works With Home Assistant</a>. For media, get in touch <a href="mailto:media@openhomefoundation.org">here</a>. For other questions, you can contact us <a href="mailto:hello@home-assistant.io">here</a> (No technical support!)
|
||||
</p>
|
||||
<p>
|
||||
Website powered by <a href="https://jekyllrb.com/">Jekyll</a><br />
|
||||
|
149
source/_integrations/ai_task.markdown
Normal file
149
source/_integrations/ai_task.markdown
Normal file
@ -0,0 +1,149 @@
|
||||
---
|
||||
title: AI Task
|
||||
description: Instructions on how to setup AI task entities with Home Assistant.
|
||||
ha_category:
|
||||
- AI
|
||||
ha_release: '2025.7'
|
||||
ha_quality_scale: internal
|
||||
ha_domain: ai_task
|
||||
ha_codeowners:
|
||||
- '@home-assistant/core'
|
||||
ha_integration_type: entity
|
||||
---
|
||||
|
||||
The **AI Task** {% term integration %} allows you to use AI to help you configure Home Assistant.
|
||||
|
||||
{% include integrations/building_block_integration.md %}
|
||||
|
||||
For each task, you can set a preferred AI task entity. This allows you to use different AI models for different purposes, such as generating text, summarizing information, or even controlling devices. When the entity ID is omitted in the action, the preferred AI task entity will be used.
|
||||
|
||||
## The state of an AI task entity
|
||||
|
||||
The {% term state %} of an AI task {% term entity %} is a timestamp showing the date and time when the AI task was last used.
|
||||
|
||||
## Action `ai_task.generate_data`
|
||||
|
||||
Generates data using AI.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
|
||||
| `task_name` | no | String that identifies the type of text generation task (for example, "home summary", "alert notification"). |
|
||||
| `instructions` | no | String containing the specific instructions for the AI to follow when generating the text. |
|
||||
| `entity_id` | yes | String that points at an `entity_id` of an LLM task entity. If not specified, uses the default LLM task. |
|
||||
| `structure` | yes | Dictionary defining the structure of the output data. When set, the AI will return structured data with the specified fields. Each field can have a `description`, `selector`, and optional `required` property. |
|
||||
| `attachments` | yes | List of attachments to include in the task. Each attachment is the output of the [Media Selector](https://www.home-assistant.io/docs/blueprint/selectors/#media-selector).
|
||||
|
||||
The response variable is a dictionary with the following keys:
|
||||
|
||||
- `data`: The generated text or structured data (depending on whether `structure` is specified).
|
||||
- `conversation_id`: The ID of the conversation used for the task.
|
||||
|
||||
## Examples
|
||||
|
||||
### Template entity counting items on a camera
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
template:
|
||||
- triggers:
|
||||
- trigger: homeassistant
|
||||
event: start
|
||||
- trigger: time_pattern
|
||||
minutes: "/5" # update every 5 minutes
|
||||
actions:
|
||||
- action: ai_task.generate_data
|
||||
data:
|
||||
task_name: "{{ this.entity_id }}"
|
||||
instructions: >-
|
||||
This is the inside of my goose coop. How many birds (chickens, geese, and
|
||||
ducks) are inside the coop?
|
||||
structure:
|
||||
birds:
|
||||
selector:
|
||||
number:
|
||||
attachments:
|
||||
media_content_id: media-source://camera/camera.chicken_coop
|
||||
media_content_type: image/jpeg
|
||||
response_variable: result
|
||||
sensor:
|
||||
- name: "Chickens"
|
||||
state: "{{ result.data.birds }}"
|
||||
state_class: total
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
Alternative ideas: detect number of parking spots available, count people in a room, or detect if a door is open.
|
||||
|
||||
### Structured output example
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
# Example: Generate weather and indoor comfort report
|
||||
script:
|
||||
- alias: "Weather and comfort report"
|
||||
sequence:
|
||||
- action: ai_task.generate_data
|
||||
data:
|
||||
task_name: "weather comfort report"
|
||||
instructions: |
|
||||
Based on the current conditions:
|
||||
- Outdoor temperature: {{ states('sensor.outdoor_temperature') }}°C
|
||||
- Weather condition: {{ states('weather.home') }}
|
||||
- Indoor temperature: {{ states('sensor.living_room_temperature') }}°C
|
||||
- Indoor humidity: {{ states('sensor.living_room_humidity') }}%
|
||||
|
||||
Generate a funny weather description and assess indoor comfort level.
|
||||
structure:
|
||||
weather_description:
|
||||
description: "A humorous description of the current weather outside"
|
||||
required: true
|
||||
selector:
|
||||
text:
|
||||
indoor_comfort:
|
||||
description: "Assessment of how comfortable it is inside compared to outside"
|
||||
required: true
|
||||
selector:
|
||||
text:
|
||||
response_variable: comfort_report
|
||||
- action: notify.persistent_notification
|
||||
data:
|
||||
title: "🏠 Home climate report"
|
||||
message: |
|
||||
🌤️ **Weather outside:**
|
||||
{{ comfort_report.data.weather_description }}
|
||||
|
||||
🛋️ **Indoor comfort:**
|
||||
{{ comfort_report.data.indoor_comfort }}
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Simple text generation example
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
# Example: Generate a notification when garage door is left open
|
||||
automation:
|
||||
- alias: "Garage door notification"
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id: cover.garage_door
|
||||
to: 'on'
|
||||
for:
|
||||
minutes: 10
|
||||
actions:
|
||||
- action: ai_task.generate_data
|
||||
data:
|
||||
task_name: "garage door left open comment"
|
||||
instructions: "Generate a funny notification that garage door was left open"
|
||||
response_variable: generated_text
|
||||
- action: notify.persistent_notification
|
||||
data:
|
||||
message: "{{ generated_text.data }}"
|
||||
```
|
||||
|
||||
{% endraw %}
|
93
source/_integrations/airos.markdown
Normal file
93
source/_integrations/airos.markdown
Normal file
@ -0,0 +1,93 @@
|
||||
---
|
||||
title: Ubiquiti UISP airOS
|
||||
description: Ubiquiti UISP airOS integration.
|
||||
ha_category:
|
||||
- Sensor
|
||||
ha_iot_class: Local Polling
|
||||
ha_release: 2025.8
|
||||
ha_codeowners:
|
||||
- '@CoMPaTech'
|
||||
ha_config_flow: true
|
||||
ha_domain: airos
|
||||
ha_platforms:
|
||||
- sensor
|
||||
ha_integration_type: device
|
||||
ha_quality_scale: bronze
|
||||
---
|
||||
|
||||
Ubiquiti's [UISP](https://techspecs.ui.com/uisp/wireless) (Ubiquity Internet Service Provider) product line includes various devices designed for interconnecting locations. This integration provides monitoring capabilities for devices running the airOS opearting system.
|
||||
|
||||
There is currently support for the following device types within Home Assistant:
|
||||
|
||||
- [Sensor](#sensor)
|
||||
|
||||
{% note %}
|
||||
Ubiquiti UISP products cannot be managed from their popular [UniFi](/integrations/unifi/) software. They are typically configured using a web browser, the UISP Mobile App, or the UISP Cloud/Self-Hosted platform.
|
||||
{% endnote %}
|
||||
|
||||
## Prerequisites
|
||||
|
||||
This integration only supports devices running airOS 8 and already configured using your browser or the UISP app.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Supported devices
|
||||
|
||||
### airOS 8
|
||||
|
||||
While there is no known limitation to which devices running airOS 8 are supported, success has been reported on:
|
||||
|
||||
- PowerBeam 5AC gen2
|
||||
- Nanostation 5AC (LOCO5AC)
|
||||
|
||||
## Sensor
|
||||
|
||||
This integration exposes the following sensor entities for your airOS devices:
|
||||
|
||||
### Network Role
|
||||
|
||||
Indicates the role of the device in your network, either 'bridge' or 'router'.
|
||||
|
||||
### Wireless Frequency
|
||||
|
||||
The base frequency set for this device.
|
||||
|
||||
### Wireless Mode
|
||||
|
||||
ndicates the device's role in the wireless link, typically 'ap-ptp' (Access Point Point-to-Point) or 'sta-ptp' (Station Point-to-Point).
|
||||
|
||||
### Wireless SSID
|
||||
|
||||
The SSID (wireless network name) used by this device.
|
||||
|
||||
### Download capacity & Upload capacity
|
||||
|
||||
Indicates the estimated maximum link capacity (bandwidth) for download and upload between devices.
|
||||
|
||||
### Throughput receive and throughput transmit.
|
||||
|
||||
These sensors show the actual data transfer rate (receive and transmit) for this device.
|
||||
|
||||
### Antenna gain
|
||||
|
||||
Performance in decibels of the devices antenna. See [Gain](https://en.wikipedia.org/wiki/Gain_(antenna)) on Wikipedia.
|
||||
|
||||
## Data updates
|
||||
|
||||
Data is polled from devices every 60 seconds.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Accessing the local device
|
||||
|
||||
If you need to configure the device directly, you can find the link to your device by:
|
||||
|
||||
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration and device.
|
||||
2. On the device entry, select the link provided for the configuration URL (usually found next to the {% icon "mdi:dots-vertical" %} icon).
|
||||
3. Follow the instructions on your device's web interface or consult the [airOS 8 Manual (PDF)](https://dl.ubnt.com/guides/airOS/airOS_UG_V80.pdf).
|
||||
|
||||
### Adjusting the update interval
|
||||
|
||||
Please note that the [default intervals](#data-updates) are considered best practice. Updating too frequently may induce considerable load on your bridge(s) resulting in unexpected results or missing data.
|
||||
|
||||
{% include common-tasks/define_custom_polling.md %}
|
@ -20,7 +20,7 @@ ha_integration_type: integration
|
||||
|
||||
Integrates Airthings BLE {% term sensors %} into Home Assistant.
|
||||
|
||||
[Airthings](https://www.airthings.com/) provide different {% term devices %} for measuring the air quality. Initially focusing on radon gas sensors, each device provides a number of different sensors to monitor typical contaminants that's presence contributes to bad air quality in the home.
|
||||
[Airthings](https://www.airthings.com/) provide different {% term devices %} for measuring the air quality. Initially focusing on radon gas sensors, each device provides a number of different sensors to monitor typical contaminants whose presence contributes to bad air quality in the home.
|
||||
|
||||
Requires Airthings hardware and a compatible Bluetooth dongle.
|
||||
|
||||
|
@ -30,7 +30,7 @@ The {% term integration %} can control your Alarm Panel by publishing to the `co
|
||||
|
||||
## Configuration
|
||||
|
||||
To enable this {% term integration %}, add the following lines to your {% term "`configuration.yaml`" %} file.
|
||||
To use an MQTT alarm control panel in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
@ -41,6 +41,8 @@ mqtt:
|
||||
command_topic: "home/alarm/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -195,7 +197,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Alarm
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
payload_arm_away:
|
||||
|
@ -38,11 +38,11 @@ There is support for the following device families within Home Assistant:
|
||||
- **Amazon Fire TV Stick**
|
||||
- **Amazon Fire Tablet**
|
||||
|
||||
and all 3rd party that has Alexa capabilities built-in
|
||||
- **Third-party devices** with built-in Alexa capabilities.
|
||||
|
||||
{% warning %}
|
||||
|
||||
Currently, only MFA-protected Amazon accounts via the authenticator app are supported.
|
||||
This integration requires multifactor authentication using an authentication app (such as Microsoft Authenticator, for example). To enable MFA, in your Amazon account settings select **Login & Security** > **2-step verification** > **Backup methods** > **Add new app**. See [Amazon's documentation](https://www.amazon.com/gp/help/customer/display.html?nodeId=G9MX9LXNWXFKMJYU) for more information.
|
||||
|
||||
{% endwarning %}
|
||||
|
||||
@ -98,6 +98,36 @@ The **Alexa Devices** {% term integration %} provides the following entities:
|
||||
- Sensor - temperature and illuminance sensors
|
||||
- Switch - Do not disturb
|
||||
|
||||
## Known limitations
|
||||
|
||||
This integration requires multifactor authentication using an authentication app (such as Microsoft Authenticator). To enable MFA, in your Amazon account settings, select **Login & Security** > **2-step verification** > **Backup methods** > **Add new app**. See [Amazon's documentation](https://www.amazon.com/gp/help/customer/display.html?nodeId=G9MX9LXNWXFKMJYU) for more information.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Can’t set up the integration
|
||||
|
||||
#### Symptom: "Wrong Country"
|
||||
|
||||
When trying to set up the integration, the form shows the message "Wrong Country".
|
||||
|
||||
##### Description
|
||||
|
||||
This means that the settings in your Amazon account are not aligned to the country you specified.
|
||||
To fix it, please go to <https://www.amazon.XX/hz/mycd/preferences/myx#/home/settings/payment> (replace XX with your country domain. For example **co.uk**):
|
||||
|
||||
- "Kindle payment": check your default address is in your country
|
||||
- "Country/Region": check your country
|
||||
|
||||
#### Symptom: "Not found"
|
||||
|
||||
When trying to set up the integration, the form shows the message "Not found".
|
||||
|
||||
##### Description
|
||||
|
||||
This appears to indicate that your Alexa devices aren't owned by you, but are connected through Amazon Family.
|
||||
This setup isn't supported by the Alexa Mobile app, so it's not supported by this integration.
|
||||
Move the devices to your primary account.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
@ -31,6 +31,8 @@ For a quick introduction on how to get started with Android TV Remote, check out
|
||||
{% configuration_basic %}
|
||||
Configure Applications List:
|
||||
description: Here you can define applications where the keys are app IDs and the values are app names and icons that will be displayed in the UI.
|
||||
Enable IME:
|
||||
description: Enable this option to be able to get the current app name and send text as keyboard input. Disable it for devices that show 'Use keyboard on mobile device screen' instead of the on-screen keyboard.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Media player
|
||||
@ -581,3 +583,8 @@ cards:
|
||||
- If you are not able to connect to the Android TV device, or are asked to pair it again and again, try force-stopping the Android TV Remote Service and clearing its storage. On the Android TV device, go to **Settings** > **Apps** > **Show system apps**. Then, select **Android TV Remote Service** > **Storage** > **Clear storage**. You will have to pair again.
|
||||
- Some onscreen keyboards enabled by TV manufacturers do not support concurrent virtual and onscreen keyboard use. This presents whenever a text field is selected, such as "search" where a constant **use the keyboard on your mobile device** will show, preventing you from opening the onscreen keyboard to type. This can be overcome by either disabling your 3rd party keyboard and using the default Gboard keyboard or by deselecting **Enable IME** in the **Configure** page of the integration.
|
||||
- If you can't turn on your Nvidia Shield device, go to **Settings** > **Remotes & accessories** > **Simplified wake buttons** and disable the following options: **SHIELD 2019 Remote: Wake on power and Netflix buttons only** and **Controllers: Wake on NVIDIA or logo buttons only**.
|
||||
|
||||
|
||||
## Removing the integration
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
@ -26,7 +26,7 @@ Both [Anthem]'s current and last generation of <abbr title="Audio & video">A/V</
|
||||
|
||||
### A/V Processor
|
||||
|
||||
- [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview)
|
||||
- [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview), [AVM 70](https://www.anthemav.com/products-current/model=avm-70/page=overview)
|
||||
|
||||
### Distribution solution
|
||||
|
||||
|
@ -49,6 +49,6 @@ To delete an application credential, for example because you created a new one,
|
||||

|
||||
|
||||
2. In the top right corner, select the three dots {% icon "mdi:dots-vertical" %} menu and select **Application credentials**.
|
||||
3. Select the credential from the list, select the three-dots menu and select **Delete**.
|
||||
3. Select the credential from the list, select the three dots {% icon "mdi:dots-vertical" %} menu and select **Delete**.
|
||||
|
||||

|
||||
|
23
source/_integrations/bauknecht.markdown
Normal file
23
source/_integrations/bauknecht.markdown
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
title: Bauknecht
|
||||
description: Connect and control your Bauknecht devices using the Whirlpool Appliances integration
|
||||
ha_category:
|
||||
- Hub
|
||||
ha_integration_type: virtual
|
||||
ha_supporting_domain: whirlpool
|
||||
ha_supporting_integration: Whirlpool Appliances
|
||||
ha_release: '2025.8'
|
||||
ha_domain: bauknecht
|
||||
ha_codeowners:
|
||||
- '@abmantis'
|
||||
- '@mkmer'
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- climate
|
||||
- diagnostics
|
||||
- sensor
|
||||
ha_iot_class: Cloud Push
|
||||
---
|
||||
|
||||
{% include integrations/supported_brand.md %}
|
@ -20,16 +20,18 @@ Stateless devices such as buttons, remote controls etc are better represented by
|
||||
|
||||
The `mqtt` binary sensor platform optionally supports a list of `availability` topics to receive online and offline messages (birth and LWT messages) from the MQTT device. During normal operation, if the MQTT sensor device goes offline (i.e., publishes `payload_not_available` to an `availability` topic), Home Assistant will display the binary sensor as `unavailable`. If these messages are published with the `retain` flag set, the binary sensor will receive an instant update after subscription and Home Assistant will display the correct availability state of the binary sensor when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the binary sensor as `unavailable` when Home Assistant starts up. If no `availability` topic is defined, Home Assistant will consider the MQTT device to be `available` and will display its state.
|
||||
|
||||
To use an MQTT binary sensor in your installation,
|
||||
add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT binary sensor in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
- binary_sensor:
|
||||
state_topic: "home-assistant/window/contact"
|
||||
state_topic: "basement/window/contact"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -143,7 +145,7 @@ entity_picture:
|
||||
required: false
|
||||
type: string
|
||||
expire_after:
|
||||
description: If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires.
|
||||
description: If set, it defines the number of seconds after the sensor's state expires if it's not updated. After expiry, the sensor's state becomes `unavailable`. By default, the sensor's state never expires. Note that when a sensor's value was sent retained to the MQTT broker, the last value sent will be replayed by the MQTT broker when Home Assistant restarts or is reloaded. As this could cause the sensor to become available with an expired state, it is not recommended to retain the sensor's state payload at the MQTT broker. Home Assistant will store and restore the sensor's state for you and calculate the remaining time to retain the sensor's state before it becomes unavailable.
|
||||
required: false
|
||||
type: integer
|
||||
force_update:
|
||||
@ -169,7 +171,7 @@ name:
|
||||
type: string
|
||||
default: MQTT binary sensor
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
off_delay:
|
||||
@ -245,10 +247,10 @@ The example below shows a full configuration for a binary sensor:
|
||||
mqtt:
|
||||
- binary_sensor:
|
||||
name: "Window Contact Sensor"
|
||||
state_topic: "home-assistant/window/contact"
|
||||
state_topic: "bedroom/window/contact"
|
||||
payload_on: "ON"
|
||||
availability:
|
||||
- topic: "home-assistant/window/availability"
|
||||
- topic: "bedroom/window/availability"
|
||||
payload_available: "online"
|
||||
payload_not_available: "offline"
|
||||
qos: 0
|
||||
|
@ -4,6 +4,7 @@ description: Instructions on how to integrate Blue Current charge points within
|
||||
ha_category:
|
||||
- Car
|
||||
- Sensor
|
||||
- Switch
|
||||
ha_release: 2024.1
|
||||
ha_iot_class: Cloud Push
|
||||
ha_config_flow: true
|
||||
@ -15,6 +16,7 @@ ha_domain: blue_current
|
||||
ha_platforms:
|
||||
- button
|
||||
- sensor
|
||||
- switch
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
@ -77,3 +79,14 @@ The Blue Current integration provides the following buttons:
|
||||
- Reset
|
||||
- Reboot
|
||||
- Stop charge session
|
||||
|
||||
## Switch
|
||||
|
||||
The Blue Current integration provides the following switches:
|
||||
|
||||
- Toggle Plug & Charge
|
||||
- Allows you to start a session without having to scan a card.
|
||||
- Toggle linked charging cards only
|
||||
- When enabled, visitors can't make use of the charge point. Only linked charging cards are allowed.
|
||||
- Toggle charge point block
|
||||
- Enables or disables a charge point.
|
@ -373,3 +373,52 @@ For example, unshielded USB 3 port and their cables are especially infamously kn
|
||||
- While Bluetooth is designed to coexist with Wi-Fi, its stronger signal can interfere.
|
||||
- To play it safe, try to place your Bluetooth adapter away from Wi-Fi access points.
|
||||
- Place Bluetooth adapters far away from electrical/power wires/cables, power supplies, and household appliances.
|
||||
|
||||
## Discovered integrations
|
||||
|
||||
The following integrations are automatically discovered by the Bluetooth integration:
|
||||
|
||||
- [Acaia](/integrations/acaia/)
|
||||
- [Airthings BLE](/integrations/airthings_ble/)
|
||||
- [Aranet](/integrations/aranet/)
|
||||
- [BlueMaestro](/integrations/bluemaestro/)
|
||||
- [BTHome](/integrations/bthome/)
|
||||
- [Dormakaba dKey](/integrations/dormakaba_dkey/)
|
||||
- [eQ-3 Bluetooth Smart Thermostats](/integrations/eq3btsmart/)
|
||||
- [EufyLife](/integrations/eufylife_ble/)
|
||||
- [Fjäråskupan](/integrations/fjaraskupan/)
|
||||
- [Gardena Bluetooth](/integrations/gardena_bluetooth/)
|
||||
- [Govee Bluetooth](/integrations/govee_ble/)
|
||||
- [HomeKit Device](/integrations/homekit_controller/)
|
||||
- [Husqvarna Automower BLE](/integrations/husqvarna_automower_ble/)
|
||||
- [iBeacon Tracker](/integrations/ibeacon/)
|
||||
- [IKEA Idasen Desk](/integrations/idasen_desk/)
|
||||
- [Improv via BLE](/integrations/improv_ble/)
|
||||
- [INKBIRD](/integrations/inkbird/)
|
||||
- [IronOS](/integrations/iron_os/)
|
||||
- [Kegtron](/integrations/kegtron/)
|
||||
- [Keymitt MicroBot Push](/integrations/keymitt_ble/)
|
||||
- [Kuler Sky](/integrations/kulersky/)
|
||||
- [La Marzocco](/integrations/lamarzocco/)
|
||||
- [LD2410 BLE](/integrations/ld2410_ble/)
|
||||
- [LED BLE](/integrations/led_ble/)
|
||||
- [Medcom Bluetooth](/integrations/medcom_ble/)
|
||||
- [Melnor Bluetooth](/integrations/melnor/)
|
||||
- [Moat](/integrations/moat/)
|
||||
- [Mopeka](/integrations/mopeka/)
|
||||
- [Motionblinds Bluetooth](/integrations/motionblinds_ble/)
|
||||
- [Oral-B](/integrations/oralb/)
|
||||
- [Probe Plus](/integrations/probe_plus/)
|
||||
- [Qingping](/integrations/qingping/)
|
||||
- [RAPT Bluetooth](/integrations/rapt_ble/)
|
||||
- [RuuviTag BLE](/integrations/ruuvitag_ble/)
|
||||
- [Sensirion BLE](/integrations/sensirion_ble/)
|
||||
- [SensorPro](/integrations/sensorpro/)
|
||||
- [SensorPush](/integrations/sensorpush/)
|
||||
- [Snooz](/integrations/snooz/)
|
||||
- [SwitchBot Bluetooth](/integrations/switchbot/)
|
||||
- [ThermoBeacon](/integrations/thermobeacon/)
|
||||
- [ThermoPro](/integrations/thermopro/)
|
||||
- [Tilt Hydrometer BLE](/integrations/tilt_ble/)
|
||||
- [Xiaomi BLE](/integrations/xiaomi_ble/)
|
||||
- [Yale Access Bluetooth](/integrations/yalexs_ble/)
|
||||
|
@ -97,7 +97,7 @@ If you want to receive these notifications, you must use a dedicated account, as
|
||||
| `message` | no | Type of push notification to send to list members. See [Notification types](#available-notification-types). |
|
||||
| `item` | yes | Required for `urgent_message`. Item to include in the message. For example: *Attention! Attention! - We still urgently need: Cilantro*. |
|
||||
|
||||
### Available notification types
|
||||
#### Available notification types
|
||||
|
||||
| Notification type | Name of notification |
|
||||
| ------------------- | -------------------------------------------------------------- |
|
||||
@ -117,7 +117,9 @@ The notification that list members receive differs from the label shown in the B
|
||||
|
||||
{% endnote %}
|
||||
|
||||
### Sending a going shopping notification
|
||||
{% details "Example YAML configuration" %}
|
||||
|
||||
#### Sending a going shopping notification
|
||||
|
||||
```yaml
|
||||
...
|
||||
@ -129,7 +131,7 @@ actions:
|
||||
message: going_shopping
|
||||
```
|
||||
|
||||
### Sending an urgent message notification
|
||||
#### Sending an urgent message notification
|
||||
|
||||
Note that for the notification type `urgent_message` the attribute `item` is **required**.
|
||||
|
||||
@ -144,6 +146,40 @@ actions:
|
||||
item: Cilantro
|
||||
```
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
### Action: Send reaction
|
||||
|
||||
Reactions in **Bring!** let users quickly acknowledge shopping list updates with emojis. The action `bring.send_reaction` in Home Assistant allows sending reactions like 👍 or ❤️ to the latest event from the [Activities entity](#events).
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------ |
|
||||
| `entity_id` | no | The Bring! Activities entity to react to its latest activity. For example, event.shopping_list_activities. |
|
||||
| `reaction` | no | Reaction to send in response to an activity by a list member. |
|
||||
|
||||
#### Available reactions
|
||||
|
||||
| Reaction | Emoji |
|
||||
|------------|-------|
|
||||
| `THUMBS_UP`| 👍🏼 |
|
||||
| `MONOCLE` | 🧐 |
|
||||
| `DROOLING` | 🤤 |
|
||||
| `HEART` | ❤️ |
|
||||
|
||||
{% details "Example YAML configuration" %}
|
||||
|
||||
```yaml
|
||||
...
|
||||
actions:
|
||||
- action: bring.send_reaction
|
||||
data:
|
||||
reaction: HEART
|
||||
target:
|
||||
entity_id: event.shoppinglist_activities
|
||||
```
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
## Automations
|
||||
|
||||
Get started with these automation examples for **Bring!**, each featuring ready-to-use blueprints!
|
||||
|
@ -17,6 +17,7 @@ ha_platforms:
|
||||
- sensor
|
||||
- water_heater
|
||||
ha_integration_type: device
|
||||
ha_zeroconf: true
|
||||
---
|
||||
|
||||
The **BSB-Lan** {% term integration %} integrates [BSBLan](https://github.com/fredlcore/BSB-LAN) devices into Home Assistant.
|
||||
@ -35,11 +36,21 @@ For more information of which system it supports, take a look at their [document
|
||||
For authentication HTTP authentication using a username and password,
|
||||
or using a passkey is supported. Use either one.
|
||||
|
||||
## Available sensors depending on your heating system
|
||||
|
||||
- `inside temperature`
|
||||
- `outside temperature`
|
||||
|
||||
## Available platforms depending on your system
|
||||
|
||||
- `climate`
|
||||
- `water heater`
|
||||
|
||||
For more documentation of the BSBLan device, check the [manual](https://docs.bsb-lan.de).
|
||||
|
||||
To see a more detailed listing of the reported systems which are successfully used with BSB-LAN, please follow the corresponding link:
|
||||
|
||||
[Supported heating systems](https://docs.bsb-lan.de/supported_heating_systems.html)
|
||||
|
||||
The integration is tested with the stable firmware version `3.1.6-20230327101530`. A newer firmware version may not work because the API could have changed.
|
||||
Please use this release. [release 3.1](https://github.com/fredlcore/BSB-LAN/releases/tag/v3.1)
|
||||
The integration is tested with the stable firmware version `5.0.16-20250525002819`. A newer firmware version may not work because the API could have changed.
|
||||
For autodiscovery, use the latest release. [release 5.0](https://github.com/fredlcore/BSB-LAN/releases/tag/v5.0)
|
||||
|
@ -10,6 +10,9 @@ ha_domain: mqtt
|
||||
|
||||
The `mqtt` button platform lets you send an MQTT message when the button is pressed in the frontend or the button press action is called. This can be used to expose some service of a remote device, for example reboot.
|
||||
|
||||
To use an MQTT button in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
@ -19,6 +22,8 @@ mqtt:
|
||||
command_topic: "home/bedroom/switch1/reboot"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -157,7 +162,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Button
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
payload_available:
|
||||
|
@ -14,7 +14,8 @@ This can be used with an application or a service capable of sending images thro
|
||||
|
||||
## Configuration
|
||||
|
||||
To enable this camera in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT camera in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -23,6 +24,8 @@ mqtt:
|
||||
topic: zanzito/shared_locations/my-device
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
The sample configuration above can be tested by publishing an image to the topic from the console:
|
||||
|
||||
```shell
|
||||
@ -158,7 +161,7 @@ name:
|
||||
required: false
|
||||
type: string
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
topic:
|
||||
|
@ -213,7 +213,7 @@ Set swing operation mode for climate device
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | yes | String or list of strings that define the entity ID(s) of climate device(s) to control. To target all climate devices, use `all`.
|
||||
| `swing_mode` | no | New value of swing mode
|
||||
| `swing_mode` | no | New value of swing mode: `off`, `horizontal`, `vertical` or `both`.
|
||||
|
||||
#### Automation example
|
||||
|
||||
@ -227,7 +227,7 @@ automation:
|
||||
target:
|
||||
entity_id: climate.kitchen
|
||||
data:
|
||||
swing_mode: 1
|
||||
swing_mode: both
|
||||
```
|
||||
|
||||
### Action `climate.set_swing_horizontal_mode`
|
||||
|
@ -12,7 +12,7 @@ The `mqtt` climate platform lets you control your MQTT enabled HVAC devices.
|
||||
|
||||
## Configuration
|
||||
|
||||
To enable this climate platform in your installation, first add the following to your {% term "`configuration.yaml`" %} file.
|
||||
To use an MQTT climate in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
@ -23,6 +23,8 @@ mqtt:
|
||||
mode_command_topic: "study/ac/mode/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
action_template:
|
||||
description: A template to render the value received on the `action_topic` with.
|
||||
@ -239,7 +241,7 @@ name:
|
||||
type: string
|
||||
default: MQTT HVAC
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -18,14 +18,190 @@ ha_codeowners:
|
||||
- '@VIKTORVAV99'
|
||||
---
|
||||
|
||||
The `Electricity Maps` sensor platform (formerly known as CO2Signal) queries the [Electricity Maps](https://www.electricitymaps.com/) API for the CO2 intensity of a specific region. Data can be collected for your home by using the latitude/longitude or a country code. This API uses the same data as <https://app.electricitymaps.com>. Not all countries/regions in the world are supported, so please consult the app to check local availability.
|
||||
The **Electricity Maps** {% term integration %} (formerly known as CO2Signal) queries the [Electricity Maps](https://www.electricitymaps.com/) API for the CO2 intensity of a specific region.
|
||||
Data can be collected for your home by using the home location, latitude/longitude, or a country code.
|
||||
|
||||
This API uses the same data as shown on the [Electricity Maps app](https://app.electricitymaps.com).
|
||||
Not all countries/regions in the world are supported, so please check the app to verify local availability before setting up the integration.
|
||||
|
||||
## Use case
|
||||
|
||||
The Electricity Maps integration helps you understand the carbon intensity of your electricity grid in real-time. This information can be valuable for:
|
||||
|
||||
- Timing energy-intensive tasks (like charging electric vehicles or running appliances) during periods of lower carbon intensity.
|
||||
- Creating automations that respond to changing grid conditions.
|
||||
- Visualizing your region's progress towards cleaner energy.
|
||||
- Understanding how weather conditions affect renewable energy availability in your area.
|
||||
- Tracking the carbon impact of your home's energy usage in the {% my energy title="**Energy Dashboard**" %}.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
To configure and use this integration, you need to obtain a free API key from Electricity Maps by signing up to the Free Tier product on the [Electricity Maps API Portal](https://electricitymaps.com/free-tier).
|
||||
Please be aware that the Free Tier API is limited to one location (called a zone). You need to specify the zone for your home location when creating your account.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Sensor types
|
||||
The integration provides the following configuration options when setting it up:
|
||||
|
||||
When configured, the platform will create two sensors for each configured location: the carbon intensity expressed in `gCO2eq/kWh` and a percentage of how much the grid relies on fossil fuels for production.
|
||||
{% configuration_basic %}
|
||||
Location:
|
||||
description: Choose between using your Home Assistant's configured home location, a specific country code, or custom latitude/longitude coordinates.
|
||||
API key:
|
||||
description: The API key obtained from the Electricity Maps API Portal.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
When configuring the location based on latitude/longitude, you will be prompted to enter the following:
|
||||
|
||||
{% configuration_basic %}
|
||||
Latitude:
|
||||
description: The latitude of your home location.
|
||||
Longitude:
|
||||
description: The longitude of your home location.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
When configuring the location based on a country code, you will be prompted to enter the following:
|
||||
|
||||
{% configuration_basic %}
|
||||
Country code:
|
||||
description: The two-letter ISO 3166-1 alpha-2 country code for your home location (e.g., "US" for the United States, "DE" for Germany).
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Supported functionality
|
||||
|
||||
### Sensors
|
||||
|
||||
The integration creates two sensors for each configured location:
|
||||
|
||||
- **Carbon intensity**: Shows the carbon intensity of electricity production in your area, measured in gCO2eq/kWh (grams of CO2 equivalent per kilowatt-hour).
|
||||
- **Fossil fuel percentage**: Shows what percentage of the electricity grid currently relies on fossil fuels for production.
|
||||
|
||||
## Examples
|
||||
|
||||
### Creating a dashboard card
|
||||
|
||||
You can create a gauge card to visualize the carbon intensity of your electricity:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
type: gauge
|
||||
entity: sensor.electricity_maps_carbon_intensity
|
||||
name: Carbon Intensity
|
||||
min: 0
|
||||
max: 500
|
||||
severity:
|
||||
green: 0
|
||||
yellow: 150
|
||||
red: 300
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Automation example: Run appliances when carbon intensity is low
|
||||
|
||||
This automation starts your dishwasher when the carbon intensity drops below a specific threshold:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
alias: "Run Dishwasher at Low Carbon Intensity"
|
||||
description: "Starts the dishwasher when carbon intensity is low"
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.electricity_maps_carbon_intensity
|
||||
below: 100
|
||||
for:
|
||||
minutes: 10
|
||||
condition:
|
||||
- condition: time
|
||||
after: "22:00:00"
|
||||
before: "06:00:00"
|
||||
- condition: state
|
||||
entity_id: binary_sensor.dishwasher_ready
|
||||
state: "on"
|
||||
action:
|
||||
- service: switch.turn_on
|
||||
target:
|
||||
entity_id: switch.dishwasher
|
||||
- service: notify.mobile_app
|
||||
data:
|
||||
message: "Dishwasher started during low carbon intensity period ({{ states('sensor.electricity_maps_carbon_intensity') }} gCO2eq/kWh)"
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Creating a history graph to track changes
|
||||
|
||||
Add this to your dashboard to track how carbon intensity changes throughout the day:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
type: history-graph
|
||||
entities:
|
||||
- entity: sensor.electricity_maps_carbon_intensity
|
||||
name: Carbon Intensity
|
||||
hours_to_show: 24
|
||||
refresh_interval: 60
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Energy Dashboard integration
|
||||
|
||||
The Electricity Maps integration is automatically used on the Energy Dashboard when set up. The carbon intensity data appears in the Energy Dashboard as a real-time gauge showing the carbon footprint of your household electricity usage.
|
||||
|
||||
You don't need to manually configure anything - the integration is automatically detected and used by the Energy Dashboard to calculate and display your home's carbon emissions based on your energy consumption and the current grid carbon intensity.
|
||||
|
||||
To view this information:
|
||||
1. Navigate to the {% my energy title="**Energy Dashboard**" %}.
|
||||
2. Look for the carbon intensity gauge in the dashboard.
|
||||
|
||||
If you don't see the carbon information in your Energy Dashboard:
|
||||
1. Make sure the Electricity Maps integration is properly set up and working.
|
||||
2. Verify that you have energy monitoring configured in Home Assistant.
|
||||
|
||||
## Data updates
|
||||
|
||||
The integration {% term polling polls %} data from the Electricity Maps API every 15 minutes by default. The actual update frequency may be limited by your API tier's rate limits.
|
||||
|
||||
## Known limitations
|
||||
|
||||
- The Free Tier API is limited to one location. You need to specify the country when creating your account.
|
||||
- The Free Tier API has a limit of 50 requests per hour, but the integration is designed to poll at a rate that won't exceed this limit.
|
||||
- Not all geographic regions are supported by Electricity Maps. Check their app to see if your region has coverage.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Integration fails to set up
|
||||
|
||||
#### Symptom: "The given token is invalid" during setup
|
||||
|
||||
If you see an invalid token error during setup, your API key may be invalid or expired.
|
||||
|
||||
##### Resolution
|
||||
|
||||
1. Verify that you've correctly copied the API key from the Electricity Maps API portal.
|
||||
2. Check if your API key is still active in the Electricity Maps API portal.
|
||||
3. Try generating a new API key if the issue persists.
|
||||
|
||||
#### Symptom: "No data available for selected location" during setup
|
||||
|
||||
If you receive a "No data available for selected location" error, the coordinates or country code you provided might not be supported by Electricity Maps.
|
||||
|
||||
##### Resolution
|
||||
|
||||
1. Check the [Electricity Maps app](https://app.electricitymaps.com) to verify coverage for your location.
|
||||
2. Try using a country code instead of coordinates, or vice versa.
|
||||
3. If your exact location isn't supported, try using the nearest supported location.
|
||||
|
||||
### Sensors show "unavailable"
|
||||
|
||||
If your sensors show as "unavailable" after successful setup, there might be issues with the API connection.
|
||||
|
||||
#### Resolution
|
||||
|
||||
1. Check your internet connection.
|
||||
2. Verify that your API key still has available quota for the day.
|
||||
3. Check if the Electricity Maps service is experiencing downtime.
|
||||
4. Restart Home Assistant if the issue persists.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
@ -27,7 +27,8 @@ Optimistic mode can be forced, even if a `state_topic` / `position_topic` is def
|
||||
|
||||
The `mqtt` cover platform optionally supports a list of `availability` topics to receive online and offline messages (birth and LWT messages) from the MQTT cover device. During normal operation, if the MQTT cover device goes offline (i.e., publishes a matching `payload_not_available` to any `availability` topic), Home Assistant will display the cover as "unavailable". If these messages are published with the `retain` flag set, the cover will receive an instant update after subscription and Home Assistant will display correct availability state of the cover when Home Assistant starts up. If the `retain` flag is not set, Home Assistant will display the cover as "unavailable" when Home Assistant starts up.
|
||||
|
||||
To use your MQTT cover in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT cover in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -36,6 +37,8 @@ mqtt:
|
||||
command_topic: "living-room-cover/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: "A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`."
|
||||
@ -170,7 +173,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Cover
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -35,33 +35,21 @@ In the [Datadog Agent configuration](https://github.com/DataDog/datadog-agent/bl
|
||||
|
||||
## Configuration
|
||||
|
||||
To use the `datadog` integration in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
datadog:
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
{% configuration_basic %}
|
||||
host:
|
||||
description: The IP address or hostname of your Datadog host, e.g., 192.168.1.23.
|
||||
required: false
|
||||
default: localhost
|
||||
type: string
|
||||
port:
|
||||
description: Port to use.
|
||||
required: false
|
||||
default: 8125
|
||||
type: integer
|
||||
prefix:
|
||||
description: Metric prefix to use.
|
||||
required: false
|
||||
default: "`hass`"
|
||||
type: string
|
||||
rate:
|
||||
description: The sample rate of UDP packets sent to Datadog.
|
||||
required: false
|
||||
default: 1
|
||||
type: integer
|
||||
{% endconfiguration %}
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
@ -16,7 +16,8 @@ The `mqtt` device tracker {% term integration %} allows you to define new device
|
||||
|
||||
## Configuration
|
||||
|
||||
To use this device tracker in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT device tracker in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -29,6 +30,8 @@ mqtt:
|
||||
state_topic: "location/paulus"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -139,7 +142,7 @@ name:
|
||||
required: false
|
||||
type: string
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
payload_available:
|
||||
|
@ -27,6 +27,7 @@ ha_platforms:
|
||||
- update
|
||||
ha_zeroconf: true
|
||||
ha_integration_type: device
|
||||
ha_quality_scale: silver
|
||||
---
|
||||
|
||||
The **devolo Home Network** {% term integration %} allows you to monitor and control your [devolo](https://www.devolo.global) PLC network. Depending on the device you add to Home Assistant, different use cases are possible. Roughly you can categorize the devices into Wi-Fi and non-Wi-Fi devices. Non-Wi-Fi devices are more or less limited in monitoring your PLC network. The Wi-Fi devices, however, can help with presence detection and remote control of your guest Wi-Fi. For details, please continue reading about the [entities](#entities) and look at the [supported devices](#supported-devolo-devices).
|
||||
@ -101,6 +102,7 @@ Currently, the following entities within Home Assistant are supported.
|
||||
|
||||
The list of supported devolo devices depends on the device firmware and the device features. The following devices were tested running firmware 5.6.0:
|
||||
|
||||
- Magic 2 WiFi 6 next
|
||||
- Magic 2 WiFi 6
|
||||
- Magic 2 WiFi next
|
||||
- Magic 2 WiFi 2-1
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: inexogy
|
||||
description: Instructions on how to integrate inexogy within Home Assistant.
|
||||
description: Instructions on how to integrate inexogy smart meters within Home Assistant.
|
||||
ha_category:
|
||||
- Energy
|
||||
- Sensor
|
||||
@ -20,7 +20,7 @@ ha_quality_scale: silver
|
||||
The **inexogy** {% term integration %} allows users to integrate their [inexogy](https://inexogy.com/) smart meters into Home Assistant.
|
||||
The integration is using the [official REST API](https://api.inexogy.com/docs/#/) by inexogy.
|
||||
|
||||
The integration supports the following meters within Home Assistant:
|
||||
The integration supports the following meter types within Home Assistant:
|
||||
|
||||
- [Electricity meter](#electricity-meter)
|
||||
- [Gas meter](#gas-meter)
|
||||
@ -40,14 +40,116 @@ Password:
|
||||
## Electricity meter
|
||||
|
||||
Sensor {% term entities %} are being added for current active power usage and the all-time total consumption.
|
||||
By default, the sensors for phase-specific current active power usage are disabled.
|
||||
By default, the sensors for phase-specific current active power usage are disabled but can be enabled in the entity settings.
|
||||
|
||||
In case you have a combined meter for consumption and production, the all-time total production is added as well.
|
||||
In case you have a bidirectional meter for consumption and production, the all-time total production is added as well.
|
||||
|
||||
## Gas meter
|
||||
|
||||
A Sensor {% term entity %} is being added for total gas consumption.
|
||||
|
||||
## Provided sensors
|
||||
|
||||
Depending on your meter type, different sensors are available:
|
||||
|
||||
### Electricity - Main sensors
|
||||
- `sensor.electricity_<street>_<number>_total_power`: Current power consumption in watts
|
||||
- `sensor.electricity_<street>_<number>_total_consumption`: Total energy consumption in kWh
|
||||
- `sensor.electricity_<street>_<number>_total_production`: Total energy production in kWh (bidirectional meters only)
|
||||
|
||||
### Electricity - Optional sensors (disabled by default)
|
||||
- `sensor.electricity_<street>_<number>_phase_1_power`: Power consumption phase 1 in watts
|
||||
- `sensor.electricity_<street>_<number>_phase_2_power`: Power consumption phase 2 in watts
|
||||
- `sensor.electricity_<street>_<number>_phase_3_power`: Power consumption phase 3 in watts
|
||||
- `sensor.electricity_<street>_<number>_phase_1_voltage`: Voltage phase 1 in volts
|
||||
- `sensor.electricity_<street>_<number>_phase_2_voltage`: Voltage phase 2 in volts
|
||||
- `sensor.electricity_<street>_<number>_phase_3_voltage`: Voltage phase 3 in volts
|
||||
|
||||
### Gas
|
||||
- `sensor.gas_<street>_<number>_total_gas_consumption`: Total gas consumption in cubic meters
|
||||
|
||||
## Data update
|
||||
|
||||
The sensors are updated every 30 seconds. This pulls the latest data available from the inexogy API.
|
||||
Note that this doesn't mean the meter data itself is new every 30 seconds. The frequency at which your meter sends new data to inexogy depends on your meter model and measurement concept.
|
||||
|
||||
## Use cases and examples
|
||||
|
||||
### Energy dashboard
|
||||
|
||||
The total consumption and production sensors provided by this integration are fully compatible with the [Home Assistant Energy Dashboard](/docs/energy/).
|
||||
|
||||
- `sensor.electricity_example_street_11_total_consumption` (total consumption) can be added to the "Grid consumption" field.
|
||||
- `sensor.electricity_example_street_11_total_production` (total production) can be added to the "Return to grid" field.
|
||||
|
||||
### Automations
|
||||
|
||||
You can use the current power sensor (`sensor.electricity_example_street_11_total_power`) to trigger automations based on your electricity usage.
|
||||
|
||||
Example: Send a notification when power consumption exceeds 3000 W for 5 minutes.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- alias: High Power Consumption Detected
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.electricity_example_street_11_total_power
|
||||
above: 3000
|
||||
for:
|
||||
minutes: 5
|
||||
action:
|
||||
- service: notify.mobile_app_your_device
|
||||
data:
|
||||
message: "High power consumption detected: {{ states('sensor.electricity_example_street_11_total_power') }} W"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
Example: Turn off high-power devices when photovoltaic production is insufficient (for bidirectional meters).
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- alias: Consumption Control Based on PV Output
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.electricity_example_street_11_total_power
|
||||
condition:
|
||||
- condition: numeric_state
|
||||
entity_id: sensor.electricity_example_street_11_total_power
|
||||
above: 0 # Positive value means grid consumption
|
||||
action:
|
||||
- service: switch.turn_off
|
||||
target:
|
||||
entity_id: switch.high_power_device
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### No data or stale sensors
|
||||
|
||||
If your sensors are not showing data or values are stale, check the following:
|
||||
|
||||
1. **inexogy Portal**: Log in to the [inexogy web portal](https://my.inexogy.com/) and check if it shows current data from your meter. If not, there might be an issue with your meter or connection to inexogy.
|
||||
|
||||
2. **Home Assistant Logs**: Check the Home Assistant logs for error messages related to the `inexogy` integration. Authentication errors (`Authentication failed`) mean your email address or password is incorrect.
|
||||
|
||||
3. **API Rate Limits**: The inexogy API has rate limits. Although the integration is designed to stay within these limits, frequent Home Assistant restarts or other tools using the API might lead to temporary blocks.
|
||||
|
||||
### Missing sensors
|
||||
|
||||
- **Production sensors**: The electricity production sensor is only available for bidirectional meters. If you have such a meter but don't see it, check your data in the inexogy portal.
|
||||
- **Phase sensors**: Per-phase power and voltage sensors are disabled by default and not available for all meters. You can enable them on the integration page under "Entities".
|
||||
|
||||
### Network issues
|
||||
|
||||
If you see connection errors, ensure that Home Assistant has a stable internet connection. The integration needs access to `api.inexogy.com` over HTTPS (port 443).
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
@ -19,7 +19,7 @@ The DLNA Digital Media Server integration allows you to browse and play media fr
|
||||
|
||||
## Renaming
|
||||
|
||||
The name/title of the DMS device is the same as the title of the config entry. It can be changed on the Integrations Configuration page from the three-dot menu.
|
||||
The name/title of the DMS device is the same as the title of the config entry. It can be changed on the Integrations Configuration page from the three dots {% icon "mdi:dots-vertical" %} menu.
|
||||
|
||||
## Media source URIs
|
||||
|
||||
|
@ -40,16 +40,22 @@ Host:
|
||||
type: string
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Data updates
|
||||
|
||||
The integration connects locally via WebSocket to the EHEIM Digital main device and requests data updates for all devices every 15 seconds by default.
|
||||
|
||||
## How you can use this integration
|
||||
|
||||
You can use this integration to control and monitor your EHEIM Digital aquarium devices directly from Home Assistant. This includes adjusting settings such as temperature, light brightness, and filter speed, as well as monitoring the status of your devices.
|
||||
|
||||
- **Receive notifications**: Get notified about important events, such as when the filter needs servicing or if there is an error with the device.
|
||||
- **More flexible day/night cycles**: Use Home Assistant's automation and scripting capabilities to create more complex day/night cycles for your aquarium devices than the native EHEIM Digital interface allows.
|
||||
- **Integrate with other devices**: While EHEIM Digital devices can interact with each other in a limited sense (for example, the EHEIM autofeeder can pause the filter pump after feeding), this integration allows you to automate and control your EHEIM Digital devices in conjunction with other smart home devices.
|
||||
|
||||
## Supported devices and entities
|
||||
|
||||
Currently, the following devices and entities are supported:
|
||||
|
||||
### All devices
|
||||
|
||||
#### Number
|
||||
|
||||
- **System LED brightness**: Controlling the brightness of the system LED
|
||||
|
||||
### [EHEIM classicLEDcontrol+e](https://eheim.com/en_GB/aquatics/technology/lighting-control/classicledcontrol-e/classicledcontrol-e)
|
||||
|
||||
#### Lights
|
||||
@ -104,7 +110,48 @@ Currently, the following devices and entities are supported:
|
||||
- **Day start time**: Setting the start time for the day pump speed in Bio mode
|
||||
- **Night start time**: Setting the start time for the night pump speed in Bio mode
|
||||
|
||||
Support for additional EHEIM Digital devices and entities will be added in future updates.
|
||||
### All supported devices
|
||||
|
||||
#### Number
|
||||
|
||||
- **System LED brightness**: Controlling the brightness of the system LED
|
||||
|
||||
## Automations
|
||||
|
||||
### Send a notification when the filter has an error
|
||||
|
||||
You can set up an automation to notify you when the filter has an error. This example uses the `notify.notify` service to send a notification:
|
||||
|
||||
{% details "Example automation to notify about filter errors" %}
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
alias: Notify about filter error
|
||||
description: "This automation sends a notification when the filter has an error."
|
||||
mode: single
|
||||
triggers:
|
||||
- trigger: state
|
||||
entity_id:
|
||||
- sensor.aquarienfilter_error_code
|
||||
to:
|
||||
- rotor_stuck
|
||||
- air_in_filter
|
||||
conditions: []
|
||||
actions:
|
||||
- action: notify.notify
|
||||
metadata: {}
|
||||
data:
|
||||
title: The filter has a problem!
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
## Known limitations
|
||||
|
||||
- The integration does not support other EHEIM Digital devices than those listed above. More devices will be added in future updates. It is, however, supported to have an unsupported device as the main device and supported devices as sub-devices, even though the unsupported device will not have any entities shown in Home Assistant.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
|
@ -144,6 +144,10 @@ Based on the Envoy firmware version, the Envoy may provide inverter device data
|
||||
- **Inverter <abbr title="micro-inverter serial number">SN</abbr> Lifetime energy**: Total energy produced during inverter lifetime (Wh).
|
||||
- **Inverter <abbr title="micro-inverter serial number">SN</abbr> Report duration**: Time in seconds covered by the last report data.
|
||||
|
||||
{% note %}
|
||||
Due to a limitation in the Envoy firmware, the inverter device data is only available when 49 or fewer inverters are configured. When more than 49 inverters are configured, only the 3 power production entities are available for each inverter.
|
||||
{% endnote %}
|
||||
|
||||
<figure>
|
||||
<img src="/images/integrations/enphase_envoy/enphase_envoy_inverter_device.png" alt="micro-inverter device">
|
||||
<figcaption>Micro-inverter device with solar production entities.</figcaption>
|
||||
@ -700,7 +704,9 @@ When using Envoy Metered with <abbr title="current transformers">CT</abbr>
|
||||
|
||||
- not all firmware versions report `Energy production today` and/or `Energy consumption today` correctly. Zero data and unexpected spikes have been reported. In this case, best use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity for daily reporting.
|
||||
- not all firmware versions report `Energy production last seven days` and/or `Energy consumption last seven days` correctly. Zero and unexpected values have been reported.
|
||||
- `Energy production today` has been reported not to reset to zero at the start of the day. Instead, it resets to a non-zero value that gradually increases over time. This issue has also been reported as starting suddenly overnight. For daily reporting, it is recommended to use a utility meter with the `Lifetime energy production` entity.
|
||||
- `Energy production today` and `Energy consumption today` have been reported not to reset to zero at the start of the day. Instead, it resets to a non-zero value that seems to gradually increase over time, although other values have been reported as well. This issue has also been reported as starting suddenly overnight. For daily reporting, it is recommended to use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity.
|
||||
|
||||
- `Energy production today`, `Energy consumption today`, `Energy production last seven days` and `Energy consumption last seven days` have been reported not to reset to zero at the start of the day. Instead, it resets to zero at a later time, often 1 am. This seems to be daylight savings time change related.
|
||||
|
||||
{% details "History examples for Today's energy production value not resetting to zero" %}
|
||||
|
||||
@ -730,7 +736,7 @@ Envoy Metered without installed CT, running older firmware versions, reportedly
|
||||
|
||||
### Lifetime energy production decreases by 1.2 MWh
|
||||
|
||||
Envoy Standard (not Metered), running firmware 8.2.4264, reportedly decreases the **Lifetime energy production** value by 1.2 MWh at irregular times. The current hypothesis is that the step change occurs when one of the inverters exceeds a lifetime value of 1.2 MWh and resets to zero. This leads to the decrease with 1.2 MWh in the aggregated value for all inverters. It's not clear if this also happens for the metered Envoy.
|
||||
Envoy Standard (not Metered), running firmware 8.2.4264, reportedly decreases the **Lifetime energy production** value by 1.2 MWh at irregular times. The current hypothesis is that the step change occurs when one of the inverters exceeds an internal lifetime joules counter of 32 bit, which is 1.19 MWh, and resets to zero. This leads to a decrease of 1.2 MWh in the aggregated value for all inverters. It's not clear if this also happens for the metered Envoy.
|
||||
|
||||
{% details "History example for Envoy Lifetime energy production value decrease" %}
|
||||
|
||||
@ -742,6 +748,14 @@ The example below shows decreases when multiple inverters reach a 1.2 MWh lifeti
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
### Missing inverter data
|
||||
|
||||
If you are not seeing all your installed [inverters](#sensor-entities), and you have more than 49 inverters installed, and you are running HA 2025.7, 2025.7.1, or 2025.7.2, then upgrade HA to 2025.7.3 or newer. Due to a limitation in the Envoy firmware. Only the inverter details for 49 inverters are available. In the mentioned releases, any more inverters got dropped. The 2025.7.3 version fixed this by only using the inverter base data, which does not have this limitation.
|
||||
|
||||
### Missing inverter details
|
||||
|
||||
If you are not seeing [inverters](#sensor-entities) detail data, verify if you have more than 49 inverters installed. Due to a limitation in the Envoy firmware, the inverter device detail data is only available when 49 or fewer inverters are configured. When more than 49 inverters are configured, only the 3 power production entities are available for each inverter.
|
||||
|
||||
### Summed Voltage
|
||||
|
||||
The Envoy Metered in multiphase setup, sums the voltages of the phases measured on the CT for the aggregated data. This may be valid for split-phase, but for 3-phase systems, use the individual phases rather than the summed value.
|
||||
|
@ -12,6 +12,9 @@ The `mqtt` event platform allows you to process event info from an MQTT message.
|
||||
|
||||
## Configuration
|
||||
|
||||
To use an MQTT event entity in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
@ -21,6 +24,8 @@ mqtt:
|
||||
- press
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -155,7 +160,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Event
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
payload_available:
|
||||
|
@ -18,7 +18,7 @@ When a `state_topic` is not available, the fan will work in optimistic mode. In
|
||||
|
||||
Optimistic mode can be forced even if a `state_topic` is available. Try to enable it if you are experiencing incorrect fan operation.
|
||||
|
||||
To enable MQTT fans in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
To use an MQTT fan in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
@ -28,6 +28,8 @@ mqtt:
|
||||
command_topic: "bedroom_fan/on/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -162,7 +164,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Fan
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -28,30 +28,38 @@ ha_codeowners:
|
||||
ha_integration_type: hub
|
||||
---
|
||||
|
||||
The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [AVM Smart Home](https://en.avm.de/products/smart-home/) (_former AVM FRITZ!DECT_) devices like plugs, thermostats or shutter drivers as also trigger so called smart home templates (_contains settings for Smart Home devices of the same type_).
|
||||
The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [AVM Smart Home](https://en.fritz.com/products/smart-home/) (_former AVM FRITZ!DECT_) devices like plugs, thermostats or shutter drivers as also trigger so called smart home templates (_contains settings for Smart Home devices of the same type_).
|
||||
|
||||
#### Tested devices
|
||||
|
||||
- FRITZ!Box routers
|
||||
- [FRITZ!Box 5590 Fiber][fritzbox_5590_fiber]
|
||||
- FRITZ!Box 6490 Cable
|
||||
- [FRITZ!Box 6591 Cable][fritzbox_6591_cable]
|
||||
- [FRITZ!Box 7590][fritzbox_7590]
|
||||
- [FRITZ!Box 7590 AX][fritzbox_7590_ax]
|
||||
- [FRITZ!Box 7530 AX][fritzbox_7530_ax]
|
||||
- FRITZ!Box 6591 Cable
|
||||
- FRITZ!Box 7590
|
||||
- FRITZ!Box 7490
|
||||
- FRITZ!Box 7430
|
||||
- [FRITZ!DECT 200][fritzdect_200]
|
||||
- [FRITZ!DECT 210][fritzdect_210]
|
||||
- [FRITZ!DECT 301][fritzdect_301]
|
||||
- [FRITZ!DECT 302][fritzdect_302]
|
||||
- [FRITZ!DECT 500][fritzdect_500]
|
||||
- [Eurotronic Comet DECT][eurotronic_comet_dect]
|
||||
- [Magenta SmartHome LED E27 Color][magenta_led_e27_color]
|
||||
- [FRITZ!Box 7590 AX][fritzbox_7590_ax]
|
||||
- [FRITZ!Box 7530 AX][fritzbox_7530_ax]
|
||||
- [FRITZ!Smart Gateway][fritz_smart_gateway]
|
||||
- FRITZ!SmartHome devices
|
||||
- [FRITZ!Smart Energy 200][fritzdect_200] (_former FRITZ!DECT 200_)
|
||||
- [FRITZ!Smart Energy 210][fritzdect_210] (_former FRITZ!DECT 210_)
|
||||
- FRITZ!Smart Thermo 301 (_former FRITZ!DECT 301_)
|
||||
- [FRITZ!Smart Thermo 302][fritzdect_302] (_former FRITZ!DECT 302_)
|
||||
- FRITZ!DECT 500
|
||||
- Smart home devices from other vendors
|
||||
- Eurotronic Comet DECT
|
||||
- Magenta SmartHome LED E27 Color
|
||||
- Magenta SmartHome LED E27 warmwhite
|
||||
- [Rademacher RolloTron DECT 1213][rademacher_rollotron_dect_1213]
|
||||
- [Homepilot RolloTron DECT 1213][rademacher_rollotron_dect_1213] (_former Rademacher RolloTron DECT 1213_)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Please note that in a [mesh](https://en.fritz.com/service/knowledge-base/dok/FRITZ-Box-7590/3329_Mesh-with-FRITZ/) setup, only the FRITZ!Box with the mesh master role should be added with the AVM FRITZ!SmartHome integration.
|
||||
|
||||
### Username
|
||||
|
||||
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 %}
|
||||
@ -64,28 +72,28 @@ If you still want to use the predefined user, please note that as of FRITZ!OS 7.
|
||||
Host:
|
||||
description: "The hostname or IP address of your FRITZ!Box router."
|
||||
Username:
|
||||
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
|
||||
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [Username](#username)_)"
|
||||
Password:
|
||||
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
|
||||
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [Username](#username)_)"
|
||||
{% 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_).
|
||||
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!Smart Control 350][fritzdect_350] door/window contact sensors or the [FRITZ!Smart Control 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.
|
||||
Light bulbs like the FRITZ!DECT 500 or Magenta SmartHome LED E27 Color will be integrated as {% term light %} entities.
|
||||
|
||||
{% note %}
|
||||
The [FRITZ!DECT 500][fritzdect_500] light bulb supports only 36 colors. When a color is picked in Home Assistant that is not supported by the device, a color that comes close will be activated.
|
||||
The FRITZ!DECT 500 light bulb supports only 36 colors. When a color is picked in Home Assistant that is not supported by the device, a color that comes close will be activated.
|
||||
{% endnote %}
|
||||
|
||||
### Plugs
|
||||
|
||||
Plugs like the [FRITZ!DECT 200][fritzdect_200] or [FRITZ!DECT 210][fritzdect_210] will be integrated as {% term switch %} entities.
|
||||
Plugs like the [FRITZ!Smart Energy 200][fritzdect_200] or [FRITZ!Smart Energy 210][fritzdect_210] will be integrated as {% term switch %} entities.
|
||||
|
||||
Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device, based on its capabilities:
|
||||
|
||||
@ -99,15 +107,15 @@ Further there are additional {% term sensor %} and {% term binary_sensor "binary
|
||||
|
||||
### Shutter drivers
|
||||
|
||||
Shutter drivers like the [Rademacher RolloTron DECT 1213][rademacher_rollotron_dect_1213] will be integrated as {% term cover %} entities.
|
||||
Shutter drivers like the [Homepilot RolloTron DECT 1213][rademacher_rollotron_dect_1213] will be integrated as {% term cover %} entities.
|
||||
|
||||
### Templates
|
||||
|
||||
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.
|
||||
Self defined [templates](https://en.fritz.com/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
|
||||
|
||||
Thermostats like the [FRITZ!DECT 301][fritzdect_301], [FRITZ!DECT 302][fritzdect_302] or [Eurotronic Comet DECT][eurotronic_comet_dect] will be integrated as {% term climate %} entities.
|
||||
Thermostats like the FRITZ!Smart Thermo series or Eurotronic Comet DECT will be integrated as {% term climate %} entities.
|
||||
|
||||
Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device which can be useful for {% term automations %} and {% term templates %}, based on its capabilities:
|
||||
|
||||
@ -127,7 +135,7 @@ Further there are additional {% term sensor %} and {% term binary_sensor "binary
|
||||
|
||||
### Other devices
|
||||
|
||||
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.
|
||||
Event based devices like motion detection sensors or window/door contacts or buttons (_for example, [FRITZ!Smart Control 350][fritzdect_350] or the [FRITZ!Smart Control 440][fritzdect_440]_) cannot be controlled or used via this integration, but their 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:
|
||||
|
||||
@ -139,20 +147,15 @@ The availability of these {% term sensor %} and {% term binary_sensor "binary se
|
||||
- Open window detected
|
||||
- Temperature
|
||||
|
||||
[fritzbox_5590_fiber]: https://en.avm.de/products/fritzbox/fritzbox-5590-fiber
|
||||
[fritzbox_6591_cable]: https://en.avm.de/products/fritzbox/fritzbox-6591-cable
|
||||
[fritzbox_7590]: https://en.avm.de/products/fritzbox/fritzbox-7590
|
||||
[fritzbox_7590_ax]: https://en.avm.de/products/fritzbox/fritzbox-7590-ax
|
||||
[fritzbox_7530_ax]: https://en.avm.de/products/fritzbox/fritzbox-7530-ax
|
||||
[fritzdect_200]: https://en.avm.de/products/smart-home/fritzdect-200
|
||||
[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
|
||||
[magenta_led_e27_color]: https://www.smarthome.de/geraete/smarthome-led-lampe-e27-farbig-weiss
|
||||
[fritzbox_5590_fiber]: https://en.fritz.com/products/fritzbox/fritzbox-5590-fiber
|
||||
[fritzbox_7590_ax]: https://en.fritz.com/products/fritzbox/fritzbox-7590-ax
|
||||
[fritzbox_7530_ax]: https://en.fritz.com/products/fritzbox/fritzbox-7530-ax
|
||||
[fritzdect_200]: https://en.fritz.com/products/smart-home/fritzsmart-energy-200
|
||||
[fritzdect_210]: https://en.fritz.com/products/smart-home/fritzsmart-energy-210
|
||||
[fritzdect_302]: https://en.fritz.com/products/smart-home/fritzsmart-thermo-302
|
||||
[fritzdect_350]: https://en.fritz.com/products/smart-home/fritzsmart-control-350
|
||||
[fritzdect_440]: https://en.fritz.com/products/smart-home/fritzsmart-control-440
|
||||
[fritz_smart_gateway]: https://en.fritz.com/products/smart-home/fritzsmart-gateway
|
||||
[rademacher_rollotron_dect_1213]: https://www.rademacher.de/shop/rollladen-sonnenschutz/elektrischer-gurtwickler/rollotron-dect-1213
|
||||
|
||||
## Troubleshooting
|
||||
|
@ -246,3 +246,8 @@ Then you can converse with Google Assistant by tapping the Assist icon at the to
|
||||
Or by calling the `conversation.process` action.
|
||||
|
||||
Note: due to a bug in the Google Assistant API, not all responses contain text, especially for home control commands, like turn on the lights. These will be shown as `<empty response>`. For those, Google Assistant responds with HTML and Home Assistant integrations are [not allowed](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md) to parse HTML.
|
||||
|
||||
|
||||
## Removing the integration
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
@ -2,6 +2,7 @@
|
||||
title: Google Generative AI
|
||||
description: Instructions on how to integrate Google Generative AI as a conversation agent
|
||||
ha_category:
|
||||
- Speech-to-text
|
||||
- Text-to-speech
|
||||
- Voice
|
||||
ha_release: 2023.6
|
||||
@ -15,6 +16,7 @@ ha_integration_type: service
|
||||
ha_platforms:
|
||||
- conversation
|
||||
- diagnostics
|
||||
- stt
|
||||
- tts
|
||||
related:
|
||||
- docs: /voice_control/voice_remote_expose_devices/
|
||||
@ -27,7 +29,7 @@ related:
|
||||
title: Google Generative AI
|
||||
---
|
||||
|
||||
The Google Generative AI integration adds a conversation agent and text-to-speech engine powered by [Google Generative AI](https://ai.google.dev/) to Home Assistant. It can optionally be allowed to control Home Assistant.
|
||||
The Google Generative AI integration adds a conversation agent, speech-to-text, and text-to-speech entities powered by [Google Generative AI](https://ai.google.dev/) to Home Assistant. The conversation agent can optionally be allowed to control Home Assistant.
|
||||
|
||||
Controlling Home Assistant is done by providing the AI access to the Assist API of Home Assistant. You can control what devices and entities it can access from the {% my voice_assistants title="exposed entities page" %}. The AI is able to provide you information about your devices and control them.
|
||||
|
||||
@ -241,3 +243,7 @@ logger:
|
||||
homeassistant.components.conversation.chat_log: debug
|
||||
homeassistant.components.google_generative_ai_conversation: debug
|
||||
```
|
||||
|
||||
## Removing the integration
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
@ -22,7 +22,6 @@ To enable local control on your Govee device, refer to the instructions availabl
|
||||
|
||||
## Supported devices
|
||||
|
||||
H6008,
|
||||
H6022,
|
||||
H6042,
|
||||
H6046,
|
||||
|
@ -40,6 +40,7 @@ Any Gree Smart device working with the Gree+ app should be supported, including
|
||||
- Heiwa
|
||||
- Ekokai
|
||||
- Lessar
|
||||
- Tosot
|
||||
|
||||
## Climate
|
||||
|
||||
|
@ -25,10 +25,6 @@ It required that `hddtemp` is started or running in daemon mode on a local or re
|
||||
hddtemp -dF
|
||||
```
|
||||
|
||||
{% important %}
|
||||
You can't use this sensor in a container (only Home Assistant Core is supported) as it requires access to `hddtemp` which is not available in a container-based setup.
|
||||
{% endimportant %}
|
||||
|
||||
## Configuration
|
||||
|
||||
To setup a HDDTemp to your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
|
@ -70,7 +70,7 @@ Password:
|
||||
Once setup, the host name or IP address used to access the HEOS System can be changed by reconfiguring the integration.
|
||||
|
||||
1. Go to **{% my integrations icon title="Settings > Devices & Services" %}**.
|
||||
2. Select **Denon HEOS**. Click the three-dot {% icon "mdi:dots-vertical" %} menu and then select **Reconfigure**.
|
||||
2. Select **Denon HEOS**. Click the three dots {% icon "mdi:dots-vertical" %} menu and then select **Reconfigure**.
|
||||
3. Enter a new [host name or IP address](/integrations/heos/#host).
|
||||
4. Click Submit to complete the reconfiguration.
|
||||
|
||||
@ -79,7 +79,7 @@ Once setup, the host name or IP address used to access the HEOS System can be ch
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
||||
1. Go to **{% my integrations icon title="Settings > Devices & Services" %}**.
|
||||
2. Select **Denon HEOS**. Click the three-dot {% icon "mdi:dots-vertical" %} menu and then select **Delete**.
|
||||
2. Select **Denon HEOS**. Click the three dots {% icon "mdi:dots-vertical" %} menu and then select **Delete**.
|
||||
|
||||
## Actions
|
||||
|
||||
|
@ -121,7 +121,7 @@ Depending on the sensor type you choose, the `history_stats` integration can sho
|
||||
|
||||
- **time**: The default value, which is the tracked time, in hours
|
||||
- **ratio**: The tracked time divided by the length of your period, as a percentage
|
||||
- **count**: How many times the tracked entity matched the configured state during the time period. This will count states (for example, how many times a light was in the `on` state during the time period), as opposed to counting state transitions (for example, how many times a light was *turned* `on`). The difference is if the entity was already in the desired state at the start of the time period, that scenario will be counted with this sensor type.
|
||||
- **count**: How many times the tracked entity matched the configured state during the time period. This will count states (for example, how many times a light was in the `on` state during the time period), as opposed to counting state transitions (for example, how many times a light was *turned* `on`). The difference is if the entity was already in the desired state at the start of the time period, that scenario will be counted with this sensor type. If a list of states is provided to the state option, transitions between defined states are considered all part of a single event and do not increment the count.
|
||||
|
||||
{% note %}
|
||||
For a **time** or **count** sensor that uses a time period that does not slide (such as one that resets upon each hour, as opposed to one which considers the trailing 60 minutes), consider using [customization](/docs/configuration/customizing-devices/#customizing-an-entity-in-yaml) to change the `state_class` to `total_increasing` to generate statistics that track the `sum`. This is useful when emulating the behavior of a `utility_meter` helper that has a defined reset cycle. Without intervention, the `state_class` of any `history_stats` sensor will be `measurement` and will therefore generate `average`, `min`, and `max` statistics.
|
||||
|
@ -1130,9 +1130,7 @@ actions:
|
||||
device_id: "your_device_id"
|
||||
affects_to: "active_program"
|
||||
program: "dishcare_dishwasher_program_eco_50"
|
||||
options:
|
||||
- key: "dishcare_dishwasher_option_silence_on_demand"
|
||||
value: true
|
||||
dishcare_dishwasher_option_silence_on_demand: true
|
||||
else:
|
||||
- service: home_connect.set_program_and_options
|
||||
data:
|
||||
|
@ -40,7 +40,7 @@ ha_platforms:
|
||||
- switch
|
||||
- valve
|
||||
ha_integration_type: hub
|
||||
ha_quality_scale: bronze
|
||||
ha_quality_scale: silver
|
||||
---
|
||||
|
||||
[Homee](https://hom.ee) is a smart home system, able to integrate various protocols such as Z-Wave, Zigbee, EnOcean, and more. The Homee {% term integration %} will let you use the {% term devices %} from your Homee in Home Assistant.
|
||||
@ -100,7 +100,7 @@ This integration supports reconfiguration, allowing you to change the IP address
|
||||
|
||||
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the homee integration card.
|
||||
2. From the list of hubs, select the one you want to reconfigure.
|
||||
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Reconfigure**.
|
||||
3. Next to the entry, select the three dots {% icon "mdi:dots-vertical" %} menu. Then, select **Reconfigure**.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
|
@ -13,6 +13,7 @@ ha_category:
|
||||
- Lock
|
||||
- Sensor
|
||||
- Switch
|
||||
- Valve
|
||||
ha_iot_class: Cloud Push
|
||||
ha_release: 0.66
|
||||
ha_config_flow: true
|
||||
@ -28,6 +29,7 @@ ha_platforms:
|
||||
- lock
|
||||
- sensor
|
||||
- switch
|
||||
- valve
|
||||
- weather
|
||||
ha_integration_type: integration
|
||||
ha_codeowners:
|
||||
@ -48,6 +50,7 @@ There is currently support for the following device types within Home Assistant:
|
||||
- Lock
|
||||
- Sensor
|
||||
- Switch
|
||||
- Valve
|
||||
- Weather
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
@ -207,6 +210,9 @@ Currently, the **HmIP-DLD** can only be used in Home Assistant without a PIN. En
|
||||
- Switch Actuator for DIN rail mount – 1x channels (*HMIP-DRSI1*)
|
||||
- Switch Actuator - 2x channels (*HmIP-BS2*)
|
||||
|
||||
- homematicip_cloud.valve
|
||||
- Smart Watering Actuator (*ELV-SH-WSM*)
|
||||
|
||||
- homematicip_cloud.weather
|
||||
- Weather Sensor – basic (*HmIP-SWO-B*)
|
||||
- Weather Sensor – plus (*HmIP-SWO-PL*)
|
||||
|
@ -18,7 +18,8 @@ When a `state_topic` is not available, the humidifier will work in optimistic mo
|
||||
|
||||
Optimistic mode can be forced even if a `state_topic` is available. Try to enable it if you are experiencing incorrect humidifier operation.
|
||||
|
||||
To enable MQTT humidifiers in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT humidifier in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -28,6 +29,8 @@ mqtt:
|
||||
target_humidity_command_topic: "bedroom_humidifier/humidity/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
action_template:
|
||||
description: A template to render the value received on the `action_topic` with.
|
||||
@ -195,7 +198,7 @@ name:
|
||||
type: string
|
||||
default: MQTT humidifier
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -149,6 +149,7 @@ The integration will create the following sensors:
|
||||
- Cutting blade usage time (if available)
|
||||
- Error. For example: *Mower tilted*, *outside geofence*.
|
||||
- Downtime (if available)
|
||||
- Inactive reason (if available). For example: *Searching for satellites* or *planning*.
|
||||
- Restricted reason. For example: *Week schedule*, *frost*, or *daily limit*.
|
||||
- Mode
|
||||
- Next start
|
||||
|
@ -2,15 +2,20 @@
|
||||
title: Huum
|
||||
description: Instructions on how to integrate a Huum saunas into Home Assistant.
|
||||
ha_category:
|
||||
- Binary sensor
|
||||
- Climate
|
||||
- Light
|
||||
ha_release: 2024.2
|
||||
ha_iot_class: Cloud Polling
|
||||
ha_codeowners:
|
||||
- '@frwickst'
|
||||
- '@vincentwolsink'
|
||||
ha_domain: huum
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- climate
|
||||
- light
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
@ -28,3 +33,20 @@ sauna by mistake.
|
||||
{% endnote %}
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Available platforms & entities
|
||||
|
||||
### Binary sensors
|
||||
|
||||
- **Door**: Sauna door state (open or closed).
|
||||
|
||||
### Climate
|
||||
|
||||
The climate entity controls the sauna heater and offers the following capabilities:
|
||||
|
||||
- Adjust target temperature
|
||||
- Change operation mode (off or heat)
|
||||
|
||||
### Light
|
||||
|
||||
- **Light**: Sauna light control (on or off).
|
||||
|
@ -18,7 +18,8 @@ An alternative setup is to use the `url_topic` option to receive an image URL fo
|
||||
|
||||
## Configuration
|
||||
|
||||
To enable this image in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT image entity in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -27,6 +28,8 @@ mqtt:
|
||||
url_topic: mynas/status/url
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -165,7 +168,7 @@ name:
|
||||
required: false
|
||||
type: string
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
unique_id:
|
||||
|
@ -30,7 +30,9 @@ Hydrological station:
|
||||
Sensor entities added to Home Assistant:
|
||||
|
||||
- Water level
|
||||
- Water flow (if a given hydrological station supports it)
|
||||
- Water temperature (if a given hydrological station supports it)
|
||||
- Hydrological alert (provides information on hydrological alerts for a given river and area)
|
||||
|
||||
## Removing the integration
|
||||
|
||||
|
@ -26,6 +26,10 @@ This integration allows adding an [Immich](https://immich.app/) user account to
|
||||
|
||||
You need to [obtain the API key](https://immich.app/docs/features/command-line-interface#obtain-the-api-key) for your user account in your Immich instance.
|
||||
|
||||
### API key permissions
|
||||
|
||||
For full functionality, enable the `album.read` and the `asset.upload` permission when creating your API key. Without this permission, the media source integration will not work, but all monitoring sensors will continue to function normally.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
@ -43,7 +47,7 @@ The integration polls data every 60 seconds.
|
||||
|
||||
## Media source
|
||||
|
||||
A [media source](/integrations/media_source/) is provided for your [Immich](https://immich.app/) albums. It shows only the albums you own or that are shared with you. If you have multiple Immich integrations in Home Assistant (_one integration for each Immich user_), only the albums for that specific user are shown.
|
||||
A [media source](/integrations/media_source/) is provided for your [Immich](https://immich.app/) albums. It shows only the assets you own or that are shared with you. If you have multiple Immich integrations in Home Assistant (_one integration for each Immich user_), only the assets for that specific user are shown. The assets are grouped by albums, people, and tags.
|
||||
|
||||
## Sensors
|
||||
|
||||
@ -64,6 +68,52 @@ The following {% term sensors %} are created. For some of those the API key need
|
||||
|
||||
An {% term update %} entity is created to inform about a new available Immich server version (_requires Immich server v1.134.0_).
|
||||
|
||||
## Actions
|
||||
|
||||
### Upload file
|
||||
|
||||
This action allows you to upload a media file to your Immich instance. It takes the following arguments:
|
||||
|
||||
{% configuration_basic %}
|
||||
Immich instance:
|
||||
description: The config entry of the Immich instance where to upload the file.
|
||||
File:
|
||||
description: Use the [MediaSelector](/docs/blueprint/selectors/#media-selector) to define the file to be uploaded.
|
||||
keys:
|
||||
media_content_id:
|
||||
description: The [media source](/integrations/media_source) URL.
|
||||
media_content_type:
|
||||
description: The MIME type of the file to be uploaded.
|
||||
Album ID:
|
||||
description: The album in which the file should be placed after uploading. To get the album ID, open the Immich instance web UI in a browser and navigate to the corresponding album, the album ID can now be found in the URL `https://your-immich-instance/albums/<ALBUM-ID>`
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
#### Example script
|
||||
|
||||
Take a snapshot of a camera entity via the [`camera.snapshot`](/integrations/camera/#action-snapshot) action, use the [local media](/integrations/media_source/#local-media) path to store the snapshot and upload it to the Immich instance in a specific album.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
sequence:
|
||||
- variables:
|
||||
file_name: camera.yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg
|
||||
- action: camera.snapshot
|
||||
data:
|
||||
filename: "/media/{{ file_name }}"
|
||||
target:
|
||||
entity_id: camera.yourcamera
|
||||
- action: immich.upload_file
|
||||
data:
|
||||
config_entry_id: 01JVJ0RA387MWA938VE8HGXBMJ
|
||||
file:
|
||||
media_content_id: "media-source://media_source/local/{{ file_name }}",
|
||||
media_content_type: "image/jpeg",
|
||||
album_id: f2de0ede-d7d4-4db3-afe3-7288f4e65bb1
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## 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.
|
||||
|
@ -91,7 +91,8 @@ The following controls allow you to customize the settings and options for your
|
||||
|
||||
### Basic settings
|
||||
|
||||
- **Boost temperature:** Sets the temperature for boost mode, which temporarily overrides the soldering temperature when the front button is held down.
|
||||
- **Boost:** Enables or disables the boost feature. When enabled, holding the front button temporarily raises the tip to the boost temperature.
|
||||
- **Boost temperature:** Defines the temporary temperature increase activated when holding the front button.
|
||||
- **Sleep temperature:** The temperature the device drops to after a specified period of inactivity (no movement or button presses).
|
||||
- **Sleep timeout:** The duration of inactivity required before the device enters sleep mode and drops to the sleep temperature.
|
||||
|
||||
|
@ -12,6 +12,7 @@ ha_codeowners:
|
||||
- '@shmuelzon'
|
||||
ha_domain: ituran
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- device_tracker
|
||||
- sensor
|
||||
ha_integration_type: hub
|
||||
@ -39,6 +40,12 @@ The information is pulled every 5 minutes from the Ituran web service; however,
|
||||
|
||||
## Supported functionality
|
||||
|
||||
### Binary sensor
|
||||
|
||||
The Ituran {% term integration %} exposes the following binary sensors for each registered vehicle:
|
||||
|
||||
- **Charging** - Only for EV's. The charging state of the vehicle
|
||||
|
||||
### Device tracker
|
||||
|
||||
The Ituran {% term integration %} will track the location of each vehicle registered to your account.
|
||||
@ -48,10 +55,12 @@ The Ituran {% term integration %} will track the location of each vehicle regist
|
||||
The Ituran {% term integration %} also exposes the following sensors for each registered vehicle:
|
||||
|
||||
- **Address** - The address that corresponds with the vehicle's location, as determined by Ituran
|
||||
- **Battery level** - Only for EV's. The battery level (%) of the vehicle
|
||||
- **Battery voltage** - The measured voltage (V) of the car battery. If not supported by the installation, the value will be set to `-1`
|
||||
- **Heading** - The direction (0-359°) that the vehicle is pointing to
|
||||
- **Last update from vehicle** - The time from when the vehicle last published its information to the Ituran cloud
|
||||
- **Mileage** - The distance (km) the vehicle has traveled
|
||||
- **Remaining range** - The distance (km) the vehicle can travel until the battery is depleted
|
||||
- **Speed** - The current speed (km/h) of the vehicle
|
||||
|
||||
## Known limitations
|
||||
|
@ -65,3 +65,126 @@ Password:
|
||||
Audio Codec:
|
||||
description: Sets the audio encoding codec to a Jellyfin API supported codec (aac, mp3, vorbis, wma)
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Actions
|
||||
|
||||
### Action browse media
|
||||
|
||||
You can use the `media_player.browse_media` action to step through your Jellyfin library to find media you want to play.
|
||||
|
||||
| Data attribute | Description |
|
||||
| --------------------- | ----------------------------------------------------------------------- |
|
||||
| `entity_id` | `entity_id` of the media player |
|
||||
| `media_content_id` | **(optional)** Unique identifier of the content you want to browse into |
|
||||
|
||||
To start your browsing you don't set `media_content_id` to browse the root node.
|
||||
|
||||
#### Examples:
|
||||
```yaml
|
||||
action: media_player.browse_media
|
||||
target:
|
||||
entity_id: media_player.jellyfin
|
||||
data:
|
||||
media_content_id: a656b907eb3a73532e40e44b968d0225
|
||||
```
|
||||
|
||||
#### Response
|
||||
```yaml
|
||||
media_player.jellyfin:
|
||||
title: Series
|
||||
media_class: directory
|
||||
media_content_type: None
|
||||
media_content_id: a656b907eb3a73532e40e44b968d0225
|
||||
children_media_class: directory
|
||||
can_play: false
|
||||
can_expand: true
|
||||
can_search: false
|
||||
thumbnail: >-
|
||||
https://jellyfin
|
||||
not_shown: 0
|
||||
children:
|
||||
- title: "Tales of the Jedi"
|
||||
media_class: directory
|
||||
media_content_type: tvshow
|
||||
media_content_id: 34361f3855c9c0ac39b0f7503fe86be0
|
||||
children_media_class: null
|
||||
can_play: false
|
||||
can_expand: true
|
||||
can_search: false
|
||||
thumbnail: >-
|
||||
https://jellyfin
|
||||
```
|
||||
|
||||
### Action search media
|
||||
|
||||
You can use the `media_player.search_media` action to find media you want to play.
|
||||
|
||||
| Data attribute | Description |
|
||||
| --------------------- | ------------------------------------------------- |
|
||||
| `entity_id` | `entity_id` of the media player |
|
||||
| `search_query` | The search term |
|
||||
|
||||
#### Examples:
|
||||
|
||||
```yaml
|
||||
action: media_player.search_media
|
||||
target:
|
||||
entity_id:
|
||||
- media_player.jellyfin
|
||||
data:
|
||||
search_query: star
|
||||
```
|
||||
#### Response
|
||||
```yaml
|
||||
media_player.jellyfin:
|
||||
version: 1
|
||||
result:
|
||||
- title: Star Wars
|
||||
media_class: directory
|
||||
media_content_type: Video
|
||||
media_content_id: 895dc4e1066da92847d48f9be28eb77c
|
||||
children_media_class: null
|
||||
can_play: false
|
||||
can_expand: false
|
||||
can_search: false
|
||||
thumbnail: >-
|
||||
https://jellyfin
|
||||
not_shown: 0
|
||||
children: []
|
||||
- title: Star Trek
|
||||
media_class: directory
|
||||
media_content_type: Video
|
||||
media_content_id: 5ae55567cae75c26671a0a6b027bdd5b
|
||||
children_media_class: null
|
||||
can_play: false
|
||||
can_expand: false
|
||||
can_search: false
|
||||
thumbnail: >-
|
||||
https://jellyfin
|
||||
not_shown: 0
|
||||
children: []
|
||||
```
|
||||
### Action play media
|
||||
|
||||
To play media on any player you first need to find the `media_content_id` of the content you want to play, through either [browsing to the media](#action-browse-media) or [searching media](#action-search-media).
|
||||
|
||||
| Data attribute | Description |
|
||||
| --------------------- | ------------------------------------------------- |
|
||||
| `entity_id` | `entity_id` of the media player |
|
||||
| `media_content_id` | Unique identifier of the content you want to play |
|
||||
| `media_content_type` | `movie` or `tvshow` |
|
||||
|
||||
#### Examples:
|
||||
|
||||
Play a movie on one of the Jellyfin clients that supports playback.
|
||||
|
||||
```yaml
|
||||
action: media_player.play_media
|
||||
target:
|
||||
entity_id:
|
||||
- media_player.jellyfin
|
||||
data:
|
||||
media_content_id: a982a31451450daeda02c89952e6d7cf
|
||||
media_content_type: movie
|
||||
```
|
||||
|
||||
|
@ -16,32 +16,30 @@ ha_integration_type: integration
|
||||
ha_config_flow: true
|
||||
---
|
||||
|
||||
The Jewish Calendar (`jewish_calendar`) {% term integration %} displays various information related to the Jewish Calendar as various sensors.
|
||||
The Jewish Calendar {% term integration %} exposes Jewish calendar information through multiple sensors.
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
|
||||
### Language
|
||||
Language:
|
||||
description: The language to be used for textual sensors in Hebrew (א' תשרי תשע"ט) or English characters (1 Tishrei 5779). Valid options are `english` and `hebrew`. Default value is `english`.
|
||||
|
||||
Default: English
|
||||
Whether to represent the sensors in Hebrew (א' תשרי תשע"ט) or English characters (1 Tishrei 5779). Valid options are 'english' and 'hebrew'.
|
||||
Diaspora:
|
||||
description: Consider the location as diaspora (חוץ לארץ) for calculation of the weekly portion and holidays. By default it will consider the location as Israel (One day Yom Tov), setting it to true will show a second day Yom Tov.
|
||||
|
||||
### Diaspora
|
||||
Latitude, Longitude, Time Zone and Elevation:
|
||||
description: Allows you to override the default location information provided by Home Assistant for the calculations.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
Default: False
|
||||
Consider the location as diaspora (חוץ לארץ) for calculation of the weekly portion and holidays. By default it will consider the location as Israel (One day Yom Tov), setting it to true will show a second day Yom Tov.
|
||||
## Advanced Options
|
||||
|
||||
### Minutes before sunset for candle lighting
|
||||
{% configuration_basic %}
|
||||
Minutes before sunset for candle lighting:
|
||||
description: How many minutes before sunset is considered candle-lighting time. In Israel, this is usually 20, 30, or 40 minutes depending on your location. Outside of Israel, it's customary to use either 18 or 24. *The default is set to 18 minutes.*
|
||||
|
||||
Default: 18 minutes
|
||||
This defines how many minutes before sunset is considered candle-lighting time. In Israel, this is usually 20/30/40 depending on your location. Outside of Israel, you probably want to use 18/24.
|
||||
|
||||
### Minutes after sunset for Havdalah
|
||||
|
||||
By default havdalah time is considered the moment the sun is 8.5 degrees below the horizon. By specifying this offset, havdalah time will be calculated as a static offset past the time of sunset.
|
||||
|
||||
### Latitude, Longitude, Time Zone and Elevation
|
||||
|
||||
Allows you to override the default location information provided by Home Assistant for the calculations.
|
||||
Minutes after sunset for Havdalah:
|
||||
description: By default havdalah time is considered the moment the sun is 8.5 degrees below the horizon. By specifying this offset, havdalah time will be calculated as a static time offset relative to sunset.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Sensor list
|
||||
|
||||
|
@ -126,13 +126,23 @@ Local IP interface:
|
||||
|
||||
See [Connection](#connection) on how to get the files or keys needed for this configuration step.
|
||||
|
||||
{% include integrations/option_flow.md %}
|
||||
## Reconfiguration
|
||||
|
||||
You can change your KNX connection configuration at any time through the integration settings. This is useful when you need to update the Keyring file or switch to a different connection type.
|
||||
|
||||
1. Go to {% my integrations icon title="**Settings** > **Devices & services**" %}.
|
||||
2. Select **KNX**.
|
||||
3. Click the three-dot {% icon "mdi:dots-vertical" %} menu and then select **Reconfigure**.
|
||||
|
||||
### Configure KNX interface
|
||||
|
||||
Reconfigure your connection settings. See above for more information.
|
||||
|
||||
### Communication settings
|
||||
### Import KNX Keyring
|
||||
|
||||
Provide a new keyring file to be used by the integration. See [KNX Secure](#knx-secure) on how to get this file.
|
||||
|
||||
{% include integrations/option_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
State updater:
|
||||
@ -143,10 +153,6 @@ Telegram history limit:
|
||||
description: "Number of Telegrams to keep in memory for the KNX panels group monitor."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
### Import KNX Keyring
|
||||
|
||||
Provide a (new) keyring file to be used by the integration. See [KNX Secure](#knx-secure) on how to get this file.
|
||||
|
||||
## Basic configuration
|
||||
|
||||
In order to make use of the various platforms offered by the KNX integration, you will need to set them up via the KNX panel or add the corresponding configuration yaml to your {% term "`configuration.yaml`" %}. See [Splitting up the configuration](/docs/configuration/splitting_configuration/) if you like to arrange YAML parts in dedicated files.
|
||||
|
@ -12,7 +12,8 @@ The `mqtt` `lawn_mower` platform allows controlling a lawn mower over MQTT.
|
||||
|
||||
## Configuration
|
||||
|
||||
To enable MQTT lawn mower in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
To use an MQTT lawn mower in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -22,6 +23,8 @@ mqtt:
|
||||
name: "Test Lawn Mower"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
activity_state_topic:
|
||||
description: The MQTT topic subscribed to receive an update of the activity. Valid activities are `mowing`, `paused`, `docked`, and `error`. Use `value_template` to extract the activity state from a custom payload. When payload `none` is received, the activity state will be reset to `unknown`.
|
||||
@ -163,7 +166,7 @@ name:
|
||||
required: false
|
||||
type: string
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -42,6 +42,9 @@ Optimistic mode can be forced, even if the `state_topic` is available. Try to en
|
||||
Home Assistant internally assumes that a light's state corresponds to a defined `color_mode`.
|
||||
The state of MQTT lights with default schema and support for both color and color temperature will set the `color_mode` according to the last received valid color or color temperature. Optionally, a `color_mode_state_topic` can be configured for explicit control of the `color_mode`.
|
||||
|
||||
To use an MQTT basic light in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
@ -49,6 +52,8 @@ mqtt:
|
||||
command_topic: "office/rgb1/light/switch"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -286,7 +291,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Light
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
on_command_type:
|
||||
@ -542,6 +547,9 @@ When a state topic is not available, the light will work in optimistic mode. In
|
||||
|
||||
Optimistic mode can be forced, even if state topic is available. Try enabling it if the light is operating incorrectly.
|
||||
|
||||
To use an MQTT JSON light in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
@ -550,6 +558,8 @@ mqtt:
|
||||
command_topic: "home/rgb1/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -717,7 +727,7 @@ name:
|
||||
type: string
|
||||
default: MQTT JSON Light
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
@ -948,6 +958,9 @@ When a state topic is not available, the light will work in optimistic mode. In
|
||||
|
||||
Optimistic mode can be forced, even if state topic is available. Try enabling it if the light is operating incorrectly.
|
||||
|
||||
To use an MQTT template light in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
@ -958,6 +971,8 @@ mqtt:
|
||||
command_off_template: "off"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -1123,7 +1138,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Template Light
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -76,7 +76,8 @@ Before using this integration, you’ll need a Whisker account and a Wi-Fi-enabl
|
||||
### Pet
|
||||
|
||||
| Entity | Domain | Description |
|
||||
| ------ | -------- | ------------- |
|
||||
| ------------ | -------- | ------------------------------------------------- |
|
||||
| Visits today | `sensor` | Pet's daily visits to the Litter-Robot. |
|
||||
| Weight | `sensor` | Pet's weight. |
|
||||
|
||||
## Actions
|
||||
|
@ -21,7 +21,9 @@ Optimistic mode can be forced, even if state topic is available. Try to enable i
|
||||
It's mandatory for locks to support `lock` and `unlock`. A lock may optionally support `open`, (e.g. to open the bolt in addition to the latch), in this case, `payload_open` is required in the configuration. If the lock is in optimistic mode, it will change states to `unlocked` when handling the `open` command.
|
||||
|
||||
An MQTT lock can also report the intermediate states `unlocking`, `locking` or `jammed` if the motor reports a jammed state.
|
||||
To enable MQTT locks in your installation, add the following to your {% term "`configuration.yaml`" %} file:
|
||||
|
||||
To use an MQTT lock in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
@ -30,6 +32,8 @@ mqtt:
|
||||
command_topic: "home/frontdoor/set"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -168,7 +172,7 @@ name:
|
||||
type: string
|
||||
default: MQTT Lock
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
optimistic:
|
||||
|
@ -313,11 +313,11 @@ Follow these steps if you want to remove a device from a particular Matter contr
|
||||
|
||||
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and on the **Matter** integration card, select **Devices**.
|
||||
2. From the list of devices, select the device you want to remove from a controller.
|
||||
3. In the **Device info** section, next to **Share device**, select the three-dot menu. Then, select **Manage fabrics**.
|
||||
3. In the **Device info** section, next to **Share device**, select the three dots {% icon "mdi:dots-vertical" %} menu. Then, select **Manage fabrics**.
|
||||
4. From the list, remove the controller of interest.
|
||||
- If you want to remove Apple Home, also remove the Apple Keychain entry.
|
||||

|
||||
5. If you want to remove the device from Home Assistant itself, select the three-dot menu and select **Delete**.
|
||||
5. If you want to remove the device from Home Assistant itself, select the three dots {% icon "mdi:dots-vertical" %} menu and select **Delete**.
|
||||
|
||||
## About Matter device information
|
||||
|
||||
|
@ -16,7 +16,7 @@ related:
|
||||
ha_quality_scale: silver
|
||||
---
|
||||
|
||||
The [Model Context Protocol](https://modelcontextprotocol.io) is an open protocol that standardizes how applications provide context to <abbr title="Large Language Models">LLMs</abbr>. The **Model Context Protocol Server** (MCP) integration enables using Home Assistant to provide context for <abbr title="Model Context Protocol">MCP</abbr> LLM Client Applications. For example, you can expose your Google Tasks To-do list as a tool for Claude Desktop.
|
||||
The [Model Context Protocol](https://modelcontextprotocol.io) is an open protocol that standardizes how applications provide context to <abbr title="Large Language Models">LLMs</abbr>. The **Model Context Protocol Server** (MCP) integration enables using Home Assistant to provide context for <abbr title="Model Context Protocol">MCP</abbr> LLM Client Applications. For example, you can control your lights from Claude Desktop, or expose your Google Tasks to-do list as a tool.
|
||||
|
||||
Controlling Home Assistant is done by providing <abbr title="Model Context Protocol">MCP</abbr> clients access to the Assist API of Home Assistant. You can control what devices and entities it can access from the {% my voice_assistants title="exposed entities page" %}.
|
||||
|
||||
@ -186,7 +186,6 @@ subset of MCP features:
|
||||
| Sampling | ❌ |
|
||||
| Notifications | ❌ |
|
||||
|
||||
Home Assistant does not yet provide built-in tools that can fetch device state.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
@ -17,6 +17,7 @@ ha_platforms:
|
||||
- sensor
|
||||
- todo
|
||||
ha_integration_type: service
|
||||
ha_quality_scale: silver
|
||||
---
|
||||
|
||||
[Mealie](https://mealie.io/) is an open source, self-hosted recipe manager, meal planner, and shopping list. The Mealie {% term integration %} will fetch and allow you to create and update data held in your Mealie instance.
|
||||
|
@ -29,7 +29,6 @@ A media player can have the following states:
|
||||
- **Idle**: The media player is turned on and accepting commands, but currently not playing any media. Possibly at some idle home screen.
|
||||
- **Playing**: The media player is currently playing media.
|
||||
- **Paused**: The media player has an active media and is currently paused
|
||||
- **Standby**: The media player is in a low power state, accepting commands.
|
||||
- **Buffering**: The media player is preparing to start playback of media.
|
||||
- **Unavailable**: The entity is currently unavailable.
|
||||
- **Unknown**: The state is not yet known.
|
||||
|
@ -159,10 +159,10 @@ Climate entities are used to control target temperatures in refrigerators, freez
|
||||
- **Energy forecast**: Shows the forecast percentage of the maximum energy the program will consume for a given cycle.
|
||||
- **Water consumption**: Shows the water consumption during the current program cycle. The value will be reset after finishing the program.
|
||||
- **Water forecast**: Shows the forecast percentage of the maximum water the program will consume for a given cycle.
|
||||
- **Temperature**: Represents the current temperature in refrigerators, freezers, and ovens. Entities are created for up to 3 zones depending on the device capabilities.
|
||||
- **Temperature**: Represents the current temperature in refrigerators, freezers, and ovens. Entities are created for up to 3 zones depending on the device capabilities. For zones 2 and 3, the temperature sensor is dynamically created when the appliance is turned on and a valid value is reported.
|
||||
- **Target temperature**: Shows the set target temperature for ovens and washing machines.
|
||||
- **Core temperature**: Shows the core temperature of the food in ovens with an appropriate temperature probe.
|
||||
- **Target core temperature**: Shows the set core target temperature for the food in ovens with an appropriate temperature probe.
|
||||
- **Core temperature**: Shows the core temperature of the food in ovens with an appropriate temperature probe. This sensor is dynamically created when the appliance is turned on, a program is started and the temperature probe is connected to the appliance.
|
||||
- **Target core temperature**: Shows the set core target temperature for the food in ovens with an appropriate temperature probe. This sensor is dynamically created when the appliance is turned on, a program is started and the core target temperature is set on the device.
|
||||
- **Drying step**: Shows the selected drying step on tumble dryers.
|
||||
- **Elapsed time**: Shows the number of minutes that the current program has been running.
|
||||
- **Remaining time**: Shows the estimated number of minutes remaining in the current program cycle. This value can fluctuate during a program cycle based on load dirtiness or water‑heating time.
|
||||
@ -186,6 +186,26 @@ Climate entities are used to control target temperatures in refrigerators, freez
|
||||
- **Robot vacuum cleaner**: Miele robot vacuum cleaners can be monitored and controlled to a limited extent. The device can be started, stopped, and paused. The fan speed can also be set.
|
||||
{% enddetails %}
|
||||
|
||||
## Actions
|
||||
|
||||
### Action `miele.set_program`
|
||||
|
||||
Set and start a program for applicable appliances. Note that the device must be in a state where it will accept a new program, for example, most washing machines must be in state `on` and many appliances must be set manually to 'MobileStart' or 'MobileControl' in advance. An error message is displayed if the device did not accept the action command.
|
||||
The action can be set up by UI in Automations editor. It can also be executed in Developer tools.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| `device_id` | no | Select device in GUI mode, then switch to YAML mode to see the device_id. |
|
||||
| `program_id` | no | Enter the program_id number. The easiest way to find the number is to use the `get_programs` action from developer tools. It can also be found by fetching a diagnostic download while running the actual program. Use the value from the key `state.programId.value_raw`.|
|
||||
|
||||
### Action `miele.get_programs`
|
||||
|
||||
Get the list of available programs and associated parameters for applicable appliances. The API will return an empty list if the device doesn't support programs (for example, freezers). Same requirements on device state as described for `set_program` action above.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| -------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| `device_id` | no | Select the device in GUI mode, then switch to YAML mode to see the device_id. |
|
||||
|
||||
## Automation examples
|
||||
|
||||
Get started with these automation examples
|
||||
|
@ -42,7 +42,7 @@ The **Monzo** {% term integration %} allows you to connect your Monzo bank accou
|
||||
|
||||
1. To add a second Monzo account in Home Assistant, repeat the above process for creating an OAuth client.
|
||||
2. Then, in Home Assistant, add the new credentials *before* trying to add the new entry.
|
||||
- In the top right of **Devices & services** page, select the three dot menu, open **Application Credentials**, and select **Add application credentials**
|
||||
- In the top right of **Devices & services** page, select the three dots {% icon "mdi:dots-vertical" %} menu, open **Application Credentials**, and select **Add application credentials**
|
||||
- It is recommended to include the person's name in the *Name* field so you can distinguish it later.
|
||||
3. Once added, you can return to **Devices & services** > **Monzo** > **Add Entry** to proceed with authentication.
|
||||
|
||||
|
@ -173,7 +173,7 @@ Add the MQTT integration, then provide your broker's hostname (or IP address) an
|
||||
2. Select the MQTT integration.
|
||||
3. Reconfigure the MQTT broker settings via {% my integrations title="**Settings** > **Devices & services**" %}, click {% icon "mdi:dots-vertical" %} and select **Reconfigure**.
|
||||
|
||||
MQTT subentries can also be reconfigured. Additional entities can be added, or an entity can bve removed from the sub entry. Each MQTT subentry holds one MQTT device. The MQTT device must have at least one entity.
|
||||
MQTT subentries can also be reconfigured. Additional entities can be added, or an entity can be removed from the sub entry. Each MQTT subentry holds one MQTT device. The MQTT device must have at least one entity.
|
||||
|
||||
{% important %}
|
||||
If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then turn on `Advanced options` and set [Broker certificate validation](/integrations/mqtt/#broker-certificate-validation) to `Auto`.
|
||||
|
@ -20,8 +20,10 @@ The **Music Assistant** (MA) {% term integration %} allows you to connect Home A
|
||||
|
||||
There is currently support for the following Home Assistant Platforms:
|
||||
|
||||
- [Media player](#media-player)
|
||||
- [Media player](#media-player-entities)
|
||||
- [Button](#favorite-current-song-button)
|
||||
|
||||
|
||||
All of the Home Assistant [Media Player Control Actions](https://www.home-assistant.io/integrations/media_player/#media-control-actions) are supported.
|
||||
|
||||
The `media_content_id` payload for `media_player.play_media` can be any of the following:
|
||||
@ -51,7 +53,7 @@ The Music Assistant integration creates media player entities for all players an
|
||||
|
||||
### Favorite current song button
|
||||
|
||||
The Music Assistant integration creates a button entity for each player to favorite the current song. Pressing this button (manually or by automation) adds the current song to your Music Assistant favorites. This works for local playing songs and tracks from streaming providers. It also works with remote content such as Spotify Connect, AirPlay, or a radio station, as long as the external source provides an artist and title combination (and optionally the album). Note that the button will be marked as unavailable if there is no content playable that could be favorited.
|
||||
The Music Assistant integration creates a button entity for each player to favorite the current song. Pressing this button (manually or by automation) adds the current song to your Music Assistant favorites. This works for songs stored locally as well as for tracks from streaming providers. It also works with remote content such as Spotify Connect, AirPlay, or a radio station, as long as the external source provides an artist and title combination (and optionally the album).
|
||||
|
||||
|
||||
## Actions
|
||||
|
@ -2,6 +2,7 @@
|
||||
title: NASweb
|
||||
description: Integrate NASweb devices
|
||||
ha_category:
|
||||
- Sensor
|
||||
- Switch
|
||||
ha_release: '2024.12'
|
||||
ha_codeowners:
|
||||
@ -10,6 +11,7 @@ ha_iot_class: Local Push
|
||||
ha_domain: nasweb
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- sensor
|
||||
- switch
|
||||
ha_integration_type: hub
|
||||
---
|
||||
|
@ -25,3 +25,17 @@ NextDNS is a DNS service that protects from all kinds of security threats, block
|
||||
To obtain API key go to the NextDNS site >> [Account section](https://my.nextdns.io/account).
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
API Key:
|
||||
description: "The API key for your NextDNS account."
|
||||
Profile:
|
||||
description: "The NextDNS configuration profile you want to integrate."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal, no extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
||||
|
@ -164,6 +164,56 @@ data:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Get price indices for date
|
||||
|
||||
The integration can also provide price indices for any date with published prices. Use the "Get price indices for date" action to retrieve pricing information with a custom resolution time.
|
||||
|
||||
The areas, currency, and resolution parameters are optional. If omitted, the values configured in the integration will be used and for resolution it will default to 60 minutes.
|
||||
|
||||
{% configuration_basic %}
|
||||
Nord Pool configuration entry:
|
||||
description: Select the Nord Pool configuration entry to target.
|
||||
Date:
|
||||
description: Pick the date to fetch prices for (see note about possible dates below).
|
||||
Areas:
|
||||
description: Select one market area to create output for. If omitted it will use the areas from the configuration entry.
|
||||
Currency:
|
||||
description: Currency to display prices in. EUR is the base currency in Nord Pool prices. If omitted, it will use the currency from the configuration entry.
|
||||
Resolution:
|
||||
description: Resolution time for price indices.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
{% note %}
|
||||
|
||||
The public API only allows us to see past pricing information for up to 2 months.
|
||||
|
||||
Although Nord Pool operates in the CET/CEST timezone, all data is returned in UTC. Depending on how the data is consumed or manipulated, you may need to consider this.
|
||||
|
||||
Tomorrow's prices are typically released around 13:00 CET/CEST, and trying to get them before that time will generate an error that needs to be considered in such a case.
|
||||
|
||||
{% endnote %}
|
||||
|
||||
{% tip %}
|
||||
You can get your `config_entry` by using actions within the [developer tools](/docs/tools/dev-tools/): use one of the Nord Pool actions and view the YAML.
|
||||
{% endtip %}
|
||||
|
||||
#### Example action with data
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
action: nordpool.get_prices_for_date
|
||||
data:
|
||||
config_entry: 1234567890a
|
||||
date: "2024-11-10"
|
||||
areas:
|
||||
- SE3
|
||||
- SE4
|
||||
currency: SEK
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Examples
|
||||
|
||||
A template sensor to add VAT and fixed cost is useful to get the actual energy cost in the energy dashboard.
|
||||
|
@ -75,7 +75,7 @@ To test the entity platform action, select the `notify.send_message` action, and
|
||||
|
||||
### Example with the entity platform notify action
|
||||
|
||||
Under {% my developer_services title="**Developer Tools** > **Actions**" %}, select the **Notifications: Send a notification message** action. Select some target entity's using the entity selectors, enter a message and test sending it.
|
||||
Under {% my developer_services title="**Developer Tools** > **Actions**" %}, select the **Notifications: Send a notification message** action. Select some target entities using the entity selectors, enter a message and test sending it.
|
||||
|
||||
If you switch to view the YAML data under **Developer Tools**, it will appear as below. The same {% term action %} can be chosen in {% term automation %}. The YAML will appear the same:
|
||||
|
||||
|
@ -12,6 +12,12 @@ The **MQTT notify** platform lets you send an MQTT message when the `send_messag
|
||||
|
||||
## Configuration
|
||||
|
||||
To use an MQTT notify entity in your installation, [add a MQTT device as a subentry](/integrations/mqtt/#configuration), or add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
To use an MQTT notify entity in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
{% include integrations/restart_ha_after_config_inclusion.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
mqtt:
|
||||
@ -19,6 +25,8 @@ mqtt:
|
||||
command_topic: "home/living_room/status_screen/notifications"
|
||||
```
|
||||
|
||||
Alternatively, a more advanced approach is to set it up via [MQTT discovery](/integrations/mqtt/#mqtt-discovery).
|
||||
|
||||
{% configuration %}
|
||||
availability:
|
||||
description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
|
||||
@ -153,7 +161,7 @@ name:
|
||||
type: string
|
||||
default: MQTT notify
|
||||
object_id:
|
||||
description: Used instead of `name` for automatic generation of `entity_id`
|
||||
description: Used `object_id` instead of `name` for automatic generation of `entity_id`. This only works when the entity is added for the first time. When set, this overrides a user-customized Entity ID in case the entity was deleted and added again.
|
||||
required: false
|
||||
type: string
|
||||
payload_available:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user