Merge branch 'next' into rc

This commit is contained in:
Franck Nijhof 2023-12-27 14:03:13 +01:00
commit 19fa00b58c
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
191 changed files with 3657 additions and 909 deletions

View File

@ -18,7 +18,7 @@
"editorconfig.editorconfig",
"GitHub.vscode-pull-request-github",
"mrmlnc.vscode-scss",
"rebornix.Ruby",
"Shopify.ruby-lsp",
"streetsidesoftware.code-spell-checker",
"taichi.vscode-textlint",
"yzhang.markdown-all-in-one"

View File

@ -11,7 +11,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8.0.0
- uses: actions/stale@v9.0.0
if: ${{ github.repository_owner == 'home-assistant' }}
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -10,7 +10,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v4.1.1
- name: Setting up Node.js
uses: actions/setup-node@v4.0.0
uses: actions/setup-node@v4.0.1
with:
node-version: 16.x
cache: "npm"
@ -27,7 +27,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v4.1.1
- name: Setting up Node.js
uses: actions/setup-node@v4.0.0
uses: actions/setup-node@v4.0.1
with:
node-version: 16.x
cache: "npm"

View File

@ -537,6 +537,7 @@ source/_integrations/opower.markdown @tronikos
source/_integrations/oralb.markdown @bdraco @Lash-L
source/_integrations/oru.markdown @bvlaicu
source/_integrations/oru_opower.markdown @tronikos
source/_integrations/osoenergy @osohotwateriot
source/_integrations/otbr.markdown @home-assistant/core
source/_integrations/ourgroceries.markdown @OnFreund
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev
@ -803,6 +804,7 @@ source/_integrations/utility_meter.markdown @dgomes
source/_integrations/v2c.markdown @dgomes
source/_integrations/vacuum.markdown @home-assistant/core
source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru-
source/_integrations/valve.markdown @home-assistant/core
source/_integrations/velbus.markdown @Cereal2nd @brefra
source/_integrations/velux.markdown @Julius2342
source/_integrations/venstar.markdown @garbled1 @jhollowe

View File

@ -1,7 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.5)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
chunky_png (1.4.0)
colorator (1.1.0)
@ -112,7 +112,7 @@ GEM
tilt (2.3.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2023.3)
tzinfo-data (1.2023.4)
tzinfo (>= 1.0.0)
unicode-display_width (2.5.0)
webrick (1.8.1)

View File

@ -84,7 +84,7 @@ collections:
#Search
algolia:
api_key: "ae96d94b201c5444c8a443093edf3efb"
api_key: "ba6f7e6d97b3d3d2f778978c742a47c6"
# Twitter
twitter_user: balloob

View File

