Merge branch 'rc' into current

This commit is contained in:
Franck Nijhof 2025-06-11 19:58:14 +00:00
commit cb5e16aedf
No known key found for this signature in database
GPG Key ID: AB33ADACE7101952
114 changed files with 4898 additions and 1709 deletions

3
.vscode/cSpell.json vendored
View File

@ -93,7 +93,8 @@
"WSDTH", "WSDTH",
"WTHV", "WTHV",
"Xiaomi", "Xiaomi",
"Zigbee" "Zigbee",
"Zimi"
], ],
// flagWords - list of words to be always considered incorrect // flagWords - list of words to be always considered incorrect
// This is useful for offensive words and common spelling errors. // This is useful for offensive words and common spelling errors.

View File

@ -15,7 +15,7 @@ source/_integrations/acaia.markdown @zweckj
source/_integrations/accuweather.markdown @bieniu source/_integrations/accuweather.markdown @bieniu
source/_integrations/acmeda.markdown @atmurray source/_integrations/acmeda.markdown @atmurray
source/_integrations/acomax.markdown @starkillerOG source/_integrations/acomax.markdown @starkillerOG
source/_integrations/adax.markdown @danielhiversen source/_integrations/adax.markdown @danielhiversen @lazytarget
source/_integrations/adguard.markdown @frenck source/_integrations/adguard.markdown @frenck
source/_integrations/ads.markdown @mrpasztoradam source/_integrations/ads.markdown @mrpasztoradam
source/_integrations/advantage_air.markdown @Bre77 source/_integrations/advantage_air.markdown @Bre77
@ -41,6 +41,7 @@ source/_integrations/alarm_control_panel.template.markdown @home-assistant/core
source/_integrations/alert.markdown @home-assistant/core @frenck source/_integrations/alert.markdown @home-assistant/core @frenck
source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh
source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy @jbouwh source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy @jbouwh
source/_integrations/amazon_devices.markdown @chemelli74
source/_integrations/amazon_polly.markdown @jschlyter source/_integrations/amazon_polly.markdown @jschlyter
source/_integrations/amberelectric.markdown @madpilot source/_integrations/amberelectric.markdown @madpilot
source/_integrations/ambient_network.markdown @thomaskistler source/_integrations/ambient_network.markdown @thomaskistler
@ -92,6 +93,7 @@ source/_integrations/auth.markdown @home-assistant/core
source/_integrations/automation.markdown @home-assistant/core source/_integrations/automation.markdown @home-assistant/core
source/_integrations/avea.markdown @pattyland source/_integrations/avea.markdown @pattyland
source/_integrations/awair.markdown @ahayworth @danielsjf source/_integrations/awair.markdown @ahayworth @danielsjf
source/_integrations/aws_s3.markdown @tomasbedrich
source/_integrations/axis.markdown @Kane610 source/_integrations/axis.markdown @Kane610
source/_integrations/azure_data_explorer.markdown @kaareseras source/_integrations/azure_data_explorer.markdown @kaareseras
source/_integrations/azure_devops.markdown @timmo001 source/_integrations/azure_devops.markdown @timmo001
@ -112,7 +114,7 @@ source/_integrations/blebox.markdown @bbx-a @swistakm
source/_integrations/blink.markdown @fronzbot @mkmer source/_integrations/blink.markdown @fronzbot @mkmer
source/_integrations/bliss_automation.markdown @starkillerOG source/_integrations/bliss_automation.markdown @starkillerOG
source/_integrations/bloc_blinds.markdown @starkillerOG source/_integrations/bloc_blinds.markdown @starkillerOG
source/_integrations/blue_current.markdown @Floris272 @gleeuwen source/_integrations/blue_current.markdown @gleeuwen @NickKoepr @jtodorova23
source/_integrations/bluemaestro.markdown @bdraco source/_integrations/bluemaestro.markdown @bdraco
source/_integrations/blueprint.markdown @home-assistant/core source/_integrations/blueprint.markdown @home-assistant/core
source/_integrations/bluesound.markdown @thrawnarn @LouisChrist source/_integrations/bluesound.markdown @thrawnarn @LouisChrist
@ -177,7 +179,6 @@ source/_integrations/cozytouch.markdown @imicknl
source/_integrations/cpuspeed.markdown @fabaff source/_integrations/cpuspeed.markdown @fabaff
source/_integrations/cribl.markdown @Bre77 source/_integrations/cribl.markdown @Bre77
source/_integrations/crownstone.markdown @Crownstone @RicArch97 source/_integrations/crownstone.markdown @Crownstone @RicArch97
source/_integrations/cups.markdown @fabaff
source/_integrations/dacia.markdown @epenet source/_integrations/dacia.markdown @epenet
source/_integrations/daikin.markdown @fredrike source/_integrations/daikin.markdown @fredrike
source/_integrations/date.markdown @home-assistant/core source/_integrations/date.markdown @home-assistant/core
@ -269,7 +270,7 @@ source/_integrations/event.markdown @home-assistant/core
source/_integrations/evergy.markdown @tronikos source/_integrations/evergy.markdown @tronikos
source/_integrations/evil_genius_labs.markdown @balloob source/_integrations/evil_genius_labs.markdown @balloob
source/_integrations/evohome.markdown @zxdavb source/_integrations/evohome.markdown @zxdavb
source/_integrations/ezviz.markdown @RenierM26 @baqs source/_integrations/ezviz.markdown @RenierM26
source/_integrations/faa_delays.markdown @ntilley905 source/_integrations/faa_delays.markdown @ntilley905
source/_integrations/fan.markdown @home-assistant/core source/_integrations/fan.markdown @home-assistant/core
source/_integrations/fan.template.markdown @home-assistant/core source/_integrations/fan.template.markdown @home-assistant/core
@ -414,6 +415,7 @@ source/_integrations/image_upload.markdown @home-assistant/core
source/_integrations/imap.markdown @jbouwh source/_integrations/imap.markdown @jbouwh
source/_integrations/imeon_inverter.markdown @Imeon-Energy source/_integrations/imeon_inverter.markdown @Imeon-Energy
source/_integrations/imgw_pib.markdown @bieniu source/_integrations/imgw_pib.markdown @bieniu
source/_integrations/immich.markdown @mib1185
source/_integrations/improv_ble.markdown @emontnemery source/_integrations/improv_ble.markdown @emontnemery
source/_integrations/incomfort.markdown @jbouwh source/_integrations/incomfort.markdown @jbouwh
source/_integrations/indianamichiganpower.markdown @tronikos source/_integrations/indianamichiganpower.markdown @tronikos
@ -454,6 +456,7 @@ source/_integrations/jewish_calendar.markdown @tsvi
source/_integrations/juicenet.markdown @jesserockz source/_integrations/juicenet.markdown @jesserockz
source/_integrations/justnimbus.markdown @kvanzuijlen source/_integrations/justnimbus.markdown @kvanzuijlen
source/_integrations/jvc_projector.markdown @SteveEasley @msavazzi source/_integrations/jvc_projector.markdown @SteveEasley @msavazzi
source/_integrations/kaiser_nienhaus.markdown @starkillerOG
source/_integrations/kaiterra.markdown @Michsior14 source/_integrations/kaiterra.markdown @Michsior14
source/_integrations/kaleidescape.markdown @SteveEasley source/_integrations/kaleidescape.markdown @SteveEasley
source/_integrations/keba.markdown @dannerph source/_integrations/keba.markdown @dannerph
@ -647,7 +650,7 @@ source/_integrations/openhome.markdown @bazwilliams
source/_integrations/opensky.markdown @joostlek source/_integrations/opensky.markdown @joostlek
source/_integrations/opentherm_gw.markdown @mvn23 source/_integrations/opentherm_gw.markdown @mvn23
source/_integrations/openuv.markdown @bachya source/_integrations/openuv.markdown @bachya
source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi @wittypluck
source/_integrations/opnsense.markdown @mtreinish source/_integrations/opnsense.markdown @mtreinish
source/_integrations/opower.markdown @tronikos source/_integrations/opower.markdown @tronikos
source/_integrations/oralb.markdown @bdraco @Lash-L source/_integrations/oralb.markdown @bdraco @Lash-L
@ -662,6 +665,7 @@ source/_integrations/ovo_energy.markdown @timmo001
source/_integrations/p1_monitor.markdown @klaasnicolaas source/_integrations/p1_monitor.markdown @klaasnicolaas
source/_integrations/palazzetti.markdown @dotvav source/_integrations/palazzetti.markdown @dotvav
source/_integrations/panel_custom.markdown @home-assistant/frontend source/_integrations/panel_custom.markdown @home-assistant/frontend
source/_integrations/paperless_ngx.markdown @fvgarrel
source/_integrations/pcs_lighting.markdown @gwww source/_integrations/pcs_lighting.markdown @gwww
source/_integrations/peblar.markdown @frenck source/_integrations/peblar.markdown @frenck
source/_integrations/peco.markdown @IceBotYT source/_integrations/peco.markdown @IceBotYT
@ -689,6 +693,7 @@ source/_integrations/portlandgeneral.markdown @tronikos
source/_integrations/powerfox.markdown @klaasnicolaas source/_integrations/powerfox.markdown @klaasnicolaas
source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson
source/_integrations/private_ble_device.markdown @Jc2k source/_integrations/private_ble_device.markdown @Jc2k
source/_integrations/probe_plus.markdown @pantherale0
source/_integrations/profiler.markdown @bdraco source/_integrations/profiler.markdown @bdraco
source/_integrations/profilo.markdown @DavidMStraub @Diegorro98 @MartinHjelmare source/_integrations/profilo.markdown @DavidMStraub @Diegorro98 @MartinHjelmare
source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/progettihwsw.markdown @ardaseremet
@ -768,7 +773,6 @@ source/_integrations/russound_rnet.markdown @noahhusby
source/_integrations/ruuvi_gateway.markdown @akx source/_integrations/ruuvi_gateway.markdown @akx
source/_integrations/ruuvitag_ble.markdown @akx source/_integrations/ruuvitag_ble.markdown @akx
source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc
source/_integrations/s3.markdown @tomasbedrich
source/_integrations/sabnzbd.markdown @shaiu @jpbede source/_integrations/sabnzbd.markdown @shaiu @jpbede
source/_integrations/saj.markdown @fredericvl source/_integrations/saj.markdown @fredericvl
source/_integrations/samsam.markdown @klaasnicolaas source/_integrations/samsam.markdown @klaasnicolaas
@ -804,6 +808,7 @@ source/_integrations/sfr_box.markdown @epenet
source/_integrations/sharkiq.markdown @JeffResc @funkybunch source/_integrations/sharkiq.markdown @JeffResc @funkybunch
source/_integrations/shell_command.markdown @home-assistant/core source/_integrations/shell_command.markdown @home-assistant/core
source/_integrations/shelly.markdown @balloob @bieniu @thecode @chemelli74 @bdraco source/_integrations/shelly.markdown @balloob @bieniu @thecode @chemelli74 @bdraco
source/_integrations/shelly_zwave.markdown @home-assistant/z-wave
source/_integrations/shodan.markdown @fabaff source/_integrations/shodan.markdown @fabaff
source/_integrations/sia.markdown @eavanvalkenburg source/_integrations/sia.markdown @eavanvalkenburg
source/_integrations/siemens.markdown @DavidMStraub @Diegorro98 @MartinHjelmare source/_integrations/siemens.markdown @DavidMStraub @Diegorro98 @MartinHjelmare
@ -826,6 +831,7 @@ source/_integrations/slide_local.markdown @dontinelli
source/_integrations/slimproto.markdown @marcelveldt source/_integrations/slimproto.markdown @marcelveldt
source/_integrations/sma.markdown @kellerza @rklomp @erwindouna source/_integrations/sma.markdown @kellerza @rklomp @erwindouna
source/_integrations/smappee.markdown @bsmappee source/_integrations/smappee.markdown @bsmappee
source/_integrations/smarla.markdown @explicatis @rlint-explicatis
source/_integrations/smart_blinds.markdown @starkillerOG source/_integrations/smart_blinds.markdown @starkillerOG
source/_integrations/smart_home.markdown @starkillerOG source/_integrations/smart_home.markdown @starkillerOG
source/_integrations/smart_meter_texas.markdown @grahamwetzler source/_integrations/smart_meter_texas.markdown @grahamwetzler
@ -870,7 +876,7 @@ source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter
source/_integrations/stt.markdown @home-assistant/core source/_integrations/stt.markdown @home-assistant/core
source/_integrations/subaru.markdown @G-Two source/_integrations/subaru.markdown @G-Two
source/_integrations/suez_water.markdown @ooii @jb101010-2 source/_integrations/suez_water.markdown @ooii @jb101010-2
source/_integrations/sun.markdown @Swamp-Ig source/_integrations/sun.markdown @home-assistant/core
source/_integrations/supla.markdown @mwegrzynek source/_integrations/supla.markdown @mwegrzynek
source/_integrations/surepetcare.markdown @benleb @danielhiversen source/_integrations/surepetcare.markdown @benleb @danielhiversen
source/_integrations/swepco.markdown @tronikos source/_integrations/swepco.markdown @tronikos
@ -880,7 +886,7 @@ source/_integrations/switch.markdown @home-assistant/core
source/_integrations/switch.template.markdown @home-assistant/core source/_integrations/switch.template.markdown @home-assistant/core
source/_integrations/switch_as_x.markdown @home-assistant/core source/_integrations/switch_as_x.markdown @home-assistant/core
source/_integrations/switchbee.markdown @jafar-atili source/_integrations/switchbee.markdown @jafar-atili
source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski @zerzhang
source/_integrations/switchbot_cloud.markdown @SeraphicRav @laurence-presland @Gigatrappeur source/_integrations/switchbot_cloud.markdown @SeraphicRav @laurence-presland @Gigatrappeur
source/_integrations/switcher_kis.markdown @thecode @YogevBokobza source/_integrations/switcher_kis.markdown @thecode @YogevBokobza
source/_integrations/switchmate.markdown @danielhiversen @qiz-li source/_integrations/switchmate.markdown @danielhiversen @qiz-li
@ -903,7 +909,7 @@ source/_integrations/tautulli.markdown @ludeeus @tkdrob
source/_integrations/technove.markdown @Moustachauve source/_integrations/technove.markdown @Moustachauve
source/_integrations/tedee.markdown @patrickhilker @zweckj source/_integrations/tedee.markdown @patrickhilker @zweckj
source/_integrations/tellduslive.markdown @fredrike source/_integrations/tellduslive.markdown @fredrike
source/_integrations/template.markdown @Petro31 @PhracturedBlue @home-assistant/core source/_integrations/template.markdown @Petro31 @home-assistant/core
source/_integrations/tesla_fleet.markdown @Bre77 source/_integrations/tesla_fleet.markdown @Bre77
source/_integrations/tesla_wall_connector.markdown @einarhauks source/_integrations/tesla_wall_connector.markdown @einarhauks
source/_integrations/teslemetry.markdown @Bre77 source/_integrations/teslemetry.markdown @Bre77
@ -983,7 +989,7 @@ source/_integrations/vizio.markdown @raman325
source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare
source/_integrations/vodafone_station.markdown @paoloantinori @chemelli74 source/_integrations/vodafone_station.markdown @paoloantinori @chemelli74
source/_integrations/voice_assistant.markdown @balloob @synesthesiam source/_integrations/voice_assistant.markdown @balloob @synesthesiam
source/_integrations/voip.markdown @balloob @synesthesiam source/_integrations/voip.markdown @balloob @synesthesiam @jaminh
source/_integrations/volumio.markdown @OnFreund source/_integrations/volumio.markdown @OnFreund
source/_integrations/volvooncall.markdown @molobrakos source/_integrations/volvooncall.markdown @molobrakos
source/_integrations/vulcan.markdown @Antoni-Czaplicki source/_integrations/vulcan.markdown @Antoni-Czaplicki
@ -1048,6 +1054,7 @@ source/_integrations/zeroconf.markdown @bdraco
source/_integrations/zerproc.markdown @emlove source/_integrations/zerproc.markdown @emlove
source/_integrations/zeversolar.markdown @kvanzuijlen source/_integrations/zeversolar.markdown @kvanzuijlen
source/_integrations/zha.markdown @dmulcahey @adminiuga @puddly @TheJulianJES source/_integrations/zha.markdown @dmulcahey @adminiuga @puddly @TheJulianJES
source/_integrations/zimi.markdown @markhannon
source/_integrations/zodiac.markdown @JulienTant source/_integrations/zodiac.markdown @JulienTant
source/_integrations/zondergas.markdown @klaasnicolaas source/_integrations/zondergas.markdown @klaasnicolaas
source/_integrations/zone.markdown @home-assistant/core source/_integrations/zone.markdown @home-assistant/core

View File

@ -107,9 +107,9 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 2025 current_major_version: 2025
current_minor_version: 5 current_minor_version: 6
current_patch_version: 3 current_patch_version: 0
date_released: 2025-05-23 date_released: 2025-06-11
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # Must be prefixed with a # and have double quotes around it.

View File

@ -39,6 +39,10 @@ entity:
required: true required: true
description: Entity ID to show. description: Entity ID to show.
type: string type: string
attribute:
required: false
description: Attribute from the selected entity to display
type: string
name: name:
required: false required: false
description: Name of gauge entity. description: Name of gauge entity.
@ -198,3 +202,14 @@ segments:
- from: 65 - from: 65
color: var(--error-color) color: var(--error-color)
``` ```
Display attribute of an entity instead of its state:
```yaml
type: gauge
entity: sensor.back_door_info
attribute: battery_level
unit: '%'
max: 100
```
In this example, the card displays the `battery_level` attribute of the `sensor.back_door_info` entity.

View File

@ -102,6 +102,11 @@ hours_to_show:
description: Shows a path of previous locations. Hours to show as path on the map. description: Shows a path of previous locations. Hours to show as path on the map.
type: integer type: integer
default: 0 default: 0
cluster:
required: false
description: 'When set to `false`, the map will not cluster the markers. This is useful when you want to see all markers at once, but it may cause performance issues with a large number of markers.'
type: boolean
default: true
{% endconfiguration %} {% endconfiguration %}
{% important %} {% important %}

View File