@ -12,33 +12,31 @@ $primary-color: #1abcf2;
}
}
.search-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: white;
padding-top: 19px;
padding-right: 15%;
.search {
max-width: 500px;
width: 100%;
border-bottom: 2px solid $primary-color;
float: right;
.algolia-autocomplete {
width: calc(100% - 64px);
margin: 0 10px;
}
input {
border: 0;
width: 100%;
outline: none;
.docsearch {
.DocSearch-Button {
padding: 0px;
margin-top: 16px;
margin-left: 0px;
margin-right: 0px;
background: none;
&:hover {
box-shadow: none;
}
}
.DocSearch-Button-Placeholder {
display: none;
}
.DocSearch-Button-Keys {
display: none;
}
.DocSearch-Search-Icon {
margin-right: 8px;
color: $primary-color;
}
}
.DocSearch-Container {
z-index: 1000;
}
.integration-alert-container {
@ -75,12 +73,6 @@ a.integration-alert {
}
@media only screen and (max-width: $menu-collapse) {
.search-container {
z-index: 20;
padding-right: 5px;
padding-left: 5px;
}
.feedback {
margin-bottom: 32px;
}
@ -889,12 +881,19 @@ code {
}
@media only screen and (max-width: $menu-collapse) {
#not_found {
.page {
text-align: center;
.search404-container {
margin-bottom: 32px;
display: grid;
#search404 {
display: flex;
justify-self: center;
}
}
}
}
@ -908,9 +907,11 @@ code {
.search404-container {
margin-bottom: 32px;
display: grid;
#search404 {
width: 420px;
display: flex;
justify-self: center;
}
}
}

View File

@ -8,24 +8,15 @@ body_id: not_found
<h2>Oh no! This page does not exist 😞</h2>
<div class='search404-container'>
<div class='search404'>
<i class="icon-search"></i>
<input id='search404' placeholder='Search the documentation …'>
<a href='#' class='search404-close'><i class="icon-remove-sign"></i></a>
</div>
<div id="search404"></div>
</div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.min.js"></script>
<script type="text/javascript">
docsearch({
apiKey: '{{ site.algolia.api_key }}',
container: '#search404',
appId: 'FBHBYS3J0U',
indexName: 'home-assistant',
inputSelector: '#search404',
debug: false // Set debug to true if you want to inspect the dropdown
});
document.querySelector('.search404-close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('#search404').value = "";
apiKey: "{{ site.algolia.api_key }}",
});
</script>

View File

@ -7,6 +7,11 @@ description: The Conditional card displays another card based on conditions.
The conditional card displays another card based on conditions.
<p class='img'>
<img src='/images/dashboards/conditional_card.gif' alt='Screenshot of the conditional card'>
Screenshot of the conditional card.
</p>
Note: if there are multiple conditions there will be treated as an 'and' condition. This means that for the card to show, _all_ conditions must be met.
{% include dashboard/edit_dashboard.md %}

View File

@ -38,6 +38,11 @@ theme:
required: false
description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
show_current_as_primary:
required: false
description: Show current humidity as primary information instead of target humidity. The target humidity will be displayed as secondary information.
type: boolean
default: false
features:
required: false
description: Additional widgets to control your entity. See [available features](/dashboards/features). Only humidifier related features are supported.

View File

@ -38,6 +38,11 @@ auto_fit:
description: The map will follow moving `entities` by adjusting the viewport of the map each time an entity is updated.
type: boolean
default: false
fit_zones:
required: false
description: Whether the map should consider the zones in the list of specified entities when fitting its viewport.
type: boolean
default: false
title:
required: false
description: The card title.

View File

@ -8,7 +8,7 @@ description: "The thermostat card gives control of your climate entity, allowing
The thermostat card gives control of your [climate](/integrations/#climate) entity, allowing you to change the temperature and mode of the entity.
<p class='img'>
<img src='/images/dashboards/thermostat_card.gif' alt='Screenshot of the thermostat card'>
<img src='/images/dashboards/thermostat_card.png' alt='Screenshot of the thermostat card'>
Screenshot of the thermostat card.
</p>
@ -38,6 +38,11 @@ theme:
required: false
description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
type: string
show_current_as_primary:
required: false
description: Show current temperature as primary information instead of target temperature. The target temperature will be displayed as secondary information.
type: boolean
default: false
features:
required: false
description: Additional widgets to control your entity. See [available features](/dashboards/features). Only climate related features are supported.

View File

@ -387,6 +387,14 @@
definition: >-
TTS (text-to-speech) allows Home Assistant to talk to you.
link: /integrations/tts/
- term: Valve
definition: >-
Valves are devices to control the flow of liquids and gases. All valves in Home Assistant can be opened
and closed. Some valves can also be set to a specific position.
link: /integrations/valve
- term: Variables
definition: >-
Variables are used to store values in memory that can be processed

View File

@ -7,21 +7,13 @@ The authentication system secures access to Home Assistant.
## Login screen
If you log in from within your local network, you are greeted with a login screen showing all the people in Home Assistant.
<img src='/images/docs/authentication/login.png' alt='Screenshot of the login screen, when logging in from within the local network' style='border: 0;box-shadow: none;'>
### Privacy: Not showing users when logging in from outside the network
When logging in from outside your local network, the users are not shown. This is to protect your privacy. In this case, you need to enter your user name.
You might also see this screen if you are using a Chromium-based browser (Chrome, Edge) and IPv6. Home Assistant might not be able to detect if your are logging in from a local network. This is a known issue with Chromium.
You are greeted with a log in screen, asking you for user name and password.
<img src='/images/docs/authentication/login-outside-local-network.png' alt='Screenshot of the login screen, when logging in from within the local network' style='border: 0;box-shadow: none;'>
## User accounts
When you start Home Assistant for the first time the _owner_ user account is created. This account has some special privileges and can:
When you start Home Assistant for the first time, the _owner_ user account is created. This account has some special privileges and can:
- Create and manage other user accounts.
- Configure integrations and other settings (coming soon).
@ -84,17 +76,7 @@ INFO (MainThread) [homeassistant.components.http.auth] You need to use a bearer
### Lost owner password
Before using the procedure below, make sure you explore options provided [here](/docs/locked_out).
While you should hopefully be storing your passwords in a password manager, if you lose the password associated with the owner account the only way to resolve this is to delete _all_ the authentication data. You do this by shutting down Home Assistant and deleting the following files from the `.storage/` folder in your [configuration folder](/docs/configuration/):
- `auth`
- `auth_provider.homeassistant`
- `onboarding`
- `hassio`
- `cloud`
When you start Home Assistant next, you'll be required to set up authentication again.
If you lose the password associated with the owner account, you need to [start a new onboarding process](/docs/locked_out/#to-prepare-the-system-to-start-a-new-onboarding-process).
### Error: invalid client id or redirect URL

View File

@ -148,6 +148,12 @@ automation:
event: start
```
<div class='note'>
Automations triggered by the `shutdown` event have 20 seconds to run, after which they are stopped to continue with the shutdown.
</div>
## MQTT trigger
Fires when a specific message is received on given MQTT topic. Optionally can match on the payload being sent over the topic. The default payload encoding is 'utf-8'. For images and other byte payloads use `encoding: ''` to disable payload decoding completely.

View File

@ -41,12 +41,24 @@ Home Assistant can import blueprints from the Home Assistant forums, GitHub, and
The blueprint can now be used for creating automations.
## Keeping blueprints up to date
## Re-importing a blueprint
Blueprints created by the community may go through multiple revisions. Sometimes a user creates a blueprint,
the community provides feedback, and new functionality is added.
While there's no built-in functionality to update a blueprint you've already imported, you can manually edit
The quickest way to get these changes is by re-importing the blueprint. This will overwrite the blueprint you currently have.
1. **Before you do this**: If the re-imported blueprint is not compatible, it can break your automations.
- In this case, you will need to manually adjust your automations.
2. Go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
3. On the blueprint that you want to re-import, select the three-dot menu, and select **Re-import blueprint**.
## Updating an imported blueprint manually
Blueprints created by the community may go through multiple revisions. Sometimes a user creates a blueprint,
the community provides feedback, and new functionality is added.
If you do not want to [re-import the blueprint](/docs/automation/using_blueprints/#re-importing-a-blueprint) for some reason, you can manually edit
its YAML content to keep it up to date:
1. Navigate to the blueprints directory (`blueprints/automation/`).

View File

@ -1324,4 +1324,4 @@ The output of this selector is a list of triggers. For example:
- platform: numeric_state
entity_id: "sensor.outside_temperature"
below: 20
```
```

View File

@ -27,7 +27,6 @@ homeassistant:
media_dirs:
media: "/media"
recordings: "/mnt/recordings"
legacy_templates: false
```
<div class='note'>
@ -102,11 +101,6 @@ media_dirs:
description: A mapping of local media sources and their paths on disk.
required: false
type: map
legacy_templates:
description: Enable this option to restore pre-0.117 template rendering. Which renders all templates to string, instead of native types.
required: false
type: boolean
default: false
language:
description: "Default language used by Home Assistant. This may, for example, influence the language used by voice assistants. The language should be specified as an RFC 5646 language tag, and must be a language which Home Assistant is translated to."
required: false

View File

@ -29,7 +29,7 @@ homeassistant:
Note that each line after `homeassistant:` is indented two (2) spaces. Since the configuration files in Home Assistant are based on the YAML language, indentation and spacing are important. Also note that seemingly strange entry under `customize:`.
`!include filename.yaml` is the statement that tells Home Assistant to insert the contents of `filename.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
`!include customize.yaml` is the statement that tells Home Assistant to insert the contents of `customize.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
Now before we start splitting out the different components, let's look at the other integrations (in our example) that will stay in the base file:

View File

@ -6,36 +6,56 @@ description: "Options for regaining access"
The sections below deal with recovering from a situation where you are not able to sign in,
or need to recover your data.
## Forgot user name
If youve forgotten your username, ask the owner to help you.
If you are the owner and have forgotten your user name, then you need to [prepare the system to start a new onboarding process](/docs/locked_out/#to-prepare-the-system-to-start-a-new-onboarding-process).
## Forgot password
### Home Assistant (including Supervised)
If you are not the owner or do not have administrator rights, ask the owner to give you a new password.
If you are still logged in to the web interface with your user, then you are in luck.
- In the navigation pane on the left, check if you see the **Settings** menu listed above the **Notifications**.
- If you don't, you do not have administrator rights.
1. Add a new user as an administrator and give the new user a password you can remember.
2. Then log out, and log in with this new user.
3. Reset your password via this new administrator account (and then delete this new account).
- Your configuration will remain, and you don't have to do a new onboarding process.
If you are the owner or have administrator, there are different methods to reset a password, depending on your setup:
If youve forgotten your username, then deleting the files mentioned further below will be necessary to start a new onboarding process.
### To reset a password while still logged in (including Supervised)
#### To reset a user's password, via console
The method used to reset a password depends on your user rights:
Use this procedure if you know the username, and you can access the [Home Assistant console](/hassio/commandline/) on the device itself (not the SSH terminal from the add-ons).
- If you are a regular user without administrator rights, ask the owner to [give you a new password](/docs/locked_out/#to-reset-a-users-password-as-an-owner-via-the-web-interface).
- If you are the owner, choose one of the procedures below to reset your password.
- You cannot recover an owner password from within Home Assistant.
- There is only one owner per system. You cannot add a new owner.
- If you are an administrator, add a new user as an administrator and give the new user a password you can remember.
1. Then log out, and log in with this new user.
2. Reset your password via this new administrator account (and then [delete this new account](/docs/locked_out/#to-delete-a-user)).
- Your configuration will remain, and you don't have to do a new onboarding process.
1. Connect a keyboard and monitor to your device and access the terminal:
### To reset an owner's password, via console
Use this procedure only if the following conditions are met:
- You know the username.
- You can access the [Home Assistant console](/hassio/commandline/) **on the device itself** (not via the SSH terminal from the add-ons).
1. Connect to the console of the Home Assistant server:
- If you are using a virtual machine, connect to your virtual machine console.
- If you are using a Home Assistant Yellow, refer to the following procedure:
- [Using the serial console on Windows](https://yellow.home-assistant.io/guides/use-serial-console-windows/)
- [Using the serial console on macOS / Linux](https://yellow.home-assistant.io/guides/use-serial-console-linux-macos/)
- If you are using a Home Assistant Green, refer to the following procedure:
- [Using the terminal](https://green.home-assistant.io/guides/use-terminal/)
- If you are using another board, connect a keyboard and monitor to your device and access the terminal. The procedure is likely very similar to the one described for the Green in the step above.
2. Once you have opened the Home Assistant command line, enter the following command:
- Note: `existing_user` is a placeholder. Replace it with your user name.
- Note: `new_password` is a placeholder. Replace it with your new password.
- **Command**: `auth reset --username existing_user --password new_password`
- **Troubleshooting**: If you see the message `zsh: command not found: auth`, you likely did not enter the command in the serial console connected to the device itself, but in the terminal within Home Assistant.
3. You can now log in to Home Assistant using this new password.
#### To reset a user's password, via the container command line
### To reset a user's password, via the container command line
If you are running Home Assistant in a container, you can use the command line in the container with the `hass` command to change your password. The steps below refer to a Home Assistant container in Docker named `homeassistant`. Note that while working in the container, commands will take a few moments to execute.
@ -45,7 +65,9 @@ If you are running Home Assistant in a container, you can use the command line i
4. `exit` to exit the container command line
5. `docker restart homeassistant` to restart the container.
#### To reset a user's password, as an owner via the web interface
### To reset a user's password, as an owner via the web interface
Only the owner can change other user's passwords.
1. In the bottom left, select your user to go to the {% my profile title="**Profile**" %} page and make sure **Advanced Mode** is activated.
2. Go to {% my people title="**Settings** > **People**" %} and select the person for which you want to change the password.
@ -55,7 +77,9 @@ If you are running Home Assistant in a container, you can use the command line i
5. Confirm the new password by entering it again, and select **OK** again.
6. A confirmation box will be displayed with the text **Password was changed successfully**.
#### To delete a user, as an administrator via the web interface
### To delete a user
You need to be an owner or have administrator rights to delete a user.
1. Go to {% my people title="**Settings** > **People**" %} and select the person which you want to delete.
- Note: you cannot delete the owner.
@ -63,21 +87,15 @@ If you are running Home Assistant in a container, you can use the command line i
- A confirmation dialog box will be displayed.
3. To confirm, select **OK**.
#### Start a new onboarding process
### To prepare the system to start a new onboarding process
If you lose the password associated with the owner account and the steps above do not work to reset the password, the only way to resolve this is to start a new onboarding process. If you have an external backup with an administrator account of which you still know the login credentials, you can restore that backup. If you do not have a backup, resetting the device will erase all data.
If you lose the password associated with the owner account and the steps above do not work to reset the password, the only way to resolve this is to start a new onboarding process.
- If you have an external backup with an administrator account of which you still know the login credentials, you can restore that backup.
- If you do not have a backup, resetting the device will erase all data.
- If you have a Home Assistant Green, [reset the Green](https://green.home-assistant.io/guides/reset/).
- If you have a Home Assistant Yellow, [reset the Yellow](https://yellow.home-assistant.io/guides/factory-reset/).
- If you have a Raspberry Pi, delete *all* the authentication data.
- Shut down Home Assistant.
- Remove your SD card and access it from your PC.
- Delete the following files from the `.storage/` folder in your [configuration folder](/docs/configuration/):
- `auth`
- `auth_provider.homeassistant`
- `onboarding`
- `hassio`
- `cloud`
## Recovering data for Home Assistant (including Supervised)

View File

@ -133,13 +133,12 @@ Examples of service response data are upcoming calendar events for the next week
Templates can also be used for handling response data. The service call can specify
a `response_variable`. This is the [variable](/docs/scripts/#variables)
that contains the response data. You can define any name for your `response_variable`. This example calls a service and stores the response in
the variable called `agenda`.
that contains the response data. You can define any name for your `response_variable`. This example calls a service and stores the response in the variable called `agenda`.
{% raw %}
```yaml
service: calendar.list_events
service: calendar.get_events
target:
entity_id: calendar.school
data:
@ -168,7 +167,7 @@ data:
message: >-
Your agenda for today:
<p>
{% for event in agenda.events %}
{% for event in agenda['calendar.school'].events %}
{{ event.start}}: {{ event.summary }}<br>
{% endfor %}
</p>

View File

@ -4,7 +4,7 @@
{% assign categories = site.categories | sort %}
{% for category in categories %}
{% assign category_name = category | first | downcase %}
{% if category_name != "core" %}
{% if category_name != "core"%}
<li><a href="/blog/categories/{{ category_name }}/">{{ category | first | replace: '-', ' '}}</a></li>
{% endif %}
{% endfor %}

View File

@ -4,8 +4,8 @@
<ul class="divided sidebar-menu">
<li>{% active_link /installation/ Installation %}</li>
<li>{% active_link /getting-started/onboarding/ Onboarding %}</li>
<li>{% active_link /getting-started/onboarding_dashboard/ Edit the dashboard %}</li>
<li>{% active_link /getting-started/concepts-terminology/ Concepts and terminology %}</li>
<li>{% active_link /getting-started/onboarding_dashboard/ Edit the dashboard %}</li>
<li>{% active_link /getting-started/integration/ Integration %}</li>
<li>{% active_link /getting-started/automation/ Automation %}</li>
<li>

View File

@ -22,7 +22,6 @@
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
<li>{% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with OpenAI %}</li>
<li>{% active_link /voice_control/troubleshooting/ Troubleshooting Assist %}</li>
</ul>
</div>
@ -31,8 +30,17 @@
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}</li>
<li>{% active_link /voice_control/thirteen-usd-voice-remote/ Tutorial: $13 voice assistant %}</li>
<li>{% active_link /voice_control/s3_box_voice_assistant/ Tutorial: ESP32-S3-BOX voice assistant %}</li>
<li>{% active_link /voice_control/s3-box-customize/ Tutorial: Customize the S3-BOX with your own illustrations %}</li>
<li>{% active_link /voice_control/create_wake_word/ Tutorial: Create your own wake word %}</li>
<li>{% active_link /voice_control/assist_daily_summary/ Tutorial: Your daily summary by Assist %}</li>
</ul>
</div>
<div class="section">
<h1 class="title delta">Troubleshooting</h1>
<ul class="divided sidebar-menu">
<li>{% active_link /voice_control/troubleshooting/ Troubleshooting Assist %}</li>
<li>{% active_link /voice_control/troubleshooting_the_s3_box/ Troubleshooting the ESP32-S3-BOX %}</li>
</ul>
</div>
</section>

View File

@ -129,8 +129,8 @@ As jemalloc can cause issues on certain hardware, it can be disabled by passing
services:
homeassistant:
...
environment:
- DISABLE_JEMALLOC: true
environment:
DISABLE_JEMALLOC: true
```
{% endtabbed_block %}

View File

@ -1,4 +1,4 @@
# Install Home Assistant Operating System
## Install Home Assistant Operating System
{% assign release_url = "https://github.com/home-assistant/operating-system/releases/download" %}

View File

@ -1,29 +1,16 @@
<script type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.3.1/lite-youtube.js"></script>
<script src="{{ '/javascripts/prism.js' | cache_buster }}" type="text/javascript" defer></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.min.js"></script>
<script type="text/javascript">
docsearch({
apiKey: "{{ site.algolia.api_key }}",
container: '#docsearch',
appId: 'FBHBYS3J0U',
indexName: 'home-assistant',
inputSelector: '#search',
debug: false // Set debug to true if you want to inspect the dropdown
apiKey: "{{ site.algolia.api_key }}",
});
document.querySelector('.site-title').addEventListener('contextmenu', function(ev) {
ev.preventDefault();
document.location.assign("https://design.home-assistant.io/#brand/logo")
});
document.querySelector('.search .close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'none';
});
document.querySelector('.show-search').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'block';
document.getElementById('toggle').checked = false;
document.querySelector('.search-container input').focus();
});
</script>

View File

@ -29,6 +29,7 @@
<meta name="twitter:image" content="{{ page.og_image | default: "/images/default-social.png" | prepend: site.url }}">
{% if site.social.mastodon.account %}<link rel="me" href="{{ site.social.mastodon.account }}">{% endif %}
<link href="https://cdn.jsdelivr.net/npm/@docsearch/css@3/dist/style.min.css" rel="stylesheet" />
<link href="{{ '/stylesheets/prism.css' | cache_buster }}" rel="stylesheet">
<link href="{{ '/stylesheets/screen.css' | cache_buster }}" media="screen, projection, print" rel="stylesheet">
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{ site.title }}" type="application/atom+xml">

View File

@ -49,18 +49,10 @@
<li><a href="/blog/">Blog</a></li>
<li><a href="/help/">Need help?</a></li>
<li>
<a href="#" class="show-search" aria-label="Show search" ><i class="icon-search"></i></a>
<div class="docsearch" id="docsearch"></div>
</li>
</ul>
</nav>
<div class="search-container" style="display: none">
<div class="search">
<i class="icon-search"></i>
<input id="search" placeholder="Search the documentation…" />
<a href="#" class="close"><i class="icon-remove-sign"></i></a>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,32 @@
{% capture product_name %}{{ include.name | default: page.product_name }}{% endcapture %}
2. Connect the {{ product_name }} to your computer.
- In the pop-up window, view the available ports.
- Plug the USB-C cable into the {{ product_name }} and connect it to your computer.{% if page.product_name == 'ESP32-S3-BOX' %}
- If you have an ESP32-S3-BOX-3, plug it into the box directly, not into the docking station (not into the blue part). {% endif %}
- In the pop-up window, there should now appear a new entry. Select this USB serial port and select **Connect**.{% if page.product_name == 'ATOM Echo' %}
- **Troubleshooting**: If no new port shows, your system may be missing a driver. Close the pop-up window.
- In the dialog, select the CH342 driver, install it, then **Try again**.
![Open My link](/images/assist/esp32-atom-flash-no-port.png){% endif %}
3. Select **Install Voice Assistant**, then **Install**.
- Once the installation is complete, select **Next**.
- Add the {{ product_name }} to your Wi-Fi:
- When prompted, select your network from the list and enter the credentials to your 2.4&nbsp;GHz Wi-Fi network.
- Select **Connect**.
- The {{ product_name }} now joined your network. Select **Add to Home Assistant**.
4. This opens the **My** link to Home Assistant.
- If you have not used My Home Assistant before, you will need to configure it. If your Home Assistant URL is not accessible on `http://homeassistant.local:8123`, replace it with the URL to your Home Assistant instance.
- Open the link.
![Open My link](/images/assist/esp32-atom-flash-06.png)
5. Select **OK**.
![Set up ESPHome](/images/assist/esp32-atom-flash-07.png)
6. **Troubleshooting**: If, at this stage, a dialog opens, prompting you to enter the connection settings of your ESPHome node, it means there is already a configuration set up for that ESPHome device.
- Close the dialog and perform the procedure on [deleting the {{ product_name }} configuration from ESPHome]({{ config_link }}).
- Restart Home Assistant.
- Then, under {% my integrations title="**Settings** > **Devices & Services**" %}, your {{ product_name }} should be discovered.
7. To add the newly discovered device, select the {{ product_name }} from the list.
- Add your {{ product_name }} to a room and select **Finish**.
8. You should now see the **ESPHome** integration.
![New ESPHome device discovered](/images/assist/m5stack-atom-echo-discovered-33.png)

View File

@ -71,7 +71,7 @@ The integration will create a binary sensor for each zone that has a motion sens
### Switch
The integration will create a switch entity to toggle air conditioning fresh air mode, if it is supported.
The integration will create switch entities to toggle the MyFan/ezFan setting, and to toggle air conditioning fresh air mode, if they are supported by your hardware.
With MyPlace, any relays will be created as switch entities.

View File

@ -0,0 +1,20 @@
---
title: AEP Ohio
description: Get energy usage from AEP Ohio using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: aepohio
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -0,0 +1,20 @@
---
title: AEP Texas
description: Get energy usage from AEP Texas using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: aeptexas
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -27,8 +27,6 @@ The integration can control your Alarm Panel by publishing to the `command_topic
## Configuration
<a id='new_format'></a>
To enable this platform, add the following lines to your `configuration.yaml`:
```yaml

View File

@ -7,6 +7,7 @@ ha_release: "0.54"
ha_codeowners:
- '@home-assistant/cloud'
- '@ochlocracy'
- '@jbouwh'
ha_domain: alexa
---
@ -38,18 +39,18 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
- [Add Code to the Lambda Function](#add-code-to-the-lambda-function)
- [Test the Lambda Function](#test-the-lambda-function)
- [Configure the Smart Home Service Endpoint](#configure-the-smart-home-service-endpoint)
- [Account Linking](#account-linking)
- [Account linking](#account-linking)
- [Alexa Smart Home Integration Configuration](#alexa-smart-home-integration-configuration)
- [Supported Platforms](#supported-platforms)
- [Supported platforms](#supported-platforms)
- [Alarm control panel](#alarm-control-panel)
- [Arming](#arming)
- [Disarming](#disarming)
- [Alert, Automation, Group](#alert-automation-group)
- [Binary Sensor](#binary-sensor)
- [Binary sensor](#binary-sensor)
- [Routines](#routines)
- [Button, Input Button](#button-input-button)
- [Routines](#routines-1)
- [Doorbell Announcement with binary\_sensor](#doorbell-announcement-with-binary_sensor)
- [Doorbell announcement with binary\_sensor](#doorbell-announcement-with-binary_sensor)
- [Presence Detection with Binary Sensor](#presence-detection-with-binary-sensor)
- [Camera](#camera)
- [Climate](#climate)
@ -59,11 +60,11 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
- [Open/Close/Raise/Lower](#opencloseraiselower)
- [Set Cover Position](#set-cover-position)
- [Set Cover Tilt](#set-cover-tilt)
- [Garage Doors](#garage-doors)
- [Garage doors](#garage-doors)
- [Event entities](#event-entities)
- [Doorbell Events](#doorbell-events)
- [Doorbell events](#doorbell-events)
- [Fan](#fan)
- [Fan Speed](#fan-speed)
- [Fan speed](#fan-speed)
- [Fan Preset Mode](#fan-preset-mode)
- [Fan Direction](#fan-direction)
- [Fan Oscillation](#fan-oscillation)
@ -92,6 +93,13 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
- [Routines](#routines-2)
- [Timer](#timer)
- [Vacuum](#vacuum)
- [Valve](#valve)
- [Open/Close](#openclose)
- [Set Valve Position](#set-valve-position)
- [Stop the Valve](#stop-the-valve)
- [Water heater](#water-heater)
- [Set target temperature](#set-target-temperature)
- [Operation Mode](#operation-mode)
- [Alexa Web-Based App](#alexa-web-based-app)
- [Troubleshooting](#troubleshooting)
- [Debugging](#debugging)
@ -458,57 +466,77 @@ Home Assistant supports the following integrations through Alexa using a Smart H
The following platforms are currently supported:
- [Alarm control panel](#alarm-control-panel)
- [Arming](#arming)
- [Disarming](#disarming)
- [Alert, Automation, Group](#alert-automation-group)
- [Binary Sensor](#binary-sensor)
- [Routines](#routines)
- [Button, Input Button](#button-input-button)
- [Routines](#routines-1)
- [Doorbell Announcement with binary\_sensor](#doorbell-announcement-with-binary_sensor)
- [Presence Detection with Binary Sensor](#presence-detection-with-binary-sensor)
- [Camera](#camera)
- [Climate](#climate)
- [Set Thermostat Temperature](#set-thermostat-temperature)
- [Thermostat Mode](#thermostat-mode)
- [Cover](#cover)
- [Open/Close/Raise/Lower](#opencloseraiselower)
- [Set Cover Position](#set-cover-position)
- [Set Cover Tilt](#set-cover-tilt)
- [Garage Doors](#garage-doors)
- [Event entities](#event-entities)
- [Doorbell Events](#doorbell-events)
- [Fan](#fan)
- [Fan Speed](#fan-speed)
- [Fan Preset Mode](#fan-preset-mode)
- [Fan Direction](#fan-direction)
- [Fan Oscillation](#fan-oscillation)
- [Humidifier](#humidifier)
- [Humidifier target humidity](#humidifier-target-humidity)
- [Humidifier Mode](#humidifier-mode)
- [Image Processing](#image-processing)
- [Presence Detection Notification](#presence-detection-notification)
- [Input Number and Number](#input-number-and-number)
- [Light](#light)
- [Brightness](#brightness)
- [Color Temperature](#color-temperature)
- [Color](#color)
- [Lock](#lock)
- [Unlocking](#unlocking)
- [Media Player](#media-player)
- [Change Channel](#change-channel)
- [Speaker Volume](#speaker-volume)
- [Equalizer Mode](#equalizer-mode)
- [Inputs](#inputs)
- [Playback State](#playback-state)
- [Scene](#scene)
- [Script](#script)
- [Sensor](#sensor)
- [Switch, Input Boolean](#switch-input-boolean)
- [Routines](#routines-2)
- [Timer](#timer)
- [Vacuum](#vacuum)
- [Requirements](#requirements)
- [Create an Amazon Alexa Smart Home Skill](#create-an-amazon-alexa-smart-home-skill)
- [Create an AWS Lambda Function](#create-an-aws-lambda-function)
- [Create an IAM Role for Lambda](#create-an-iam-role-for-lambda)
- [Add Code to the Lambda Function](#add-code-to-the-lambda-function)
- [Test the Lambda Function](#test-the-lambda-function)
- [Configure the Smart Home Service Endpoint](#configure-the-smart-home-service-endpoint)
- [Account linking](#account-linking)
- [Alexa Smart Home Integration Configuration](#alexa-smart-home-integration-configuration)
- [Supported platforms](#supported-platforms)
- [Alarm control panel](#alarm-control-panel)
- [Arming](#arming)
- [Disarming](#disarming)
- [Alert, Automation, Group](#alert-automation-group)
- [Binary sensor](#binary-sensor)
- [Routines](#routines)
- [Button, Input Button](#button-input-button)
- [Routines](#routines-1)
- [Doorbell announcement with binary\_sensor](#doorbell-announcement-with-binary_sensor)
- [Presence Detection with Binary Sensor](#presence-detection-with-binary-sensor)
- [Camera](#camera)
- [Climate](#climate)
- [Set Thermostat Temperature](#set-thermostat-temperature)
- [Thermostat Mode](#thermostat-mode)
- [Cover](#cover)
- [Open/Close/Raise/Lower](#opencloseraiselower)
- [Set Cover Position](#set-cover-position)
- [Set Cover Tilt](#set-cover-tilt)
- [Garage doors](#garage-doors)
- [Event entities](#event-entities)
- [Doorbell events](#doorbell-events)
- [Fan](#fan)
- [Fan speed](#fan-speed)
- [Fan Preset Mode](#fan-preset-mode)
- [Fan Direction](#fan-direction)
- [Fan Oscillation](#fan-oscillation)
- [Humidifier](#humidifier)
- [Humidifier target humidity](#humidifier-target-humidity)
- [Humidifier Mode](#humidifier-mode)
- [Image Processing](#image-processing)
- [Presence Detection Notification](#presence-detection-notification)
- [Input Number and Number](#input-number-and-number)
- [Light](#light)
- [Brightness](#brightness)
- [Color Temperature](#color-temperature)
- [Color](#color)
- [Lock](#lock)
- [Unlocking](#unlocking)
- [Media Player](#media-player)
- [Change Channel](#change-channel)
- [Speaker Volume](#speaker-volume)
- [Equalizer Mode](#equalizer-mode)
- [Inputs](#inputs)
- [Playback State](#playback-state)
- [Scene](#scene)
- [Script](#script)
- [Sensor](#sensor)
- [Switch, Input Boolean](#switch-input-boolean)
- [Routines](#routines-2)
- [Timer](#timer)
- [Vacuum](#vacuum)
- [Valve](#valve)
- [Open/Close](#openclose)
- [Set Valve Position](#set-valve-position)
- [Stop the Valve](#stop-the-valve)
- [Water heater](#water-heater)
- [Set target temperature](#set-target-temperature)
- [Operation Mode](#operation-mode)
- [Alexa Web-Based App](#alexa-web-based-app)
- [Troubleshooting](#troubleshooting)
- [Debugging](#debugging)
### Alarm control panel
@ -1066,6 +1094,63 @@ Support _"turn on"_ and _"turn off"_ utterances. Pause and Resume
- _"Alexa, pause the vacuum."_
- _"Alexa, restart the vacuum."_
### Valve
Valves are not supported natively within Alexa. So within Alexa, they are represented as a device of an unknown type.
#### Open/close
Home Assistant configures valves with semantics that provide _"open"_ and _"close"_ utterances.
- _"Alexa, open the water valve."_
- _"Alexa, close the gas valve."_
#### Set valve position
Valves that support a set position can be controlled using percentages.
- _"Alexa, set the [entity name] position to thirty percent."_
- _"Alexa, increase [entity name] position by ten percent."_
- _"Alexa, decrease [entity name] position by twenty percent."_
| Locale | Friendly Name Synonyms |
| ------- | ------------------------- |
| `en-US` | _"position"_, _"opening"_ |
Currently, Alexa only supports friendly name synonyms for the `en-US` locale.
#### Stop the valve
Valves that support `stop` closing or opening will have an extra toggle control that allows to stop the valve closing or opening operation.
### Water heater
Single, double, and triple set-point thermostats are supported. The temperature value from the thermostat will also be exposed at a separate [temperature sensor](#sensor).
#### Set target temperature
- _"Alexa, set the boiler's target temperature to 50."_
You can ask Alexa about the current temperature and current target temperature.
- _"Alexa, what is the boiler's target temperature?"_
- _"Alexa, what is the boiler's current temperature?"_
#### Operation Mode
The operation mode can be set from the UI. All Home Assistant operation modes can be set (English only).
- _"Alexa, set main boiler to eco."_
To change the water heater's mode, the exact utterance must be used:
- _"Alexa, set [entity name] to [mode utterance]."_
If the water heater entity supports on/off, use _"turn on"_ and _"turn off"_ utterances with the entity name or the mode utterance.
- _"Alexa, turn on the [mode utterance]."_
- _"Alexa, turn off the [entity name]."_
## Alexa Web-Based App
The following is a list of regions and the corresponding URL for the web-based Alexa app:

View File

@ -0,0 +1,48 @@
---
title: A. O. Smith
description: Instructions on how to integrate your A. O. Smith water heater with Home Assistant.
ha_category:
- Water heater
ha_release: 2024.1
ha_iot_class: Cloud Polling
ha_domain: aosmith
ha_config_flow: true
ha_codeowners:
- '@bdr99'
ha_platforms:
- water_heater
ha_integration_type: integration
---
The A. O. Smith integration allows you to control a compatible A. O. Smith iCOMM-enabled water heater from Home Assistant.
Before using this integration, your water heater must be connected to a Wi-Fi network and linked to your account using the A. O. Smith mobile app ([iOS](https://apps.apple.com/us/app/a-o-smith/id456489822)/[Android](https://play.google.com/store/apps/details?id=com.aosmith.warrantycheck)).
## Known compatible models
- [HPTS-50](https://www.hotwater.com/products/HPTS-50-SG200.html)
- [HPTS-66](https://www.hotwater.com/products/HPTS-66-SG200.html)
- [HPTS-80](https://www.hotwater.com/products/HPTS-80-SG200.html)
Water heaters that can be controlled using the A. O. Smith mobile app should be compatible with this integration. If your water heater is not detected by the integration, but it can be controlled using the mobile app, please [open an issue on GitHub](https://github.com/home-assistant/core/issues/new?template=bug_report.yml&integration_name=A.%20O.%20Smith&integration_link=https%3A%2F%2Fwww.home-assistant.io%2Fintegrations%2Faosmith) so that support can be added. Similarly, if your water heater is working with this integration, but its model number is not listed here, please [open an documentation issue](https://github.com/home-assistant/home-assistant.io/issues/new?template=feedback.yml&url=https%3A%2F%2Fwww.home-assistant.io%2Fintegrations%2Faosmith) so it can be added to the list.
{% include integrations/config_flow.md %}
## Platforms
### Water heater
The water heater entity offers the following capabilities:
- Adjust target temperature
- Change operation mode
- Enable/disable away mode (will set the water heater to "vacation" mode)
### Sensor
The following sensor entities are available:
- Hot water availability (low, medium, or high)
- Energy usage
## Disclaimer
This integration is not affiliated with or endorsed by A. O. Smith.

View File

@ -0,0 +1,20 @@
---
title: Appalachian Power
description: Get energy usage from Appalachian Power using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: appalachianpower
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -20,7 +20,6 @@ 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.
<a id='new_format'></a>
To use an MQTT binary sensor in your installation,
add the following to your `configuration.yaml` file:
@ -78,9 +77,9 @@ device:
required: false
type: string
connections:
description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`."
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: [list, map]
type: list
hw_version:
description: The hardware version of the device.
required: false

View File

@ -0,0 +1,66 @@
---
title: Blue Current
description: Instructions on how to integrate Blue Current charge points within Home Assistant.
ha_category:
- Sensor
- Car
ha_release: 2024.1
ha_iot_class: Cloud Push
ha_config_flow: true
ha_codeowners:
- '@Floris272'
- '@gleeuwen'
ha_domain: blue_current
ha_platforms:
- sensor
---
[Blue Current](https://www.bluecurrent.nl/) is an Dutch company that makes electric car chargers.
The Blue Current integration allows you to connect to your blue current account to Home Assistant and monitor your charge point(s).
## Prerequisites
1. Log in to [my.bluecurrent.nl](https://my.bluecurrent.nl/).
2. Click on your username and go to settings.
3. Enable advanced options.
4. Click on your username again and go to advanced.
5. Generate an API token.
{% include integrations/config_flow.md %}
## Sensor
The Blue Current integration provides the following sensors:
### Charge point sensors
- Activity
- Average current
- Average voltage
- Energy usage in kWh
- Max usage in Amps
- The max amps the charge point can use.
- Offline since
- Started on
- Stopped on
- Total cost in EUR
- Total power (estimate)
- Vehicle status
The following sensors are created as well, but disabled by default:
- Current phase 1-3
- offline max usage
- remaining current
- smart charging max usage
- Voltage phase 1-3
### Grid sensors
- Grid average current
- Grid max current
The following sensors are created as well, but disabled by default:
- Grid current phase 1-3

View File

@ -12,8 +12,6 @@ The `mqtt` button platform lets you send an MQTT message when the button is pres
## Configuration
<a id='new_format'></a>
```yaml
# Example configuration.yaml entry
mqtt:

View File

@ -192,10 +192,10 @@ data:
{% endraw %}
### Service `calendar.list_events`
### Service `calendar.get_events`
This service populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
with calendar events within a date range.
with calendar events within a date range. It can return events from multiple calendars.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
@ -209,20 +209,20 @@ Use only one of `end_date_time` or `duration`.
</div>
{% raw %}
```yaml
service: calendar.list_events
service: calendar.get_events
target:
entity_id: calendar.school
entity_id:
- calendar.school
- calendar.work
data:
duration:
hours: 24
response_variable: agenda
```
{% endraw %}
The response data field `events` is a list of events with these fields:
The response data contains a field for every calendar entity (e.g. `calendar.school` and `calendar.work` in this case).
Every calendar entity has a field `events` containing a list of events with these fields:
| Response data | Description | Example |
| ---------------------- | ----------- | -------- |
@ -236,16 +236,17 @@ This example uses a template with response data in another service call:
{% raw %}
```yaml
service: notify.gmail_com
service: notify.nina
data:
target: gduser1@workspacesamples.dev
title: Daily agenda for {{ now().date() }}
message: >-
Your agenda for today:
<p>
{% for event in agenda.events %}
Your school calendar for today:
{% for event in agenda["calendar.school_calendar"]["events"] %}
{{ event.start}}: {{ event.summary }}<br>
{% endfor %}
Your work calendar for today:
{% for event in agenda["calendar.work_calendar"]["events"] %}
{{ event.start}}: {{ event.summary }}<br>
{% endfor %}
</p>
```
{% endraw %}

View File

@ -14,8 +14,6 @@ This can be used with an application or a service capable of sending images thro
## Configuration
<a id='new_format'></a>
To enable this camera in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -78,7 +76,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -0,0 +1,43 @@
---
title: Midea CCM15 Data Converter
description: Instructions on how to integrate a Midea CCM15 module into Home Assistant.
ha_category:
- Climate
ha_iot_class: Local Polling
ha_release: 2023.07.0
ha_config_flow: true
ha_codeowners:
- '@ocalvo'
ha_domain: ccm15
ha_quality_scale: platinum
ha_dhcp: true
ha_platforms:
- climate
ha_integration_type: integration
---
The CCM15 integration allows you to integrate [Midea CCM15](https://mbt.midea.com/hvac-goods/midea-products-category/vrfs/vrf-controller/central-controller-ccm-15) devices in Home Assistant.
There is currently support for the following device types within Home Assistant:
- [Configuration](#configuration)
- [Climate](#climate)
## Configuration
Adding a CCM15 data converter to your Home Assistant instance can be done via the user interface, by using this My Button:
{% my config_flow_start badge domain=page.ha_domain %}
{% details "Manual configuration steps" %}
1. Browse to your Home Assistant instance.
2. Go to **{% my integrations title="Settings > Devices & Services" %}**.
3. In the bottom right corner, select the
**{% my config_flow_start icon domain=page.ha_domain %}** button.
4. From the list, select **CCM15** and follow the instructions on screen.
{% enddetails %}
## Climate
Each data controller can support up to 64 `climate` devices.

View File

@ -12,8 +12,6 @@ The `mqtt` climate platform lets you control your MQTT enabled HVAC devices.
## Configuration
<a id='new_format'></a>
To enable this climate platform in your installation, first add the following to your `configuration.yaml` file:
```yaml

View File

@ -10,6 +10,7 @@ ha_codeowners:
- '@chemelli74'
ha_iot_class: Local Polling
ha_platforms:
- alarm_control_panel
- cover
- light
- sensor
@ -23,5 +24,10 @@ The Comelit SimpleHome integration allows you to control your [Comelit home auto
There is support for the following platform types within Home Assistant:
- **Comelit Serial Bridge** - allows local control for light, cover, irrigation and "other" devices; creates power sensors.
- **Comelit VEDO System** - allows local control of the alarm system.
{% include integrations/config_flow.md %}
## Alarm control panel
The integration will create an alarm entity for each area and a sensor for each zone.

View File

@ -27,8 +27,6 @@ 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.
<a id='new_format'></a>
To use your MQTT cover in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -89,7 +87,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -13,8 +13,6 @@ The `mqtt` device tracker platform allows you to define new device_trackers thro
## Configuration
<a id='new_format'></a>
To use this device tracker in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -75,9 +73,9 @@ device:
required: false
type: string
connections:
description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`."
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: [list, map]
type: list
hw_version:
description: The hardware version of the device.
required: false

View File

@ -53,9 +53,9 @@ device:
required: false
type: string
connections:
description: "A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `'connections': ['mac', '02:5b:26:a8:dc:12']`."
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: [list, map]
type: list
identifiers:
description: A list of IDs that uniquely identify the device. For example a serial number.
required: false

View File

@ -53,31 +53,34 @@ Currently the following device types within Home Assistant are supported.
### Images
- QR code of your guest wifi credentials
- QR code of your guest Wi-Fi credentials
- Updates every 15 seconds if changes are detected
- Is enabled by default
### Presence detection
- Detect presence of devices connected to the main or the guest wifi
- Detect presence of devices connected to the main or the guest Wi-Fi
- Updates every 15 seconds
- Automatically adds new devices as disabled entities unless disabled via system option
### Sensors
- Number of connected wifi clients
- Number of connected Wi-Fi clients
- Updates every 15 seconds
- Is enabled by default
- Number of neighbored wifi networks
- Number of neighbored Wi-Fi networks
- Updates every 5 minutes
- Is disabled by default because it runs quite long
- Number of PLC devices in the same PLC network
- Updates every 5 minutes
- Is disabled by default because it typically rarely changes
- PLC PHY rates
- Updates every 5 minutes
- PHY rates to/from the device attached to the router are enabled by default. PHY rates between all other devices are disabled by default.
### Switch
- Turn on/off guest wifi
- Turn on/off guest Wi-Fi
- Is enabled by default
- Turn on/off the device LEDs
- Is enabled by default
@ -103,7 +106,7 @@ The list of supported devolo devices depends on the device firmware and the devi
- dLAN 550+ Wifi
- dLAN 550 WiFi
Since firmware 7.10 also the following device without Wifi can be used as long as the corresponding entities are supported:
Since firmware 7.10 also the following device without Wi-Fi can be used as long as the corresponding entities are supported:
- Magic 2 LAN triple
- Magic 2 DinRail

View File

@ -51,7 +51,7 @@ Now use the Discord Authorization page with the **Application ID** of your [appl
Wait for the confirmation which should say "Authorized".
Once the bot has been added to your server, get the channel ID of the channel you want the bot to operate in. In The Discord application go to **Settings** > **Advanced** > **Enable Developer Mode**.
Once the bot has been added to your server, get the channel ID of the channel you want the bot to operate in. Open Discord and go to **User Settings** > **Advanced** > **Enable Developer Mode**. User settings can be found next to your username in Discord.
![Screenshot of Discord bot create prompt](/images/screenshots/discord-api.png)

View File

@ -25,3 +25,9 @@ In addition to a lock entity, each added dKey lock will also have:
- A battery sensor
- A binary_sensor which shows if the door is open or not
- A binary_sensor which shows the position of the lock's dead bolt
<div class='note warning'>
The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) work reliably.
</div>

View File

@ -0,0 +1,66 @@
---
title: DROP
description: Instructions on how to integrate DROP into Home Assistant.
ha_category:
- Binary sensor
- Select
- Sensor
- Switch
ha_config_flow: true
ha_codeowners:
- '@ChandlerSystems'
- '@pfrazer'
ha_domain: drop_connect
ha_iot_class: Local Push
ha_mqtt: true
ha_release: '2024.1'
ha_platforms:
- binary_sensor
- select
- sensor
- switch
ha_integration_type: integration
---
The DROP integration provides connectivity with
[DROP smart water system](https://dropconnect.com) devices via a local MQTT API.
### Supported devices
There is currently support for the following DROP products within Home Assistant:
- **DROP Hub**: centralized system status and control.
- **Leak Detector**: reports detected leaks around the home.
- **Softener**: improves water quality by decreasing water hardness with integral water shutoff.
- **Filter**: improves water quality by removing contaminants with integral water shutoff.
- **Protection Valve**: automatic water shutoff with slow leak detection.
- **Pump Controller**: smart replacement for an FSG pressure switch.
- **RO Filter**: reverse osmosis drinking water filtration.
- **Salt Sensor**: alerts when the salt level in the softener brine tank is low.
### Configuration
To use DROP with Home Assistant, you must have already configured the [MQTT](/integrations/mqtt/) platform. It is
recommended
that you create a unique user to connect your DROP Hub to your MQTT broker. If you are
using the Mosquitto add-on, go to **Settings > Add-ons** in the Home Assistant UI and select the Mosquitto broker.
Under **Configuration**, enter a new username and password for your DROP Hub in the **Logins** field:
```yaml
- username: drop
password: your_unique_password
```
If you are using a different MQTT broker, please reference its documentation to learn how to add a new user.
To enable the DROP integration, use the DROP Connect app to connect your DROP Hub to your MQTT broker:
- Start the DROP Connect app and connect to your DROP Hub.
- In the **Hub Network Settings** section on the **System > Advanced** page, tap the **Configure MQTT** button.
- Enter the MQTT broker address, port number, username, and password.
- Click **Connect** and confirm that the DROP Hub has connected to the MQTT broker.
Once the DROP Hub is connected to your MQTT broker, the devices on your DROP system will be discovered by Home
Assistant.
Go to **Settings > Devices & Services** in the Home Assistant UI to add your DROP devices.

View File

@ -65,3 +65,123 @@ of hours during the day.
For the dynamic gas prices, only entities are created that display the
`current` and `next hour` price because the price is always fixed for
24 hours; new prices are published every morning at **05:00 UTC time**.
## Services
The energy and gas prices are exposed using [service calls](/docs/scripts/service-calls/). The services populate [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with price data.
### Service `easyenergy.get_gas_prices`
Fetches the hourly prices for gas.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `config_entry` | no | Config entry to use. | 013713c172577bada2874a32dbe44feb
| `incl_vat` | no | Defines whether the prices include or exclude VAT. Defaults to True | False
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
#### Response data
The response data is a dictionary with the gas timestamps and prices as string and float values.
```json
{
"prices": [
{
"timestamp": "2023-12-09 03:00:00+00:00",
"price": 0.46914
},
{
"timestamp": "2023-12-09 04:00:00+00:00",
"price": 0.46914
}
]
}
```
### Service `easyenergy.get_energy_usage_prices`
Fetches the hourly prices for energy that you use (buy).
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `config_entry` | no | Config entry to use. | 013713c172577bada2874a32dbe44feb
| `incl_vat` | no | Defines whether the prices include or exclude VAT. Defaults to True | False
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
#### Response data
The response data is a dictionary with the energy timestamps as strings and prices as float values.
```json
{
"prices": [
{
"timestamp": "2023-12-09 03:00:00+00:00",
"price": 0.08418
},
{
"timestamp": "2023-12-09 04:00:00+00:00",
"price": 0.08758
}
]
}
```
### Service `easyenergy.get_energy_return_prices`
Fetches the hourly prices for energy that you return (sell).
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `config_entry` | no | Config entry to use. | 013713c172577bada2874a32dbe44feb
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices from. Defaults to today 00:00:00 | 2023-01-01 00:00:00
#### Response data
The response data is a dictionary with the energy timestamps as strings and prices as float values.
```json
{
"prices": [
{
"timestamp": "2023-12-09 03:00:00+00:00",
"price": 0.06957
},
{
"timestamp": "2023-12-09 04:00:00+00:00",
"price": 0.07238
}
]
}
```
### Add response to template sensor
You can use the response data in a template sensor that is updated every hour:
{% raw %}
```yaml
template:
- trigger:
- platform: time_pattern
seconds: "*"
action:
- service: easyenergy.get_energy_usage_prices
response_variable: response
data:
config_entry: "013713c172577bada2874a32dbe44feb"
incl_vat: true
sensor:
- name: Energy prices
device_class: timestamp
state: "{{ now() }}"
attributes:
prices: "{{ response.prices }}"
```
{% endraw %}

View File

@ -52,3 +52,100 @@ Every day around **14:00 UTC time**, the new prices are published for the follow
For the dynamic gas prices, only entities are created that display the
`current` and `next hour` price because the price is always fixed for
24 hours; new prices are published every morning at **05:00 UTC time**.
## Services
The energy and gas prices are exposed using [service calls](/docs/scripts/service-calls/). The services populate [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with price data.
### Service `energyzero.get_gas_prices`
Fetches the gas prices.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
### Response data
The response data is a dictionary with the gas timestamps and prices as string and float values.
{% raw %}
```json
{
"prices": [
{
"timestamp": "2023-09-25 03:00:00+00:00",
"price": 1.1
},
{
"timestamp": "2023-09-25 04:00:00+00:00",
"price": 1.05
}
]
}
```
{% endraw %}
### Service `energyzero.get_energy_prices`
Fetches the energy prices.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
### Response data
The response data is a dictionary with the energy timestamps and prices as string and float values.
{% raw %}
```json
{
"prices": [
{
"timestamp": "2023-09-25 03:00:00+00:00",
"price": 0.05
},
{
"timestamp": "2023-09-25 04:00:00+00:00",
"price": 0.12
}
]
}
```
{% endraw %}
### Add response to sensor
The response data can be added to a template sensor:
{% raw %}
```yaml
template:
- trigger:
- platform: time_pattern
hours: "*"
action:
- service: energyzero.get_energy_prices
response_variable: prices
data:
incl_vat: false
sensor:
- name: Energy prices
device_class: timestamp
state: "{{ now() }}"
attributes:
prices: '{{ prices }}'
```
{% endraw %}

View File

@ -24,7 +24,7 @@ When you want to add a device for the first time, turn it on before following th
- turn on/off
- set input
- set/get color mode
- set/get color mode including high/low lamp
- increase/decrease volume
- mute/unmute audio
- send next/previous track
@ -37,6 +37,7 @@ When you want to add a device for the first time, turn it on before following th
- Epson EH-TW5350
- Epson EH-TW7000
- Epson EH-TW9400W (shares platform with 7400/8400/9400(w))
To make this module work you need to connect your projector to your LAN.
The best is to use iProjection app by Epson to test if it is working.

View File

@ -12,8 +12,6 @@ The `mqtt` event platform allows you to process event info from an MQTT message.
## Configuration
<a id='new_format'></a>
```yaml
# Example configuration.yaml entry
mqtt:
@ -167,7 +165,7 @@ qos:
type: integer
default: 0
state_topic:
description: The MQTT topic subscribed to receive JSON event payloads. The JSON payload should contain the `event_type` element. The event type should be one of the configured `event_types`.
description: The MQTT topic subscribed to receive JSON event payloads. The JSON payload should contain the `event_type` element. The event type should be one of the configured `event_types`. Note that replayed retained messages will be discarded.
default: None
required: true
type: string

View File

@ -18,8 +18,6 @@ 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.
<a id='new_format'></a>
To enable MQTT fans in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -86,7 +84,7 @@ device:
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: [list, map]
type: list
hw_version:
description: The hardware version of the device.
required: false

View File

@ -21,7 +21,7 @@ The `fastdotcom` integration uses the [Fast.com](https://fast.com/) web service
<div class='note'>
Currently, the Fast.com integration only supports measuring download bandwidth.
If you want to measure bandwidth metrics other then download such as ping and upload, utilize the [Speedtest.net](/integrations/speedtestdotnet) integration.
If you want to measure bandwidth metrics other than download such as ping and upload, utilize the [Speedtest.net](/integrations/speedtestdotnet) integration.
</div>

View File

@ -15,7 +15,7 @@ ha_ssdp: true
ha_config_flow: true
---
This integration provides support for Internet Radios based on the [Frontier Silicon chipset]. Some of the manufacturers which offer products based on these chips include: Hama, Medion, Slivercrest, Auna, Technisat, Revo, Pinnel, etc. These devices will be usually controlled by the UNDOK app.
This integration provides support for Internet Radios based on the [Frontier Silicon chipset]. Some of the manufacturers which offer products based on these chips include: Hama, Medion, Slivercrest, Auna, Technisat, Revo, Pinnel, etc. These devices will be usually controlled by the OKTIV or UNDOK apps.
## Supported models
@ -28,11 +28,12 @@ Supported devices include, but are not limited to:
- Silvercrest: [SIRD 14 C2 (archived website)]
- Teufel: [Radio 3sixty (2019)]
- Roberts: [Roberts Stream 94i]
- Some models from: Auna, Technisat, Revo, Pinell, Como Audio
- TechniSat: [DIGITRADIO 10 IR], and some other models
- Some models from: Auna, Revo, Pinell, Como Audio
This integration was developed and tested with a [Roberts Stream 94i].
If your device is supported by the UNDOK app, then it is also supported by this integration.
If your device is supported by the OKTIV or UNDOK apps, then it is also supported by this integration.
## Prerequisites
@ -90,3 +91,4 @@ This renders the usage of [UNDOK] almost impossible for these older devices, as
[Radio 3sixty (2019)]: https://teufel.de/radio-3sixty-2019-105437000
[SIRD 14 C2 (archived website)]: https://web.archive.org/web/20191011141311/https://www.silvercrest-multiroom.de/produkte/stereo-internet-radio/
[Roberts Stream 94i]: https://www.robertsradio.com/en-gb/stream-94i
[DIGITRADIO 10 IR]: https://www.technisat.com/en_XX/DIGITRADIO-10-IR/352-10774-22920/

View File

@ -272,7 +272,7 @@ Currently, the following domains are available to be used with Google Assistant,
- button (scene)
- camera (streaming, requires compatible camera)
- climate (temperature setting, hvac_mode)
- cover (on/off/set position)
- cover (on/off/set position/stop/start=toggle cover)
- event (only entities with device class `doorbell` are supported)
- fan (on/off/speed percentage/preset mode)
- group (on/off)
@ -289,6 +289,8 @@ Currently, the following domains are available to be used with Google Assistant,
- sensor (temperature setting for temperature sensors and humidity setting for humidity sensors)
- switch (on/off)
- vacuum (dock/start/stop/pause)
- valve (open/close/set position/stop/start=toggle valve)
- water_heater (on-off/temperature setting/operation mode)
<div class='note'>

View File

@ -12,7 +12,7 @@ ha_domain: google_generative_ai_conversation
ha_integration_type: service
---
The Google Generative AI integration adds a conversation agent powered by [Google Generative AI](https://developers.generativeai.google/) in Home Assistant.
The Google Generative AI integration adds a conversation agent powered by [Google Generative AI](https://ai.google.dev/) in Home Assistant.
This conversation agent is unable to control your house. The Google Generative AI conversation agent can be used in automations, but not as a [sentence trigger](/docs/automation/trigger/#sentence-trigger). It can only query information that has been provided by Home Assistant. To be able to answer questions about your house, Home Assistant will need to provide Google Generative AI with the details of your house, which include areas, devices and their states.
@ -24,8 +24,6 @@ This integration requires an API key to use, [which you can generate here](https
The Google Generative AI API key is used to authenticate requests to the Google Generative AI API. To generate an API key take the following steps:
- Join the PaLM API and MakerSuite [waitlist](https://makersuite.google.com/waitlist).
- Wait several days for an email with subject "Its your turn to use the PaLM API and MakerSuite".
- Visit the [API Keys page](https://makersuite.google.com/app/apikey) to retrieve the API key you'll use to configure the integration.
{% include integrations/option_flow.md %}

View File

@ -18,6 +18,8 @@ ha_platforms:
ha_zeroconf: true
ha_integration_type: integration
ha_quality_scale: platinum
works_with:
- local
---
Integration for the [HomeWizard Energy](https://www.homewizard.com) platform. It can collect data locally from the HomeWizard Energy products and create them as sensors in Home Assistant.

View File

@ -18,8 +18,6 @@ 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.
<a id='new_format'></a>
To enable MQTT humidifiers in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -105,7 +103,7 @@ device:
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: [list, map]
type: list
hw_version:
description: The hardware version of the device.
required: false

View File

@ -18,8 +18,6 @@ An alternative setup is to use the `url_topic` option to receive an image URL fo
## Configuration
<a id='new_format'></a>
To enable this image in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -81,7 +79,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -0,0 +1,20 @@
---
title: Indiana Michigan Power
description: Get energy usage from Indiana Michigan Power using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: indianamichiganpower
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -98,7 +98,7 @@ conversation:
intent_script:
EventCountToday:
action:
- service: calendar.list_events
- service: calendar.get_events
target:
entity_id: calendar.my_calendar
data_template:
@ -108,7 +108,7 @@ intent_script:
- stop: ""
response_variable: result # and return it
speech:
text: "{{ action_response.events | length }}" # use the action's response
text: "{{ action_response['calendar.my_calendar'].events | length }}" # use the action's response
```
{% endraw %}

View File

@ -201,7 +201,7 @@ Delete a Z-Wave Lock User Code via the ISY.
#### Service `isy994.rename_node`
Rename a node or group (scene) on the ISY994. Note: this will not automatically change the Home Assistant Entity Name or Entity ID to match. The entity name and ID will only be updated after calling `isy994.reload` or restarting Home Assistant, and ONLY IF you have not already customized the name within Home Assistant.
Rename a node or group (scene) on the ISY994. Note: this will not automatically change the Home Assistant Entity Name or Entity ID to match. The entity name and ID will only be updated after reloading the integration or restarting Home Assistant, and ONLY IF you have not already customized the name within Home Assistant.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | -------------------------------------------------------------- |

View File

@ -0,0 +1,20 @@
---
title: Kentucky Power
description: Get energy usage from Kentucky Power using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: kentuckypower
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -544,7 +544,7 @@ name:
address:
description: Group address to send to.
required: true
type: [string, list]
type: string
payload:
description: The raw payload that shall be sent.
required: false

View File

@ -77,7 +77,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example, the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -49,6 +49,6 @@ These devices have been sold under many brands, including:
- REYSURPIUS
- SUPERNIGHT
- Triones
- Zengee
- [Zengge](http://www.zengge.com/sy)
- YONEDA
- Zerproc

View File

@ -42,8 +42,6 @@ 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`
<a id='new_format'></a>
```yaml
# Example configuration.yaml entry
mqtt:

View File

@ -21,8 +21,6 @@ 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.
<a id='new_format'></a>
To enable MQTT locks in your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -52,11 +52,6 @@ name:
description: "Name of this hub. Must be unique."
required: true
type: string
retries:
description: "Number of times to retry a request."
required: false
default: 3
type: integer
timeout:
description: "Timeout while waiting for a response in seconds."
required: false
@ -117,7 +112,6 @@ modbus:
delay: 0
message_wait_milliseconds: 30
retries: 3
timeout: 5
```
@ -164,7 +158,6 @@ modbus:
delay: 0
message_wait_milliseconds: 30
retries: 3
timeout: 5
```
@ -207,7 +200,6 @@ modbus:
delay: 0
message_wait_milliseconds: 30
retries: 3
timeout: 5
```
@ -302,7 +294,6 @@ modbus:
delay: 0
message_wait_milliseconds: 30
retries: 3
timeout: 5
```
@ -531,7 +522,7 @@ The master configuration like device_class are automatically copied to the slave
## Configuring climate entities
The Modbus climate platform allows you to monitor a thermostat or heaters as well as set a target temperature.
The Modbus climate platform allows you to monitor a thermostat or heaters as well as set a target temperature, HVAC mode and fan state.
Please refer to [Parameter usage](#parameters-usage-matrix) for conflicting parameters.
@ -613,7 +604,7 @@ climates:
state_auto:
description: "Value corresponding to HVAC Auto mode."
required: false
type: integer
type: [integer, list]
state_dry:
description: "Value corresponding to HVAC Dry mode."
required: false
@ -626,6 +617,61 @@ climates:
description: "Value corresponding to HVAC Heat/Cool mode."
required: false
type: [integer, list]
fan_mode_register:
description: "Configuration of register for Fan mode"
required: false
type: map
keys:
address:
description: "Address of Fan mode register."
required: true
type: integer
values:
description: "Mapping between the register values and Fan modes
This is typically used to control one of: Speed, Direction or On/Off state."
required: true
type: map
keys:
state_fan_on:
description: "Value corresponding to Fan On mode."
required: false
type: integer
state_fan_off:
description: "Value corresponding to Fan Off mode."
required: false
type: integer
state_fan_low:
description: "Value corresponding to Fan Low mode."
required: false
type: integer
state_fan_medium:
description: "Value corresponding to Fan Medium mode."
required: false
type: integer
state_fan_high:
description: "Value corresponding to Fan High mode."
required: false
type: integer
state_fan_auto:
description: "Value corresponding to Fan Auto mode."
required: false
type: integer
state_fan_top:
description: "Value corresponding to Fan Top mode."
required: false
type: integer
state_fan_middle:
description: "Value corresponding to Fan Middle mode."
required: false
type: integer
state_fan_focus:
description: "Value corresponding to Fan Focus mode."
required: false
type: integer
state_fan_diffuse:
description: "Value corresponding to Fan Diffuse mode."
required: false
type: integer
hvac_onoff_register:
description: "Address of On/Off state.
When zero is read from this register, the HVAC state is set to Off, otherwise the `hvac_mode_register`

View File

@ -20,6 +20,7 @@ The integration allows you to control [Motion Blinds](https://motionblinds.com/)
Additionally the following brands have been reported to also work with this integration:
- [Acomax](https://www.acomax.de/)
- [AMP Motorization](https://www.ampmotorization.com/)
- [Bliss Automation - Alta Window Fashions](https://www.altawindowfashions.com/product/automation/bliss-automation/)
- [Bloc Blinds](https://www.blocblinds.com/)
@ -50,6 +51,7 @@ The following bridges are reported to work with this integration:
- DD7002B Brel-Home box
- D1554 Brel Home USB plug
- Brel HUB-03
- Acomax FX-I 620 Bridge Maxi
{% include integrations/config_flow.md %}

View File

@ -0,0 +1,22 @@
---
title: Vogel's MotionMount
description: Instructions on how to integrate Vogel's MotionMount into Home Assistant.
ha_category:
- Number
ha_release: 2024.1
ha_iot_class: Local Push
ha_config_flow: true
ha_platforms:
- number
ha_codeowners:
- '@RJPoelstra'
ha_domain: motionmount
---
The Vogel's MotionMount integration allows you to control the position of your [TVM 7675 Pro](https://www.vogels.com/p/tvm-7675-pro-motorized-tv-wall-mount-black) Signature MotionMount.
This integration uses the Ethernet (IP) connection of your MotionMount. It's not possible to connect using the RS-232 connection.
It provides information about the current position of the mount and allows setting a new position.
{% include integrations/config_flow.md %}

View File

@ -37,6 +37,7 @@ ha_platforms:
- text
- update
- vacuum
- valve
- water_heater
ha_integration_type: integration
ha_quality_scale: gold
@ -240,6 +241,7 @@ The discovery of MQTT devices will enable one to use MQTT devices with only mini
- [Tag scanner](/integrations/tag.mqtt/)
- [Text](/integrations/text.mqtt/)
- [Vacuum](/integrations/vacuum.mqtt/)
- [Valve](/integrations/valve.mqtt/)
- [Water heater](/integrations/water_heater.mqtt/)
{% enddetails %}
@ -457,6 +459,7 @@ support_url:
'pl_ton': 'payload_turn_on',
'pl_trig': 'payload_trigger',
'pl_unlk': 'payload_unlock',
'pos': 'reports_position',
'pos_clsd': 'position_closed',
'pos_open': 'position_open',
'pr_mode_cmd_t': 'preset_mode_command_topic',
@ -680,6 +683,8 @@ The following software has built-in support for MQTT discovery:
- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
- [Arilux AL-LC0X LED controllers](https://github.com/smrtnt/Arilux_AL-LC0X)
- [ble2mqtt](https://github.com/devbis/ble2mqtt)
- [digitalstrom-mqtt](https://github.com/gaetancollaud/digitalstrom-mqtt)
- [ebusd](https://github.com/john30/ebusd)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
- [EMS-ESP32 (and EMS-ESP)](https://github.com/emsesp/EMS-ESP32)
@ -993,6 +998,7 @@ mqtt:
- [Text](/integrations/text.mqtt/)
- [Update](/integrations/update.mqtt/)
- [Vacuum](/integrations/vacuum.mqtt/)
- [Valve](/integrations/valve.mqtt/)
- [Water heater](/integrations/water_heater.mqtt/)
{% enddetails %}

View File

@ -8,11 +8,14 @@ ha_category:
- Notifications
- Sensor
ha_iot_class: Local Polling
ha_config_flow: true
ha_domain: netgear_lte
ha_platforms:
- binary_sensor
- notify
- sensor
ha_codeowners:
- '@tkdrob'
ha_integration_type: integration
ha_codeowners:
- '@tkdrob'
@ -34,106 +37,11 @@ Splitting of long SMS messages is not supported so notifications can contain a m
</div>
## Configuration
{% include integrations/config_flow.md %}
To enable the integration, add the following lines to your `configuration.yaml` file:
## Notification Service
```yaml
# Example configuration.yaml entry
netgear_lte:
- host: IP_ADDRESS
password: SECRET
notify:
- name: sms
recipient: "+15105550123"
sensor:
monitored_conditions:
- usage
- sms
binary_sensor:
monitored_conditions:
- wire_connected
- mobile_connected
```
{% configuration %}
host:
description: The IP address of the modem web interface.
required: true
type: string
password:
description: The password used for the modem web interface.
required: true
type: string
notify:
description: A list of notification services connected to this specific host.
required: false
type: list
keys:
recipient:
description: The phone number of a default recipient or a list with multiple recipients.
required: false
type: [string, list]
name:
description: The name of the notification service.
required: false
default: "`netgear_lte`"
type: string
sensor:
description: Configuration options for sensors.
required: false
type: map
keys:
monitored_conditions:
description: Sensor types to create.
required: false
default: usage
type: list
keys:
cell_id:
description: The Cell ID, a number identifying the base station.
connection_text:
description: A connection text, e.g., "4G".
connection_type:
description: The connection type, e.g., "IPv4Only".
current_band:
description: The radio band used, e.g., "LTE B3".
current_ps_service_type:
description: The service type, e.g., "LTE".
radio_quality:
description: A number with the radio quality in percent, e.g., "55"
register_network_display:
description: The name of the service provider.
rx_level:
description: The RSRP value, a measurement of the received power level, e.g., "-95".
sms:
description: Number of unread SMS messages in the modem inbox.
sms_total:
description: Number of SMS messages in the modem inbox.
tx_level:
description: Transmit power, e.g., "23".
upstream:
description: Current upstream connection, "WAN" or "LTE".
usage:
description: Amount of data transferred.
binary_sensor:
description: Configuration options for binary sensors.
required: false
type: map
keys:
monitored_conditions:
description: Binary sensor types to create.
required: false
default: mobile_connected
type: list
keys:
mobile_connected:
description: The LTE connection state.
wire_connected:
description: The wired uplink connection state.
roaming:
description: The current roaming state.
{% endconfiguration %}
The integration will create a `notify` service matching the name of the integration entry. This is the model name of the device by default.
## Events

View File

@ -12,8 +12,6 @@ The `mqtt` Number platform allows you to integrate devices that might expose con
## Configuration
<a id='new_format'></a>
To enable MQTT Number in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -70,7 +68,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -64,20 +64,24 @@ with the requested image.
| ---------------------- | -------- | ------------------------------------------------------ | ---------------- |
| `config_entry` | no | Integration entry ID to use. | |
| `prompt` | no | The text to turn into an image. | Picture of a dog |
| `size` | yes | Size of the returned (square) image in pixels, defaults to 512. | 512 |
| `size` | yes | Size of the returned image in pixels. Must be one of `1024x1024`, `1792x1024`, or `1024x1792`, defaults to `1024x1024`. | 1024x1024 |
| `quality` | yes | The quality of the image that will be generated. `hd` creates images with finer details and greater consistency across the image. | standard |
| `style` | yes | The style of the generated images. Must be one of `vivid` or `natural`. Vivid causes the model to lean towards generating hyper-real and dramatic images. Natural causes the model to produce more natural, less hyper-real looking images. | vivid |
{% raw %}
```yaml
service: openai_conversation.generate_image
data:
config_entry: f29e6b8696a15e107b4bd843de722249
config_entry: abce6b8696a15e107b4bd843de722249
prompt: "Cute picture of a dog chasing a herd of cats"
size: 1024
size: 1024x1024
quality: standard
style: vivid
response_variable: generated_image
```
{% endraw %}
The response data field `url` will contain a URL to the generated image.
The response data field `url` will contain a URL to the generated image and `revised_prompt` will contain the updated prompt used.
#### Example using a generated image entity
@ -109,7 +113,7 @@ automation:
response_variable: generated_image
data:
config_entry: abce6b8696a15e107b4bd843de722249
size: "512"
size: "1024x1024"
prompt: >-
New York when the weather is {{ states("weather.home") }}"

View File

@ -0,0 +1,32 @@
---
title: OSO Energy
description: Instructions on how to integrate OSO Energy devices with Home Assistant.
ha_release: "2024.1"
ha_category:
- Sensor
- Water Heater
ha_iot_class: Cloud Polling
ha_codeowners:
- '@osohotwateriot'
ha_domain: osoenergy
ha_platforms:
- water_heater
ha_config_flow: true
ha_integration_type: integration
---
The OSO Energy integration for Home Assistant allows you to interact with supported devices and services offered by [OSO Energy](https://www.osoenergy.no)
This OSO Energy integration uses a subscription key, which a user can create for his account on the [OSO Energy website](https://portal.osoenergy.no/), to configure it within Home Assistant. Once configured Home Assistant will detect and add all OSO Energy devices.
{% include integrations/config_flow.md %}
## Platforms
### Water Heater
The OSO Energy water heater platform integrates your OSO Energy devices into Home Assistant.
The platform supports the following OSO Energy devices:
- Water Heaters

View File

@ -27,8 +27,8 @@ There is currently support for the following device types within Home Assistant:
## Polling interval
By default, the integration will ping the device every 5 minutes.
If you wish to do a ping more frequently, you can disable the automatic refresh in the integration's system options (Enable polling for updates) and create your own automation with your desired frequency.
By default, the integration will ping the device every 30 seconds.
If you wish to do a ping at a different interval, you can disable the automatic refresh in the integration's system options (Enable polling for updates) and create your own automation with your desired frequency.
For more detailed steps on how to define a custom interval, follow the procedure below.
@ -36,10 +36,18 @@ For more detailed steps on how to define a custom interval, follow the procedure
{% include common-tasks/define_custom_polling.md %}
## Integration options
It is possible to change some behaviors through the integration options.
To change the settings, go to {% my integrations title="**Settings** > **Devices & Services**" %}. Select the **Ping** integration, then select **Configure**.
- **Ping count**: Number of echo requests to send to the target. The default is 5.
- **Consider home**: Number of seconds that must elapse before considering a disconnected device "not at home". The default is 180 seconds (3 minutes).
## Binary sensor
The `ping` binary sensor platform allows you to use `ping` to send ICMP echo requests. This way you can check if a given host is online and determine the round trip times from your Home Assistant instance to that system.
This sensor is enabled by default. The default polling interval is 5 minutes.
This sensor is enabled by default. The default polling interval is 30 seconds.
The sensor exposes the different round trip times in milliseconds measured by `ping` as attributes:

View File

@ -8,6 +8,7 @@ ha_release: '2022.9'
ha_config_flow: true
ha_codeowners:
- '@balloob'
- '@Skaronator'
ha_domain: prusalink
ha_integration_type: integration
ha_platforms:
@ -17,16 +18,21 @@ ha_platforms:
ha_dhcp: true
---
The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI and Prusa MK4.
This integration requires PrusaLink v2. If you have the Prusa MINI, you need to run firmware 4.4.0 or later.
The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI, Prusa MK3.9/MK4 and Prusa XL. It does not work with the older Raspberry Pi Prusa Link printers.
When adding the integration, you will be asked to provide a {% term host %} and an API key. These are the credentials you set up when setting up PrusaLink on your printer.
This integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa Mini, please make sure your printer is running firmware 5.1.0 or a more recent version. Firmware versions 4.7.x and 5.0.x are not available for this model.
To obtain the host name and API key/password:
Firmware update guides can be found here:
- [Prusa Mini](https://help.prusa3d.com/article/firmware-updating-mini-mini_124784)
- [Prusa MK4/XL](https://help.prusa3d.com/article/how-to-update-firmware-mk4-xl_453086)
To obtain the hostname, username, and password:
- On your printer, navigate to **Settings** > **Network** > **PrusaLink**.
- Find the device's **IP address**. Alternatively, you can look for the printer's IP address or hostname on your router.
- Depending on your model, the entry may not be called **API key**, but **Password**.
- Note that for some models, the username may not be visible, as it is hardcoded to `maker`.
- Depending on your model, the entry may not be called **Password**, but **API key**.
{% include integrations/config_flow.md %}

View File

@ -0,0 +1,20 @@
---
title: Public Service Company of Oklahoma (PSO)
description: Get energy usage from Public Service Company of Oklahoma (PSO) using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: psoklahoma
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
ha_iot_class: Cloud Polling
---
{% include integrations/supported_brand.md %}

View File

@ -132,8 +132,8 @@ Services can also respond with data. Retrieving this data in your Python script
```python
# get_forecast.py
service_data = {"type": "daily", "entity_id": "weather.YOUR_HOME"}
current_forecast = hass.services.call("weather", "get_forecast", service_data, blocking=True, return_response=True)
service_data = {"type": "daily", "entity_id": ["weather.YOUR_HOME", "weather.YOUR_SCHOOL"]}
current_forecast = hass.services.call("weather", "get_forecasts", service_data, blocking=True, return_response=True)
```
## Documenting your Python scripts

View File

@ -9,6 +9,7 @@ ha_iot_class: Local Polling
ha_domain: qbittorrent
ha_codeowners:
- '@geoffreylagaisse'
- '@finder39'
ha_platforms:
- sensor
ha_integration_type: service
@ -27,5 +28,32 @@ This sensor requires the qBittorrent Web UI enabled. The [official reference](ht
The qBittorrent integration will add the following sensors:
- `sensor.qbittorrent_status`: The status of qBittorrent - `up_down`, `seeding`, `downloading` or `idle`.
- `sensor.qbittorrent_up_speed`: The current total upload speed in kB/s.
- `sensor.qbittorrent_down_speed`: The current total download speed in kB/s.
- `sensor.qbittorrent_upload_speed`: The current total upload speed in kB/s.
- `sensor.qbittorrent_download_speed`: The current total download speed in kB/s.
- `sensor.qbittorrent_all_torrents`: The current total torrents in qBittorrent.
- `sensor.qbittorrent_active_torrents`: The current active torrents in qBittorrent.
- `sensor.qbittorrent_inactive_torrents`: The current inactive torrents in qBittorrent.
- `sensor.qbittorrent_paused_torrents`: The current paused torrents in qBittorrent.
## Services
### Service `qbittorrent.get_torrents`
This service populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
with a dictionary of torrents based on the provided filter.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `filter` | no | The type of torrents you want in the response | all, active, inactive, paused, downloading, seeding
</div>
```yaml
service: qbittorrent.get_torrents
data:
filter: 'all'
response_variable: torrents
```
The response data contains the field `torrent_info` which contains a dictionary of torrents. The name of the torrents are the keys.

View File

@ -17,12 +17,12 @@ The Radio Browser integration allows you to use the directory of
radio stations collected on [Radio Browser](https://www.radio-browser.info)
in Home Assistant.
All radio stations can be browsed and played via the Media panel in
Home Assistant.
{% include integrations/config_flow.md %}
Additionally, when creating automations, the "Play Media" action can be used
to pick a station from the directory. This makes it possible to create
an automation that e.g., starts playing your favorite radio station on your
To start the Radio Browser, in Home Assistant, go to **Media** > **Radio Browser** and select the speaker.
![Starting the radio browser](/images/integrations/radio_browser/radio_browser.png)
You can also use the Radio Browser in automations. When creating an automation, use the **Play Media** action to pick a station from the directory. This allows you for example to create
an automation that starts playing your favorite radio station on your
Cast devices.
{% include integrations/config_flow.md %}

View File

@ -0,0 +1,59 @@
---
title: Refoss
description: Integrate Refoss devices
ha_category:
- Switch
ha_release: 2024.1
ha_codeowners:
- '@ashionky'
ha_iot_class: Local Polling
ha_domain: refoss
featured: true
ha_config_flow: true
ha_platforms:
- switch
ha_integration_type: integration
---
Integrate Refoss devices into Home Assistant.
## Prerequisites
- The device needs to be connected to the local network first. There are two ways to connect devices to the local network:
- Using the Refoss app (download and install the Refoss app on Google Play) to connect devices to the local network.
- Using the Web page to connect devices to the local network.
- The computer/mobile phone is connected to the device factory Wi-Fi.
- In the browser, access the address 10.10.10.1, then select the local Wi-Fi needed for device configuration.
- The integration will occupy port: 9989.
{% include integrations/config_flow.md %}
### Discover device
- After integrating Refoss, it will start socket broadcast and Home Assistant will automatically discover Refoss devices under the current LAN.
## Entity naming
The integration uses the following strategy to name its entities:
- The entity name will be generated by `Device Name` and `Channel Number`.
Single channel device.
Examples:
| Device Name |Channel Number| Entity Name |
| ----------- | -----------|------------|
| `r10` | `0` | r10 |
Multi-channel device.
Examples:
| Device Name | Channel Number | Entity Name |
| ----------- |----------------|----------|
| `r10` | `0` | r10 |
| `r10` | `1` | r10-1 |
## Reset device
Long-press the button on the device to reset it.

View File

@ -160,6 +160,7 @@ In some camera models, there is a delay of up to 5 seconds between the turn-off
Depending on the supported features of the camera, switch entities are added for:
- Infrared lights in night mode
- Record audio
- Siren on event
- Auto tracking
@ -173,6 +174,8 @@ Depending on the supported features of the camera, switch entities are added for
- FTP upload
- HDR*
When the **Infrared lights in night mode** entity is set to OFF, the infrared LEDs are always OFF. When the **Infrared lights in night mode** entity is set to ON, the infrared LEDs will be on when the camera is in night vision mode. For more information, see the **Day night mode** select entity.
For NVRs, a global switch for **Record**, **Push**, **Buzzer**, **Email**, and **FTP** will be available under the NVR device as well as a switch per channel of the NVR under the camera device. The respective feature will only be active for a given channel if both the global and that channel switch are enabled (as is also the case in the Reolink app/client).
**Push** notifications to a phone will only be provided if the following conditions are met:
@ -187,13 +190,10 @@ The Push-notification in the Reolink app is independent of the Home Assistant se
Depending on the supported features of the camera, light entities are added for:
- Floodlight
- Infra red lights in night mode
- Status LED
When the **floodlight** entity is ON always ON, when OFF controlled based on the internal camera floodlight mode (Off, Auto, Schedule), see the **Floodlight mode** select entity.
When **IR light** entity is OFF always OFF, when ON IR LEDs will be on when the camera is in night vision mode, see the **Day night mode** select entity.
## Sensor entities
Depending on the supported features of the camera, the following sensor entities are added:
@ -238,6 +238,7 @@ The following models have been tested and confirmed to work:
- [RLC-520A](https://reolink.com/product/rlc-520a/)
- RLC-522*
- [RLC-810A](https://reolink.com/product/rlc-810a/)
- [RLC-810WA](https://reolink.com/product/rlc-810wa/)
- [RLC-811A](https://reolink.com/product/rlc-811a/)
- [RLC-81PA](https://reolink.com/product/rlc-81pa/)
- [RLC-820A](https://reolink.com/product/rlc-820a/)
@ -248,6 +249,7 @@ The following models have been tested and confirmed to work:
- [RLN8-410 NVR](https://reolink.com/product/rln8-410/)
- [RLN16-410 NVR](https://reolink.com/product/rln16-410/)
- [RLN36 NVR](https://reolink.com/product/rln36/)
- [RLN12W NVR](https://reolink.com/product/rln12w/)
- [Reolink Duo WiFi](https://reolink.com/product/reolink-duo-wifi-v1/)
- [Reolink Duo 2 WiFi](https://reolink.com/product/reolink-duo-wifi/)
- Reolink Duo Floodlight ([PoE](https://reolink.com/product/reolink-duo-floodlight-poe/) and [Wi-Fi](https://reolink.com/product/reolink-duo-floodlight-wifi/))

View File

@ -12,8 +12,6 @@ The `mqtt` scene platform lets you control your MQTT enabled scenes.
## Configuration
<a id='new_format'></a>
To enable a MQTT scene in your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -5,7 +5,7 @@ ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_domain: pse
ha_domain: scl
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower

View File

@ -12,8 +12,6 @@ The `mqtt` Select platform allows you to integrate devices that might expose con
## Configuration
<a id='new_format'></a>
To enable MQTT Select in your installation, add the following to your `configuration.yaml` file:
```yaml
@ -82,7 +80,7 @@ device:
required: false
type: string
connections:
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": ["mac", "02:5b:26:a8:dc:12"]`.'
description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
required: false
type: list
hw_version:

View File

@ -12,8 +12,6 @@ This `mqtt` sensor platform uses the MQTT message payload as the sensor value. I
## Configuration
<a id='new_format'></a>
To use your MQTT sensor in your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -34,6 +34,7 @@ ha_platforms:
- sensor
- switch
- update
- valve
ha_integration_type: device
ha_quality_scale: platinum
---
@ -44,11 +45,11 @@ Integrate [Shelly devices](https://shelly.cloud) into Home Assistant.
## Shelly device generations
There are two generations of devices. Both generations are supported by this integration. There are some differences in how devices should be configured and in the naming of entities and devices between generations.
There are three generations of devices and all generations are supported by this integration. There are some differences in how devices should be configured and in the naming of entities and devices between generations.
## Shelly device configuration (generation 1)
Generation 1 devices use the `CoIoT` protocol to communicate with the integration. For Shelly firmware 1.10.0 or newer, `CoIoT` must be enabled in the device settings. Navigate to the local IP address of your Shelly device, **Internet & Security** >> **ADVANCED - DEVELOPER SETTINGS** and check the box **Enable CoIoT**.
Generation 1 devices use the `CoIoT` protocol to communicate with the integration. `CoIoT` must be enabled in the device settings. Navigate to the local IP address of your Shelly device, **Internet & Security** > **ADVANCED - DEVELOPER SETTINGS** and check the box **Enable CoIoT**.
We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. **This is mandatory for battery operated devices**. After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
@ -63,9 +64,9 @@ The list below will help you diagnose and fix the problem:
- The missing push updates may be related to the WiFi network range. If using a WiFi network with several access points, enable **Internet & Security** >> **WiFi Client AP Roaming** option. Consider moving Shelly device closer to the WiFi access point. Consider adding another WiFi access point, which will improve the connection quality with the device.
- If you think your Shelly devices are working correctly and don't want to change your network/configuration, you can ignore the repair issue. Still, you must know you are giving up the best experience of using first-generation Shelly devices with Home Assistant.
## Shelly device configuration (generation 2)
## Shelly device configuration (generation 2 and 3)
Generation 2 devices use the `RPC` protocol to communicate with the integration. **Battery powered devices** need manual outbound WebSocket configuration, Navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address:
Generation 2 and 3 devices use the `RPC` protocol to communicate with the integration. **Battery powered devices** need manual outbound WebSocket configuration, Navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address:
`ws://` + `Home_Assistant_local_ip_address:Port` + `/api/shelly/ws` (for example: `ws://192.168.1.100:8123/api/shelly/ws`), click **Apply** to save the settings.
@ -75,7 +76,7 @@ Integration is communicating directly with the device; cloud connection is not n
## Bluetooth Support
Shelly generation 2 devices running firmware 0.12 or later can act as a Bluetooth proxy for advertisements. Active or passive listening can be enabled in the options flow.
Shelly generation 2 and 3 devices not battery-powered can act as a Bluetooth proxy for advertisements. Active or passive listening can be enabled in the options flow.
{% include integrations/option_flow.md %}
@ -105,7 +106,7 @@ Names are set from the device web page:
- Channel name for single-channel devices can be set in **Settings** >> **CHANNEL NAME**
- Channel name for multi-channel devices can be set in **Settings** >> **CHANNEL NAME** after selecting the channel, by clicking on the channel name.
## Entity naming (generation 2)
## Entity naming (generation 2 and 3)
The integration uses the following strategy to name its entities:
@ -118,15 +119,15 @@ The integration uses the following strategy to name its entities:
Depending on how a device's button type is configured, the integration will create binary sensors corresponding to those inputs. binary sensors are not created when the button type is `momentary` or `momentary_on_release`, for these types you need to use events for your automations.
### Binary input sensors (generation 2)
### Binary input sensors (generation 2 and 3)
For generation 2 hardware it's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input is of type `button` you need to use events for your automations.
For generation 2 and 3 hardware it's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input is of type `button` you need to use events for your automations.
## Event entities (generation 1)
If the **BUTTON TYPE** of the switch connected to the device is set to `momentary` or `detached switch`, the integration creates an event entity for this switch. You can use this entity in your automations.
## Event entities (generation 2)
## Event entities (generation 2 and 3)
If the **Input Mode** of the switch connected to the device is set to `Button`, the integration creates an event entity for this switch. You can use this entity in your automations.
@ -213,7 +214,7 @@ You can also create automations using YAML, for example:
| `SL` | `single_long` |
| `LS` | `long_single` |
Generation 2 devices use the values `btn_down`, `btn_up`, `single_push`, `double_push`, `triple_push` and `long_push` as `click_type`.
Generation 2 and 3 devices use the values `btn_down`, `btn_up`, `single_push`, `double_push`, `triple_push` and `long_push` as `click_type`.
<div class="note">
@ -223,18 +224,12 @@ Not all devices support all input events. You can check on [Shelly API Reference
## Appliance type (generation 1)
Shelly device relays are added to Home Assistant by default as `switch` entities. A relay can be added as a `light` entity if the device uses firmware version 1.9.0 or newer and the **Settings** >> **APPLIANCE TYPE** value is set to `light`.
Shelly device relays are added to Home Assistant by default as `switch` entities. A relay can be added as a `light` entity if **Settings** >> **APPLIANCE TYPE** value is set to `light`.
## Consumption type (generation 2)
## Consumption type (generation 2 and 3)
Shelly device relays are added to Home Assistant by default as `switch` entities. A relay can be added as a `light` entity if **EXTERNAL CONSUMPTION TYPE** value is set to `light`.
<div class="note">
Firmware 1.0.0 or later is required.
</div>
## Light transition
Shelly lights supporting light transition:
@ -248,12 +243,6 @@ Shelly lights supporting light transition:
<div class="note">
Firmware 1.11 or later is required.
</div>
<div class="note">
The firmware limits the transition time to 5 seconds.
</div>
@ -293,7 +282,7 @@ As soon as you change the temperature, it gets enabled again.
## Shelly Gas with Valve add-on
If you have Valve add-on connected to Shelly Gas, the integration will create two entities for the valve. The `switch` entity allows you to control the valve, the `sensor` entity shows exact states of the valve.
If you have Valve add-on connected to Shelly Gas, the integration will create three entities for the valve. The `switch` and `valve` entities allow you to control the valve, the `sensor` entity shows exact states of the valve. The `switch` entity is deprecated and will be removed in a future version of Home Assistant.
<div class="note">
@ -320,10 +309,9 @@ Please check from the device Web UI that the configured server is reachable.
## Known issues and limitations
- Only supports firmware 1.8 and later for generation 1 devices
- Only supports firmware 0.8 and later for generation 2 devices
- Only supports firmware 1.11 and later for generation 1 devices
- Only supports firmware 1.0 and later for generation 2 devices
- Generation 1 "Shelly 4Pro" and "Shelly Sense" are not supported (devices based on old CoAP v1 protocol)
- Before set up, battery-powered devices must be woken up by pressing the button on the device.
- For battery-powered devices, the `update` platform entities only inform about the availability of firmware updates but are not able to trigger the update process.
- Using the `homeassistant.update_entity` service for an entity belonging to a battery-powered device is not possible because most of the time these devices are sleeping (are offline).
- Frequency sensors for generation 2 energy monitoring devices are supported by firmware 1.0.0 beta 6 or later.

View File

@ -18,8 +18,6 @@ When a `state_topic` is not available, the siren will work in optimistic mode. I
Optimistic mode can be forced, even if the `state_topic` is available. Try to enable it, if experiencing incorrect operation.
<a id='new_format'></a>
To enable this siren in your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -31,7 +31,7 @@ ha_integration_type: integration
The SleepIQ integration lets you integrate your SleepNumber Bed via [SleepIQ by SleepNumber](https://www.sleepnumber.com/pages/sleepiq-sleep-tracker).
There is currently support for the following platforms within Home Assistant:
There is currently support available for the following platforms within Home Assistant, depending on the bed's capabilities:
- Binary sensor - View occupancy of each side
- Button - Calibrate the bed
@ -40,6 +40,7 @@ There is currently support for the following platforms within Home Assistant:
- Number - View/Set the actuator positions of the foundation
- Number - View/Set firmness for each side
- Select - Choose a foundation preset position
- Select/Number - Set a foot warmer mode and timeout
- Sensor - View pressure of each side
- Switch - Toggle Privacy mode

View File

@ -35,7 +35,7 @@ Speaker-level controls are exposed as `number` or `switch` entities. Additionall
- **All devices**: Alarms, Bass, Treble, Loudness, Crossfade, Status Light, Touch Controls
- **Home theater devices**: Audio Delay ("Lip Sync"), Night Sound, Speech Enhancement, Surround Enabled, Surround Music Full Volume ("Full/Ambient"), Surround Level ("TV Level"), Music Surround Level
- **When paired with a sub**: Subwoofer Enabled, Subwoofer Gain
- **When paired with a sub**: Subwoofer Enabled, Subwoofer Gain, Subwoofer Crossover Frequency (Sonos Amp only)
### Sensors

View File

@ -43,7 +43,7 @@ to allow you to log in with your Spotify account.
2. Log in to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard).
3. Click the [**Create app**](https://developer.spotify.com/dashboard/create) button in the top right.
3. Select the [**Create app**](https://developer.spotify.com/dashboard/create) button in the top right.
![Spotify Developer Dashboard](/images/integrations/spotify/create-spotify-application.png)
@ -57,22 +57,24 @@ to allow you to log in with your Spotify account.
![Creating a Spotify Application](/images/integrations/spotify/create-spotify-application.png)
5. Check the box to agree with the requirements and click the **Save** button
5. Select Web API.
6. Check the box to agree with the requirements and click the **Save** button
to confirm the application creation.
6. Spotify will now show the new application you have just created. Click on
7. Spotify will now show the new application you have just created. Select
the **Settings** button in the top right to configure it.
![Edit the Spotify Application settings](/images/integrations/spotify/edit-settings.png)
7. Before we can start configuring Home Assistant, we need to grab the application
8. Before we can start configuring Home Assistant, we need to grab the application
credentials Home Assistant needs.
Click on the **View client secret** button to reveal the client secret.
Select on the **View client secret** button to reveal the client secret.
![Show the client secret of the Spotify Application](/images/integrations/spotify/show-client-secret.png)
8. The _"Client ID"_ and _"Client secret"_ are the two pieces of information
9. The _"Client ID"_ and _"Client secret"_ are the two pieces of information
that Home Assistant needs to communicate with Spotify and is what we
call: Application credentials.

View File

@ -20,7 +20,11 @@ The Squeezebox integration allows you to control a [Logitech Squeezebox](https:/
{% include integrations/config_flow.md %}
<div class='note'>
This platform uses the web interface of the Logitech Media Server to send commands. The default port of the web interface is 9000. It is the same port that you use to access the LMS through your web browser. Originally, this platform used the telnet interface, which defaults to 9090. If you previously specified the port in your configuration file, you will likely need to update it.
This platform uses the web interface of the Logitech Media Server (LMS) to send commands. The default port of the web interface is 9000. It is the same port that you use to access the LMS through your web browser.
</div>
<div class='note'>
The integration now supports Logitech Media Servers behind an HTTPS reverse proxy. Please note that Logitech Media Server natively only supports HTTP traffic. Unless you have configured a reverse proxy, do not select the `https` option. If you have configured a reverse proxy, remember to update the port number.
</div>
The Logitech Transporter which have two digital inputs can be activated using a script. The following example turns on the Transporter and activates the toslink input interface:

View File

@ -33,6 +33,7 @@ The following integrations are automatically discovered by the SSDP integration:
- [Denon AVR](/integrations/denonavr/)
- [Denon HEOS](/integrations/heos/)
- [DirecTV](/integrations/directv/)
- [Frontier Silicon](/integrations/frontier_silicon/)
- [Huawei LTE](/integrations/huawei_lte/)
- [Hyperion](/integrations/hyperion/)
- [Keenetic NDMS2 Router](/integrations/keenetic_ndms2/)

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