@ -63,7 +63,8 @@ Jinja supports a set of language extensions that add new functionality to the la
To improve the experience of writing Jinja templates, we have enabled the following To improve the experience of writing Jinja templates, we have enabled the following
extensions: extensions:
- [Loop Controls](https://jinja.palletsprojects.com/en/3.0.x/extensions/#loop-controls) (`break` and `continue`) - [Loop Controls](https://jinja.palletsprojects.com/en/stable/extensions/#loop-controls) (`break` and `continue`)
- [Expression Statement](https://jinja.palletsprojects.com/en/stable/extensions/#expression-statement) (`do`)
### Reusing templates ### Reusing templates
@ -79,7 +80,7 @@ For example, you might define a macro in a template in `config/custom_templates/
{% raw %} {% raw %}
```text ```jinja
{% macro format_entity(entity_id) %} {% macro format_entity(entity_id) %}
{{ state_attr(entity_id, 'friendly_name') }} - {{ states(entity_id) }} {{ state_attr(entity_id, 'friendly_name') }} - {{ states(entity_id) }}
{% endmacro %} {% endmacro %}
@ -91,13 +92,32 @@ In your automations, you could then reuse this macro by importing it:
{% raw %} {% raw %}
```text ```jinja
{% from 'formatter.jinja' import format_entity %} {% from 'formatter.jinja' import format_entity %}
{{ format_entity('sensor.temperature') }} {{ format_entity('sensor.temperature') }}
``` ```
{$ endraw %}
Home Assistant also allows you to write macros with non-string return values by
taking a named argument called `returns` and calling it with a return value. Once created,
pass the macro into the `as_function` filter to use the returned value:
{% raw %}
```jinja
{%- macro macro_is_switch(entity_name, returns) -%}
{%- do returns(entity_name.startswith('switch.')) -%}
{%- endmacro -%}
{%- set is_switch = macro_is_switch | as_function -%}
{{ "It's a switch!" if is_switch("switch.my_switch") else "Not a switch!" }}
```
{% endraw %} {% endraw %}
In this way, you can export utility functions that return scalar or complex values rather than
just macros that render to strings.
## Home Assistant template extensions ## Home Assistant template extensions
Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters. Extensions allow templates to access all of the Home Assistant specific states and adds other convenience functions and filters.
@ -1174,6 +1194,8 @@ Some examples:
- Filter `urlencode` will convert an object to a percent-encoded ASCII text string (e.g., for HTTP requests using `application/x-www-form-urlencoded`). - Filter `urlencode` will convert an object to a percent-encoded ASCII text string (e.g., for HTTP requests using `application/x-www-form-urlencoded`).
- Filter `slugify(separator="_")` will convert a given string into a "slug". - Filter `slugify(separator="_")` will convert a given string into a "slug".
- Filter `ordinal` will convert an integer into a number defining a position in a series (e.g., `1st`, `2nd`, `3rd`, `4th`, etc). - Filter `ordinal` will convert an integer into a number defining a position in a series (e.g., `1st`, `2nd`, `3rd`, `4th`, etc).
- Filter `value | from_hex` Decodes a hex string to raw bytes.
- Filter `value | base64_encode` Encodes a string or bytes to a base 64 string.
- Filter `value | base64_decode` Decodes a base 64 string to a string, by default utf-8 encoding is used. - Filter `value | base64_decode` Decodes a base 64 string to a string, by default utf-8 encoding is used.
- Filter `value | base64_decode("ascii")` Decodes a base 64 string to a string, using ascii encoding. - Filter `value | base64_decode("ascii")` Decodes a base 64 string to a string, using ascii encoding.
- Filter `value | base64_decode(None)` Decodes a base 64 string to raw bytes. - Filter `value | base64_decode(None)` Decodes a base 64 string to raw bytes.
@ -1182,9 +1204,11 @@ Some examples:
Some examples: Some examples:
{% raw %} {% raw %}
- `{{ "homeassistant" | base64_encode }}` - renders as `aG9tZWFzc2lzdGFudA==`
- `{{ "aG9tZWFzc2lzdGFudA==" | base64_decode }}` - renders as `homeassistant` - `{{ "aG9tZWFzc2lzdGFudA==" | base64_decode }}` - renders as `homeassistant`
- `{{ "aG9tZWFzc2lzdGFudA==" | base64_decode(None) }}` - renders as `b'homeassistant'` - `{{ "aG9tZWFzc2lzdGFudA==" | base64_decode(None) }}` - renders as `b'homeassistant'`
- `{{ "0F010003" | from_hex }}` - renders as `b'\x0f\x01\x00\x03'`
- `{{ "0F010003" | from_hex | base64_encode }}` - renders as `DwEAAw==`
{% endraw %} {% endraw %}
@ -1357,6 +1381,26 @@ Some examples:
{% endraw %} {% endraw %}
### Working with macros
Home Assistant provides two additional functions that make macros much more powerful.
{% raw %}
- `apply` is both a filter and a test that allows you to use any callable (macros or functions) wherever
you can use other filters and tests. `apply` also passes along any additional parameters to the function.
For example, if you had a function called `double`, you could call
`{{ [1, 2, 3, 4] | map('apply', double) | list }}`, which would render as `[2, 4, 6, 8]`.
Alternatively, if you had a function called `is_multiple_of`, you could call
`{{ [1, 2, 3, 4] | select('apply', is_multiple_of, 2) | list }}`, which would render as `[2, 4]`.
- `as_function` is a filter that takes a macro that has a named parameter called `returns`. The macro can
then call `{%- do returns(return_value) -%}`. After passing this macro into `as_function`, the resulting
function returns your return value directly, preserving the underlying data type rather than rendering
a string. You can return dictionaries, numbers, `True`/`False` (allowing you to write your own tests when
used with `apply`), or any other value your code might produce.
{% endraw %}
## Merge action responses ## Merge action responses
Using action responses we can collect information from various entities at the same time. Using action responses we can collect information from various entities at the same time.

View File

@ -15,6 +15,7 @@ ha_config_flow: true
ha_platforms: ha_platforms:
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration
ha_dhcp: true
--- ---
Integrates Airthings sensors into Home Assistant. Integrates Airthings sensors into Home Assistant.

View File

@ -0,0 +1,108 @@
---
title: Alexa Devices
description: Instructions on how to integrate Alexa Devices into Home Assistant.
ha_category:
- Binary Sensor
ha_release: '2025.6'
ha_domain: alexa_devices
ha_config_flow: true
ha_codeowners:
- '@chemelli74'
ha_iot_class: Cloud Polling
ha_platforms:
- binary_sensor
- notify
- switch
ha_integration_type: hub
ha_quality_scale: bronze
ha_dhcp: true
---
The **Alexa Devices** {% term integration %} allows you to control your [Amazon Echo dots](https://www.amazon.com/echo-dot/).
The integration provides information on connected devices and enables control of the main features.
## Supported devices
There is support for the following devices within Home Assistant:
- **Amazon Echo Dot**
- **Amazon Fire TV**
{% include integrations/config_flow.md %}
{% configuration_basic %}
country:
description: The country of your Amazon account.
username:
description: The email address of your Amazon account.
password:
description: The password of your Amazon account.
otp:
description: One-time password.
{% endconfiguration_basic %}
{% note %}
When trying to set up the integration, the form may show the message "Cannot connect".
This means that the specified country may need a special setting.
Open a issue with all details to investigate
{% endnote %}
## Examples
### Automation: Announce welcome when you arrive home
```yaml
automation:
- alias: "Alexa Announce"
id: "alexa_announce"
triggers:
- platform: state
entity_id: person.simone
to: "home"
actions:
- action: notify.send_message
data:
message: Welcome home Simone
target:
entity_id: notify.announce_echo_dot_livingroom
```
### Automation: Start Radio on all Echo dots
```yaml
automation:
- alias: Start Radio B.B.C.
id: "start_radio_bbc"
trigger:
- platform: sun
event: sunset
condition:
conditions:
- alias: "condition alias (home)"
condition: state
entity_id: group.person_family
state: "home"
action:
- action: notify.send_message
data:
message: Play B.B.C. on Tunein
target:
entity_id: notify.custom_everywhere
```
## Data updates
This integration {% term polling polls %} data from the device every 30 seconds by default.
## Supported functionality
The **Alexa Devices** {% term integration %} provides the following entities:
- Binary sensor - main and Bluetooth connectivity
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -53,6 +53,7 @@ This integration provides {% term sensors %} for the following information from
- Time remaining until 0% salt level is reached. - Time remaining until 0% salt level is reached.
- i-Lid battery level. - i-Lid battery level.
- Wi-Fi signal strength. - Wi-Fi signal strength.
- Last update time. The time the softener last reported data to the cloud.
## Use cases ## Use cases

View File

@ -2,6 +2,7 @@
title: Backup title: Backup
description: Allow creating backups of container and core installations. description: Allow creating backups of container and core installations.
ha_category: ha_category:
- Event
- Other - Other
- Sensor - Sensor
ha_release: 2022.4 ha_release: 2022.4
@ -12,6 +13,7 @@ ha_codeowners:
ha_iot_class: Calculated ha_iot_class: Calculated
ha_platforms: ha_platforms:
- diagnostics - diagnostics
- event
- sensor - sensor
ha_integration_type: service ha_integration_type: service
related: related:
@ -76,6 +78,8 @@ action: backup.create
This is a YAML example for an automation that initiate a backup every night This is a YAML example for an automation that initiate a backup every night
at 3 AM: at 3 AM:
{% raw %}
```yaml ```yaml
automation: automation:
- alias: "Backup Home Assistant every night at 3 AM" - alias: "Backup Home Assistant every night at 3 AM"
@ -87,10 +91,49 @@ automation:
action: backup.create action: backup.create
``` ```
{% endraw %}
## Restoring a backup ## Restoring a backup
To restore a backup, follow the steps described in [Restoring a backup](/common-tasks/general/#restoring-a-backup). To restore a backup, follow the steps described in [Restoring a backup](/common-tasks/general/#restoring-a-backup).
## Event entity
The **Backup** {% term integration %} provides an {% term "Event entity" %} which represents the state of the last automatic backup (_completed, in progress, failed_). It also provides several event attributes which can be used in automations.
| Attribute | Description |
| --- | --- |
| `event_type` | The translated state of the last automatic backup task (_possible states: completed, in progress, failed_)
| `backup_stage` | The current automatic backup stage (_is `None` when `event_type` is not in progress_) |
| `failed_reason` | The reason for a failed automatic backup (_is `None` when `event_type` is completed or in progress_) |
### Usage examples
Send notification to mobile app, when an automatic backup failed.
{% raw %}
```yaml
alias: Backup failed
triggers:
- trigger: state
entity_id:
- event.backup_automatic_backup
conditions:
- condition: state
entity_id: event.backup_automatic_backup
attribute: event_type
state: failed
actions:
- data:
title: Automatic backup failed
message: The last automatic backup failed due to {{ state_attr('event.backup_automatic_backup', 'failed_reason') }}
action: notify.mobile-app
mode: single
```
{% endraw %}
## Sensors ## Sensors
The **Backup** {% term integration %} provides several sensors. The **Backup** {% term integration %} provides several sensors.
@ -108,6 +151,10 @@ The current state of the backup system. Possible states are:
The timestamp of the next scheduled automatic backup. The timestamp of the next scheduled automatic backup.
### Last attempted automatic backup
The timestamp of the last attempted automatic backup.
### Last successful automatic backup ### Last successful automatic backup
The timestamp of the last successful automatic backup. The timestamp of the last successful automatic backup.

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_zeroconf: true
--- ---
{% include integrations/supported_brand.md %} {% include integrations/supported_brand.md %}

View File

@ -25,9 +25,6 @@ Depending on the operating system you're running, you have to configure the prop
- `beewi_smartclim` will work out of the box as long as the host supports Bluetooth (like the Raspberry Pi does). - `beewi_smartclim` will work out of the box as long as the host supports Bluetooth (like the Raspberry Pi does).
- Using [Home Assistant Container installation](/docs/installation/docker/): Works out of the box with `--net=host` and properly configured Bluetooth on the host. - Using [Home Assistant Container installation](/docs/installation/docker/): Works out of the box with `--net=host` and properly configured Bluetooth on the host.
- On other Home Assistant Core systems:
- Preferred solution: Install the `bluepy` and `btlewrap` library (via pip). When using a virtual environment, make sure to use install the library in the right one.
- Fallback solution: Install `btlewrap` library (via pip) and `gatttool` via your package manager. Depending on the distribution, the package name might be: `bluez`, `bluetooth` or `bluez-deprecated`.
## Configuration ## Configuration

View File

@ -8,10 +8,12 @@ ha_release: 2024.1
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_config_flow: true ha_config_flow: true
ha_codeowners: ha_codeowners:
- '@Floris272'
- '@gleeuwen' - '@gleeuwen'
- '@NickKoepr'
- '@jtodorova23'
ha_domain: blue_current ha_domain: blue_current
ha_platforms: ha_platforms:
- button
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration
--- ---
@ -65,3 +67,13 @@ The following sensors are created as well, but disabled by default:
The following sensors are created as well, but disabled by default: The following sensors are created as well, but disabled by default:
- Grid current phase 1-3 - Grid current phase 1-3
## Button
The Blue Current integration provides the following buttons:
### Charge point buttons
- Reset
- Reboot
- Stop charge session

View File

@ -7,6 +7,7 @@ ha_release: 0.51
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_domain: bluesound ha_domain: bluesound
ha_platforms: ha_platforms:
- button
- media_player - media_player
ha_codeowners: ha_codeowners:
- '@thrawnarn' - '@thrawnarn'
@ -23,6 +24,36 @@ The `bluesound` platform allows you to control your [Bluesound](https://www.blue
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Buttons
These are the available button entities:
- `button.speaker_name_set_sleep_timer`: Setting a sleep timer.
- `button.speaker_name_sleep_timer`: Clearing the sleep timer.
Replace `speaker_name` with the name of your speaker.
### Button `button.speaker_name_set_sleep_timer`
Sets a timer that will turn off the speaker. For each time you call this it will increase the time by one step. The steps are (in minutes): 15, 30, 45, 60, 90, 0.
If you increase an ongoing timer of for example 13 minutes, it will increase it to 15. If the timer is set to 90, it will remove the time (hence the 0).
{% note %}
This button is disabled by default.
{% endnote %}
### Button `button.speaker_name_clear_sleep_timer`
Clear the sleep timer on a speaker, if one is set.
{% note %}
This button is disabled by default.
{% endnote %}
## Actions
The Bluesound integration makes some custom actions available in addition to the [standard media player actions](/integrations/media_player/#actions).
### Action `bluesound.join` ### Action `bluesound.join`
Group players together under a single master speaker. That will make a new group or join an existing group. Group players together under a single master speaker. That will make a new group or join an existing group.
@ -42,6 +73,10 @@ Remove one or more speakers from a group of speakers. If no `entity_id` is provi
### Action `bluesound.set_sleep_timer` ### Action `bluesound.set_sleep_timer`
{% note %}
This action is deprecated. Use `button.<player_name>_set_set_timer` instead.
{% endnote %}
Sets a timer that will turn off the speaker. For each time you call this it will increase the time by one step. The steps are (in minutes): 15, 30, 45, 60, 90, 0. Sets a timer that will turn off the speaker. For each time you call this it will increase the time by one step. The steps are (in minutes): 15, 30, 45, 60, 90, 0.
If you increase an ongoing timer of for example 13 minutes, it will increase it to 15. If the timer is set to 90, it will remove the time (hence the 0). If you increase an ongoing timer of for example 13 minutes, it will increase it to 15. If the timer is set to 90, it will remove the time (hence the 0).
@ -51,6 +86,10 @@ If you increase an ongoing timer of for example 13 minutes, it will increase it
### Action `bluesound.clear_sleep_timer` ### Action `bluesound.clear_sleep_timer`
{% note %}
This action is deprecated. Use `button.<player_name>_clear_set_timer` instead.
{% endnote %}
Clear the sleep timer on a speaker, if one is set. Clear the sleep timer on a speaker, if one is set.
| Data attribute | Optional | Description | | Data attribute | Optional | Description |

View File

@ -55,10 +55,8 @@ For Bluetooth to function on Linux systems:
- Home Assistant Operating System: Upgrade to Home Assistant OS version 9.0 or later. - Home Assistant Operating System: Upgrade to Home Assistant OS version 9.0 or later.
- Home Assistant Container: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container. - Home Assistant Container: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container.
- Home Assistant Supervised: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container.
- Home Assistant Core: The system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant.
### Additional details for Container, Core, and Supervised installs ### Additional details for Container
{% details "Making the DBus socket available in the Docker container" %} {% details "Making the DBus socket available in the Docker container" %}
@ -173,7 +171,7 @@ The following requirements must be met for an adapter to be labeled as High Perf
- Establish a connection in about 1s or less - Establish a connection in about 1s or less
- Process at least one advertisement per second from a device without dropping data - Process at least one advertisement per second from a device without dropping data
- 95% of connection attempts are successful within two tries - 95% of connection attempts are successful within two tries
- Meets the above requirements with Home Assistant Core 2022.11.1 or later and Home Assistant Operating System 9.3 or later - Meets the above requirements with Home Assistant 2022.11.1 or later and Home Assistant Operating System 9.3 or later
- Must be able to hold five (5) connections at the same time - Must be able to hold five (5) connections at the same time
Performance testing used the following hardware: Performance testing used the following hardware:

View File

@ -3,7 +3,9 @@ title: Bosch Alarm
description: Integrate Bosch Alarms. description: Integrate Bosch Alarms.
ha_category: ha_category:
- Alarm - Alarm
- Binary Sensor
- Sensor - Sensor
- Switch
ha_release: 2025.4 ha_release: 2025.4
ha_iot_class: Local Push ha_iot_class: Local Push
ha_config_flow: true ha_config_flow: true
@ -13,10 +15,13 @@ ha_codeowners:
ha_domain: bosch_alarm ha_domain: bosch_alarm
ha_platforms: ha_platforms:
- alarm_control_panel - alarm_control_panel
- binary_sensor
- diagnostics - diagnostics
- sensor - sensor
- switch
ha_integration_type: device ha_integration_type: device
ha_quality_scale: bronze ha_quality_scale: bronze
ha_dhcp: true
--- ---
The **Bosch Alarm Panel** {% term integration %} allows you to connect your [Bosch Alarm Panel](https://www.boschsecurity.com) to Home Assistant to control and monitor your Bosch Alarm Panel. The **Bosch Alarm Panel** {% term integration %} allows you to connect your [Bosch Alarm Panel](https://www.boschsecurity.com) to Home Assistant to control and monitor your Bosch Alarm Panel.
@ -38,17 +43,79 @@ The **Bosch Alarm Panel** {% term integration %} allows you to connect your [Bos
The following {% term entities %} are provided: The following {% term entities %} are provided:
- [Alarm Control Panel](#alarm-control-panel) - [Alarm Control Panel](#alarm-control-panel)
- [Binary Sensor](#binary-sensor)
- [Sensor](#sensor) - [Sensor](#sensor)
- [Switch](#switch)
### Alarm Control Panel ### Alarm Control Panel
This integration adds an Alarm Control Panel device for each configured area, with the ability to issue arm/disarm commands. This integration adds an Alarm Control Panel device for each configured area, with the ability to issue arm/disarm commands.
This entity reports state (_disarmed_, _armed_away_, etc.). This entity reports state (_disarmed_, _armed_away_, etc.).
## Sensor ### Binary Sensor
A binary sensor is added for each point configured on your alarm.
Two binary sensors are added for each area to indicate whether it can be armed away or armed home.
### Sensor
A sensor is provided per area that lists how many points are currently in a faulted state. A sensor is provided per area that lists how many points are currently in a faulted state.
A sensor is provided for each of the following alarm types that displays the health of that alarm
- Fire
- Gas
- Burglary
The state for the sensor can be one of the following:
- No issues
- Trouble
These signals indicate a malfunction or failure within the system. These signals often point to something that, if left unresolved, could lead to a complete system failure. For example, a broken wire or a failed smoke detector could trigger a trouble signal. These signals generally require prompt action to ensure the system continues to work as intended.
- Supervisory
These signals relate to system components that require attention but are not in immediate danger of failing. They are typically non-urgent and indicate that something within the system needs maintenance or is functioning suboptimally. These signals might include a closed valve or a fire extinguisher thats out of service.
- Alarm
The alarm is currently triggered.
### Switch
A switch is added for each output configured on the panel. Note that for some panels, only outputs with the type set to **remote output** can be controlled via _Mode 2_ API.
Three switches are added per door, which allow for locking, securing, or momentarily unlocking the door.
## Actions
The integration provides the following actions.
### Action: Set panel date and time
The `bosch_alarm.set_date_time` action is used to update the date and time on the panel.
- **Data attribute**: `config_entry_id`
- **Description**: The ID of the config entry of the panel being updated.
- **Optional**: No
- **Data attribute**: `datetime`
- **Description**: The date and time to set. Defaults to the current date and time if it is not set.
- **Optional**: Yes
{% raw %}
```yaml
# Example: Update the panels date and time
service: bosch_alarm.set_date_time
data:
config_entry_id: "YOUR_CONFIG_ENTRY_ID"
datetime: "2025-05-01T12:00:00"
```
{% endraw %}
## Authentication ## Authentication
The primary means of authentication for the _Mode 2_ API is the _Automation_ passcode. It needs to be at least 10 characters long, and it is different from the _User_ code -- a shorter numeric pin used to arm/disarm the panel. The primary means of authentication for the _Mode 2_ API is the _Automation_ passcode. It needs to be at least 10 characters long, and it is different from the _User_ code -- a shorter numeric pin used to arm/disarm the panel.
@ -73,6 +140,34 @@ The **Bosch Alarm** {% term integration %} fetches data from the device every 30
Newer devices and firmware revisions have the possibility to push data instead of needing to rely on {% term polling %}. Newer devices and firmware revisions have the possibility to push data instead of needing to rely on {% term polling %}.
At startup, the integration checks whether your panel supports push data updates and falls back to {% term polling %} if not. At startup, the integration checks whether your panel supports push data updates and falls back to {% term polling %} if not.
## Examples
### Turning on lights when walking into a room
{% raw %}
```yaml
automation:
- alias: "Turn on light when walking into room"
triggers:
- platform: state
entity_id:
- binary_sensor.bosch_solution_3000_bedroom
to: "on"
actions:
- action: light.turn_on
target:
entity_id: light.bedroom_light
```
{% endraw %}
## Reconfiguration
This integration supports reconfiguration, so it is possible to change the configuration such as the IP Address after it is configured.
## Troubleshooting ## Troubleshooting
### Issues with Bosch Solution 2000/3000/4000 panels ### Issues with Bosch Solution 2000/3000/4000 panels

View File

@ -196,16 +196,6 @@ actions that can be used in automations.
## Troubleshooting ## Troubleshooting
{% details "Home Assistant Core Installations" %}
You might need some additional system packages to compile the Python CalDAV library. On a Debian based system, install them by:
```bash
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
```
{% enddetails %}
{% details "iCloud" %} {% details "iCloud" %}
You may be required to use [app specific passwords](https://support.apple.com/en-us/102654) You may be required to use [app specific passwords](https://support.apple.com/en-us/102654)

View File

@ -68,6 +68,13 @@ The integration provides a few entities to configure the device settings. The fo
- Pre-Amp - Pre-Amp
- Early update - Early update
- Audio output (Speaker select) - Audio output (Speaker select)
- Control Bus mode
### Pre-Amp
When Pre-Amp mode is enabled, Home Assistant can control the output volume of your Pre-Amplifier.
### Control Bus
When Control Bus mode is enabled, Home Assistant can control the output volume of your Power Amplifier when it is connected to a Cambridge Audio network player using the Control Bus interface. In this case Pre-Amp mode can be disabled, the network player will send the signal with full volume to the power amplifier and the volume of the power amplifier can be controlled using volume up and down controls. Control Bus does not support setting the volume to a certain value, it can only increase and decrease the current volume.
## Playing media ## Playing media

View File

@ -26,7 +26,7 @@ ha_platforms:
- sensor - sensor
- switch - switch
ha_integration_type: hub ha_integration_type: hub
ha_quality_scale: bronze ha_quality_scale: silver
--- ---
The **Comelit SimpleHome** {% term integration %} allows you to control your [Comelit home automation devices](https://comelitgroup.it/installatore/offerta/home-building-automation/). The **Comelit SimpleHome** {% term integration %} allows you to control your [Comelit home automation devices](https://comelitgroup.it/installatore/offerta/home-building-automation/).

View File

@ -164,7 +164,7 @@ command_line:
command: command:
description: The action to take. description: The action to take.
required: true required: true
type: string type: template
command_timeout: command_timeout:
description: Defines number of seconds for command timeout. description: Defines number of seconds for command timeout.
required: false required: false

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_zeroconf: true
--- ---
{% include integrations/supported_brand.md %} {% include integrations/supported_brand.md %}

View File

@ -1,80 +0,0 @@
---
title: CUPS
description: Instructions on how to integrate CUPS sensors into Home Assistant.
ha_category:
- System monitor
ha_iot_class: Local Polling
ha_release: 0.32
ha_codeowners:
- '@fabaff'
ha_domain: cups
ha_platforms:
- sensor
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `cups` sensor platform uses the open source printing system [CUPS](https://www.cups.org/) to show details about your printers, including the ink levels. It can obtain the information using a CUPS server or by communicating directly with the printer with the Internet Printing Protocol.
## Setup
You will need to install the `python3-dev` or `python3-devel` package and the development files for CUPS (`libcups2-dev` or`cups-devel`) on your system manually (e.g., `sudo apt-get install python3-dev libcups2-dev` or `sudo dnf -y install python3-devel cups-devel`) along with a compiler (`gcc`). This integration doesn't work out-of-the-box in a container-based setup.
To set up the sensor the "Queue Name" of the printer is needed. The fastest way to get it, is to visit the CUPS web interface at "http://[IP ADDRESS PRINT SERVER]:631" and go to "Printers".
<p class='img'>
<img src='/images/screenshots/cups-sensor.png' />
</p>
## Configuration
To enable the CUPS sensor, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: cups
printers:
- C410
- C430
```
{% configuration %}
printers:
description: List of printers to add. If you're not using a CUPS server, add your "Printer Name" here.
required: true
type: list
host:
description: The IP address of the CUPS print server or of the printer.
required: false
type: string
default: 127.0.0.1
port:
description: The port number of the CUPS print server or of the printer.
required: false
type: integer
default: 631
is_cups_server:
description: Set true if you want to use a CUPS print server, set false otherwise.
required: false
type: boolean
default: true
{% endconfiguration %}
## Examples
Default configuration for an IPP printer:
```yaml
# Example configuration.yaml entry for an IPP printer
sensor:
- platform: cups
host: PRINTER_IP
is_cups_server: false
printers:
- ipp/print
```

View File

@ -1,72 +0,0 @@
---
title: Leviton Decora
description: Instructions on how to setup Leviton Decora Bluetooth dimmers within Home Assistant.
ha_category:
- Light
ha_iot_class: Local Polling
ha_release: 0.37
ha_domain: decora
ha_platforms:
- light
ha_integration_type: integration
ha_quality_scale: legacy
---
Support for the Decora Bluetooth dimmer switch [Leviton](https://www.leviton.com/en/products/residential/dimmers/automation-smart-home/decora-digital-with-bluetooth-dimmers#t=Products&sort=%40wcs_site_tree_rank%20ascending&layout=card).
The API key can be obtained by downloading [this git repository](https://github.com/mjg59/python-decora) and running the `read_key.py` script with the Bluetooth address of the switch as the first argument. Hold the switch in the off position until the green status LED starts flashing before running the script. The output is the API key.
To enable these lights, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
light:
- platform: decora
devices:
00:21:4D:00:00:01:
api_key: YOUR_API_KEY
```
{% configuration %}
devices:
description: A list of lights to use.
required: true
type: map
keys:
mac_address:
required: true
description: The Bluetooth address of the switch.
type: list
keys:
name:
description: The name to use in the frontend.
required: false
default: "`mac_address` of this switch"
type: string
api_key:
description: The API key to access the device.
required: true
type: string
{% endconfiguration %}
{% note %}
If you get an error looking like this:
```txt
Jun 20 19:41:18 androlapin hass[29588]: ERROR:homeassistant.components.light:Error while setting up platform decora
[...]
Jun 20 19:41:18 androlapin hass[29588]: File "/usr/lib/python3.6/concurrent/futures/thread.py", line 55, in run
Jun 20 19:41:18 androlapin hass[29588]: result = self.fn(*self.args, **self.kwargs)
Jun 20 19:41:18 androlapin hass[29588]: File "/opt/homeassistant/custom_components/light/decora.py", line 68, in setup_platform
Jun 20 19:41:18 androlapin hass[29588]: light = DecoraLight(device)
[...]
Jun 20 19:41:18 androlapin hass[29588]: OSError: [Errno 8] Exec format error
```
1. Go to your `.homeassistant` folder
2. Then go to `deps/bluepy` subfolder.
3. Then run `make all`
4. Restart Home Assistant
{% endnote %}

View File

@ -1,51 +0,0 @@
---
title: Dlib Face Detect
description: Instructions on how to integrate Dlib Face Detect into Home Assistant.
ha_category:
- Image processing
ha_iot_class: Local Push
ha_release: 0.44
ha_domain: dlib_face_detect
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `dlib_face_detect` image processing {% term integration %} allows you to use the [Dlib](http://www.dlib.net/) through Home Assistant. This platform enables face detection from cameras, and can fire events with attributes.
This can be used to trigger an automation rule. Further info is on the [integration](/integrations/image_processing/) page.
{% note %}
This integration is only available on Home Assistant Core installation types. Unfortunately, it cannot be used with Home Assistant OS, Supervised or Container.
{% endnote %}
## Configuration
To enable Dlib Face Detect, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
image_processing:
- platform: dlib_face_detect
source:
- entity_id: camera.door
```
{% configuration %}
source:
description: List of image sources.
required: true
type: list
keys:
entity_id:
description: A camera entity id to get picture from.
required: true
type: string
name:
description: This parameter allows you to override the name of your `image_processing` entity.
required: false
type: string
{% endconfiguration %}

View File

@ -1,67 +0,0 @@
---
title: Dlib Face Identify
description: Instructions on how to integrate Dlib Face Identify into Home Assistant.
ha_category:
- Image processing
ha_iot_class: Local Push
ha_release: 0.44
ha_domain: dlib_face_identify
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `dlib_face_identify` image processing {% term integration %} allows you to use the [Dlib](http://www.dlib.net/) through Home Assistant. This platform allow you to identify persons on camera and fire an event with identify persons.
For using the result inside an automation rule, take a look at the [integration](/integrations/image_processing/) page.
{% note %}
This integration is only available on Home Assistant Core installation types. Unfortunately, it cannot be used with Home Assistant OS, Supervised or Container.
{% endnote %}
## Configuration
To enable Dlib Face Identify, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
image_processing:
- platform: dlib_face_identify
source:
- entity_id: camera.door
faces:
Jon: /home/hass/jon.jpg
Bob: /home/hass/bob.jpg
```
{% configuration %}
source:
description: List of image sources.
required: true
type: list
keys:
entity_id:
description: A camera entity id to get picture from.
required: true
type: string
name:
description: This parameter allows you to override the name of your `image_processing` entity.
required: false
type: string
faces:
description: List of faces sources.
required: true
type: list
confidence:
description: How much distance between faces to consider it a match. Using tolerance values lower than 0.6 will make the comparison more strict.
required: false
type: float
default: 0.6
{% endconfiguration %}
{% note %}
If the platform fails to load because it could not install its requirement, install cmake: `sudo apt-get install cmake`.
{% endnote %}

View File

@ -1,81 +0,0 @@
---
title: Eddystone
description: Instructions on how to integrate Eddystone beacons with Home Assistant in order to receive temperature data.
ha_category:
- DIY
ha_release: 0.42
ha_iot_class: Local Polling
ha_domain: eddystone_temperature
ha_platforms:
- sensor
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `eddystone_temperature` sensor {% term integration %} reads temperature information from Bluetooth LE advertisements transmitted by [Eddystone](https://en.wikipedia.org/wiki/Eddystone_(Google)) beacons. Your beacons must be configured to transmit UID frames (for identification) and TLM frames (for temperature).
All beacons that support the Eddystone protocol, have a temperature sensor and can transmit TLM frames are compatible with this {% term integration %}. For example [Gimbal](https://store.gimbal.com/collections/beacons/), [Estimote](https://estimote.com/) or [kontakt.io](https://kontakt.io/).
## Requirements
As this {% term integration %} uses `bluez` to scan for Bluetooth LE devices **a Linux OS with bluez installed** is required. In addition to that, the `libbluetooth` headers need to be installed:
```bash
sudo apt-get install libbluetooth-dev
```
Scanning for Bluetooth LE devices also requires special permissions. To grant these to the Python executable execute the following:
```bash
sudo apt-get install libcap2-bin
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(readlink -f $(which python3))
```
To use your Eddystone beacon in your installation, add the following to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: eddystone_temperature
bt_device_id: 0 # optional
beacons:
living_room:
namespace: "112233445566778899AA"
instance: "000000000001"
kitchen:
namespace: "112233445566778899AA"
instance: "000000000002"
```
{% configuration %}
bt_device_id:
description: The id of the Bluetooth device that should be used for scanning (hci*X*). You can find the correct one using `hcitool dev`.
required: false
default: 0
type: integer
beacons:
description: The beacons that should be monitored.
required: true
type: list
keys:
entry:
description: Name of the beacon.
required: true
type: list
keys:
namespace:
description: Namespace ID of the beacon in hexadecimal notation. Must be exactly 20 characters (10 bytes) long.
required: true
type: string
instance:
description: Instance ID of the beacon in hexadecimal notation. Must be exactly 12 characters (6 bytes) long.
required: true
type: string
name:
description: Friendly name of the beacon.
required: false
type: string
{% endconfiguration %}

View File

@ -5,6 +5,7 @@ ha_category:
- Climate - Climate
- Light - Light
- Number - Number
- Select
- Sensor - Sensor
- Switch - Switch
- Time - Time
@ -17,8 +18,10 @@ ha_domain: eheimdigital
ha_integration_type: hub ha_integration_type: hub
ha_platforms: ha_platforms:
- climate - climate
- diagnostics
- light - light
- number - number
- select
- sensor - sensor
- switch - switch
- time - time
@ -41,6 +44,12 @@ Host:
Currently, the following devices and entities are supported: Currently, the following devices and entities are supported:
### All devices
#### Number
- **System LED brightness**: Controlling the brightness of the system LED
### [EHEIM classicLEDcontrol+e](https://eheim.com/en_GB/aquatics/technology/lighting-control/classicledcontrol-e/classicledcontrol-e) ### [EHEIM classicLEDcontrol+e](https://eheim.com/en_GB/aquatics/technology/lighting-control/classicledcontrol-e/classicledcontrol-e)
#### Lights #### Lights
@ -73,6 +82,13 @@ Currently, the following devices and entities are supported:
- **Day speed**: Setting the pump speed for the day in Bio mode - **Day speed**: Setting the pump speed for the day in Bio mode
- **Night speed**: Setting the pump speed for the night in Bio mode - **Night speed**: Setting the pump speed for the night in Bio mode
#### Select
- **Filter mode**: Setting the filter mode
- Manual mode: The filter uses the **manual speed**
- Pulse mode: The filter uses a high and low pulse, the speeds are configured via **high pulse speed** and **low pulse speed**, the durations are configured via **high pulse duration** and **low pulse duration**
- Bio mode: The filter uses a day and night rhythm, the speeds are configured via **day speed** and **night speed**, the start times of day and night are configured via **day start time** and **night start time**
#### Sensor #### Sensor
- **Current pump speed**: Displays the current pump speed - **Current pump speed**: Displays the current pump speed

View File

@ -20,7 +20,7 @@ The **Energenie Power-Sockets** {% term integration %} allows you to include [En
## Troubleshooting ## Troubleshooting
If you are running a {% term "Home Assistant Core" %} or {% term "Home Assistant Container" %} installation: Depending on your system configuration, it may be necessary to grant explicit user access rights to the USB device by creating an udev rule. If you are running a {% term "Home Assistant Container" %} installation: Depending on your system configuration, it may be necessary to grant explicit user access rights to the USB device by creating an udev rule.
{% details "Creating an udev rule" %} {% details "Creating an udev rule" %}

View File

@ -9,7 +9,6 @@ ha_iot_class: Cloud Polling
ha_domain: ezviz ha_domain: ezviz
ha_codeowners: ha_codeowners:
- '@RenierM26' - '@RenierM26'
- '@baqs'
ha_config_flow: true ha_config_flow: true
ha_platforms: ha_platforms:
- alarm_control_panel - alarm_control_panel

View File

@ -61,15 +61,17 @@ If you still want to use the predefined user, please note that as of FRITZ!OS 7.
{% configuration_basic %} {% configuration_basic %}
Host: Host:
description: "The hostname or IP address of your FRITZ!Box router." description: The hostname or IP address of your FRITZ!Box router.
Port: Port:
description: "The port used to connect to your FRITZ!Box router. Leave it empty to use the default port." description: The port used to connect to your FRITZ!Box router. Leave it empty to use the default port.
Username: Username:
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [username](#username)_)" description: Name of the user to connect Home Assistant to your FRITZ!Box (_see [username](#username)_)
Password: Password:
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [username](#username)_)" description: Password for the user to connect Home Assistant to your FRITZ!Box (_see [username](#username)_)
Uses an SSL certificate: Uses an SSL certificate:
description: "Whether to use SSL encryption for connecting to your FRITZ!Box router." description: Whether to use SSL encryption for connecting to your FRITZ!Box router.
Enable network device tracking:
description: Whether to enable or disable the network device tracking feature. When disabled, all network device related entities (_Parental control switches, Device tracker and WoL buttons_) will also be removed or not created.
{% endconfiguration_basic %} {% endconfiguration_basic %}
{% include integrations/option_flow.md %} {% include integrations/option_flow.md %}
@ -79,6 +81,8 @@ Consider home:
description: Number of seconds that must elapse before considering a disconnected device "not at home". description: Number of seconds that must elapse before considering a disconnected device "not at home".
Enable old discovery method: Enable old discovery method:
description: Required in scenarios such as networks without mesh support (_FritzOS <= 6.x_) or mixed brands network devices or LAN switches. description: Required in scenarios such as networks without mesh support (_FritzOS <= 6.x_) or mixed brands network devices or LAN switches.
Enable network device tracking:
description: Whether to enable or disable the network device tracking feature. When disabled, all network device related entities (_Parental control switches, Device tracker and WoL buttons_) will also be removed or not created.
{% endconfiguration_basic %} {% endconfiguration_basic %}
## Data updates ## Data updates

View File

@ -109,27 +109,21 @@ Self defined [templates](https://en.avm.de/guide/three-smart-home-templates-that
Thermostats like the [FRITZ!DECT 301][fritzdect_301], [FRITZ!DECT 302][fritzdect_302] or [Eurotronic Comet DECT][eurotronic_comet_dect] will be integrated as {% term climate %} entities. Thermostats like the [FRITZ!DECT 301][fritzdect_301], [FRITZ!DECT 302][fritzdect_302] or [Eurotronic Comet DECT][eurotronic_comet_dect] will be integrated as {% term climate %} entities.
These entities can have several attributes that can be useful for {% term automations %} and {% term templates %}: Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device which can be useful for {% term automations %} and {% term templates %}, based on its capabilities:
| Attribute | Description |
| --------- | ----------- |
| `battery_low` | The low battery state indication. |
| `battery_level` | The battery level (only available since Fritz!OS 7). |
| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7). |
| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7). |
| `window_open` | The state of the window open detection (only available since Fritz!OS 7). |
Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device, based on its capabilities:
- Battery - Battery
- Battery low
- Button lock via UI - Button lock via UI
- Button lock on device - Button lock on device
- Comfort Temperature - Comfort Temperature
- Current Scheduled Preset - Current Scheduled Preset
- Eco Temperature - Eco Temperature
- Holiday mode
- Next Scheduled Change Time - Next Scheduled Change Time
- Next Scheduled Preset - Next Scheduled Preset
- Next Scheduled Temperature - Next Scheduled Temperature
- Open window detected
- Summer mode
### Other devices ### Other devices
@ -138,9 +132,11 @@ Some devices like the [FRITZ!DECT 350][fritzdect_350] or the [FRITZ!DECT 440][fr
The availability of these {% term sensor %} and {% term binary_sensor "binary sensor" %} entities depends on the features and capabilities of the connected device and can be one or multiple of: The availability of these {% term sensor %} and {% term binary_sensor "binary sensor" %} entities depends on the features and capabilities of the connected device and can be one or multiple of:
- Battery - Battery
- Battery low
- Button lock via UI - Button lock via UI
- Button lock on device - Button lock on device
- Humidity - Humidity
- Open window detected
- Temperature - Temperature
[fritzbox_5590_fiber]: https://en.avm.de/products/fritzbox/fritzbox-5590-fiber [fritzbox_5590_fiber]: https://en.avm.de/products/fritzbox/fritzbox-5590-fiber

View File

@ -41,7 +41,7 @@ Password:
description: "The password used to access the FYTA account." description: "The password used to access the FYTA account."
{% endconfiguration_basic %} {% endconfiguration_basic %}
## Configuration options ## Configuration
The integration has no additional configuration options. The integration has no additional configuration options.
@ -62,7 +62,7 @@ The following binary sensors are currently available per plant:
### Image ### Image
The picture created or chosen in the FYTA app is also exposed to Home Assistant. An image entity for both the generic plant image and the user image is added. You may use those for your dashboard.
### Sensors ### Sensors

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_zeroconf: true
--- ---
{% include integrations/supported_brand.md %} {% include integrations/supported_brand.md %}

View File

@ -17,31 +17,4 @@ ha_integration_type: integration
The `gpsd` integration is using the GPS information collected by [gpsd](https://gpsd.gitlab.io/gpsd/index.html) and a GPS receiver. The `gpsd` integration is using the GPS information collected by [gpsd](https://gpsd.gitlab.io/gpsd/index.html) and a GPS receiver.
## Setup
A requirement is that `gpsd` is installed (`$ sudo apt-get install gpsd` or `$ sudo dnf -y install gpsd`). `gpsd` uses the socket activation feature of systemd on recent Linux distributions for USB receivers. This means that if you plug your GPS receiver in, `gpsd` is started. Other GPS device may work too, but this was not tested.
```bash
$ sudo systemctl status gpsdctl@ttyUSB0.service
● gpsdctl@ttyUSB0.service - Manage ttyUSB0 for GPS daemon
Loaded: loaded (/usr/lib/systemd/system/gpsdctl@.service; static; vendor preset: disabled)
Active: active (exited) since Sat 2016-07-16 09:30:33 CEST; 1 day 23h ago
Process: 5303 ExecStart=/bin/sh -c [ "$USBAUTO" = true ] && /usr/sbin/gpsdctl add /dev/%I || : (code=exited, status=0/SUCCESS)
Main PID: 5303 (code=exited, status=0/SUCCESS)
Jul 16 09:30:33 laptop019 systemd[1]: Starting Manage ttyUSB0 for GPS daemon...
Jul 16 09:30:33 laptop019 gpsdctl[5305]: gpsd_control(action=add, arg=/dev/ttyUSB0)
Jul 16 09:30:33 laptop019 gpsdctl[5305]: reached a running gpsd
```
To check if your setup is working, connect to port 2947 on the host where `gpsd` is running with `telnet`. This may need adjustments to your firewall.
```bash
$ telnet localhost 2947
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
{"class":"VERSION","release":"3.15","rev":"3.15-2.fc23","proto_major":3,"proto_minor":11}
```
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}

View File

@ -1,104 +0,0 @@
---
title: GStreamer
description: Instructions on how to integrate GStreamer into Home Assistant.
ha_category:
- Media player
ha_release: 0.39
ha_iot_class: Local Push
ha_domain: gstreamer
ha_platforms:
- media_player
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The `gstreamer` {% term integration %} allows you to play audio via a [gstreamer](https://gstreamer.freedesktop.org/) pipeline. Practically, this means you can play audio directly on the computer running Home Assistant. It is particularly suited for playing TTS. Advanced users can specify a pipeline to transform the audio stream and/or redirect it elsewhere.
To add a `gstreamer` media player to your installation, add the following to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
media_player:
- platform: gstreamer
```
{% configuration %}
name:
description: Name of the media player.
required: false
type: string
pipeline:
description: A `gst` pipeline description.
required: false
type: string
{% endconfiguration %}
Only the `music` media type is supported.
## Setup
And then install the following system dependencies:
Debian/Ubuntu/Raspberry Pi OS (formerly Raspbian):
```bash
sudo apt-get install python3-gst-1.0 \
gir1.2-gstreamer-1.0 gir1.2-gst-plugins-base-1.0 \
gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly \
gstreamer1.0-tools
```
Red Hat/CentOS/Fedora:
```bash
sudo yum install -y python-gstreamer1 gstreamer1-plugins-good \
gstreamer1-plugins-ugly
```
For Fedora replace `yum` with `dnf`.
If you're running Home Assistant in a virtual environment, you'll need to symlink the system Python's `gi` module into your virtual environment:
```bash
ln -s /path/to/your/installation/of/gi /path/to/your/venv/lib/python3.4/site-packages
```
On a Raspberry Pi, you may need to add the Home Assistant user to the `audio` group:
```bash
sudo usermod -a -G audio <ha_user>
```
## Example usage
### Using with TTS
To play TTS on your local computer (for example, if you have speakers attached to your Raspberry Pi:
```yaml
media_player:
- platform: gstreamer
script:
tts:
sequence:
- action: tts.google_say # or amazon_polly, voicerss, etc
target:
entity_id: media_player.gstreamer
data:
message: "example text-to-speech message"
```
### Using with Snapcast
To play to a named pipe for consumption by Snapcast:
```yaml
media_player:
- platform: gstreamer
pipeline: "audioresample ! audioconvert ! audio/x-raw,rate=48000,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/snapcast_gstreamer"
```

View File

@ -97,6 +97,8 @@ Verify SSL certificate:
- **Saddles**: Indicates the number of saddles owned, used for instantly raising pets to mounts. - **Saddles**: Indicates the number of saddles owned, used for instantly raising pets to mounts.
- **Hatching potions**: Shows the total count of available hatching potions. The sensor's attributes detail each potion type and quantity. Pour them on an egg to hatch a pet. - **Hatching potions**: Shows the total count of available hatching potions. The sensor's attributes detail each potion type and quantity. Pour them on an egg to hatch a pet.
- **Quest scrolls**: Displays the total number of quest scrolls in your inventory. A list of each quest scroll and its quantity is provided in the sensor's attributes. - **Quest scrolls**: Displays the total number of quest scrolls in your inventory. A list of each quest scroll and its quantity is provided in the sensor's attributes.
- **Pending damage**: Total damage accumulated during the day by completing your tasks. The quest boss is then attacked for this amount at the end of the day.
- **Pending quest items**: Quest items found during the day when completing tasks. The total is counted towards the quest objective at the end of the day.
## Binary sensors ## Binary sensors

View File

@ -30,6 +30,7 @@ ha_platforms:
- time - time
ha_integration_type: integration ha_integration_type: integration
ha_zeroconf: true ha_zeroconf: true
ha_dhcp: true
--- ---
The Home Connect integration allows users to integrate their home appliances supporting the Home Connect standard for Bosch and Siemens using the [official cloud API](https://developer.home-connect.com). The Home Connect integration allows users to integrate their home appliances supporting the Home Connect standard for Bosch and Siemens using the [official cloud API](https://developer.home-connect.com).

View File

@ -10,10 +10,13 @@ ha_codeowners:
- '@Taraman17' - '@Taraman17'
ha_domain: homee ha_domain: homee
ha_platforms: ha_platforms:
- alarm_control_panel
- binary_sensor - binary_sensor
- button - button
- climate - climate
- cover - cover
- event
- fan
- light - light
- lock - lock
- number - number

View File

@ -278,7 +278,7 @@ homekit:
required: false required: false
type: string type: string
default: libx264 default: libx264
available options: copy, libx264, h264_v4l2m2m, h264_omx available options: copy, libx264, h264_v4l2m2m, h264_omx, h264_qsv
video_profile_names: video_profile_names:
description: Only for `camera` entities. FFmpeg video profile names for transcoding, only relevant if `video_codec` isn't `copy`. Some encoders, e.g., the Raspberry Pi's `h264_v4l2m2m`, don't use the standard `["baseline", "main", "high"]` profile names but expects `["0", "2", "4"]` instead. Use this option to override the default names, if needed. description: Only for `camera` entities. FFmpeg video profile names for transcoding, only relevant if `video_codec` isn't `copy`. Some encoders, e.g., the Raspberry Pi's `h264_v4l2m2m`, don't use the standard `["baseline", "main", "high"]` profile names but expects `["0", "2", "4"]` instead. Use this option to override the default names, if needed.
required: false required: false

View File

@ -0,0 +1,69 @@
---
title: Immich
description: Instructions on how to integrate an Immich user account into Home Assistant.
ha_category:
- Media source
- Multimedia
- Sensor
ha_release: 2025.6
ha_config_flow: true
ha_iot_class: Local Polling
ha_domain: immich
ha_platforms:
- diagnostics
- sensor
ha_codeowners:
- '@mib1185'
ha_integration_type: integration
ha_quality_scale: silver
---
This integration allows adding an [Immich](https://immich.app/) user account to Home Assistant.
## Prerequisites
You need to [obtain the API key](https://immich.app/docs/features/command-line-interface#obtain-the-api-key) for your user account in your Immich instance.
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: "The URL of your Immich instance. (_e.g. `https://immich.example.com`_)."
API key:
description: "API key of your user account to connect to your Immich instance."
Verify SSL certificate:
description: "Whether to verify the SSL certificate when SSL encryption is used to connect to your Immich instance."
{% endconfiguration_basic %}
## Data fetching
The integration polls data every 60 seconds.
## Media source
A [media source](/integrations/media_source/) is provided for your [Immich](https://immich.app/) albums. It shows only the albums you own or that are shared with you. If you have multiple Immich integrations in Home Assistant (_one integration for each Immich user_), only the albums for that specific user are shown.
## Sensors
The following {% term sensors %} are created. For some of those the API key needs to have admin rights.
| Entity | Description | Default enabled |
| --- | --- | --- |
| **Disk size** | Overall size of the disk | ✅ |
| **Disk available** | Free space on the disk | ✅ |
| **Disk used** | Used space on the disk | ❌ |
| **Disk usage** | Usage of the disk in percentage | ❌ |
| **Photos count** | Count of stored photos (_admin only_) | ✅ |
| **Videos count** | Count of stored videos (_admin only_) | ✅ |
| **Disk used by photos** | Used disk space by photos (_admin only_) | ❌ |
| **Disk used by videos** | Used disk space by videos (_admin only_) | ❌ |
## Troubleshooting
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue re-occurs, stop the debug logging again (_download of debug log file will start automatically_). Further, if still possible, please also download the [diagnostics](/integrations/diagnostics/) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
## Remove the integration
{% include integrations/remove_device_service.md %}
If the API key is not used anymore, you can remove it from your Immich instance.

View File

@ -10,6 +10,7 @@ ha_codeowners:
ha_domain: jewish_calendar ha_domain: jewish_calendar
ha_platforms: ha_platforms:
- binary_sensor - binary_sensor
- diagnostics
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration
ha_config_flow: true ha_config_flow: true

View File

@ -0,0 +1,22 @@
---
title: Kaiser Nienhaus
description: Connect and control your Kaiser Nienhaus devices using the Motionblinds integration
ha_category:
- Cover
ha_domain: kaiser_nienhaus
ha_integration_type: virtual
ha_supporting_domain: motion_blinds
ha_supporting_integration: Motionblinds
ha_release: 2020.12
ha_codeowners:
- '@starkillerOG'
ha_config_flow: true
ha_platforms:
- button
- cover
- sensor
ha_iot_class: Local Push
ha_dhcp: true
---
{% include integrations/supported_brand.md %}

View File

@ -1,40 +0,0 @@
---
title: Keyboard
description: Instructions on how to simulate key presses with Home Assistant.
ha_category:
- Automation
ha_release: pre 0.7
ha_domain: keyboard
ha_iot_class: Local Push
ha_integration_type: integration
ha_quality_scale: legacy
---
The `keyboard` integration simulates key presses on the host machine. It currently offers the following Buttons as a Service (BaaS):
- `keyboard/volume_up`
- `keyboard/volume_down`
- `keyboard/volume_mute`
- `keyboard/media_play_pause`
- `keyboard/media_next_track`
- `keyboard/media_prev_track`
To load this component, add the following lines to your {% term "`configuration.yaml`" %}:
```yaml
keyboard:
```
## Dependencies
You may need to install platform-specific [dependencies for PyUserInput](https://github.com/PyUserInput/PyUserInput#dependencies) in order to use the keyboard component. In most cases this can be done by running:
```bash
pip3 install [package name]
```
### Windows
x64 Windows users may have trouble installing pywin through pip. Using an [executable installer](https://github.com/mhammond/pywin32) should work around this issue.
[Similar installers](https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook) (unofficial) for pyhook have been ported to Python 3.4 and should help with x64 pip issues with pyhook.

View File

@ -14,6 +14,7 @@ ha_domain: knocki
ha_platforms: ha_platforms:
- event - event
ha_integration_type: hub ha_integration_type: hub
ha_dhcp: true
--- ---
The **Knocki** {% term integration %} allows you to trigger your favorite automations simply by tapping custom patterns (such as triple taps) on ordinary surfaces. The **Knocki** {% term integration %} allows you to trigger your favorite automations simply by tapping custom patterns (such as triple taps) on ordinary surfaces.

View File

@ -1141,6 +1141,11 @@ Unlike most KNX devices, Home Assistant defines 0% as closed and 100% as fully o
Home Assistant will, by default, `close` a cover by moving it in the `DOWN` direction in the KNX nomenclature, and `open` a cover by moving it in the `UP` direction. Home Assistant will, by default, `close` a cover by moving it in the `DOWN` direction in the KNX nomenclature, and `open` a cover by moving it in the `UP` direction.
{% endnote %} {% endnote %}
Cover entities can be created from the frontend in the KNX panel or via YAML.
<a name="configuration-cover-yaml"></a>
{% details "Configuration of KNX cover entities via YAML" %}
To use your KNX covers in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in your {% term "`configuration.yaml`" %}: To use your KNX covers in your installation, add the following lines to your top level [KNX Integration](/integrations/knx) configuration key in your {% term "`configuration.yaml`" %}:
```yaml ```yaml
@ -1149,12 +1154,20 @@ knx:
cover: cover:
- name: "Kitchen shutter" - name: "Kitchen shutter"
move_long_address: "3/0/0" move_long_address: "3/0/0"
move_short_address: "3/0/1"
stop_address: "3/0/4" stop_address: "3/0/4"
position_address: "3/0/3" position_address: "3/0/3"
position_state_address: "3/0/2" position_state_address: "3/0/2"
travelling_time_down: 51 travelling_time_down: 51
travelling_time_up: 61 travelling_time_up: 61
- name: "Bedroom blinds"
move_long_address: "3/1/1"
move_short_address: "3/1/4"
position_address: "3/1/3"
position_state_address: "3/1/2"
angle_address: "3/1/5"
angle_state_address: "3/1/6"
travelling_time_down: 40
travelling_time_up: 40
``` ```
{% configuration %} {% configuration %}
@ -1227,6 +1240,8 @@ entity_category:
default: None default: None
{% endconfiguration %} {% endconfiguration %}
{% enddetails %}
## Date ## Date
The KNX date platform allows to send date values to the KNX bus and update its state from received telegrams. It can optionally respond to read requests from the KNX bus. The KNX date platform allows to send date values to the KNX bus and update its state from received telegrams. It can optionally respond to read requests from the KNX bus.

View File

@ -22,6 +22,25 @@ The Kostal Plenticore integration allows you to get data from [Kostal Plenticore
The integration uses the REST-API interface which is also used by the integrated Web-UI and therefore uses the same password. The integration uses the REST-API interface which is also used by the integrated Web-UI and therefore uses the same password.
## Installer access
The integration supports installer-level access using a Master key and Service Code. This enables access to future additional settings that are normally restricted to certified installers.
{% warning %}
Using installer credentials:
- Should only be done if you fully understand the implications
- May void your warranty
- Could potentially damage your device if settings are incorrectly configured
- Should be done with extreme caution
{% endwarning %}
To enable installer access, set your Master Key as the password and fill in the Service Code in the configuration when adding the integration.
For information about obtaining installer credentials, please consult your device documentation or contact a certified installer.
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Sensors ## Sensors

View File

@ -35,8 +35,6 @@ This integration interacts with [La Marzocco](https://lamarzocco.com/it/en/) cof
If your Home Assistant host can perform [DHCP discovery](https://www.home-assistant.io/integrations/dhcp/), your machine will be discovered automatically. Otherwise, if your machine is in Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the machine will be discovered as well. If your Home Assistant host can perform [DHCP discovery](https://www.home-assistant.io/integrations/dhcp/), your machine will be discovered automatically. Otherwise, if your machine is in Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the machine will be discovered as well.
By default, this integration will receive push updates from the cloud about its general status and otherwise query your machine every 30 seconds for an update, every 15 minutes for new statistics, and every hour for a firmware update.
## Prerequisites ## Prerequisites
- To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first. - To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first.
@ -59,6 +57,10 @@ Use Bluetooth:
description: Allows you to manually disable Bluetooth communication with the machine (if available). This can be used to avoid longer timeouts, e.g., when your machine is only sometimes in range. description: Allows you to manually disable Bluetooth communication with the machine (if available). This can be used to avoid longer timeouts, e.g., when your machine is only sometimes in range.
{% endconfiguration_basic %} {% endconfiguration_basic %}
## Data updates
By default, this integration will receive push updates from the cloud about its general status. If that is not possible it will query the cloud every 15 seconds for an update of general machine information, every 15 minutes for new statistics, every 30 minutes for updated schedules and every 8 hours for a firmware update.
# Available platforms & entities # Available platforms & entities
{% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} = La Marzocco Cloud {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} = La Marzocco Cloud
@ -104,6 +106,7 @@ Use Bluetooth:
|------------------- |-------------| ---------------------- | ----------------- | ------- | |------------------- |-------------| ---------------------- | ----------------- | ------- |
| **Coffee boiler ready time** | Indicates when the coffee boiler will be ready for brewing. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Coffee boiler ready time** | Indicates when the coffee boiler will be ready for brewing. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Steam boiler ready time** | Indicates when the steam boiler will be ready for brewing. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Steam boiler ready time** | Indicates when the steam boiler will be ready for brewing. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Brew start time** | If a brew is running, tells the exact start time of that brew. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Total coffees made** | How many coffees have been made in total. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Total coffees made** | How many coffees have been made in total. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Total flushes done** | How often the machine has been flushed. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Total flushes done** | How often the machine has been flushed. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Last cleaning time** | Indicates when the machine was last cleaned with a **Backflush**. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Last cleaning time** | Indicates when the machine was last cleaned with a **Backflush**. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |

View File

@ -110,9 +110,10 @@ Buttons available in the library:
### Chargers ### Chargers
| Button | Description | | Button | Description |
| :------------------ | :--------------------------------- | | :------------------------- | :--------------------------------- |
| charge_start | Command charger to start charging. | | charge_start | Command charger to start charging. |
| charge_stop | Command charger to stop charging. | | charge_stop | Command charger to stop charging. |
| charging_schedule_override | Command charger to override the charging schedule for the next charging session. |
| reboot | Reboot charger. | | reboot | Reboot charger. |
### Energy meters ### Energy meters

View File

@ -1,99 +0,0 @@
---
title: LIRC
description: Instructions on how to integrate IR remotes with LIRC into Home Assistant.
ha_category:
- Automation
ha_release: 0.21
ha_iot_class: Local Push
ha_domain: lirc
ha_integration_type: integration
ha_quality_scale: legacy
---
[LIRC](https://www.lirc.org/) integration for Home Assistant allows you to receive signals from an infrared remote control and control actions based on the buttons you press. You can use them to set scenes or trigger any other [automation](/docs/automation/).
Sending IR commands is not supported in this integration (yet), but can be accomplished using the [shell_command integration](/integrations/shell_command/) in conjunction with the `irsend` command.
## Installation
To allow Home Assistant to talk to your IR receiver, you need to first make sure you have the correct dependencies installed:
```bash
sudo apt-get install lirc liblircclient-dev
```
{% note %}
If you are configuring on a Raspberry Pi, there are excellent instructions with GPIO schematics and driver configurations [here](http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/). Take notice, the instructions in this blog are valid for Raspian Jesse where lirc 0.9.0 was included in the Debian package. In Raspian Stretch lirc 0.9.4 is included in the Debian package.
The configuration is slightly different :
- The `hardware.conf` file is not supported, obsoleted by a new `lirc_options.conf` file and systemd unit definitions.
- The former single `lirc` service is replaced with the three systemd services `lircd.service`, `lircmd.service` and `irexec.service`. There is no counterpart to the 0.9.0 `lirc` service which covered all of these. Using a separate transmitter device requires yet another service.
- 0.9.4 defaults to using systemd for controlling the services. This is not just start/stop functionality, systemd is used to implement new features and to address shortcomings in 0.9.0. However, traditional systemV scripts are also installed and could be used although this is less tested and not really documented.
For more information have a look at `/usr/share/doc/lirc/README.Debian.gz` where the update process is explained when you have updated from jessie to stretch.
{% endnote %}
## Configuring LIRC
Now teach LIRC about your particular remote control by preparing a lircd configuration file (`/etc/lirc/lircd.conf`). Search the [LIRC remote database](https://lirc.sourceforge.net/remotes/) for your model. If you can't find it, then you can always use the `irrecord` program to learn your remote. This will create a valid configuration file. Add as many remotes as you want by pasting them into the file. If `irrecord` doesn't work (e.g., for some air conditioner remotes), then the `mode2` program is capable of reading the codes in raw mode, followed by `irrecord -a` to extract hex codes.
Next, you have to make a `~/.lircrc` file that maps keypresses to system actions. The file has to be in the home dir of the user running Home Assistant, e.g., in `/home/homeassistant/.lircrc` if you're running in a virtual env. [The configuration](https://www.lirc.org/html/configure.html) is a bit tedious but it must be done. Use the `prog = home-assistant` for all keys you want to be recognized by Home Assistant. The values you set for `button` must be the same as in the `lircd.conf` file and the values you put for `config` entry will be the sensor value in Home Assistant when you press the button. An example may look like this:
```bash
begin
remote = SONY
button = KEY_1
prog = home-assistant
config = KEY_1
end
begin
remote = SONY
button = KEY_2
prog = home-assistant
config = KEY_2
end
begin
remote = SONY
button = KEY_3
prog = home-assistant
config = KEY_3
end
```
Test your LIRC installation before proceeding by running:
```bash
ircat home-assistant
```
and pressing some buttons on the remote. You should see them register on the screen if LIRC is properly configured.
## Configuration Home Assistant
```yaml
# Example configuration.yaml entry
lirc:
```
### Events
The LIRC integration fires `ir_command_received` events on the bus. You can capture the events and respond to them in automation scripts like this:
```yaml
# Example configuration.yaml automation entry
automation:
- alias: "Off on Remote"
triggers:
- trigger: event
event_type: ir_command_received
event_data:
button_name: KEY_0
actions:
- action: homeassistant.turn_off
target:
entity_id: group.a_lights
```
The `button_name` data values (e.g., `KEY_0`) are set by you in the `.lircrc` file.

View File

@ -11,6 +11,7 @@ ha_category:
- Light - Light
- Lock - Lock
- Number - Number
- Pump
- Select - Select
- Sensor - Sensor
- Switch - Switch
@ -108,8 +109,6 @@ It is recommended to run the Matter add-on on Home Assistant OS. This is current
If you run Home Assistant in a container, you can run a Docker image of the [Matter server](https://github.com/home-assistant-libs/python-matter-server). The requirements and instructions for your host setup are described on that GitHub page. If you run Home Assistant in a container, you can run a Docker image of the [Matter server](https://github.com/home-assistant-libs/python-matter-server). The requirements and instructions for your host setup are described on that GitHub page.
Running Matter on a Home Assistant Core installation is not supported.
## Adding a Matter device to Home Assistant ## Adding a Matter device to Home Assistant
Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (for example from Google or Apple) to Home Assistant's fabric. We're going to explore all these options below. Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (for example from Google or Apple) to Home Assistant's fabric. We're going to explore all these options below.

View File

@ -41,9 +41,6 @@ Home Assistant OS and Supervised users can access this folder by using,
for example, the Samba add-on. Users of Home Assistant Container can for example, the Samba add-on. Users of Home Assistant Container can
mount a volume of their choice to `/media`. mount a volume of their choice to `/media`.
If you are a Home Assistant Core user, the default directory called is called
`media` under the configuration path (where your {% term "`configuration.yaml`" %} is located).
Files served from `media` are protected by Home Assistant authentication Files served from `media` are protected by Home Assistant authentication
unlike those served from `www`. unlike those served from `www`.

View File

@ -16,17 +16,18 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The `metoffice` weather platform uses the Met Office's [DataPoint API](https://www.metoffice.gov.uk/datapoint) for weather data. The **Met Office** weather {% term integration %} uses the Met Office's [DataHub API](https://www.metoffice.gov.uk/services/data/met-office-weather-datahub) for weather data.
## Getting started
Their website is not as straightforward so check the [getting started](https://www.metoffice.gov.uk/services/data/datapoint/getting-started). ## Prerequisites
1. Register for a [Met Office account](https://register.metoffice.gov.uk/WaveRegistrationClient/public/register.do?service=datapoint).
2. After registration and verification of your account, [login](https://register.metoffice.gov.uk/MyAccountClient/account/view) to retrieve your API key. 1. Register for a [Met Office DataHub](https://datahub.metoffice.gov.uk/) account.
2. After registration, [subscribe](https://datahub.metoffice.gov.uk/profile/subscriptions) to [Site Specific Global Spot](https://datahub.metoffice.gov.uk/pricing/site-specific) dataset to obtain your API key. Free tier subscription gives 360 calls per day, which is enough for using this integration
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Entities ## Entities
This integration creates a number of weather entities for each entry created in the configuration by location: one weather entity with a summary and a forecast, and twelve sensor entities for individual reporting on each of the individual measurements, for both 3-hourly and daily updates (to a grand total of 26 entities available). Note that only one of the two summary entities and the 3-hourly sensor entities flagged below are enabled by default, so your system isn't overrun on initial configuration. The time supplied for each forecast is the start time for the forecast. This integration creates a number of weather entities for each entry created in the configuration by location: one weather entity with a summary and a forecast (daily, hourly, and twice-daily), and sensor entities for individual reporting on each of the individual measurements. Note that only some of the sensor entities flagged below are enabled by default, so your system isn't overrun on initial configuration.
The available sensor entities: The available sensor entities:
@ -37,7 +38,6 @@ The available sensor entities:
- temperature - temperature
- UV index - UV index
- visibility - visibility
- visibility distance
- weather - weather
- wind direction - wind direction
- wind gust - wind gust
@ -45,4 +45,4 @@ The available sensor entities:
Only probability of precipitation, temperature, weather and wind speed are enabled by default. Only probability of precipitation, temperature, weather and wind speed are enabled by default.
Details about the API are available in the [DataPoint API documentation](https://www.metoffice.gov.uk/services/data/datapoint/api-reference). The [DataPoint](https://github.com/EJEP/datapoint-python) library is used to retrieve data. Details about the API are available in the [DataHub API documentation](https://datahub.metoffice.gov.uk/docs/f/category/site-specific/overview). The [datapoint-python](https://github.com/EJEP/datapoint-python) library is used to retrieve data.

View File

@ -10,6 +10,7 @@ ha_category:
- Light - Light
- Sensor - Sensor
- Switch - Switch
- Vacuum
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_release: '2025.5' ha_release: '2025.5'
ha_domain: miele ha_domain: miele
@ -25,6 +26,7 @@ ha_platforms:
- light - light
- sensor - sensor
- switch - switch
- vacuum
ha_integration_type: integration ha_integration_type: integration
ha_zeroconf: true ha_zeroconf: true
ha_quality_scale: bronze ha_quality_scale: bronze
@ -154,11 +156,18 @@ Climate entities are used to control target temperatures in refrigerators, freez
- **Program type**: Shows the current program type. - **Program type**: Shows the current program type.
- **Spin speed**: Shows the spin speed selected for the current washing machine program. - **Spin speed**: Shows the spin speed selected for the current washing machine program.
- **Energy consumption**: Shows the energy consumption during the current program cycle. The value will be reset after finishing the program. - **Energy consumption**: Shows the energy consumption during the current program cycle. The value will be reset after finishing the program.
- **Energy forecast**: Shows the forecast percentage of the maximum energy the program will consume for a given cycle.
- **Water consumption**: Shows the water consumption during the current program cycle. The value will be reset after finishing the program. - **Water consumption**: Shows the water consumption during the current program cycle. The value will be reset after finishing the program.
- **Water forecast**: Shows the forecast percentage of the maximum water the program will consume for a given cycle.
- **Temperature**: Represents the current temperature in refrigerators, freezers, and ovens. Entities are created for up to 3 zones depending on the device capabilities. - **Temperature**: Represents the current temperature in refrigerators, freezers, and ovens. Entities are created for up to 3 zones depending on the device capabilities.
- **Target temperature**: Shows the set target temperature for ovens and washing machines.
- **Core temperature**: Shows the core temperature of the food in ovens with an appropriate temperature probe.
- **Target core temperature**: Shows the set core target temperature for the food in ovens with an appropriate temperature probe.
- **Drying step**: Shows the selected drying step on tumble dryers.
- **Elapsed time**: Shows the number of minutes that the current program has been running. - **Elapsed time**: Shows the number of minutes that the current program has been running.
- **Remaining time**: Shows the estimated number of minutes remaining in the current program cycle. This value can fluctuate during a program cycle based on load dirtiness or waterheating time. - **Remaining time**: Shows the estimated number of minutes remaining in the current program cycle. This value can fluctuate during a program cycle based on load dirtiness or waterheating time.
- **Start in**: Shows the number of minutes until a delayed program start, if configured. - **Start in**: Shows the number of minutes until a delayed program start, if configured.
- **Plate**: Four to six sensors that show the current state of hob heating plates. The status mimics the display on the actual hob. For example, 0 is off, 5 is approximately 50% power, and "B" is power boost. Plates can only be monitored from Home Assistant, not controlled.
{% enddetails %} {% enddetails %}
### Switch ### Switch
@ -170,6 +179,13 @@ Climate entities are used to control target temperatures in refrigerators, freez
- **Superfreezing**: The switch controls Superfreezing mode for freezers. - **Superfreezing**: The switch controls Superfreezing mode for freezers.
{% enddetails %} {% enddetails %}
### Vacuum
{% details "List of vacuum entities" %}
- **Robot vacuum cleaner**: Miele robot vacuum cleaners can be monitored and controlled to a limited extent. The device can be started, stopped, and paused. The fan speed can also be set.
{% enddetails %}
## Automation examples ## Automation examples
Get started with these automation examples Get started with these automation examples

View File

@ -1239,6 +1239,26 @@ lights:
required: false required: false
default: 0x00 default: 0x00
type: integer type: integer
brightness_address:
description: "Address to read/write color brightness."
required: false
default: None
type: integer
color_temp_address:
description: "Address to read/write color temperature."
required: false
default: None
type: integer
min_temp:
description: "Minimal level of color temperature in Kelvin."
required: false
default: 2000
type: integer
max_temp:
description: "Maximal level of color temperature in Kelvin."
required: false
default: 7000
type: integer
write_type: write_type:
description: "Type of write request." description: "Type of write request."
required: false required: false
@ -1313,6 +1333,22 @@ modbus:
slave: 2 slave: 2
address: 14 address: 14
write_type: coil write_type: coil
brightness_address: 1006
verify:
- name: "light3"
slave: 2
address: 14
write_type: coil
brightness_address: 1006
color_temp_address: 2006
- name: "light4"
slave: 2
address: 14
write_type: coil
brightness_address: 1006
color_temp_address: 2006
min_temp: 2500
max_temp: 5500
verify: verify:
- name: "Register1" - name: "Register1"
address: 11 address: 11
@ -1398,7 +1434,7 @@ sensors:
required: false required: false
type: float type: float
nan_value: nan_value:
description: If a Modbus sensor has a defined NaN value, this value can be set as a hex string starting with `0x` containing one or more bytes (for example, `0xFFFF` or `0x80000000`) or provided as an integer directly. If triggered, the sensor becomes `unavailable`. Please note that the hex to int conversion for `nan_value` does currently not obey home-assistants Modbus encoding using the `data_type`, `structure`, or `swap` arguments. description: If a Modbus sensor has a defined NaN value, this value can be set as a hex string starting with `0x` containing one or more bytes (for example, `0xFFFF` or `0x80000000`) or provided as an integer directly. If triggered, the sensor becomes `unknown`. Please note that the hex to int conversion for `nan_value` does currently not obey home-assistants Modbus encoding using the `data_type`, `structure`, or `swap` arguments.
required: false required: false
type: string type: string
zero_suppress: zero_suppress:

View File

@ -36,6 +36,7 @@ Additionally the following brands have been reported to also work with this inte
- [Hurrican Shutters Wholesale](https://www.hurricaneshutterswholesale.com/) - [Hurrican Shutters Wholesale](https://www.hurricaneshutterswholesale.com/)
- [Inspired Shades](https://www.inspired-shades.com/) - [Inspired Shades](https://www.inspired-shades.com/)
- [iSmartWindow](https://www.ismartwindow.co.nz/) - [iSmartWindow](https://www.ismartwindow.co.nz/)
- [Kaiser Nienhaus](https://www.kaiser-nienhaus.de/)
- [Krispol](https://krispol.eu/en/drives/) - [Krispol](https://krispol.eu/en/drives/)
- [Linx](https://linxautomation.com.au/) - [Linx](https://linxautomation.com.au/)
- [Madeco](https://www.madeco.fr/) - [Madeco](https://www.madeco.fr/)
@ -69,6 +70,7 @@ The following bridges are reported to work with this integration:
- DD7006A Smart Home bridge - DD7006A Smart Home bridge
- Dreamhub Pro 191726 - Dreamhub Pro 191726
- Dreamhub mini 191717 - Dreamhub mini 191717
- Kaiser Nienhaus Smart Stick
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}

View File

@ -122,6 +122,10 @@ MQTT Devices and entities can be set up through [MQTT -discovery](#mqtt-discover
<a name="configuration-via-subentries"></a> <a name="configuration-via-subentries"></a>
{% details "Configuration of MQTT components via Subentries" %} {% details "Configuration of MQTT components via Subentries" %}
- [Binary sensor](/integrations/binary_sensor.mqtt/)
- [Button](/integrations/button.mqtt/)
- [Cover](/integrations/cover.mqtt/)
- [Fan](/integrations/fan.mqtt/)
- [Light](/integrations/light.mqtt/) - [Light](/integrations/light.mqtt/)
- [Notify](/integrations/notify.mqtt/) - [Notify](/integrations/notify.mqtt/)
- [Sensor](/integrations/sensor.mqtt/) - [Sensor](/integrations/sensor.mqtt/)

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_dhcp: true
ha_zeroconf: true ha_zeroconf: true
--- ---

View File

@ -90,6 +90,18 @@ The following enable/disable switches are added for each thermostat zone:
- Hold mode - Hold mode
The following include/exclude {% term switch %} is added for each RoomIQ sensor (if the device supports
[RoomIQ](https://support.asairhome.com/hc/en-us/articles/360045784651-RoomIQ-Overview-and-Usage)).
- Include `YOUR_SENSOR_NAME` (with your sensor name)
These switches allow you to select which RoomIQ sensors to include in a zone's average temperature.
To change your selected sensors, set each switch to represent your choice.
Several seconds after the last such change, the selection is sent to the manufacturer's web service.
It usually takes 1015 seconds to complete, depending on the web service.
At least one sensor must be selected.
If you exclude all sensors, the switches will revert to show the zone's settings.
### Action `nexia.set_aircleaner_mode` ### Action `nexia.set_aircleaner_mode`
Sets the air cleaner mode. Options include 'auto', 'quick', and Sets the air cleaner mode. Options include 'auto', 'quick', and

View File

@ -18,12 +18,6 @@ As an alternative to the router-based device tracking, it is possible to directl
Please keep in mind that modern smart phones will usually turn off WiFi when they are idle. Simple trackers like this may not be reliable on their own. Please keep in mind that modern smart phones will usually turn off WiFi when they are idle. Simple trackers like this may not be reliable on their own.
{% endnote %} {% endnote %}
{% note %}
If you are running Home Assistant Core in a Python virtual environment, you might have to install the packages for `arp` and `nmap`.
On Debian based hosts (for example Raspbian) do so by running `sudo apt-get install net-tools nmap`.
On a Fedora host run `sudo dnf -y install nmap`.
{% endnote %}
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
An example of how the Nmap scanner can be customized: An example of how the Nmap scanner can be customized:

View File

@ -241,26 +241,18 @@ template:
- name: Tomorrow lowest price - name: Tomorrow lowest price
unique_id: se3_tomorrow_low_price unique_id: se3_tomorrow_low_price
state: > state: >
{% if not tomorrow_price %}
unavailable
{% else %}
{% set data = namespace(prices=[]) %} {% set data = namespace(prices=[]) %}
{% for state in tomorrow_price['SE3'] %} {% for state in tomorrow_price['SE3'] %}
{% set data.prices = data.prices + [(state.price / 1000)] %} {% set data.prices = data.prices + [(state.price / 1000)] %}
{% endfor %} {% endfor %}
{{min(data.prices)}} {{min(data.prices)}}
{% endif %}
attributes: attributes:
data: > data: >
{% if not tomorrow_price %}
[]
{% else %}
{% set data = namespace(prices=[]) %} {% set data = namespace(prices=[]) %}
{% for state in tomorrow_price['SE3'] %} {% for state in tomorrow_price['SE3'] %}
{% set data.prices = data.prices + [{'start':state.start, 'end':state.end, 'price': state.price/1000}] %} {% set data.prices = data.prices + [{'start':state.start, 'end':state.end, 'price': state.price/1000}] %}
{% endfor %} {% endfor %}
{{data.prices}} {{data.prices}}
{% endif %}
``` ```
{% endraw %} {% endraw %}

View File

@ -53,10 +53,10 @@ The following device classes are supported for numbers:
- **distance**: Generic distance in km, m, cm, mm, mi, nmi, yd, or in - **distance**: Generic distance in km, m, cm, mm, mi, nmi, yd, or in
- **duration**: Duration in d, h, min, s, ms, or µs - **duration**: Duration in d, h, min, s, ms, or µs
- **energy**: Energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal - **energy**: Energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **energy_distance**: Energy per distance in kWh/100km, mi/kWh or km/kWh. - **energy_distance**: Energy per distance in kWh/100km, Wh/km, mi/kWh, or km/kWh.
- **energy_storage**: Stored energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal - **energy_storage**: Stored energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **frequency**: Frequency in Hz, kHz, MHz, or GHz - **frequency**: Frequency in Hz, kHz, MHz, or GHz
- **gas**: Gasvolume in m³, ft³ or CCF - **gas**: Gas volume in L, m³, ft³ or CCF
- **humidity**: Percentage of humidity in the air in % - **humidity**: Percentage of humidity in the air in %
- **illuminance**: The current light level in lx - **illuminance**: The current light level in lx
- **irradiance**: Irradiance in W/m² or BTU/(h⋅ft²) - **irradiance**: Irradiance in W/m² or BTU/(h⋅ft²)
@ -75,13 +75,14 @@ The following device classes are supported for numbers:
- **precipitation**: Accumulated precipitation in cm, in or mm - **precipitation**: Accumulated precipitation in cm, in or mm
- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h - **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h
- **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi - **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi
- **reactive_energy**: Reactive energy in varh or kvarh
- **reactive_power**: Reactive power in var or kvar - **reactive_power**: Reactive power in var or kvar
- **signal_strength**: Signal strength in dB or dBm - **signal_strength**: Signal strength in dB or dBm
- **sound_pressure**: Sound pressure in dB or dBA - **sound_pressure**: Sound pressure in dB or dBA
- **speed**: Generic speed in ft/s, in/d, in/h, in/s, km/h, kn, m/s, mph, mm/d, or mm/s - **speed**: Generic speed in ft/s, in/d, in/h, in/s, km/h, kn, m/s, mph, mm/d, or mm/s
- **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³ - **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³
- **temperature**: Temperature in °C, °F or K - **temperature**: Temperature in °C, °F or K
- **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ - **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ or mg/m³
- **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb - **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb
- **voltage**: Voltage in V, mV, µV, kV, MV - **voltage**: Voltage in V, mV, µV, kV, MV
- **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF - **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF

View File

@ -103,7 +103,10 @@ The following sensors may be available:
- **Input load (%)**: Load on (ePDU) input - **Input load (%)**: Load on (ePDU) input
- **Input voltage (V)**: Input voltage - **Input voltage (V)**: Input voltage
- **Load (%)**: Load on UPS - **Load (%)**: Load on UPS
- **Outlet voltage (V)**: Total output voltage - **Outlet apparent power (VA)**: Apparent power for all outlets
- **Outlet current (A)**: Current for all outlets
- **Outlet real power (W)**: Real power for all outlets
- **Outlet voltage (V)**: Voltage for all outlets
- **Output phases**: Output phases - **Output phases**: Output phases
- **Output voltage (V)**: Output voltage - **Output voltage (V)**: Output voltage
- **Status**: Human-readable version of "Status data" (see below) - **Status**: Human-readable version of "Status data" (see below)

View File

@ -30,10 +30,6 @@ The ONVIF camera integration allows you to use an [ONVIF](https://www.onvif.org/
It is recommended that you create a user on your device specifically for Home Assistant. For all current functionality, it is enough to create a standard user. It is recommended that you create a user on your device specifically for Home Assistant. For all current functionality, it is enough to create a standard user.
{% endtip %} {% endtip %}
{% note %}
If running Home Assistant Core in a venv, ensure that libxml2 and libxslt Python interfaces are installed via your package manager.
{% endnote %}
### Configuration notes ### Configuration notes
Most of the ONVIF devices support more than one audio/video profile. Each profile provides different image quality, or in the case of an NVR, separate connected cameras. This integration will add entities for all compatible profiles with the video encoding set to H.264. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. You may disable unwanted entities through the Home Assistant UI. Most of the ONVIF devices support more than one audio/video profile. Each profile provides different image quality, or in the case of an NVR, separate connected cameras. This integration will add entities for all compatible profiles with the video encoding set to H.264. Usually, the first profile has the highest quality and it is the profile used by default. However, you may want to use a lower quality image. You may disable unwanted entities through the Home Assistant UI.

View File

@ -11,6 +11,7 @@ ha_codeowners:
- '@fabaff' - '@fabaff'
- '@freekode' - '@freekode'
- '@nzapponi' - '@nzapponi'
- '@wittypluck'
ha_domain: openweathermap ha_domain: openweathermap
ha_platforms: ha_platforms:
- sensor - sensor

View File

@ -1,73 +0,0 @@
---
title: Pandora
description: Instructions on how to integrate Pandora radio into Home Assistant.
ha_category:
- Media player
ha_release: 0.22
ha_iot_class: Local Polling
ha_domain: pandora
ha_platforms:
- media_player
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
If you have a Pandora account, you can control it from Home Assistant with this media player.
{% important %}
This integration is only available on Home Assistant Core installation types. Unfortunately, it cannot be used with Home Assistant OS, Supervised or Container.
{% endimportant %}
### Installation of Pianobar
This media player uses the [Pianobar command-line Pandora client](https://github.com/PromyLOPh/pianobar), which you have to install separately. This can be done on a Raspberry Pi 2/3 with Raspbian Jessie as follows . _(Note: Other platforms may have different installation processes)_
The version of pianobar that comes with Jessie has a bug, so you have to build a more recent version. The latest version depends on a recent version of libraries associated with FFmpeg, so you should make sure you go through the backport process documented in [The FFmpeg integration](/integrations/ffmpeg/) before doing this. Install the following basic dependencies:
```bash
sudo apt-get install git libao-dev libgcrypt11-dev libfaad-dev libmad0-dev libjson-c-dev make pkg-config libcurl4-openssl-dev
```
And now install the backported FFmpeg-related libraries (note that if you're using an older version of FFmpeg for other things on this machine, you may encounter issues after doings this):
```bash
sudo apt-get -t jessie-backports install libav-tools libavcodec-extra libavcodec-dev libavfilter-dev libavformat-dev
```
Now clone the Pianobar repository and build pianobar:
```bash
git clone https://github.com/PromyLOPh/pianobar.git
cd pianobar
make clean && make
sudo make install
```
Configure Pianobar to auto-login and start playing a station (optional, see `man pianobar`) by creating and editing the `~/.config/pianobar/config` file:
```bash
password = Password
user = you@youraccount.com
```
Test it out by running `pianobar` in the command line. You should be able to listen to your Pandora stations.
### Configuration in Home Assistant
The Pandora player can be loaded by adding the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
media_player:
- platform: pandora
```
That's it! Now you will find a media player. If you click it you will find all your stations listed as different sources. If you switch to one, the station will begin playing.
<p class='img'>
<img src='/images/screenshots/pandora_player.png' />
</p>

View File

@ -0,0 +1,79 @@
---
title: Paperless-ngx
description: Instructions on how to integrate Paperless-ngx into Home Assistant
ha_release: 2025.6
ha_category:
- Sensor
ha_iot_class: Local Polling
ha_config_flow: true
ha_domain: paperless_ngx
ha_codeowners:
- '@fvgarrel'
ha_integration_type: service
ha_quality_scale: silver
related:
- url: https://docs.paperless-ngx.com/
title: Paperless-ngx
ha_platforms:
- diagnostics
- sensor
---
The **Paperless-ngx** {% term integration %} allows you to connect your [Paperless-ngx](https://docs.paperless-ngx.com/) instance to Home Assistant and monitor its status and activity.
## Prerequisites
{% important %}
This integration is only fully supported with **Paperless-ngx version 2.15 or later**. Earlier versions are not supported.
{% endimportant %}
To ensure full functionality of this integration, you must have **read permissions** for all document-related resources, including documents, tags, document types, and correspondents.
To enable monitoring of diagnostic sensors, you must have **administrator permissions**. Without administrator rights, specific API endpoints cannot be accessed, and the sensor states will not be available.
{% details "Create an access token" %}
1. Log in to your **Paperless-ngx** instance.
2. In the upper-right corner, select your profile icon.
3. Select **My Profile**.
4. Under **API Auth Token**, select the right **Refresh** button next to the textbox to generate a new token. Confirm with **yes**.
5. Copy the token and use it during the integration setup in Home Assistant.
{% enddetails %}
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: "URL to connect to the Paperless-ngx instance."
API key:
description: "API key to connect to the Paperless-ngx API."
{% endconfiguration_basic %}
## Sensors
This integration provides {% term sensors %} for the following information from Paperless-ngx:
| Sensor | Description |
|--------------------------|--------------------------------------------------------------------------------|
| **Correspondents** | Indicates the total number of defined correspondents. |
| **Document types** | Indicates the total number of defined document types. |
| **Documents in inbox** | Indicates the number of documents currently in the inbox. |
| **Tags** | Indicates the total number of defined tags |
| **Total characters** | Indicates the total number of characters extracted from all documents. |
| **Total documents** | Indicates the total number of documents stored. |
| **Total storage** | Indicates the total disk space used by Paperless-ngx. |
| **Available storage** | Indicates the remaining available disk space for Paperless-ngx. |
| **Status database** | Indicates whether the database is reachable and functioning correctly. |
| **Status index** | Indicates whether the document indexing service is operational. |
| **Status classifier** | Indicates whether the document classifier service is running properly. |
| **Status celery** | Indicates whether the Celery task queue is active and processing tasks. |
| **Status redis** | Indicates whether the Redis service used for task queuing is available. |
| **Status sanity** | Indicates the sanity of the Paperless-ngx documents. |
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_dhcp: true
ha_zeroconf: true ha_zeroconf: true
--- ---

View File

@ -48,7 +48,7 @@ Not all Poweropti devices are supported currently. Check the list below to see i
## Data updates ## Data updates
The integration will update its information by polling Powerfox every The integration will update its information by polling Powerfox every
minute. This ensures the data in Home Assistant is up to date. 10 seconds. This ensures the data in Home Assistant is up to date.
## Actions ## Actions

View File

@ -0,0 +1,70 @@
---
title: Probe Plus
description: Instructions on how to integrate Probe Plus food temperature probes into Home Assistant.
ha_release: 2025.6
ha_category:
- Sensor
ha_iot_class: Local Push
ha_config_flow: true
ha_domain: probe_plus
ha_platforms:
- sensor
ha_bluetooth: true
ha_codeowners:
- '@pantherale0'
ha_integration_type: device
ha_quality_scale: bronze
---
The **Probe Plus** {% term integration %} allows you to view food temperature probe details supported by [Probe Plus](https://play.google.com/store/apps/details?id=com.yscoco.thermoex) through Home Assistant.
If your probe is within Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the probe should be discovered automatically provided that the model name starts with FM2. If you are configuring the device manually, your probe needs to be turned on during setup.
Once the integration is set up, Home Assistant will try to connect to your probe every 15 seconds. This means there is sometimes a small delay between you removing the probe from its dock and Home Assistant connecting to it.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Device:
description: "The Bluetooth device that is your probe."
{% endconfiguration_basic %}
## Available functionality
### Sensors
- **Battery**: Current battery level of the relay and probe.
- **Temperature**: Current temperature reading from the probe.
- **Probe signal strength**: The signal strength of the probe to its charging dock.
- **Relay voltage**: Voltage of the battery within the charging dock (not supported on all models).
- **Probe voltage**: Voltage of the battery inside the probe.
## Supported devices
The following devices have been tested successfully with this integration:
- FMC210/FMC213
If you have successfully tested this integration with another probe model, please let us know by enhancing this documentation, or by opening an issue in GitHub.
## Possible use-cases
This integration can be used to monitor food temperatures, you could combine this with your Home Assistant Voice to alert you when the food has finished cooking. As a bonus, multiple probes are supported and therefore if you are cooking a large family meal, you can view all your food temperatures on one dashboard.
## Known limitations
- While this integration is configured for your device, you won't be able to use the official app, as only one connection at a time is supported.
- This assumes that the probe is configured to read the temperature in Celsius. Make sure you have changed this in the app before setting up in case you are using Fahrenheit. A template helper can be used to convert between units.
## Troubleshooting
{% details "Device not discovered or found" %}
Make sure your probe is removed from the charging dock and the dock is within Bluetooth range to your Home Assistant instance. [ESPHome Bluetooth Proxies](https://esphome.io/components/bluetooth_proxy.html) are a great way to increase the range if your instance is too far away. Turn on debug settings in the Probe Plus integration and check your logs.
{% enddetails %}
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_dhcp: true
ha_zeroconf: true ha_zeroconf: true
--- ---

View File

@ -50,62 +50,6 @@ Do not run your <b>Home Assistant Core</b> instance itself as <b>root</b> or wit
There are varying methods to perform this, dependent on your OS that is running Home Assistant. Specifically, your *Python Interpreter*, which runs your Home Assistant instance, needs access to the mentioned ports. There are varying methods to perform this, dependent on your OS that is running Home Assistant. Specifically, your *Python Interpreter*, which runs your Home Assistant instance, needs access to the mentioned ports.
{% note %}
Additional configuration is only required for Home Assistant Core users **not** running on Docker.
{% endnote %}
### Debian-based
Home Assistant installed on a Debian-type OS may require configuration. This section is applicable but not limited to the following operating systems:
- Debian
- Raspbian
- Armbian
- Ubuntu
In terminal run the following command:
```bash
sudo setcap 'cap_net_bind_service=+ep' <python>
```
Replace `<python>` with your **system path** to Python that is running Home Assistant and/or your virtual environment if used. The path **should not** be a **symlink** or be **inside of a virtual environment**.
Example:
```bash
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.5
```
To find your system Python path:
- Add the [System Health](/integrations/system_health/) integration to your {% term "`configuration.yaml`" %}. In a web browser, access your frontend and navigate to the about/logs page "http://<yourhomeassistanturl>/developer-tools/info). In the System Health box, locate the item **python_version** and note the value that is displayed. Then in a terminal run:
```bash
whereis python<version>
```
Replace `<version>` with the value for `python_version` that is shown in the System Health box.
Example:
```bash
whereis python3.5.3
```
The output which has the directory `/bin/` is likely your system Python path which should look like this `/usr/bin/python3.5`
- If Home Assistant is installed in a virtual environment, use terminal to `cd` to the root/top directory of your environment and run:
```bash
readlink -f bin/python3
```
or
```bash
readlink -f bin/python
```
The output will be your system Python path.
### Docker ### Docker
When running Home Assistant using Docker, make sure that the Home Assistant container is discoverable by the PS4. This can be achieved by ensuring that the Home Assistant container uses the `host` network driver (by passing `--net=host` to the container when creating, or adding `network_mode: "host"` to your compose file when using `docker-compose`). When running Home Assistant using Docker, make sure that the Home Assistant container is discoverable by the PS4. This can be achieved by ensuring that the Home Assistant container uses the `host` network driver (by passing `--net=host` to the container when creating, or adding `network_mode: "host"` to your compose file when using `docker-compose`).

View File

@ -4,10 +4,12 @@ description: Instructions on how to integrate your Qbus installation with Home A
ha_category: ha_category:
- Climate - Climate
- Light - Light
- Scene
- Switch - Switch
ha_platforms: ha_platforms:
- climate - climate
- light - light
- scene
- switch - switch
ha_iot_class: Local Push ha_iot_class: Local Push
ha_codeowners: ha_codeowners:
@ -40,13 +42,12 @@ There is currently support for the following **Qbus** products within Home Assis
- **CTD01E to CTD03E (CTD 3.0)**: main controllers (yellow). - **CTD01E to CTD03E (CTD 3.0)**: main controllers (yellow).
- **CTD10 to CTDMax (CTD 3.5)**: main controllers (black). - **CTD10 to CTDMax (CTD 3.5)**: main controllers (black).
- **Toggle**: toggle outputs on controllers.
- **Dimmer**: dimmer outputs on controllers.
## Available entities ## Available entities
- **Climate**: manages thermostats by setting temperature and choosing presets. - **Climate**: manages thermostats by setting temperature and choosing presets.
- **Light**: controls dimmer lights, allowing both on/off functionality and brightness adjustment. - **Light**: controls dimmer lights, allowing both on/off functionality and brightness adjustment.
- **Scene**: activates predefined scenes.
- **Switch**: toggles on/off outputs. - **Switch**: toggles on/off outputs.
## Removing the integration ## Removing the integration
@ -59,6 +60,38 @@ This integration follows standard integration removal. No extra steps are requir
All data from **Qbus** entities are pushed to Home Assistant over MQTT. All data from **Qbus** entities are pushed to Home Assistant over MQTT.
## Examples
### Automation to activate Qbus scene
This automation will activate the **Watching TV** Qbus scene when turning on your TV.
Replace `media_player.my_tv` with your TV entity and `scene.ctd_000001_watching_tv` with your Qbus scene entity.
{% raw %}
```yaml
alias: Activate TV scene when turning on TV
description: ""
mode: single
triggers:
- entity_id:
- media_player.my_tv
from: "off"
to: "on"
trigger: state
conditions: []
actions:
- target:
entity_id: scene.ctd_000001_watching_tv
metadata: {}
alias: Activate TV scene
action: scene.turn_on
data: {}
```
{% endraw %}
## Known limitations ## Known limitations
The integration does not provide a way to update the firmware on the devices. This can only be done with the configuration software System Manager. The integration does not provide a way to update the firmware on the devices. This can only be done with the configuration software System Manager.

View File

@ -12,6 +12,7 @@ ha_codeowners:
ha_dhcp: true ha_dhcp: true
ha_domain: rehlko ha_domain: rehlko
ha_platforms: ha_platforms:
- binary_sensor
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration
ha_quality_scale: silver ha_quality_scale: silver
@ -36,6 +37,19 @@ password:
The integration uses your generator's name as the device name and within your entity names. To change this name, it is recommended to do so in the Kohler app before configuring the integration. The integration uses your generator's name as the device name and within your entity names. To change this name, it is recommended to do so in the Kohler app before configuring the integration.
## Binary sensors
This integration provides the following binary sensors to help you keep track of your generator's key states:
- **Auto run**
Lets you know if your generator will automatically start when there is a power outage.
- **Connectivity**
Shows whether your generator is currently connected to the Rehlko cloud.
- **Oil pressure**
Monitors the oil pressure sensor. If this sensor is *on*, it means there is a problem with the oil pressure.
## Sensors ## Sensors
The sensors exposed by this integration depend on the specific instrumentation installed on your generator and transfer switch. Sensor availability can vary significantly—even between units of the same model. The sensors exposed by this integration depend on the specific instrumentation installed on your generator and transfer switch. Sensor availability can vary significantly—even between units of the same model.

View File

@ -20,12 +20,6 @@ related:
The `scrape` sensor {% term integration %} scrapes information from websites. The sensor loads an HTML page, and allows you to search and extract specific values. As this is not a fully featured web scraper like [scrapy](https://scrapy.org/), it will work with simple web pages and it can be time-consuming to get the right section. The `scrape` sensor {% term integration %} scrapes information from websites. The sensor loads an HTML page, and allows you to search and extract specific values. As this is not a fully featured web scraper like [scrapy](https://scrapy.org/), it will work with simple web pages and it can be time-consuming to get the right section.
If you are not using Home Assistant Container or Home Assistant Operating System, this integration requires `libxml2` to be installed. On Debian based installs, run:
```bash
sudo apt install libxml2
```
Both UI and YAML setup is supported while YAML provides additional configuration possibilities. Both UI and YAML setup is supported while YAML provides additional configuration possibilities.
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}

View File

@ -63,11 +63,11 @@ The following device classes are supported for sensors:
- **distance**: Generic distance in km, m, cm, mm, mi, nmi, yd, or in - **distance**: Generic distance in km, m, cm, mm, mi, nmi, yd, or in
- **duration**: Duration in d, h, min, s, ms, or µs - **duration**: Duration in d, h, min, s, ms, or µs
- **energy**: Energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal - **energy**: Energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **energy_distance**: Energy per distance in kWh/100km, mi/kWh or km/kWh. - **energy_distance**: Energy per distance in kWh/100km, Wh/km, mi/kWh, or km/kWh.
- **energy_storage**: Stored energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal - **energy_storage**: Stored energy in J, kJ, MJ, GJ, mWh, Wh, kWh, MWh, GWh, TWh, cal, kcal, Mcal, or Gcal
- **enum**: Has a limited set of (non-numeric) states - **enum**: Has a limited set of (non-numeric) states
- **frequency**: Frequency in Hz, kHz, MHz, or GHz - **frequency**: Frequency in Hz, kHz, MHz, or GHz
- **gas**: Gasvolume in m³, ft³ or CCF - **gas**: Gas volume in L, m³, ft³ or CCF
- **humidity**: Percentage of humidity in the air in % - **humidity**: Percentage of humidity in the air in %
- **illuminance**: The current light level in lx - **illuminance**: The current light level in lx
- **irradiance**: Irradiance in W/m² or BTU/(h⋅ft²) - **irradiance**: Irradiance in W/m² or BTU/(h⋅ft²)
@ -86,6 +86,7 @@ The following device classes are supported for sensors:
- **precipitation**: Accumulated precipitation in cm, in or mm - **precipitation**: Accumulated precipitation in cm, in or mm
- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h - **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h
- **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi - **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi
- **reactive_energy**: Reactive energy in varh or kvarh
- **reactive_power**: Reactive power in var or kvar - **reactive_power**: Reactive power in var or kvar
- **signal_strength**: Signal strength in dB or dBm - **signal_strength**: Signal strength in dB or dBm
- **sound_pressure**: Sound pressure in dB or dBA - **sound_pressure**: Sound pressure in dB or dBA
@ -93,7 +94,7 @@ The following device classes are supported for sensors:
- **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³ - **sulphur_dioxide**: Concentration of sulphur dioxide in µg/m³
- **temperature**: Temperature in °C, °F or K - **temperature**: Temperature in °C, °F or K
- **timestamp**: Datetime object or timestamp string (ISO 8601) - **timestamp**: Datetime object or timestamp string (ISO 8601)
- **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ - **volatile_organic_compounds**: Concentration of volatile organic compounds in µg/m³ or mg/m³
- **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb - **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb
- **voltage**: Voltage in V, mV, µV, kV, MV - **voltage**: Voltage in V, mV, µV, kV, MV
- **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF - **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, or CCF

View File

@ -18,23 +18,6 @@ ha_quality_scale: legacy
The `seven_segments` image processing {% term integration %} allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/integrations/camera/). The `seven_segments` image processing {% term integration %} allows you to read physical seven segments displays through Home Assistant. [`ssocr`](https://www.unix-ag.uni-kl.de/~auerswal/ssocr/) is used to extract the value shown on the display which is observed by a [camera](/integrations/camera/).
{% details "Notes for Home Assistant Core Installations" %}
`ssocr` needs to be available on your system. Check the installation instruction below:
```bash
sudo dnf -y install imlib2-devel # Fedora
sudo apt install libimlib2-dev # Ubuntu
brew install imlib2 # macOS
git clone https://github.com/auerswal/ssocr.git
cd ssocr
make
sudo make PREFIX=/usr install # On most systems
make deb # (Optional) This allows you to make a deb so that you apt is aware of ssocr
```
{% enddetails %}
## Configuration ## Configuration
To enable the OCR of a seven segment display in your installation, add the following to your {% term "`configuration.yaml`" %} file. To enable the OCR of a seven segment display in your installation, add the following to your {% term "`configuration.yaml`" %} file.

View File

@ -108,3 +108,22 @@ The `seventeentrack.archive_package` action allows you to archive a package usin
config_entry_id: 2b4be47a1fa7c3764f14cf756dc98991 config_entry_id: 2b4be47a1fa7c3764f14cf756dc98991
package_tracking_number: RU0103445624A package_tracking_number: RU0103445624A
``` ```
### Action `seventeentrack.add_package`
The `seventeentrack.add_package` action allows you to add a package using the 17track API.
| Data attribute | Optional | Description |
| ------------------------- | -------- | --------------------------------------------- |
| `config_entry_id` | No | The selected service to add the package to. |
| `package_tracking_number` | No | The package tracking number to add. |
| `package_friendly_name` | No | The friendly name of the package to be added. |
```yaml
# Example automation action to add a package with tracking number and its friendly name
- action: seventeentrack.add_package
data:
config_entry_id: 2b4be47a1fa7c3764f14cf756dc98991
package_tracking_number: RU0103445624A
package_friendly_name: "Example Package"
```

View File

@ -43,6 +43,7 @@ ha_platforms:
- update - update
- valve - valve
ha_integration_type: device ha_integration_type: device
ha_quality_scale: silver
--- ---
Integrate [Shelly devices](https://shelly.com) into Home Assistant. Integrate [Shelly devices](https://shelly.com) into Home Assistant.
@ -131,23 +132,26 @@ Currently, only static IP or DHCP reserved IP are supported for the main device.
## Entity naming (generation 1) ## Entity naming (generation 1)
The integration uses `Device Name` to name its entities if the device has only one relay or no relays at all. The integration uses the following strategy to name its devices and entities if the device has only one relay (channel) or no relays at all:
The integration uses the following strategy to name its entities if the device has more than one relay: - If a `Device Name` is set in the device, the integration will use it to generate the device name and entity names.
- If a `Device Name` is not set, the integration will use the `Device ID` to generate the device name and entity names.
- If `Device Name` or `Channel Name` is set in the device, the integration will use them to generate the entities' name. The integration creates a sub-device for every relay and uses the following strategy to name its entities if the device has more than one relay:
- If channel names are set, they will be used in the entity names. The device name will not be used.
- If only the device name is set, and the device has multiple channels, the channel number will be appended to the entity name (e.g., Channel 2). - If a `Device Name` is set in the device, the integration will use it to generate the main device name and entity names assigned to the main device.
- In case device name and channel names are not set, the entity name will be generated by the `Device Type`, `Device ID` and `Channel Number`. - If a `Device Name` is not set, the integration will use the `Device ID` to generate the main device name and entity names assigned to the main device.
- If a `Channel Name` is set in the device, the integration will use it to generate the sub-device name and entity names assigned to this sub-device (channel/relay).
- If a `Channel Name` is not set in the device, the integration will use the device name and channel/relay number to generate the sub-device name and entity names assigned to this sub-device (channel/relay).
Examples: Examples:
| Device Name | Channel Name | Entity Name | | Device Name | Channel Name | Main Device Name | Sub-device Name | Entity Name |
| ----------- | -------------- | ------------------------------- | | ----------- | -------------- | --------------------- | ------------------------------- | -------------------------------- |
| `Not set` | `Not Set` | shellyswitch25-ABC123 Channel 1 | | `Not set` | `Not Set` | shellyswitch25-ABC123 | shellyswitch25-ABC123 Channel 1 | shellyswitch25-ABC123 Channel 1 |
| `Not set` | Kids Room Bulb | Kids Room Bulb | | `Not set` | Kids Room Bulb | shellyswitch25-ABC123 | Kids Room Bulb | Kids Room Bulb |
| Kitchen | `Not Set` | Kitchen Channel 1 | | Kitchen | `Not Set` | Kitchen | Kitchen Channel 1 | Kitchen Channel 1 |
| Bedroom | Round Bulb | Round Bulb | | Bedroom | Round Bulb | Bedroom | Round Bulb | Round Bulb |
Names are set from the device web page: Names are set from the device web page:
@ -157,10 +161,36 @@ Names are set from the device web page:
## Entity naming (generation 2+) ## Entity naming (generation 2+)
The integration uses the following strategy to name its entities: The integration uses the following strategy to name its devices and entities if the device has only one relay (channel) or no relays at all:
- If `Channel Name` is set in the device, the integration will use it to generate the entities' name, e.g. `Kitchen Light` - If a `Device Name` is set in the device, the integration will use it to generate the device name and entity names.
- If `Channel Name` is set to the default value, the integration will use the `Device ID` and default channel name to generate the entities' name, e.g. `ShellyPro4PM-9808D1D8B912 Switch 0`. - If a `Device Name` is not set, the integration will use the `Device ID` to generate the device name and entity names.
- If a `Channel Name` is set in the device, the integration will add it as a suffix to the entity names.
Examples:
| Device Name | Channel Name | Integration Device Name | Entity Name |
| ----------- | -------------- | ------------------------ | --------------------------------------- |
| `Not set` | `Not Set` | shelly1gen3-aabbccddeeff | shelly1gen3-aabbccddeeff |
| `Not set` | Kids Room Bulb | shelly1gen3-aabbccddeeff | shelly1gen3-aabbccddeeff Kids Room Bulb |
| Kitchen | `Not Set` | Kitchen | Kitchen |
| Bedroom | Round Bulb | Bedroom | Bedroom Round Bulb |
The integration creates a sub-device for every relay (channel) and uses the following strategy to name its devices and entities if the device has more than one relay:
- If a `Device Name` is set in the device, the integration will use it to generate the main device name and entity names assigned to the main device.
- If a `Device Name` is not set, the integration will use the `Device ID` to generate the main device name and entity names assigned to the main device.
- If a `Channel Name` is set in the device, the integration will use it to generate the sub-device name and entity names assigned to this sub-device (channel/relay).
- If a `Channel Name` is set to the default value in the device, the integration will use the device name and this ddefault channel name to generate the sub-device name and entity names assigned to this sub-device (channel/relay).
Examples:
| Device Name | Channel Name | Main Device Name | Sub-device Name | Entity Name |
| ----------- | -------------- | -------------------------- | ----------------------------------- | ----------------------------------- |
| `Not set` | `Not Set` | shelly2pmgen3-aabbccddeeff | shelly2pmgen3-aabbccddeeff Switch 1 | shelly2pmgen3-aabbccddeeff Switch 1 |
| `Not set` | Kids Room Bulb | shelly2pmgen3-aabbccddeeff | Kids Room Bulb | Kids Room Bulb |
| Kitchen | `Not Set` | Kitchen | Kitchen Switch 1 | Kitchen Switch 1 |
| Bedroom | Round Bulb | Bedroom | Round Bulb | Round Bulb |
## Cover entities ## Cover entities

View File

@ -0,0 +1,34 @@
---
title: Shelly Z-Wave
description: Connect and control your Shelly Z-Wave devices using the Z-Wave integration
ha_release: '2025.6'
ha_iot_class: Local Push
ha_category:
- Sensor
- Switch
- Plug
ha_domain: shelly
ha_integration_type: brand
works_with:
- zwave
ha_platforms:
- binary_sensor
- sensor
- switch
ha_iot_standard: zwave
ha_brand: true
---
[Shelly](https://shelly.com) is a member of the Works with Home Assistant partner program for their Z-Wave products. Shelly is committed to making sure their products are up-to-date and ready to use in Home Assistant.
Shelly Z-Wave devices work locally and integrate seamlessly with the Z-Wave integration in Home Assistant (Z-Wave stick required). As all connectivity is happening locally, status updates and controlling your devices happen instantly in Home Assistant.
{% my add_zwave_device badge domain=page.ha_domain %}
[Learn more about Z-Wave in Home Assistant.](/integrations/zwave_js/)
## Supported devices
- [Shelly Wave 1PM Mini](https://www.shelly.com/products/shelly-qubino-wave-1pm-mini)
- [Shelly Wave PM Mini](https://www.shelly.com/products/shelly-qubino-wave-pm-mini)
- [Shelly Wave i4](https://www.shelly.com/products/shelly-qubino-wave-i4)

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_dhcp: true
ha_zeroconf: true ha_zeroconf: true
--- ---

View File

@ -0,0 +1,52 @@
---
title: Swing2Sleep Smarla
description: Instructions on connecting Swing2Sleep Smarla to Home Assistant.
ha_category:
- Switch
ha_iot_class: Cloud Push
ha_release: 2025.6
ha_codeowners:
- '@explicatis'
- '@rlint-explicatis'
ha_domain: smarla
ha_integration_type: device
ha_config_flow: true
ha_platforms:
- switch
ha_quality_scale: bronze
---
The `smarla` {% term integration %} enables Home Assistant to integrate [Swing2Sleep](https://swing2sleep.de) (Smarla) motorized cradles. This integration will allow you to control your Smarla device.
## Requirements
- Swing2Sleep Smarla device with Version 1.6.X or later.
- Swing2Sleep app.
- Internet connectivity.
## Registration
1. Follow the instructions in the Swing2Sleep app.
2. Connect the device to your Wi-Fi network.
3. Follow the steps for **Configuration** until the access token field appears
4. In the Swing2Sleep app, generate an access token under **Settings**.
5. Copy the access token and continue with the **Configuration**.
{% include integrations/config_flow.md %}
## Entities
This component will set up the following entities:
| Entity | Platform | Description |
| -------------- | ----------------- | ------------------------------------- |
| `cradle` | `switch` | Turn on or off the cradles oscillation. |
| `smartmode` | `switch` | Enable or disable automatic intensity control. |
## Removing the integration
This integration follows standard integration removal.
{% include integrations/remove_device_service.md %}
After deleting the integration, go to the Swing2Sleep app and remove the "Home Assistant" entry under **Settings** -> **Connected devices** as well.

View File

@ -20,6 +20,7 @@ ha_category:
- Switch - Switch
- Update - Update
- Valve - Valve
- Water heater
ha_release: 0.87 ha_release: 0.87
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_config_flow: true ha_config_flow: true
@ -42,6 +43,7 @@ ha_platforms:
- switch - switch
- update - update
- valve - valve
- water_heater
ha_dhcp: true ha_dhcp: true
ha_integration_type: integration ha_integration_type: integration
ha_codeowners: ha_codeowners:
@ -76,6 +78,7 @@ SmartThings represents devices as a set of [capabilities](https://developer.smar
- [Scene](#scene) - [Scene](#scene)
- [Switch](#switch) - [Switch](#switch)
- [Valve](#valve) - [Valve](#valve)
- [Water heater](#water-heater)
### Binary sensor ### Binary sensor
@ -274,6 +277,10 @@ The SmartThings update platform lets you update the firmware of devices that hav
The SmartThings Valve platform lets you control devices that have the [`valve`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#valve) capability, showing the valve status and opening and closing. The SmartThings Valve platform lets you control devices that have the [`valve`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#valve) capability, showing the valve status and opening and closing.
### Water heater
The SmartThings Water heater platform lets you control heat pumps that provide hot water.
## Troubleshooting ## Troubleshooting
### Enabling debug logs and diagnostics ### Enabling debug logs and diagnostics

View File

@ -1,193 +0,0 @@
---
title: SMS notifications via GSM-modem
description: SMS notification via GSM modem.
icon: gammu.png
ha_category:
- Notifications
ha_release: 0.105
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@ocalvo'
ha_domain: sms
ha_platforms:
- notify
- sensor
ha_integration_type: integration
---
The `sms` integration allows having a local execution SMS notification via [Gammu](https://wammu.eu/gammu/). This is ideal when the internet is offline or when the power goes out.
This integration provides the following platforms:
- Notify
{% include integrations/config_flow.md %}
## Notifications
An SMS message can be sent by calling the `notify.sms`. It will send the message to all phone numbers specified in the `target` parameter.
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
### Send message
```yaml
actions:
- action: notify.sms
data:
message: "This is a message for you!"
target: "+5068081-8181"
```
### Sending SMS using GSM alphabet
Some devices (receiving or sending) do not support Unicode (the default encoding). For these you can disable Unicode:
```yaml
actions:
- action: notify.sms
data:
message: "This is a message for you in ANSI"
target: "+5068081-8181"
data:
unicode: False
```
### Getting SMS messages
You can also receive SMS messages that are sent to the SIM card number in your device.
Every time there is a message received, `event: sms.incoming_sms` is fired with date, phone number and text message.
Sample automation that forward all SMS to `user1`:
#### Define a sensor in `configuration.yaml` to protect user phone number
```yaml
template:
- sensor:
- name: "User1 Phone Number"
state: !secret user1_phone_number
```
#### Define a script in `scripts.yaml` to use the sensor
{% raw %}
```yaml
notify_sms_user1:
alias: "Notify via SMS to User1"
fields:
message:
description: "The message content"
example: "The light is on!"
sequence:
- action: notify.sms
data:
message: "{{ message }}"
target: "{{ states('sensor.user1_phone_number') }}"
icon: mdi:chat-alert
```
{% endraw %}
#### Putting it all together in `automations.yaml`
{% raw %}
```yaml
- alias: "Forward SMS"
triggers:
- trigger: event
event_type: sms.incoming_sms
actions:
- action: script.notify_sms_user1
data:
message: |
From: {{trigger.event.data.phone}}
{{trigger.event.data.text}}
```
{% endraw %}
## Required hardware
You will need a USB GSM stick modem or device like SIM800L v2 connected via USB UART.
### List of modems known to work
- [SIM800C HAT form factor](https://www.amazon.com/gp/product/B07PQLRCNR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) Make sure to `enable_uart=1` on your `config.txt` boot file.
- [SIM800C](https://www.amazon.com/gp/product/B087Z6F953/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)
- [Huawei E3372](https://www.amazon.com/gp/product/B01N6P3HI2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)(
Note: E3372h-153 and E3372h-510 need to be unlocked [this guide](http://blog.asiantuntijakaveri.fi/2015/07/convert-huawei-e3372h-153-from.html), The Huawei E3372h-320 won't work at all, since it is locked down too much)
- [Huawei E3531](https://www.amazon.com/Modem-Huawei-Unlocked-Caribbean-Desbloqueado/dp/B011YZZ6Q2/ref=sr_1_1?keywords=Huawei+E3531&qid=1581447800&sr=8-1) (note: Devices with firmware versions 22.XX need to be unlocked using [this guide](https://community.home-assistant.io/t/trouble-setting-up-huawei-e3531s-2-with-sms-notifications-via-gsm-modem-integration/462737/9?u=alexschmitz222))
- [Huawei E3272](https://www.amazon.com/Huawei-E3272s-506-Unlocked-Americas-Europe/dp/B00HBL51OQ)
- ZTE K3565-Z
- Lenovo F5521gw (mPCI-E)
### List of modems known to NOT work
- Huawei E3372h-320
### List of modems that may work
Search in the [Gammu database](https://wammu.eu/phones/) for modems with AT connection.
### Huawei/ZTE modems (and similar) devices - NOT applicable for users of Home Assistant OS, Container or Supervised.
For some unknown reason, the rule that converts these modems from storage devices into serial devices may not run automatically. To work around this problem, follow the procedure below to change the modem mode and (optionally) create `udev` rule on a configuration USB stick for the device to switch to serial mode persistently.
1. Install the `usb_modeswitch` software to switch the modem operational mode (for Debian/Ubuntu distros):
```bash
sudo apt update && sudo apt install usb-modeswitch -y
```
2. Run `lsusb`, its output should be similar to this:
```bash
bus 000 device 001: ID 1FFF:342a
bus 001 device 005: ID 12d1:15ca <-------- Huawei is usually 12d1
bus 000 device 002: ID 2354:5352
bus 000 device 002: ID 1232:15ca
```
Identify the brand for your GSM modem, copy the `brand_Id` and `product_id` (In this case `brand_id = 12d1` and `product_Id = 15ca`)
3. Try disabling virtual cd-rom and change work mode to "only modem":
```bash
sudo /sbin/usb_modeswitch -X -v 12d1 -p 15ca
```
Re-plug the device. After this the modem correct should work without the following 'udev' rule.
4. (Optional) Configure the udev rule to persist the correct modem configuration even after disconnecting it:
Set this content in file `udev\10-gsm-modem.rules` in the [configuration USB](https://github.com/home-assistant/operating-system/blob/master/Documentation/configuration.md#automatic):
(Replace `brand_Id` and `product_id` for the numbers reported by `lsusb`)
```bash
ACTION=="add" \
, ATTRS{idVendor}=="brand_Id" \
, ATTRS{idProduct}=="product_Id" \
, RUN+="/sbin/usb_modeswitch -X -v brand_Id -p product_Id"
```
Here is a sample configuration file:
```bash
ACTION=="add" \
, ATTRS{idVendor}=="12d1" \
, ATTRS{idProduct}=="15ca" \
, RUN+="/sbin/usb_modeswitch -X -v 12d1 -p 15ca"
```
Re-plug the USB stick, reboot the device, run `lsusb` again.
The resulting product id now should be different and the brand id should be the same.
And `ls -l /dev/*USB*` should now report your device.
Note: if you have multiple USB devices, USB number order can change on boot. For this reason, it's preferable to use your device ID and look in `/dev/serial/by-id/*`. For example, `/dev/serial/by-id/usb-HUAWEI_MOBILE_HUAWEI_MOBILE-if00-port0`.
If the device is still not recognized, remove the parameter -X from the usb_modeswitch command and reboot again.
## More details:
- [Original thread discussion](https://community.home-assistant.io/t/send-sms-with-usb-gsm-modem-when-alarm-triggered/28942/38)

View File

@ -1,311 +0,0 @@
---
title: Snips
description: Instructions on how to integrate Snips within Home Assistant.
ha_category:
- Voice
ha_release: 0.48
ha_domain: snips
ha_iot_class: Local Push
ha_integration_type: integration
ha_quality_scale: legacy
---
{% warning %}
The Snips Console no longer available due to acquisition by Sonos. For more details, read the [announcement on the Snips forum](http://web.archive.org/web/20200109164247/https://forum.snips.ai/t/important-message-regarding-the-snips-console/4145).
{% endwarning %}
The [Snips Voice Platform](https://www.snips.ai) allows users to add powerful voice assistants to their Raspberry Pi devices without compromising on privacy. It runs 100% on-device, and does not require an internet connection. It features Hotword Detection, Automatic Speech Recognition (ASR), Natural Language Understanding (NLU) and Dialog Management.
The latest documentation can be found here: [Snips Platform Documentation](https://docs.snips.ai/).
![Snips Modules](/images/screenshots/snips_modules.png)
Snips takes voice or text as input and produces *intents* as output, which are explicit representations of an intention behind an utterance and which can subsequently be used by Home Assistant to perform appropriate actions.
![Snips Modules](/images/screenshots/snips_nlu.png)
## The Snips Voice Platform
### Installation
The Snips platform can be installed via the Snips APT/Debian repository.
```bash
sudo apt-get update
sudo apt-get install -y dirmngr
sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list'
sudo apt-key adv --fetch-keys https://raspbian.snips.ai/531DD1A7B702B14D.pub
sudo apt-get update
sudo apt-get install -y snips-platform-voice
```
Note that if the keyserver pgp.mit.edu is down then try to use another one in the 4th line, like pgp.surfnet.nl:
```bash
sudo apt-key adv --keyserver pgp.surfnet.nl --recv-keys D4F50CDCA10A2849
```
### Creating an assistant
Head over to the [Snips Console](https://console.snips.ai) to create your assistant. Launch the training and download by clicking on the "Download Assistant" button.
The next step is to get the assistant to work on your device. Unzip and copy the `assistant` folder that you downloaded from the web console to the path. Assuming your downloaded `assistant` folder is on your desktop, just run:
```bash
scp -r ~/Desktop/assistant pi@<raspi_hostname.local_or_IP>:/home/pi/.
```
Now ssh into your Raspberry Pi:
```bash
ssh pi@<raspi_hostname.local_or_IP>
```
By default, this command is `ssh pi@raspberrypi.local`, if you are using the default Raspberry Pi hostname.
Then, move the assistant to the right folder:
```bash
(pi) $ sudo mv /home/pi/assistant /usr/share/snips/assistant
```
Note that if you already have an assistant installed and wish to replace it then start by removing the previous one and then move the new one in its place:
```bash
(pi) $ sudo rm -r /usr/share/snips/assistant
(pi) $ sudo mv /home/pi/assistant /usr/share/snips/assistant
```
### Running Snips
Make sure that a microphone is plugged to the Raspberry Pi. If you are having trouble setting up audio, we have written a guide on [Raspberry Pi Microphones](https://docs.snips.ai/articles/raspberrypi/hardware/microphones).
Start the Snips Voice Platform by starting the `snips-*` actions:
```bash
sudo systemctl start "snips-*"
```
Snips is now ready to take voice commands from the microphone. To trigger the listening, simply say
_Hey Snips_
followed by a command, e.g.
_Set the lights to green in the living room_
As the Snips Platform parses this query into an intent, it will be published on MQTT, on the `hermes/intent/<intentName>` topic. The Snips Home Assistant integration subscribes to this topic, and handles the intent according to the rules defined in {% term "`configuration.yaml`" %} file, as explained below.
#### Optional: specifying an external MQTT broker
By default, Snips runs its own MQTT broker. But we can also tell Snips to use an external broker by specifying this when launching Snips. In this case, we need to specify this in the `/etc/snips.toml` configuration file. For more information on configuring this, see the [Snips Platform Configuration](https://docs.snips.ai/articles/platform/platform-configuration) article.
## Home Assistant configuration
{% configuration %}
feedback_sounds:
description: Turn on feedbacks sounds for Snips.
required: false
type: string
default: false
site_ids:
description: A list of siteIds if using multiple Snips instances. Used to make sure feedback is toggled on or off for all sites.
required: false
type: string
probability_threshold:
description: Threshold for intent probability. Range is from 0.00 to 1.00, 1 being highest match. Intents under this level are discarded.
require: false
type: float
{% endconfiguration %}
### Specifying the MQTT broker
Messages between Snips and Home Assistant are passed via MQTT. We can either point Snips to the MQTT broker used by Home Assistant, as explained above, or tell Home Assistant which [MQTT broker](/integrations/mqtt) to use by adding the following entry to the {% term "`configuration.yaml`" %} file:
```yaml
mqtt:
broker: MQTT_BROKER_IP
port: MQTT_BROKER_PORT
```
By default, Snips runs an MQTT broker on port 9898. So if we wish to use this broker, and if Snips and Home Assistant run on the same device, the entry will look as follows:
```yaml
mqtt:
broker: 127.0.0.1
port: 9898
```
Alternatively, MQTT can be configured to bridge messages between servers if using a custom MQTT broker such as [mosquitto](https://mosquitto.org/).
### Triggering actions
In Home Assistant, we trigger actions based on intents produced by Snips using the [`intent_script`](/integrations/intent_script) integration. For instance, the following block handles a `ActivateLightColor` intent to change light colors:
Note: If your Snips action is prefixed with a username (e.g., `john:playmusic` or `john__playmusic`), the Snips integration in Home Assistant will try and strip off the username. Bear this in mind if you get the error `Received unknown intent` even when what you see on the MQTT bus looks correct. Internally the Snips integration is trying to match the non-username version of the intent (i.e., just `playmusic`).
{% raw %}
```yaml
snips:
intent_script:
ActivateLightColor:
action:
- action: light.turn_on
target:
entity_id: 'light.{{ objectLocation | replace(" ","_") }}'
data:
color_name: "{{ objectColor }}"
```
{% endraw %}
In the `data` block, we have access to special variables, corresponding to the slot names for the intent. In the present case, the `ActivateLightColor` has two slots, `objectLocation` and `objectColor`.
### Special slots
Several special values for slots are populated with the `siteId` the intent originated from and the probability value for the intent, the `sessionId` generate by the dialogue manager, and `slote_name` raw which will contain the raw, uninterpreted text of the slot value.
In the above example, the slots are plain strings. However, Snips has a duration builtin value used for setting timers and this will be parsed to a seconds value.
In this example if we had an intent triggered with 'Set a timer for five minutes', `duration:` would equal 300 and `duration_raw:` would be set to 'five minutes'. The duration can be easily used to trigger Home Assistant events and the `duration_raw:` could be used to send a human readable response or alert.
{% raw %}
```yaml
SetTimer:
speech:
type: plain
text: "Set a timer"
action:
action: script.set_timer
data:
name: "{{ timer_name }}"
duration: "{{ timer_duration }}"
siteId: "{{ site_id }}"
sessionId: "{{ session_id }}"
duration_raw: "{{ raw_value }}"
probability: "{{ probability }}"
```
{% endraw %}
### Sending TTS Notifications
You can send TTS notifications to Snips using the `snips.say` and `snips.say_action` actions. `say_action` starts a session and waits for user response, "Would you like me to close the garage door?", "Yes, close the garage door".
#### Action `snips.say`
| Data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
| `text` | no | Text to say. |
| `site_id` | yes | Site to use to start session. |
| `custom_data` | yes | custom data that will be included with all messages in this session. |
#### Action `snips.say_action`
| Data attribute | Optional | Description |
|------------------------|----------|--------------------------------------------------------|
| `text` | no | Text to say. |
| `site_id` | yes | Site to use to start session. |
| `custom_data` | yes | custom data that will be included with all messages in this session. |
| `can_be_enqueued` | yes | If True, session waits for an open session to end, if False session is dropped if one is running. |
| `intent_filter` | yes | Array of Strings - A list of intents names to restrict the NLU resolution to on the first query. |
### Configuration Examples
#### Turn on a light
```yaml
intent_script:
turn_on_light:
speech:
type: plain
text: "OK, turning on the light"
action:
action: light.turn_on
```
##### Open a Garage Door
```yaml
intent_script:
OpenGarageDoor:
speech:
type: plain
text: "OK, opening the garage door"
action:
- action: cover.open_cover
target:
entity_id: garage_door
```
##### Intiating a query
Here is a more complex example. The automation is triggered if the garage door is open for more than 10 minutes. Snips will then ask you if you want to close it and if you respond with something like "Close the garage door" it will do so. Unfortunately there is no builtin support for yes and no responses.
```yaml
automation:
garage_door_has_been_open:
triggers:
- trigger: state
entity_id: binary_sensor.my_garage_door_sensor
from: "off"
to: "on"
for:
minutes: 10
sequence:
action: snips.say_action
data:
text: "Garage door has been open 10 minutes, would you like me to close it?"
intent_filter:
- closeGarageDoor
# This intent is fired if the user responds with the appropriate intent after the above notification
intent_script:
closeGarageDoor:
speech:
type: plain
text: "OK, closing the garage door"
actions:
- action: script.garage_door_close
```
##### Weather
So now you can open and close your garage door, let's check the weather. Add the Weather by Snips Skill to your assistant. Create a weather sensor, in this example [Dark Sky](/integrations/darksky) and the `api_key` in the `secrets.yaml` file.
```yaml
- platform: darksky
name: "Dark Sky Weather"
api_key: !secret dark_sky_key
scan_interval:
minutes: 10
monitored_conditions:
- summary
- hourly_summary
- temperature
- temperature_max
- temperature_min
```
Then add this to your configuration file.
{% raw %}
```yaml
intent_script:
searchWeatherForecast:
speech:
type: plain
text: >
The weather is currently
{{ states('sensor.dark_sky_weather_temperature') | round(0) }}
degrees outside and {{ states('sensor.dark_sky_weather_summary') }}.
The high today will be
{{ states('sensor.dark_sky_weather_daily_high_temperature') | round(0)}}
and {{ states('sensor.dark_sky_weather_hourly_summary') }}
```
{% endraw %}

View File

@ -297,25 +297,3 @@ The unit of measurement returned by the above query is `MiB`, please configure t
Set the device class to `Data size` so you can use UI unit conversion. Set the device class to `Data size` so you can use UI unit conversion.
{% endtip %} {% endtip %}
#### MS SQL
Use the same Database URL as for the `recorder` integration. Change `DB_NAME` to the name that you use as the database name, to ensure that your sensor will work properly. Be sure `username` has enough rights to access the sys tables.
Example Database URL: `"mssql+pyodbc://username:password@SERVER_IP:1433/DB_NAME?charset=utf8&driver=FreeTDS"`
{% note %}
Connecting with MSSQL requires "pyodbc" to be installed on your system, which can only be done on systems using the Home Assistant Core installation type to be able to install the necessary dependencies.
"pyodbc" has special requirements which need to be pre-installed before installation, see the ["pyodbc" wiki](https://github.com/mkleehammer/pyodbc/wiki/Install) for installation instructions
{% endnote %}
```sql
SELECT TOP 1 SUM(m.size) * 8 / 1024 as size FROM sys.master_files m INNER JOIN sys.databases d ON d.database_id=m.database_id WHERE d.name='DB_NAME';
```
Use `size` as column for value.
{% tip %}
The unit of measurement returned by the above query is `MiB`, please configure this correctly.
Set the device class to `Data size` so you can use UI unit conversion.
{% endtip %}

View File

@ -3,6 +3,7 @@ title: Squeezebox (Lyrion Music Server)
description: Instructions on how to integrate Squeezebox players and a Lyrion Music Server (LMS) into Home Assistant. description: Instructions on how to integrate Squeezebox players and a Lyrion Music Server (LMS) into Home Assistant.
ha_category: ha_category:
- Media player - Media player
- Update
ha_release: pre 0.7 ha_release: pre 0.7
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_domain: squeezebox ha_domain: squeezebox
@ -17,6 +18,8 @@ ha_platforms:
- button - button
- media_player - media_player
- sensor - sensor
- switch
- update
ha_integration_type: integration ha_integration_type: integration
--- ---
@ -164,6 +167,11 @@ data:
## Supported functionality ## Supported functionality
### Switches
- **Alarm**: Enables a scheduled alarm to sound. Alarms must also be enabled on the associated player for the alarm to sound, using the Alarms Enabled switch or directly on the Lyrion Music Server for that player.
- **Alarms Enabled**: Enables a player to sound alarms. Disabling will prevent all alarms from sounding on that player, regardless of whether the individual alarm is enabled
### Binary sensors ### Binary sensors
The integration provides the following entities. The integration provides the following entities.
@ -219,6 +227,11 @@ The integration provides the following entities.
- **Total songs** - **Total songs**
- **Description**: Total number of music files currently in service. - **Description**: Total number of music files currently in service.
### Updates
-- **Lyrion Music Server**: Update of the server software is available.
-- **Updated plugins**: Named Plugins will be updated on the next restart. For some installation types, the service will be restarted automatically after the **Install** button has been selected. Allow enough time for the service to restart. It will become briefly unavailable.
### Actions ### Actions
The integration provides the following actions. The integration provides the following actions.

View File

@ -23,6 +23,50 @@ The **Suez Water** {% term integration %} fetches your water consumption data fr
- The **Water usage yesterday** sensor shows yesterday's water consumption data if that data is available. - The **Water usage yesterday** sensor shows yesterday's water consumption data if that data is available.
- The **Water price** sensor shows the current water price in euros per cubic meter (€/m3). - The **Water price** sensor shows the current water price in euros per cubic meter (€/m3).
### Extra attributes
Extra attributes of `Water usage yesterday` sensor:
- Daily consumption for the current month
- Daily consumption for the previous month
- Monthly consumption for the last 26 months
- Highest monthly consumption
- Last year total consumption
- Current year total consumption
## Energy
The integration provides statistics containing all available data from Suez.
The data is fetched every 12 hours and is updated once a day by Suez.
You can find the statistics in {% my developer_statistics title="**Developer Tools** > **Statistics**"%} and search for "suez_water".
**Note: Due to Suez's daily update schedule, data for the current day will not be available, and yesterday's data may be delayed depending on when you check**
At the initial setup, the integration pulls historical daily usage since the counter installation.
{% details "Prerequisites" %}
- The Energy dashboard must be enabled in your Home Assistant instance. If you haven't set it up yet, please refer to the [Energy dashboard documentation](/home-assistant-energy/).
{% enddetails %}
In the configuration of the energy dashboard ({% my config_energy title="**Settings** > **Dashboards** > **Energy**" %}):
1. Select **Add consumption** for **Water source**.
2. Select **Suez water Consumption** followed by your counter ID (e.g., "Suez water Consumption 123456789") for the **consumed water**.
3. Select **Suez water Cost** followed by your counter ID for the **total price**
### Statistics details
- **Suez water consumption** (`suez_water_water_consumption_statistics_{counter_id}`):
- Contains daily water consumption in liters
- Provides both state and sum statistics for each day
- **Suez water cost** (`suez_water_water_cost_statistics_{counter_id}`):
- Contains daily cost calculations in euros
- Provides both state and sum statistics for each day
- **Important**: Historical costs are calculated using the current water price since historical price information is not available. If water prices have changed over time, the calculated historical costs may not match your actual bills.
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
{% configuration_basic %} {% configuration_basic %}
@ -50,17 +94,6 @@ Counter ID:
{% endconfiguration_basic %} {% endconfiguration_basic %}
## Extra attributes
Extra attributes of `Water usage yesterday` sensor:
- Daily consumption for the current month
- Daily consumption for the previous month
- Monthly consumption for the last 26 months
- Highest monthly consumption
- Last year total consumption
- Current year total consumption
## Removing the integration ## Removing the integration
This integration can be removed by following these steps: This integration can be removed by following these steps:

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: pre 0.7 ha_release: pre 0.7
ha_quality_scale: internal ha_quality_scale: internal
ha_codeowners: ha_codeowners:
- '@Swamp-Ig' - '@home-assistant/core'
ha_iot_class: Calculated ha_iot_class: Calculated
ha_domain: sun ha_domain: sun
ha_config_flow: true ha_config_flow: true

View File

@ -4,10 +4,12 @@ description: Instructions on how to set up SwitchBot Devices.
ha_category: ha_category:
- Binary sensor - Binary sensor
- Cover - Cover
- Fan
- Light - Light
- Lock - Lock
- Sensor - Sensor
- Switch - Switch
- Vacuum
ha_release: 0.78 ha_release: 0.78
ha_iot_class: Local Push ha_iot_class: Local Push
ha_codeowners: ha_codeowners:
@ -16,6 +18,7 @@ ha_codeowners:
- '@murtas' - '@murtas'
- '@Eloston' - '@Eloston'
- '@dsypniewski' - '@dsypniewski'
- '@zerzhang'
ha_domain: switchbot ha_domain: switchbot
ha_bluetooth: true ha_bluetooth: true
ha_platforms: ha_platforms:
@ -28,8 +31,10 @@ ha_platforms:
- lock - lock
- sensor - sensor
- switch - switch
- vacuum
ha_config_flow: true ha_config_flow: true
ha_integration_type: integration ha_integration_type: integration
ha_quality_scale: gold
--- ---
The SwitchBot integration allows you to control SwitchBot [devices](https://www.switch-bot.com/) such as sensors, locks, shades, lights, plugs, robot vacuums, hubs and etc. The SwitchBot integration allows you to control SwitchBot [devices](https://www.switch-bot.com/) such as sensors, locks, shades, lights, plugs, robot vacuums, hubs and etc.
@ -119,6 +124,8 @@ For instructions on how to obtain the encryption key, see README in [PySwitchbot
- [Lock (WoLock)](https://switch-bot.com/pages/switchbot-lock) - [Lock (WoLock)](https://switch-bot.com/pages/switchbot-lock)
- [Lock Pro (WoLockPro)](https://www.switch-bot.com/pages/switchbot-lock-pro) - [Lock Pro (WoLockPro)](https://www.switch-bot.com/pages/switchbot-lock-pro)
- [Lock Ultra (WoLockUltra)](https://www.switch-bot.com/products/switchbot-lock-ultra)
- [Lock Lite (WoLockLite)](https://www.switchbot.jp/products/switchbot-lock-lite)
### Humidifiers ### Humidifiers
@ -140,11 +147,24 @@ For instructions on how to obtain the encryption key, see README in [PySwitchbot
- [Hub 2 (WoHub2)](https://switch-bot.com/pages/switchbot-hub-2) (currently only supports retrieving sensor data, does not yet support device control) - [Hub 2 (WoHub2)](https://switch-bot.com/pages/switchbot-hub-2) (currently only supports retrieving sensor data, does not yet support device control)
- [Hub Mini Matter Enabled](https://www.switch-bot.com/products/switchbot-hub-mini-matter-enabled)(currently only supports retrieving sensor data, does not yet support device control) - [Hub Mini Matter Enabled](https://www.switch-bot.com/products/switchbot-hub-mini-matter-enabled)(currently only supports retrieving sensor data, does not yet support device control)
- [Hub 3 (WoHub3)](https://www.switch-bot.com/products/switchbot-hub-3)(currently only supports retrieving sensor data, does not yet support device control)
### Fans ### Fans
- [Circulator Fan](https://www.switch-bot.com/products/switchbot-battery-circulator-fan) - [Circulator Fan](https://www.switch-bot.com/products/switchbot-battery-circulator-fan)
### Vacuums
- [K10+](https://www.switch-bot.com/products/switchbot-mini-robot-vacuum-k10)
- [K10+ Pro](https://www.switch-bot.com/products/switchbot-mini-robot-vacuum-k10-pro)
- [K10+ Pro Combo](https://www.switch-bot.com/products/switchbot-k10-pro-combo)
- [K20](https://www.switchbot.jp/products/switchbot-robot-vacuum-cleaner-k20-pro)
- [S10](https://www.switch-bot.com/products/switchbot-floor-cleaning-robot-s10)
### Air purifiers
- [Air Purifier](https://www.switch-bot.com/products/switchbot-air-purifier)
- [Air Purifier Table](https://www.switch-bot.com/products/switchbot-air-purifier-table)
## Supported functionality ## Supported functionality
### Common ### Common
@ -402,6 +422,30 @@ Features:
- calibration state - calibration state
- get battery level - get battery level
#### Lock Ultra
This is an encrypted device.
Features:
- Lock or unlock
- open or closed state
- auto-lock paused state
- calibration state
- get battery level
#### Lock Lite
This is an encrypted device.
Features:
- Lock or unlock
- open or closed state
- auto-lock paused state
- calibration state
- get battery level
### Hubs ### Hubs
Some of the hubs can be served as a bridge while the sensor data can be retrieved via Bluetooth connection. Hub 2 displays temperature and humidity through a sensor cable. Without a digital display, Hub Mini Matter Enabled can also read from a sensor cable. Some of the hubs can be served as a bridge while the sensor data can be retrieved via Bluetooth connection. Hub 2 displays temperature and humidity through a sensor cable. Without a digital display, Hub Mini Matter Enabled can also read from a sensor cable.
@ -421,9 +465,20 @@ Features:
- get temperature - get temperature
- get humidity - get humidity
#### Hub3
Features:
- get temperature
- get humidity
- get light level
- motion detection state
### Fans ### Fans
Fan entities are added for Circulator Fan. Fan entities are added for Circulator Fan, Air Purifier, and Air Purifier Table
#### Circulator Fan
Features: Features:
@ -433,6 +488,35 @@ Features:
- set mode - set mode
- oscillate left and right - oscillate left and right
#### Air Purifier
This is an encrypted device.
Features:
- turn on
- turn off
- set mode
#### Air Purifier Table
This is an encrypted device.
Features:
- turn on
- turn off
- set mode
### Vacuums
Vacuum entities are added for K10+, K10+ Pro, K10+ Pro Combo, K20, S10.
Features:
- start
- return to base
- get battery
## Data updates ## Data updates

View File

@ -2,6 +2,7 @@
title: SwitchBot Cloud title: SwitchBot Cloud
description: Instructions on how to set up SwitchBot Devices. description: Instructions on how to set up SwitchBot Devices.
ha_category: ha_category:
- Binary Sensor
- Button - Button
- Hub - Hub
- Lock - Lock
@ -18,6 +19,7 @@ ha_codeowners:
- '@Gigatrappeur' - '@Gigatrappeur'
ha_domain: switchbot_cloud ha_domain: switchbot_cloud
ha_platforms: ha_platforms:
- binary_sensor
- button - button
- climate - climate
- lock - lock
@ -32,7 +34,7 @@ The SwitchBot Cloud integration allows you to control SwitchBot [devices](https:
## Prerequisites ## Prerequisites
In order to use this integration, you will need at least a SwitchBot Hub and a SwitchBot account to get a token and secret key from the SwitchBot mobile app in **Profiles** > **Preferences** > **Developer Options**. If **Developer Options** is not present in preferences, tap the App Version (e.g. 6.24) several times (5~15 times) in succession to open the **Developer Options**. In order to use this integration, you will need at least a SwitchBot Hub and a SwitchBot account to get a token and secret key from the SwitchBot mobile app in **Profiles** > **Preferences** > **Developer Options**. If **Developer Options** is not present in preferences, tap the App Version (e.g. 6.24) several times (5~15 times) in succession to open the **Developer Options**. See also [SwitchBot's blog](https://blog.switch-bot.com/switchbot-x-home-assistant-the-official-setup-tips-guide-you-asked-for-3/#cloud-integration) for more information specific to the app.
Please note, device names configured in the SwitchBot app are transferred into Home Assistant. Please note, device names configured in the SwitchBot app are transferred into Home Assistant.
@ -67,3 +69,11 @@ Each sensor will request a status update from the SwitchBot Cloud API once every
{% warning %} {% warning %}
For IR Appliances, the state is inferred from previous commands in Home Assistant and might not reflect reality if you use other ways to control the device. For IR Appliances, the state is inferred from previous commands in Home Assistant and might not reflect reality if you use other ways to control the device.
{% endwarning %} {% endwarning %}
## Webhook support
For vacuums, the states are updated from SwitchBot's cloud.
{% warning %}
Only ONE webhook URL seems to be accepted by the SwitchBot's cloud. So, if you want several applications notified, you need to use a “proxy” to re-dispatch the message to the other applications.
{% endwarning %}

View File

@ -2,22 +2,26 @@
title: Template title: Template
description: Instructions on how to integrate Template Sensors into Home Assistant. description: Instructions on how to integrate Template Sensors into Home Assistant.
ha_category: ha_category:
- Alarm Control Panel
- Binary sensor - Binary sensor
- Button - Button
- Cover - Cover
- Fan
- Helper - Helper
- Image - Image
- Light - Light
- Lock
- Number - Number
- Select - Select
- Sensor - Sensor
- Switch - Switch
- Vacuum
- Weather
ha_release: 0.12 ha_release: 0.12
ha_iot_class: Local Push ha_iot_class: Local Push
ha_quality_scale: internal ha_quality_scale: internal
ha_codeowners: ha_codeowners:
- '@Petro31' - '@Petro31'
- '@PhracturedBlue'
- '@home-assistant/core' - '@home-assistant/core'
ha_domain: template ha_domain: template
ha_platforms: ha_platforms:
@ -46,20 +50,18 @@ related:
The `template` integration allows creating entities which derive their values from other data. This is done by specifying [templates](/docs/configuration/templating/) for properties of an entity, like the name or the state. The `template` integration allows creating entities which derive their values from other data. This is done by specifying [templates](/docs/configuration/templating/) for properties of an entity, like the name or the state.
Sensors, binary (on/off) sensors, buttons, images, numbers, selects, and switches are covered on this page. They can be configured using [UI](#configuration) or [YAML](#yaml-configuration) file. Alarm control panels, binary sensors, buttons, covers, fans, images, lights, locks, numbers, selects, sensors, switches, vacuums, and weathers are covered on this page. They can be configured using [UI](#configuration) or [YAML](#yaml-configuration) file.
For other types, please see the specific pages:
- [Alarm control panel](/integrations/alarm_control_panel.template/)
- [Fan](/integrations/fan.template/)
- [Lock](/integrations/lock.template/)
- [Vacuum](/integrations/vacuum.template/)
- [Weather](/integrations/weather.template/)
For Legacy types, please see the specific pages: For Legacy types, please see the specific pages:
- [Alarm control panel](/integrations/alarm_control_panel.template/)
- [Cover](/integrations/cover.template/) - [Cover](/integrations/cover.template/)
- [Fan](/integrations/fan.template/)
- [Light](/integrations/light.template/) - [Light](/integrations/light.template/)
- [Lock](/integrations/lock.template/)
- [Switch](/integrations/switch.template/) - [Switch](/integrations/switch.template/)
- [Vacuum](/integrations/vacuum.template/)
- [Weather](/integrations/weather.template/)
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
@ -75,11 +77,11 @@ If you need more specific features for your use case, the manual [YAML-configura
## YAML configuration ## YAML configuration
Entities (binary sensors, buttons, covers, images, lights, numbers, selects, sensors, switches, and weathers) are defined in your YAML configuration files under the `template:` key. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain optional update triggers. Entities (alarm control panels, binary sensors, buttons, covers, fans, images, lights, locks, numbers, selects, sensors, switches, vacuums, and weathers) are defined in your YAML configuration files under the `template:` key. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain optional update triggers.
_For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._ _For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._
### State-based template binary sensors, buttons, covers, images, lights, numbers, selects, sensors, switches, and weathers ### State-based template alarm control panels, binary sensors, buttons, covers, fans, images, lights, numbers, selects, sensors, switches, vacuums, and weathers
Template entities will by default update as soon as any of the referenced data in the template updates. Template entities will by default update as soon as any of the referenced data in the template updates.
@ -230,6 +232,53 @@ binary_sensor:
required: false required: false
type: device_class type: device_class
default: None default: None
alarm_control_panel:
description: List of alarm control panels
required: true
type: map
keys:
state:
description: "Defines a template to set the state of the alarm panel. Only the states `armed_away`, `armed_home`, `armed_night`, `armed_vacation`, `arming`, `disarmed`, `pending`, `triggered` and `unavailable` are used."
required: false
type: template
disarm:
description: Defines an action to run when the alarm is disarmed.
required: false
type: action
arm_away:
description: Defines an action to run when the alarm is armed to away mode.
required: false
type: action
arm_home:
description: Defines an action to run when the alarm is armed to home mode.
required: false
type: action
arm_night:
description: Defines an action to run when the alarm is armed to night mode.
required: false
type: action
arm_vacation:
description: Defines an action to run when the alarm is armed to vacation mode.
required: false
type: action
arm_custom_bypass:
description: Defines an action to run when the alarm is armed to custom bypass mode.
required: false
type: action
trigger:
description: Defines an action to run when the alarm is triggered.
required: false
type: action
code_arm_required:
description: If true, the code is required to arm the alarm.
required: false
type: boolean
default: true
code_format:
description: One of `number`, `text` or `no_code`. Format for the code used to arm/disarm the alarm.
required: false
type: string
default: number
number: number:
description: List of numbers description: List of numbers
required: true required: true
@ -348,6 +397,65 @@ cover:
description: Defines a template to get the tilt state of the cover. Legal values are numbers between `0` (closed) and `100` (open). If the template produces a `None` value, the current tilt state will be set to `unknown`. description: Defines a template to get the tilt state of the cover. Legal values are numbers between `0` (closed) and `100` (open). If the template produces a `None` value, the current tilt state will be set to `unknown`.
required: false required: false
type: template type: template
fan:
description: List of fans
required: true
type: map
keys:
state:
description: "Defines a template to get the state of the fan. Valid values: `on`, `off`."
required: true
type: template
percentage:
description: Defines a template to get the speed percentage of the fan.
required: false
type: template
preset_mode:
description: Defines a template to get the preset mode of the fan.
required: false
type: template
oscillating:
description: "Defines a template to get the osc state of the fan. Valid values: `true`, `false`."
required: false
type: template
direction:
description: "Defines a template to get the direction of the fan. Valid values: `forward`, `reverse`."
required: false
type: template
turn_on:
description: Defines an action to run when the fan is turned on.
required: true
type: action
turn_off:
description: Defines an action to run when the fan is turned off.
required: true
type: action
set_percentage:
description: Defines an action to run when the fan is given a speed percentage command.
required: false
type: action
set_preset_mode:
description: Defines an action to run when the fan is given a preset command.
required: false
type: action
set_oscillating:
description: Defines an action to run when the fan is given an oscillation state command.
required: false
type: action
set_direction:
description: Defines an action to run when the fan is given a direction command.
required: false
type: action
preset_modes:
description: List of preset modes the fan is capable of. This is an arbitrary list of strings and must not contain any speeds.
required: false
type: [string, list]
default: []
speed_count:
description: The number of speeds the fan supports. Used to calculate the percentage step for the `fan.increase_speed` and `fan.decrease_speed` actions.
required: false
type: integer
default: 100
image: image:
description: List of images description: List of images
required: true required: true
@ -463,6 +571,37 @@ light:
description: Defines an action to run when the light is given an effect command. Receives the variable `effect`. May also receive the variables `brightness`, and/or `transition`. description: Defines an action to run when the light is given an effect command. Receives the variable `effect`. May also receive the variables `brightness`, and/or `transition`.
required: inclusive required: inclusive
type: action type: action
lock:
description: List of locks
required: true
type: map
keys:
state:
description: Defines a template to set the state of the lock.
required: true
type: template
code_format:
description: Defines a template to get the `code_format` attribute of the entity. This template must evaluate to a valid [Python regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) or `None`. If it evaluates to a not-`None` value, you are prompted to enter a code when interacting with the lock. The code will be matched against the regular expression, and the lock/unlock actions will be executed only if they match. The actual _validity_ of the entered code must be verified within these actions. If there's a syntax error in the template, the entity will be unavailable. If the template fails to render for other reasons or if the regular expression is invalid, no code will be accepted, and the lock/unlock actions will never be invoked.
required: false
type: template
default: None
lock:
description: Defines an action to run when the lock is locked.
required: true
type: action
unlock:
description: Defines an action to run when the lock is unlocked.
required: true
type: action
open:
description: Defines an action to run when the lock is opened.
required: false
type: action
optimistic:
description: Flag that defines if the lock works in optimistic mode.
required: false
type: boolean
default: false
switch: switch:
description: List of switches description: List of switches
required: true required: true
@ -481,6 +620,64 @@ switch:
description: Defines an action or list of actions to run when the switch is turned off. description: Defines an action or list of actions to run when the switch is turned off.
required: true required: true
type: action type: action
vacuum:
description: List of vacuum entities
required: true
type: map
keys:
state:
description: "Defines a template to get the state of the vacuum. Valid value: `docked`/`cleaning`/`idle`/`paused`/`returning`/`error`"
required: false
type: template
battery_level:
description: "Defines a template to get the battery level of the vacuum. Legal values are numbers between `0` and `100`."
required: false
type: template
fan_speed:
description: Defines a template to get the fan speed of the vacuum.
required: false
type: template
attributes:
description: Defines templates for attributes of the sensor.
required: false
type: map
keys:
"attribute: template":
description: The attribute and corresponding template.
required: true
type: template
start:
description: Defines an action to run when the vacuum is started.
required: true
type: action
pause:
description: Defines an action to run when the vacuum is paused.
required: false
type: action
stop:
description: Defines an action to run when the vacuum is stopped.
required: false
type: action
return_to_base:
description: Defines an action to run when the vacuum is given a return to base command.
required: false
type: action
clean_spot:
description: Defines an action to run when the vacuum is given a clean spot command.
required: false
type: action
locate:
description: Defines an action to run when the vacuum is given a locate command.
required: false
type: action
set_fan_speed:
description: Defines an action to run when the vacuum is given a command to set the fan speed.
required: false
type: action
fan_speeds:
description: List of fan speeds supported by the vacuum.
required: false
type: [string, list]
weather: weather:
description: List of weather entities description: List of weather entities
required: true required: true

View File

@ -1,221 +0,0 @@
---
title: TensorFlow
description: Detect and recognize objects with TensorFlow.
ha_category:
- Image processing
ha_iot_class: Local Polling
ha_release: 0.82
ha_domain: tensorflow
ha_integration_type: integration
related:
- docs: /docs/configuration/
title: Configuration file
ha_quality_scale: legacy
---
The TensorFlow image processing {% term integration %} allows you to detect and recognize objects in a camera image using [TensorFlow](https://www.tensorflow.org/). The state of the entity is the number of objects detected, and recognized objects are listed in the `summary` attribute along with quantity. The `matches` attribute provides the confidence `score` for recognition and the bounding `box` of the object for each detection category.
{% important %}
This integration is only available on Home Assistant Core installation types. Unfortunately, it cannot be used with Home Assistant OS, Supervised or Container.
{% endimportant %}
## Prerequisites
The following packages must be installed on Debian before following the setup for the integration to work:
`sudo apt-get install libatlas-base-dev libopenjp2-7 libtiff5`
It is possible that Home Assistant is unable to install the Python TensorFlow bindings. If that is the case,
you'll need to install those manually using: `pip install tensorflow==2.2.0`, as the Python wheel is
not available for all platforms.
See [the official install guide](https://www.tensorflow.org/install/) for other options.
Furthermore, the official Python TensorFlow wheels by Google, require your CPU to support the `avx` extension.
If your CPU lacks those capabilities, Home Assistant will crash when using TensorFlow, without any message.
## Preparation
This integration requires files to be downloaded, compiled on your computer, and added to the Home Assistant configuration directory. These steps can be performed by cloning [this repository](https://github.com/hunterjm/hass-tensorflow) into your configuration directory. Alternatively, if you wish to perform the process manually, the process is as follows:
Create the following folder structure in your configuration directory.
```bash
|- {config_dir}
|- tensorflow/
|- models/
```
Follow these steps (Linux) to compile the object detection library.
```bash
# Clone tensorflow/models
git clone https://github.com/tensorflow/models.git
# Compile Protobuf (apt-get install protobuf-compiler)
cd models/research
protoc object_detection/protos/*.proto --python_out=.
# Copy object_detection to {config_dir}
cp -r object_detection {config_dir}/tensorflow
```
Your final folder structure should look as follows
```bash
|- {config_dir}
|- tensorflow/
|- models/
|- object_detection/
|- ...
```
## Model Selection
Lastly, it is time to pick a model. It is recommended to start with one of the COCO models available in the [Model Detection Zoo](https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md).
The trade-off between the different models is accuracy vs speed. Users with a decent CPU should start with one of the `EfficientDet` models. If you are running on an ARM device like a Raspberry Pi, start with the `SSD MobileNet v2 320x320` model.
Whichever model you choose, download it and extract in to the `tensorflow/models` folder in your configuration directory.
## Configuration
To enable this {% term integration %} in your installation, add the following to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
```yaml
# Example configuration.yaml entry
image_processing:
- platform: tensorflow
source:
- entity_id: camera.local_file
model:
graph: /config/tensorflow/models/efficientdet_d0_coco17_tpu-32/
```
{% configuration %}
source:
description: The list of image sources.
required: true
type: map
keys:
entity_id:
description: A camera entity id to get picture from.
required: true
type: string
name:
description: This parameter allows you to override the name of your `image_processing` entity.
required: false
type: string
file_out:
description: A [template](/docs/configuration/templating/#processing-incoming-data) for the integration to save processed images including bounding boxes. `camera_entity` is available as the `entity_id` string of the triggered source camera.
required: false
type: list
model:
description: Information about the TensorFlow model.
required: true
type: map
keys:
graph:
description: Full path to the base model directory.
required: true
type: string
labels:
description: Full path to a `*label_map.pbtext`.
required: false
type: string
default: tensorflow/object_detection/data/mscoco_label_map.pbtxt
label_offset:
description: Offset for mapping label ID to a name (only use for custom models)
required: false
type: integer
default: 1
model_dir:
description: Full path to TensorFlow models directory.
required: false
type: string
default: "`/tensorflow` inside configuration"
area:
description: Custom detection area. Only objects fully in this box will be reported. Top of image is 0, bottom is 1. Same left to right.
required: false
type: map
keys:
top:
description: Top line defined as % from top of image.
required: false
type: float
default: 0
left:
description: Left line defined as % from left of image.
required: false
type: float
default: 0
bottom:
description: Bottom line defined as % from top of image.
required: false
type: float
default: 1
right:
description: Right line defined as % from left of image.
required: false
type: float
default: 1
categories:
description: List of categories to include in object detection. Can be seen in the file provided to `labels`.
type: list
required: false
{% endconfiguration %}
`categories` can also be defined as dictionary providing an `area` for each category as seen in the advanced configuration below:
{% raw %}
```yaml
# Example advanced configuration.yaml entry
image_processing:
- platform: tensorflow
source:
- entity_id: camera.driveway
- entity_id: camera.backyard
file_out:
- "/tmp/{{ camera_entity.split('.')[1] }}_latest.jpg"
- "/tmp/{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
model:
graph: /config/tensorflow/models/efficientdet_d0_coco17_tpu-32/
categories:
- category: person
area:
# Exclude top 10% of image
top: 0.1
# Exclude right 15% of image
right: 0.85
- car
- truck
```
{% endraw %}
## Optimizing resources
[Image processing components](/integrations/image_processing/) process the image from a camera at a fixed period given by the `scan_interval`. This leads to excessive processing if the image on the camera hasn't changed, as the default `scan_interval` is 10 seconds. You can override this by adding to your configuration `scan_interval: 10000` (setting the interval to 10,000 seconds), and then call the `image_processing.scan` action when you actually want to perform processing.
```yaml
# Example advanced configuration.yaml entry
image_processing:
- platform: tensorflow
scan_interval: 10000
source:
- entity_id: camera.driveway
- entity_id: camera.backyard
```
```yaml
# Example advanced automations.yaml entry
- alias: "TensorFlow scanning"
triggers:
- trigger: state
entity_id:
- binary_sensor.driveway
actions:
- action: image_processing.scan
target:
entity_id: camera.driveway
```

View File

@ -84,6 +84,7 @@ Entities in the device tracker platform specifically require the `Vehicle locati
|Binary sensor|Front passenger window|Yes| |Binary sensor|Front passenger window|Yes|
|Binary sensor|GPS state|No| |Binary sensor|GPS state|No|
|Binary sensor|Guest mode enabled|No| |Binary sensor|Guest mode enabled|No|
|Binary sensor|Hazard lights|No|
|Binary sensor|High beams|No| |Binary sensor|High beams|No|
|Binary sensor|Homelink nearby|No| |Binary sensor|Homelink nearby|No|
|Binary sensor|HVAC auto mode|No| |Binary sensor|HVAC auto mode|No|
@ -181,6 +182,7 @@ Entities in the device tracker platform specifically require the `Vehicle locati
|Sensor|HVAC power state|No| |Sensor|HVAC power state|No|
|Sensor|Ideal battery range|No| |Sensor|Ideal battery range|No|
|Sensor|Inside temperature|Yes| |Sensor|Inside temperature|Yes|
|Sensor|Left temperature request|No|
|Sensor|Odometer|No| |Sensor|Odometer|No|
|Sensor|Outside temperature|Yes| |Sensor|Outside temperature|Yes|
|Sensor|Passenger temperature setting|No| |Sensor|Passenger temperature setting|No|
@ -209,6 +211,7 @@ Entities in the device tracker platform specifically require the `Vehicle locati
|Sensor|Rear right drive inverter temperature|No| |Sensor|Rear right drive inverter temperature|No|
|Sensor|Rear right drive unit actual torque|No| |Sensor|Rear right drive unit actual torque|No|
|Sensor|Rear right drive unit stator temperature|No| |Sensor|Rear right drive unit stator temperature|No|
|Sensor|Right temperature request|No|
|Sensor|Roof color|No| |Sensor|Roof color|No|
|Sensor|Scheduled charging mode|No| |Sensor|Scheduled charging mode|No|
|Sensor|Scheduled charging start time|No| |Sensor|Scheduled charging start time|No|
@ -239,6 +242,7 @@ Entities in the device tracker platform specifically require the `Vehicle locati
|Switch|Charge|Yes| |Switch|Charge|Yes|
|Switch|Defrost|Yes| |Switch|Defrost|Yes|
|Switch|Sentry mode|Yes| |Switch|Sentry mode|Yes|
|Switch|Valet mode|Yes|
|Update|Update|Yes| |Update|Update|Yes|
### Energy sites ### Energy sites
@ -293,6 +297,12 @@ Entities in the device tracker platform specifically require the `Vehicle locati
|Sensor|State|Yes| |Sensor|State|Yes|
|Sensor|Vehicle|Yes| |Sensor|Vehicle|Yes|
### Metadata
|Domain|Name|Enabled|
|---|---|---|
|Sensor|Teslemetry credits|Yes|
## Actions ## Actions
Teslemetry provides various custom actions to interact with the Tesla Fleet API directly. Teslemetry provides various custom actions to interact with the Tesla Fleet API directly.

View File

@ -31,6 +31,7 @@ ha_platforms:
- switch - switch
- time - time
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
ha_dhcp: true
ha_zeroconf: true ha_zeroconf: true
--- ---

View File

@ -50,16 +50,6 @@ Log in to the [Total Connect website](https://totalconnect2.com) and create a "s
Give the user access to your Location, along with a user code, usually a 4 digit number. Give the user access to your Location, along with a user code, usually a 4 digit number.
{% details "Notes for Home Assistant Core Installations" %}
If you have issues running this integration, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command:
```bash
sudo apt install libxml2-dev libxmlsec1-dev
```
{% enddetails %}
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Configuration Options ## Configuration Options

View File

@ -53,14 +53,6 @@ After updating your IKEA Trådfri Gateway firmware it might be necessary to repe
Then restart Home Assistant. When prompted, enter the security key and click *configure*, just like during initial setup. Then restart Home Assistant. When prompted, enter the security key and click *configure*, just like during initial setup.
### Compilation issues
{% note %}
This does not apply to Home Assistant running in Docker Containers, including the default Home Assistant install.
{% endnote %}
Please make sure you have `autoconf` installed (`$ sudo apt-get install autoconf`) if you want to use this integration. Also, installing some dependencies might take considerable time (more than one hour) on slow devices.
## Known limitations ## Known limitations
- The TRÅDFRI Shortcut button, Remotes and motion sensor only send information about their battery status, no events, to Home Assistant and thus can't be used to automate with. If you want to automate with these devices, you need to use something like [ZHA](/integrations/zha/), or the [HomeKit device](/integrations/homekit_controller) integration as mentioned above. - The TRÅDFRI Shortcut button, Remotes and motion sensor only send information about their battery status, no events, to Home Assistant and thus can't be used to automate with. If you want to automate with these devices, you need to use something like [ZHA](/integrations/zha/), or the [HomeKit device](/integrations/homekit_controller) integration as mentioned above.

View File

@ -7,6 +7,7 @@ ha_category:
- Climate - Climate
- Cover - Cover
- Doorbell - Doorbell
- Event
- Fan - Fan
- Humidifier - Humidifier
- Light - Light
@ -31,6 +32,7 @@ ha_platforms:
- climate - climate
- cover - cover
- diagnostics - diagnostics
- event
- fan - fan
- humidifier - humidifier
- light - light

View File

@ -8,6 +8,7 @@ ha_release: '2023.5'
ha_codeowners: ha_codeowners:
- '@balloob' - '@balloob'
- '@synesthesiam' - '@synesthesiam'
- '@jaminh'
ha_domain: voip ha_domain: voip
ha_integration_type: integration ha_integration_type: integration
ha_quality_scale: internal ha_quality_scale: internal

View File

@ -9,6 +9,7 @@ ha_domain: wallbox
ha_platforms: ha_platforms:
- lock - lock
- number - number
- select
- sensor - sensor
- switch - switch
ha_config_flow: true ha_config_flow: true
@ -26,6 +27,8 @@ The **Wallbox** {% term integration %} pulls data from the [MyWallbox Portal](ht
The {% term integration %} adds the following sensors: The {% term integration %} adds the following sensors:
- Added energy (kWh) - Added energy (kWh)
- Added green energy (kWh)
- Added grid energy (kWh)
- Added range (km) - Added range (km)
- Charging power (kW) - Charging power (kW)
- Charging speed - Charging speed
@ -54,6 +57,10 @@ The number {% term entity %} is only loaded if the supplied username has suffici
The {% term integration %} adds a lock {% term entity %}, allowing you to lock the charger. Please note, this only works with a user with admin rights. The {% term integration %} adds a lock {% term entity %}, allowing you to lock the charger. Please note, this only works with a user with admin rights.
## Select
The {% term integration %} adds a select {% term entity %} to control solar charging options, allowing you to choose between **Eco mode**, **Full solar**, or **Disable solar charging**.
## Switch ## Switch
The {% term integration %} adds a switch {% term entity %}, allowing you to pause/resume the charging process. The {% term integration %} adds a switch {% term entity %}, allowing you to pause/resume the charging process.

View File

@ -2,6 +2,7 @@
title: WMS WebControl pro title: WMS WebControl pro
description: Instructions on how to integrate WAREMA devices via WMS WebControl pro within Home Assistant. description: Instructions on how to integrate WAREMA devices via WMS WebControl pro within Home Assistant.
ha_category: ha_category:
- Button
- Cover - Cover
- Hub - Hub
- Light - Light
@ -13,6 +14,7 @@ ha_codeowners:
ha_domain: wmspro ha_domain: wmspro
ha_config_flow: true ha_config_flow: true
ha_platforms: ha_platforms:
- button
- cover - cover
- diagnostics - diagnostics
- light - light
@ -30,16 +32,21 @@ The **WMS WebControl pro** {% term integration %} allows you to integrate WAREMA
This integration uses a local API which is available with firmware container version 11H. This integration uses a local API which is available with firmware container version 11H.
See device section for support information: [covers](#covers), [lights](#lights) and [scenes](#scenes). See device section for support information: [buttons](#buttons), [covers](#covers), [lights](#lights) and [scenes](#scenes).
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
The WMS WebControl pro *may* also be discovered on your local network via DHCP. The WMS WebControl pro *may* also be discovered on your local network via DHCP.
## Buttons
- All devices that support an identification activity (for example, winking an awning or blinking a light)
can be triggered to perform such activity.
## Covers ## Covers
- *Patio awnings* can be opened, closed, set to a certain position and their movement stopped. - *Patio awnings* and *roller shutters/blinds* can be opened, closed, set to a certain position and stopped.
- The integration and library *may* already support other types of awnings with a single motor. - The integration and library *may* already support other types of awnings or covers with a single motor.
## Lights ## Lights

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