Merge branch 'rc' into current

This commit is contained in:
Franck Nijhof 2021-04-07 19:41:32 +02:00
commit 2943a94dc2
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
93 changed files with 4628 additions and 1444 deletions

View File

@ -26,6 +26,7 @@ source/_integrations/alpha_vantage.markdown @fabaff
source/_integrations/ambiclimate.markdown @danielhiversen source/_integrations/ambiclimate.markdown @danielhiversen
source/_integrations/ambient_station.markdown @bachya source/_integrations/ambient_station.markdown @bachya
source/_integrations/amcrest.markdown @pnbruckner source/_integrations/amcrest.markdown @pnbruckner
source/_integrations/analytics.markdown @home-assistant/core @ludeeus
source/_integrations/androidtv.markdown @JeffLIrion source/_integrations/androidtv.markdown @JeffLIrion
source/_integrations/apache_kafka.markdown @bachya source/_integrations/apache_kafka.markdown @bachya
source/_integrations/api.markdown @home-assistant/core source/_integrations/api.markdown @home-assistant/core
@ -36,7 +37,7 @@ source/_integrations/arcam_fmj.markdown @elupus
source/_integrations/arduino.markdown @fabaff source/_integrations/arduino.markdown @fabaff
source/_integrations/arest.markdown @fabaff source/_integrations/arest.markdown @fabaff
source/_integrations/arris_tg2492lg.markdown @vanbalken source/_integrations/arris_tg2492lg.markdown @vanbalken
source/_integrations/asuswrt.markdown @kennedyshead source/_integrations/asuswrt.markdown @kennedyshead @ollo69
source/_integrations/atag.markdown @MatsNL source/_integrations/atag.markdown @MatsNL
source/_integrations/aten_pe.markdown @mtdcr source/_integrations/aten_pe.markdown @mtdcr
source/_integrations/atome.markdown @baqs source/_integrations/atome.markdown @baqs
@ -135,7 +136,7 @@ source/_integrations/esphome.markdown @OttoWinter
source/_integrations/essent.markdown @TheLastProject source/_integrations/essent.markdown @TheLastProject
source/_integrations/evohome.markdown @zxdavb source/_integrations/evohome.markdown @zxdavb
source/_integrations/ezviz.markdown @baqs source/_integrations/ezviz.markdown @baqs
source/_integrations/faadelays.markdown @ntilley905 source/_integrations/faa_delays.markdown @ntilley905
source/_integrations/fastdotcom.markdown @rohankapoorcom source/_integrations/fastdotcom.markdown @rohankapoorcom
source/_integrations/file.markdown @fabaff source/_integrations/file.markdown @fabaff
source/_integrations/filter.markdown @dgomes source/_integrations/filter.markdown @dgomes
@ -169,13 +170,11 @@ source/_integrations/google_cloud.markdown @lufton
source/_integrations/gpsd.markdown @fabaff source/_integrations/gpsd.markdown @fabaff
source/_integrations/gree.markdown @cmroche source/_integrations/gree.markdown @cmroche
source/_integrations/greeneye_monitor.markdown @jkeljo source/_integrations/greeneye_monitor.markdown @jkeljo
source/_integrations/griddy.markdown @bdraco
source/_integrations/group.markdown @home-assistant/core source/_integrations/group.markdown @home-assistant/core
source/_integrations/growatt_server.markdown @indykoning source/_integrations/growatt_server.markdown @indykoning
source/_integrations/guardian.markdown @bachya source/_integrations/guardian.markdown @bachya
source/_integrations/habitica.markdown @ASMfreaK @leikoilja source/_integrations/habitica.markdown @ASMfreaK @leikoilja
source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey
source/_integrations/hdmi_cec.markdown @newAM
source/_integrations/heatmiser.markdown @andylockran source/_integrations/heatmiser.markdown @andylockran
source/_integrations/heos.markdown @andrewsayre source/_integrations/heos.markdown @andrewsayre
source/_integrations/here_travel_time.markdown @eifinger source/_integrations/here_travel_time.markdown @eifinger
@ -186,11 +185,11 @@ source/_integrations/history.markdown @home-assistant/core
source/_integrations/hive.markdown @Rendili @KJonline source/_integrations/hive.markdown @Rendili @KJonline
source/_integrations/hlk_sw16.markdown @jameshilliard source/_integrations/hlk_sw16.markdown @jameshilliard
source/_integrations/home_connect.markdown @DavidMStraub source/_integrations/home_connect.markdown @DavidMStraub
source/_integrations/home_plus_control.markdown @chemaaa
source/_integrations/homeassistant.markdown @home-assistant/core source/_integrations/homeassistant.markdown @home-assistant/core
source/_integrations/homekit.markdown @bdraco source/_integrations/homekit.markdown @bdraco
source/_integrations/homekit_controller.markdown @Jc2k source/_integrations/homekit_controller.markdown @Jc2k
source/_integrations/homematic.markdown @pvizeli @danielperna84 source/_integrations/homematic.markdown @pvizeli @danielperna84
source/_integrations/homematicip_cloud.markdown @SukramJ
source/_integrations/http.markdown @home-assistant/core source/_integrations/http.markdown @home-assistant/core
source/_integrations/huawei_lte.markdown @scop @fphammerle source/_integrations/huawei_lte.markdown @scop @fphammerle
source/_integrations/huawei_router.markdown @abmantis source/_integrations/huawei_router.markdown @abmantis
@ -388,6 +387,7 @@ source/_integrations/samsungtv.markdown @escoand
source/_integrations/scene.markdown @home-assistant/core source/_integrations/scene.markdown @home-assistant/core
source/_integrations/schluter.markdown @prairieapps source/_integrations/schluter.markdown @prairieapps
source/_integrations/scrape.markdown @fabaff source/_integrations/scrape.markdown @fabaff
source/_integrations/screenlogic.markdown @dieselrabbit
source/_integrations/script.markdown @home-assistant/core source/_integrations/script.markdown @home-assistant/core
source/_integrations/search.markdown @home-assistant/core source/_integrations/search.markdown @home-assistant/core
source/_integrations/sense.markdown @kbickar source/_integrations/sense.markdown @kbickar
@ -418,12 +418,12 @@ source/_integrations/smarttub.markdown @mdz
source/_integrations/smarty.markdown @z0mbieprocess source/_integrations/smarty.markdown @z0mbieprocess
source/_integrations/sms.markdown @ocalvo source/_integrations/sms.markdown @ocalvo
source/_integrations/smtp.markdown @fabaff source/_integrations/smtp.markdown @fabaff
source/_integrations/solaredge.markdown @frenck
source/_integrations/solaredge_local.markdown @drobtravels @scheric source/_integrations/solaredge_local.markdown @drobtravels @scheric
source/_integrations/solarlog.markdown @Ernst79 source/_integrations/solarlog.markdown @Ernst79
source/_integrations/solax.markdown @squishykid source/_integrations/solax.markdown @squishykid
source/_integrations/soma.markdown @ratsept source/_integrations/soma.markdown @ratsept
source/_integrations/somfy.markdown @tetienne source/_integrations/somfy.markdown @tetienne
source/_integrations/somfy_mylink.markdown @bdraco
source/_integrations/sonarr.markdown @ctalkington source/_integrations/sonarr.markdown @ctalkington
source/_integrations/songpal.markdown @rytilahti @shenxn source/_integrations/songpal.markdown @rytilahti @shenxn
source/_integrations/sonos.markdown @cgtobi source/_integrations/sonos.markdown @cgtobi
@ -439,7 +439,7 @@ source/_integrations/starline.markdown @anonym-tsk
source/_integrations/statistics.markdown @fabaff source/_integrations/statistics.markdown @fabaff
source/_integrations/stiebel_eltron.markdown @fucm source/_integrations/stiebel_eltron.markdown @fucm
source/_integrations/stookalert.markdown @fwestenberg source/_integrations/stookalert.markdown @fwestenberg
source/_integrations/stream.markdown @hunterjm @uvjustin source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter
source/_integrations/stt.markdown @pvizeli source/_integrations/stt.markdown @pvizeli
source/_integrations/subaru.markdown @G-Two source/_integrations/subaru.markdown @G-Two
source/_integrations/suez_water.markdown @ooii source/_integrations/suez_water.markdown @ooii
@ -497,7 +497,7 @@ source/_integrations/usgs_earthquakes_feed.markdown @exxamalte
source/_integrations/utility_meter.markdown @dgomes source/_integrations/utility_meter.markdown @dgomes
source/_integrations/velbus.markdown @Cereal2nd @brefra source/_integrations/velbus.markdown @Cereal2nd @brefra
source/_integrations/velux.markdown @Julius2342 source/_integrations/velux.markdown @Julius2342
source/_integrations/vera.markdown @vangorra source/_integrations/vera.markdown @pavoni
source/_integrations/verisure.markdown @frenck source/_integrations/verisure.markdown @frenck
source/_integrations/versasense.markdown @flamm3blemuff1n source/_integrations/versasense.markdown @flamm3blemuff1n
source/_integrations/version.markdown @fabaff @ludeeus source/_integrations/version.markdown @fabaff @ludeeus
@ -509,6 +509,7 @@ source/_integrations/vizio.markdown @raman325
source/_integrations/vlc_telnet.markdown @rodripf @dmcc source/_integrations/vlc_telnet.markdown @rodripf @dmcc
source/_integrations/volkszaehler.markdown @fabaff source/_integrations/volkszaehler.markdown @fabaff
source/_integrations/volumio.markdown @OnFreund source/_integrations/volumio.markdown @OnFreund
source/_integrations/wake_on_lan.markdown @ntilley905
source/_integrations/waqi.markdown @andrey-git source/_integrations/waqi.markdown @andrey-git
source/_integrations/watson_tts.markdown @rutkai source/_integrations/watson_tts.markdown @rutkai
source/_integrations/weather.markdown @fabaff source/_integrations/weather.markdown @fabaff

View File

@ -105,9 +105,9 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 2021 current_major_version: 2021
current_minor_version: 3 current_minor_version: 4
current_patch_version: 4 current_patch_version: 0
date_released: 2021-03-12 date_released: 2021-04-07
# 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

@ -1,26 +1,10 @@
--- ---
title: "Automation Templating" title: "Automation Trigger Variables"
description: "Advanced automation documentation using templating." description: "List all available variables made available by triggers."
--- ---
Automations support [templating](/docs/configuration/templating/) in the same way as scripts do. In addition to the [Home Assistant template extensions](/docs/configuration/templating/#home-assistant-template-extensions) available to scripts, the `trigger` template variable is available. Automations support [templating](/docs/configuration/templating/) in the same way as scripts do. In addition to the [Home Assistant template extensions](/docs/configuration/templating/#home-assistant-template-extensions) available to scripts, the `trigger` template variable is available.
<div class='note'>
Be aware that if you reference a `trigger` state object in templates of an automation' `action` or `condition` sections, attempting to test that automation by calling the `automation.trigger` service or by clicking EXECUTE in the More Info box for the automation will not work. This is because the trigger state object doesn't exist in those contexts. One way to test automations like these is to manually check that the templates work as expected by pasting them in {% my developer_template title="Developer Tools > Template" %} together with your trigger's definition like:
{%raw%}
```yaml
{% set trigger={'to_state':{'state': 'heat'}} %}
{% set option = trigger.to_state.state %}
{{ 'on' if option == 'heat' else 'off' }}
```
{%endraw%}
</div>
## Available Trigger Data ## Available Trigger Data
The following tables show the available trigger data per platform. The following tables show the available trigger data per platform.

View File

@ -3,13 +3,24 @@ title: "Automation Trigger"
description: "All the different ways how automations can be triggered." description: "All the different ways how automations can be triggered."
--- ---
## What are triggers
Triggers are what starts the processing of an automation rule. When _any_ of the automation's triggers becomes true (trigger _fires_), Home Assistant will validate the [conditions](/docs/automation/condition/), if any, and call the [action](/docs/automation/action/). Triggers are what starts the processing of an automation rule. When _any_ of the automation's triggers becomes true (trigger _fires_), Home Assistant will validate the [conditions](/docs/automation/condition/), if any, and call the [action](/docs/automation/action/).
An automation can be triggered by an event, with a certain entity state, at a given time, and more. These can be specified directly or more flexible via templates. It is also possible to specify multiple triggers for one automation. An automation can be triggered by an event, with a certain entity state, at a given time, and more. These can be specified directly or more flexible via templates. It is also possible to specify multiple triggers for one automation.
The following sections introduce all trigger types and further details to get started. - [Event trigger](#event-trigger)
- [Home Assistant trigger](#home-assistant-trigger)
- [MQTT trigger](#mqtt-trigger)
- [Numeric state trigger](#numeric-state-trigger)
- [State trigger](#state-trigger)
- [Sun trigger](#sun-trigger)
- [Tag trigger](#tag-trigger)
- [Template trigger](#template-trigger)
- [Time trigger](#time-trigger)
- [Time pattern trigger](#time-pattern-trigger)
- [Webhook trigger](#webhook-trigger)
- [Zone trigger](#zone-trigger)
- [Geolocation trigger](#geolocation-trigger)
- [Device triggers](#device-triggers)
## Trigger variables ## Trigger variables

View File

@ -1,52 +0,0 @@
---
title: "Updater"
description: "Details what the updater integration is reporting about your Home Assistant instance."
---
Starting with 0.31 the [updater component](/integrations/updater/) sends an optional report about Home Assistant instance.
If you want to opt-in to include integration information, add `include_used_components` to your configuration. This will allow the Home Assistant developers to focus development efforts on the most popular components.
```yaml
updater:
include_used_components: true
```
We are only collecting this information to better understand our user base to provide better long term support and feature development.
| Name | Description | Example | Data Source |
| --------------------- | ------------------------------------------ | ---------------------------------- | -------------- |
| `arch` | CPU Architecture | `x86_64` | Local Instance |
| `distribution` | Linux Distribution name (only Linux) | `Ubuntu` | Local Instance |
| `docker` | True if running inside Docker | `false` | Local Instance |
| `first_seen_datetime` | First time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `geo_city` | GeoIP determined city | `Oakland` | Update Server |
| `geo_country_code` | GeoIP determined country code | `US` | Update Server |
| `geo_country_name` | GeoIP determined country name | `United States` | Update Server |
| `geo_latitude` | GeoIP determined latitude | `37.8047` | Update Server |
| `geo_longitude` | GeoIP determined longitude | `-122.2124` | Update Server |
| `geo_metro_code` | GeoIP determined metro code | `807` | Update Server |
| `geo_region_code` | GeoIP determined region code | `CA` | Update Server |
| `geo_region_name` | GeoIP determined region name | `California` | Update Server |
| `geo_time_zone` | GeoIP determined time zone | `America/Los_Angeles` | Update Server |
| `geo_zip_code` | GeoIP determined zip code | `94602` | Update Server |
| `last_seen_datetime` | Most recent time instance ID was submitted | `2016-10-22T19:56:03.542Z` | Update Server |
| `os_name` | Operating system name | `Darwin` | Local Instance |
| `os_version` | Operating system version | `10.12` | Local Instance |
| `python_version` | Python version | `3.5.2` | Local Instance |
| `timezone` | Timezone | `America/Los_Angeles` | Local Instance |
| `user_agent` | User agent used to submit analytics | `python-requests/2.11.1` | Local Instance |
| `uuid` | Unique identifier | `10321ee6094d4a2ebb5ed55c675d5f5e` | Local Instance |
| `version` | Home Assistant version | `0.31.0` | Local Instance |
| `virtualenv` | True if running inside virtualenv | `true` | Local Instance |
In addition to the above collected data, the server will also use your IP address to do a geographic IP address lookup to determine a general geographic area that your address is located in. To be extremely, extremely clear about this bit: __The Home Assistant updater does not: store your IP address in a database and also does not submit the location information from your `configuration.yaml`.__
Our tests showed that at best, we get 4 digits of accuracy on your IP address location which is a 5 mile radius of your actual IP location, assuming that it is even correct in the first place (geo IP lookups are very hit or miss).
The server also adds two timestamps to the data:
- the original date your instance UUID was first seen
- the timestamp of the last time we have seen your instance
We will never publicly expose individual gathered data. We might however publish aggregated stats about our user base (example: 70% of all users use Linux). We will never sell or allow the use of this information for non-Home Assistant development purposes.

View File

@ -158,8 +158,13 @@ Supported abbreviations:
'on_cmd_type': 'on_command_type', 'on_cmd_type': 'on_command_type',
'opt': 'optimistic', 'opt': 'optimistic',
'osc_cmd_t': 'oscillation_command_topic', 'osc_cmd_t': 'oscillation_command_topic',
'osc_cmd_tpl': 'oscillation_command_template',
'osc_stat_t': 'oscillation_state_topic', 'osc_stat_t': 'oscillation_state_topic',
'osc_val_tpl': 'oscillation_value_template', 'osc_val_tpl': 'oscillation_value_template',
'pct_cmd_t': 'percentage_command_topic',
'pct_cmd_tpl': 'percentage_command_template',
'pct_stat_t': 'percentage_state_topic',
'pct_val_tpl': 'percentage_value_template',
'pl': 'payload', 'pl': 'payload',
'pl_arm_away': 'payload_arm_away', 'pl_arm_away': 'payload_arm_away',
'pl_arm_home': 'payload_arm_home', 'pl_arm_home': 'payload_arm_home',
@ -169,16 +174,12 @@ Supported abbreviations:
'pl_cln_sp': 'payload_clean_spot', 'pl_cln_sp': 'payload_clean_spot',
'pl_cls': 'payload_close', 'pl_cls': 'payload_close',
'pl_disarm': 'payload_disarm', 'pl_disarm': 'payload_disarm',
'pl_hi_spd': 'payload_high_speed',
'pl_home': 'payload_home', 'pl_home': 'payload_home',
'pl_lock': 'payload_lock', 'pl_lock': 'payload_lock',
'pl_loc': 'payload_locate', 'pl_loc': 'payload_locate',
'pl_lo_spd': 'payload_low_speed',
'pl_med_spd': 'payload_medium_speed',
'pl_not_avail': 'payload_not_available', 'pl_not_avail': 'payload_not_available',
'pl_not_home': 'payload_not_home', 'pl_not_home': 'payload_not_home',
'pl_off': 'payload_off', 'pl_off': 'payload_off',
'pl_off_spd': 'payload_off_speed',
'pl_on': 'payload_on', 'pl_on': 'payload_on',
'pl_open': 'payload_open', 'pl_open': 'payload_open',
'pl_osc_off': 'payload_oscillation_off', 'pl_osc_off': 'payload_oscillation_off',
@ -196,6 +197,11 @@ Supported abbreviations:
'pow_cmd_t': 'power_command_topic', 'pow_cmd_t': 'power_command_topic',
'pow_stat_t': 'power_state_topic', 'pow_stat_t': 'power_state_topic',
'pow_stat_tpl': 'power_state_template', 'pow_stat_tpl': 'power_state_template',
'pr_mode_cmd_t': 'preset_mode_command_topic',
'pr_mode_cmd_tpl': 'preset_mode_command_template',
'pr_mode_stat_t': 'preset_mode_state_topic',
'pr_mode_val_tpl': 'preset_mode_value_template',
'pr_modes': 'preset_modes',
'r_tpl': 'red_template', 'r_tpl': 'red_template',
'ret': 'retain', 'ret': 'retain',
'rgb_cmd_tpl': 'rgb_command_template', 'rgb_cmd_tpl': 'rgb_command_template',
@ -209,10 +215,8 @@ Supported abbreviations:
'set_pos_t': 'set_position_topic', 'set_pos_t': 'set_position_topic',
'pos_t': 'position_topic', 'pos_t': 'position_topic',
'pos_tpl': 'position_template', 'pos_tpl': 'position_template',
'spd_cmd_t': 'speed_command_topic', 'spd_rng_min': 'speed_range_min',
'spd_stat_t': 'speed_state_topic', 'spd_rng_max': 'speed_range_max',
'spd_val_tpl': 'speed_value_template',
'spds': 'speeds',
'src_type': 'source_type', 'src_type': 'source_type',
'stat_clsd': 'state_closed', 'stat_clsd': 'state_closed',
'stat_closing': 'state_closing', 'stat_closing': 'state_closing',
@ -277,6 +281,7 @@ Supported abbreviations for device registry configuration:
'mf': 'manufacturer', 'mf': 'manufacturer',
'mdl': 'model', 'mdl': 'model',
'sw': 'sw_version', 'sw': 'sw_version',
'sa': 'suggested_area',
``` ```
## Support by third-party tools ## Support by third-party tools

View File

@ -122,7 +122,6 @@
<b>{% active_link /docs/backend/ Backend %}</b> <b>{% active_link /docs/backend/ Backend %}</b>
<ul> <ul>
<li>{% active_link /docs/backend/database/ Database %}</li> <li>{% active_link /docs/backend/database/ Database %}</li>
<li>{% active_link /docs/backend/updater/ Updater %}</li>
</ul> </ul>
</li> </li>
<li> <li>

View File

@ -113,6 +113,10 @@ device:
description: "The name of the device." description: "The name of the device."
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: "The firmware version of the device." description: "The firmware version of the device."
required: false required: false
@ -121,6 +125,10 @@ device:
description: "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant." description: "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant."
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -117,6 +117,10 @@ binary_sensors:
description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses streaming method (see [below](#streaming-vs-polled-binary-sensors))." description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses streaming method (see [below](#streaming-vs-polled-binary-sensors))."
motion_detected_polled: motion_detected_polled:
description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses polled method (see [below](#streaming-vs-polled-binary-sensors))." description: "Return `on` when a motion is detected, `off` when not. Motion detection is enabled by default for most cameras, if this functionality is not working check that it is enabled in Settings > Events > Video Detection. Uses polled method (see [below](#streaming-vs-polled-binary-sensors))."
crossline_detected:
description: "Return `on` when a tripwire tripping is detected, `off` when not. Uses streaming method (see [below](#streaming-vs-polled-binary-sensors))."
crossline_detected_polled:
description: "Return `on` when a tripwire is tripping is detected, `off` when not. Uses polled method (see [below](#streaming-vs-polled-binary-sensors))."
online: online:
description: "Return `on` when camera is available (i.e., responding to commands), `off` when not." description: "Return `on` when camera is available (i.e., responding to commands), `off` when not."
sensors: sensors:
@ -377,6 +381,7 @@ amcrest:
password: YOUR_PASSWORD password: YOUR_PASSWORD
binary_sensors: binary_sensors:
- motion_detected - motion_detected
- crossline_detected
- online - online
sensors: sensors:
- sdcard - sdcard

View File

@ -0,0 +1,151 @@
---
title: Analytics
description: Share system analytics and diagnostics
ha_category:
- Other
ha_release: 2021.4
ha_iot_class: Cloud Push
ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
- '@ludeeus'
ha_domain: analytics
---
Home Assistant allows users to share their usage data via the analytics integration. The aggregated data is available at <https://analytics.home-assistant.io>. It is used to influence Home Assistant development priorities and to convince manufacturers to add local control and privacy-focused features.
## Data Collection
The information sent depends on what you opt-in to. You can opt-in during onboarding and by going to **{% my general title="Configuration >> General" %}**.
**{% my general badge %}**
When enabled, data will be sent 15 minutes after each start, and every 24h after startup. Sent data is printed to your log.
### Basic analytics
This includes:
- Unique identifier for your system (to ensure each installation is counted once)
- Home Assistant version
- Home Assistant installation type
- Your country (derived server-side from your IP-address)
If your system includes the Supervisor, this will also contain:
- If your installation is supported
- If your installation is healthy
{% details Example payload %}
```json
{
"uuid": "12a3456bc78d90123ef4567g789012h3",
"version": "2021.4.0",
"installation_type": "Home Assistant OS",
"supervisor": {
"healthy": true,
"supported": true
}
}
```
{% enddetails %}
### Usage analytics
_Requires basic analytics to be enabled._
This includes:
- The names of all your integrations
If your system includes the Supervisor, this will also contain:
- For each add-on
- Name
- Version
- If protection mode is enabled
- If auto update is enabled
{% details Example payload %}
```json
{
"uuid": "12a3456bc78d90123ef4567g789012h3",
"version": "2021.4.0",
"installation_type": "Home Assistant OS",
"supervisor": {
"healthy": true,
"supported": true
},
"integrations": ["awesome_integration"],
"addons": [
{
"slug": "awesome_addon",
"protected": true,
"version": "1.0.0",
"auto_update": false
}
]
}
```
{% enddetails %}
### Statistics
_Requires basic analytics to be enabled._
This includes:
- Number of integrations
- Number of users
- Number of entities
- Number of automations
If your system includes the Supervisor, this will also contain:
- Number of installed add-ons
{% details Example payload %}
```json
{
"uuid": "12a3456bc78d90123ef4567g789012h3",
"version": "2021.4.0",
"installation_type": "Home Assistant OS",
"supervisor": {
"healthy": true,
"supported": true
},
"state_count": 1,
"automation_count": 2,
"integration_count": 3,
"addon_count": 4,
"user_count": 5
}
```
{% enddetails %}
### Diagnostics
If enabled, a crash report will be collected when an unexpected error occurs and uploaded to [Sentry](https://sentry.io). These reports will help fix bugs and improve performance and stability.
Crash reports are only visible to the Home Assistant Core developers. This feature is currently limited to the Supervisor.
## Data storage & processing
All data is received and processed by the Home Assistant Analytics Receiver ([source](https://github.com/home-assistant/analytics.home-assistant.io)).
When your installation sends a payload, that payload includes a unique identifier. This identifier is used to make sure that your installation is only counted once.
Your data is securely stored in [CloudFlare's Key-Value store](https://www.cloudflare.com/products/workers-kv/). It will be stored for a maximum of 60 days since the last update. Only aggregated data is made publicly available.
This is an example of how the information is stored:
{% configuration_basic %}
"uuid:12a3456bc78d90123ef4567g789012h3":
description: "{'version': '2021.4.0', 'installation_type': 'Home Assistant OS', 'country': 'NO'}"
{% endconfiguration_basic %}

View File

@ -10,6 +10,7 @@ ha_config_flow: true
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_codeowners: ha_codeowners:
- '@kennedyshead' - '@kennedyshead'
- '@ollo69'
ha_domain: asuswrt ha_domain: asuswrt
ha_platforms: ha_platforms:
- device_tracker - device_tracker

View File

@ -8,7 +8,7 @@ ha_category:
- Camera - Camera
- Lock - Lock
ha_release: 0.64 ha_release: 0.64
ha_iot_class: Cloud Polling ha_iot_class: Cloud Push
ha_config_flow: true ha_config_flow: true
ha_codeowners: ha_codeowners:
- '@bdraco' - '@bdraco'

View File

@ -1,87 +0,0 @@
---
title: "Modbus Binary Sensor"
description: "Instructions on how to set up Modbus binary sensors within Home Assistant."
ha_category:
- Binary Sensor
ha_release: 0.28
ha_iot_class: Local Push
ha_domain: modbus
---
The `modbus` binary sensor allows you to gather data from [Modbus](http://www.modbus.org/) coils.
## Configuration
To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
binary_sensor:
- platform: modbus
inputs:
- name: Sensor1
hub: hub1
slave: 1
address: 100
- name: Sensor2
hub: hub1
slave: 1
address: 110
input_type: discrete_input
```
{% configuration %}
inputs:
description: The array contains a list of coils and discrete inputs to read from.
required: true
type: [map, list]
keys:
name:
description: Name of the sensor.
required: true
type: string
hub:
description: The name of the hub.
required: false
default: modbus_hub
type: string
slave:
description: The number of the slave (Optional for TCP and UDP Modbus).
required: true
type: integer
address:
description: Coil or discrete input Modbus address.
required: true
type: integer
input_type:
description: Modbus input type (coil, discrete_input), default coil.
required: false
type: string
device_class:
description: The [type/class](/integrations/binary_sensor/#device-class) of the binary sensor to set the icon in the frontend.
required: false
type: device_class
default: None
{% endconfiguration %}
It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation.
## Full example
Example a sensor with a 10 seconds scan interval:
```yaml
binary_sensor:
- platform: modbus
scan_interval: 10
inputs:
- name: Sensor1
hub: hub1
slave: 1
address: 100
- name: Sensor2
hub: hub1
slave: 1
address: 110
input_type: discrete_input
```

View File

@ -84,6 +84,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -105,6 +109,10 @@ force_update:
required: false required: false
type: boolean type: boolean
default: false default: false
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -18,6 +18,7 @@ ha_platforms:
- binary_sensor - binary_sensor
- camera - camera
- sensor - sensor
ha_dhcp: true
--- ---
The `blink` integration lets you view camera images and motion events from [Blink](https://blinkforhome.com/) camera and security systems. The `blink` integration lets you view camera images and motion events from [Blink](https://blinkforhome.com/) camera and security systems.

View File

@ -16,6 +16,7 @@ ha_platforms:
- remote - remote
- sensor - sensor
- switch - switch
ha_dhcp: true
--- ---
The Broadlink integration allows you to control and monitor Broadlink universal remotes, smart plugs, power strips, switches and sensors. The following devices are supported: The Broadlink integration allows you to control and monitor Broadlink universal remotes, smart plugs, power strips, switches and sensors. The following devices are supported:

View File

@ -77,6 +77,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -85,6 +89,10 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.' description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
required: false required: false

View File

@ -1,125 +0,0 @@
---
title: "Modbus Climate"
description: "Instructions how to integrate a Modbus thermostat within Home Assistant."
ha_category:
- Climate
ha_release: 0.68
ha_iot_class: Local Polling
ha_domain: modbus
---
The `modbus` thermostat allows you to use a sensor value (current temperature) and target value (target temperature) from [Modbus](http://www.modbus.org/) registers.
## Configuration
To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: Watlow F4T
slave: 1
data_type: uint
data_count: 1
scale: 0.1
offset: 0
precision: 1
max_temp: 30
min_temp: 15
temp_step: 1
target_temp_register: 2782
current_temp_register: 27586
```
{% configuration %}
name:
description: Name of the device
required: true
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
type: integer
target_temp_register:
description: Register number for target temperature (Setpoint).
required: true
type: integer
current_temp_register:
description: Register number for current temperature (Process value).
required: true
type: integer
current_temp_register_type:
description: Modbus register type (holding, input) for current temperature, default holding.
required: false
type: string
default: holding
data_type:
description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format.
required: false
type: string
default: float
structure:
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
default: ">f"
data_count:
description: Number of registers to read.
required: false
type: integer
default: 2
precision:
description: Number of valid decimals.
required: false
type: integer
default: 1
scale:
description: Scale factor (output = scale * value + offset).
required: false
type: float
default: 1
offset:
description: Final offset (output = scale * value + offset).
required: false
type: float
default: 0
max_temp:
description: Maximum setpoint temperature.
required: false
type: integer
default: 35
min_temp:
description: Maximum setpoint temperature.
required: false
type: integer
default: 5
temp_step:
description: The supported step size a target temperature can be increased/decreased.
required: false
type: float
default: 0.5
temperature_unit:
description: Temperature unit reported by the current_temp_register. C or F
required: false
type: string
default: C
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
{% endconfiguration %}
### Services
| Service | Description |
| ------- | ----------- |
| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` |

View File

@ -116,6 +116,10 @@ device:
description: 'The name of the device.' description: 'The name of the device.'
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: 'The firmware version of the device.' description: 'The firmware version of the device.'
required: false required: false
@ -170,6 +174,10 @@ initial:
required: false required: false
type: integer type: integer
default: 21 default: 21
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -1,210 +0,0 @@
---
title: "Modbus Cover"
description: "Instructions on how to integrate Modbus covers into Home Assistant."
ha_category:
- Cover
ha_release: 0.116
ha_iot_class: Local Polling
ha_domain: modbus
---
The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door).
## Configuration
At the moment, we support the opening and closing of a cover. You can control your covers either using coils or holding registers.
Cover that uses the `coil` attribute is not able to determine intermediary states such as opening and closing. Coil stores only two states — "0" means cover closed, and "1" implies cover open. To allow detecting intermediary states, we added an optional `status_register` attribute. It will enable you to write your command (e.g., to open a cover) into a coil, and read current cover status back through the register. Additionally, you can specify values for `state_open`, `state_opening`, `state_closed`, and `state_closing` attributes. These will be matched with the value read from the `status_register`.
If your cover uses holding register to send commands (defined by the `register` attribute), it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands.
To use Modbus covers in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
device_class: door
scan_interval: 1
coil: 0
- name: Door2
device_class: door
scan_interval: 1
coil: 1
status_register: 1
- name: Door3
slave: 2
device_class: door
scan_interval: 1
register: 0
state_open: 1
state_closed: 0
```
{% configuration %}
covers:
description: The array contains a list of all your Modbus covers.
required: true
type: map
keys:
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: false
default: 1
type: integer
name:
description: Name of the switch.
required: true
type: string
coil:
description: Coil address; can be omitted if a register attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them.
required: true
type: integer
register:
description: Holding register address; can be omitted if a coil attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them.
required: true
type: integer
status_register:
description: An address of an register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register.
required: false
type: integer
status_register_type:
description: Modbus register type (holding, input), default holding.
required: false
type: string
state_open:
description: A value in `status_register` or `register` representing an open cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to open the cover.
required: false
default: 1
type: integer
state_closed:
description: A value in `status_register` or `register` representing a closed cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to close the cover.
required: false
default: 0
type: integer
state_opening:
description: A value in `status_register` or `register` telling us that the cover is opening at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected.
required: false
default: 2
type: integer
state_closing:
description: A value in `status_register` or `register` telling us that the cover is closing at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected.
required: false
default: 2
type: integer
device_class:
description: The [type/class](/integrations/cover/#device-class) of the cover to set the icon in the frontend.
required: false
type: device_class
default: None
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
{% endconfiguration %}
## Examples
In this section, you find some real-life examples of how to use this light.
### Modbus cover controlled by a coil
This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
coil: 1
device_class: door
scan_interval: 10
- name: Door2
slave: 2
coil: 2
device_class: door
scan_interval: 10
```
### Modbus cover controlled by a coil, it's state is read from the register
This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
coil: 1
status_register: 1
status_register_type: input
state_opening: 1
state_open: 2
state_closing: 3
state_closed: 4
```
### Modbus cover controlled by a holding register
This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
register: 1
state_opening: 1
state_open: 2
state_closing: 3
state_closed: 4
```
### Modbus cover controlled by a holding register, it's state is read from the status register
This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
register: 1
status_register: 2
register_type: holding
state_open: 1
state_closed: 0
```

View File

@ -94,6 +94,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -106,6 +110,10 @@ device_class:
description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend.
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -133,6 +133,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -142,7 +146,7 @@ device:
required: false required: false
type: string type: string
icon: icon:
description: The icon for the device tracker. description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false required: false
type: icon type: icon
json_attributes_template: json_attributes_template:

View File

@ -68,6 +68,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false

View File

@ -2,6 +2,9 @@
title: Rheem EcoNet Products title: Rheem EcoNet Products
description: Instructions on how to integrate Rheem EcoNet water heaters into Home Assistant. description: Instructions on how to integrate Rheem EcoNet water heaters into Home Assistant.
ha_category: ha_category:
- Binary Sensor
- Climate
- Sensor
- Water Heater - Water Heater
ha_release: 0.61 ha_release: 0.61
ha_iot_class: Cloud Push ha_iot_class: Cloud Push
@ -12,10 +15,36 @@ ha_codeowners:
ha_config_flow: true ha_config_flow: true
ha_platforms: ha_platforms:
- binary_sensor - binary_sensor
- climate
- sensor - sensor
- water_heater - water_heater
--- ---
The `econet` water heater platform is consuming the information provided by a [EcoNet enabled Rheem water heater](https://www.rheem.com/EcoNet/Home). This platform allows you to set the temperature, the operation mode, and away mode. It also provides access to several device sensors depending on your model of water heater. The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/EcoNet/Home).
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Platforms
EcoNet devices may be represented by one or more platforms.
- [Binary Sensor](#binary-sensor)
- [Climate](#climate)
- [Sensor](#sensor)
- [Water Heater](#water-heater)
### Binary Sensor
The EcoNet Binary Sensor platform lets you view binary states of sensors associated with your EcoNet thermostat or water heater. For example, if the device is currently running.
### Climate
The EcoNet Climate platform lets you control your EcoNet thermostat. Multi-zone HVAC systems will have 1 Climate entity per zone.
### Sensor
The EcoNet Sensor platform lets you view sensors associated with your EcoNet thermostat or water heater. For example, alert count or available hot water.
### Water Heater
The EcoNet Water Heater platform lets you control your EcoNet water heater. Water Heaters do not report the current water temperature.

View File

@ -9,6 +9,8 @@ ha_config_flow: true
ha_codeowners: ha_codeowners:
- '@ntilley905' - '@ntilley905'
ha_domain: faa_delays ha_domain: faa_delays
ha_platforms:
- binary_sensor
--- ---
The FAA Delays integration collects and displays information about delays at US Airports based on the The FAA Delays integration collects and displays information about delays at US Airports based on the

View File

@ -56,6 +56,10 @@ availability_topic:
description: The MQTT topic subscribed to receive availability (online/offline) updates. Must not be used together with `availability`. description: The MQTT topic subscribed to receive availability (online/offline) updates. Must not be used together with `availability`.
required: false required: false
type: string type: string
command_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `command_topic`.
required: false
type: template
command_topic: command_topic:
description: The MQTT topic to publish commands to change the fan state. description: The MQTT topic to publish commands to change the fan state.
required: true required: true
@ -85,6 +89,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -93,6 +101,10 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.' description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false
@ -111,6 +123,10 @@ optimistic:
required: false required: false
type: boolean type: boolean
default: "`true` if no state topic defined, else `false`." default: "`true` if no state topic defined, else `false`."
oscillation_command_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `oscillation_command_topic`.
required: false
type: template
oscillation_command_topic: oscillation_command_topic:
description: The MQTT topic to publish commands to change the oscillation state. description: The MQTT topic to publish commands to change the oscillation state.
required: false required: false
@ -128,21 +144,6 @@ payload_available:
required: false required: false
type: string type: string
default: online default: online
payload_high_speed:
description: The payload that represents the fan's high speed.
required: false
type: string
default: high
payload_low_speed:
description: The payload that represents the fan's low speed.
required: false
type: string
default: low
payload_medium_speed:
description: The payload that represents the fan's medium speed.
required: false
type: string
default: medium
payload_not_available: payload_not_available:
description: The payload that represents the unavailable state. description: The payload that represents the unavailable state.
required: false required: false
@ -168,6 +169,43 @@ payload_oscillation_on:
required: false required: false
type: string type: string
default: oscillate_on default: oscillate_on
percentage_command_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `percentage_command_topic`.
required: false
type: template
percentage_command_topic:
description: The MQTT topic to publish commands to change the fan speed state based on a percentage.
required: false
type: string
percentage_state_topic:
description: The MQTT topic subscribed to receive fan speed based on percentage.
required: false
type: string
percentage_value_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from fan percentage speed.
required: false
type: string
preset_mode_command_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `preset_mode_command_topic`.
required: false
type: template
preset_mode_command_topic:
description: The MQTT topic to publish commands to change the preset mode.
required: false
type: string
preset_mode_state_topic:
description: The MQTT topic to publish commands to change the preset mode.
required: false
type: string
preset_mode_value_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the preset_mode payload.
required: false
type: string
preset_modes:
description: List of preset modes this fan is capable of running at. Common examples include `auto`, `smart`, `whoosh`, `eco` and `breeze`.
required: false
type: [list]
default: []
qos: qos:
description: The maximum QoS level of the state topic. description: The maximum QoS level of the state topic.
required: false required: false
@ -178,22 +216,16 @@ retain:
required: false required: false
type: boolean type: boolean
default: true default: true
speed_command_topic: speed_range_min:
description: The MQTT topic to publish commands to change speed state. description: The minimum of numeric output range (`off` not included, so `speed_range_min` - 1 represents 0%).
required: false required: false
type: string type: integer
speed_state_topic: default: 1
description: The MQTT topic subscribed to receive speed state updates. speed_range_max:
description: The maximum of numeric output range (representing 100%).
required: false required: false
type: string type: integer
speed_value_template: default: 100
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the speed payload."
required: false
type: string
speeds:
description: "List of speeds this fan is capable of running at. Valid entries are `off`, `low`, `medium` and `high`."
required: false
type: [string, list]
state_topic: state_topic:
description: The MQTT topic subscribed to receive state updates. description: The MQTT topic subscribed to receive state updates.
required: false required: false
@ -220,10 +252,10 @@ In this section you find some real-life examples of how to use this fan.
### Full configuration ### Full configuration
The example below shows a full configuration for a MQTT fan. The example below shows a full configuration for a MQTT fan using percentage and preset modes.
```yaml ```yaml
# Example configuration.yaml entry # Example using percentage based speeds with preset modes configuration.yaml
fan: fan:
- platform: mqtt - platform: mqtt
name: "Bedroom Fan" name: "Bedroom Fan"
@ -231,19 +263,49 @@ fan:
command_topic: "bedroom_fan/on/set" command_topic: "bedroom_fan/on/set"
oscillation_state_topic: "bedroom_fan/oscillation/state" oscillation_state_topic: "bedroom_fan/oscillation/state"
oscillation_command_topic: "bedroom_fan/oscillation/set" oscillation_command_topic: "bedroom_fan/oscillation/set"
speed_state_topic: "bedroom_fan/speed/state" percentage_state_topic: "bedroom_fan/speed/percentage_state"
speed_command_topic: "bedroom_fan/speed/set" percentage_command_topic: "bedroom_fan/speed/percentage"
preset_mode_state_topic: "bedroom_fan/speed/preset_mode_state"
preset_mode_command_topic: "bedroom_fan/speed/preset_mode"
preset_modes:
- "auto"
- "smart"
- "whoosh"
- "eco"
- "breeze"
qos: 0 qos: 0
payload_on: "true" payload_on: "true"
payload_off: "false" payload_off: "false"
payload_oscillation_on: "true" payload_oscillation_on: "true"
payload_oscillation_off: "false" payload_oscillation_off: "false"
payload_low_speed: "low" speed_range_min: 1
payload_medium_speed: "medium" speed_range_max: 100
payload_high_speed: "high"
speeds:
- "off"
- low
- medium
- high
``` ```
{% raw %}}
This example demonstrates how to use command templates with JSON output.
```yaml
# Example configuration.yaml
# Example using command templates
fan:
- platform: mqtt
name: "Bedroom Fan"
command_topic: "bedroom_fan/on/set"
command_template: "{ state: '{{ value }}'}"
oscillation_command_topic: "bedroom_fan/oscillation/set"
oscillation_command_template: "{ oscillation: '{{ value }}'}"
percentage_command_topic: "bedroom_fan/speed/percentage"
percentage_command_template: "{ percentage: '{{ value }}'}"
preset_mode_command_topic: "bedroom_fan/speed/preset_mode"
preset_mode_command_template: "{ preset_mode: '{{ value }}'}"
preset_modes:
- "auto"
- "smart"
- "whoosh"
- "eco"
- "breeze"
```
{% endraw %}

View File

@ -17,6 +17,7 @@ ha_platforms:
- device_tracker - device_tracker
- sensor - sensor
- switch - switch
ha_zeroconf: true
--- ---
The `freebox` integration allows you to observe and control [Freebox router](https://www.free.fr/). The `freebox` integration allows you to observe and control [Freebox router](https://www.free.fr/).

View File

@ -13,6 +13,7 @@ ha_config_flow: true
ha_homekit: true ha_homekit: true
ha_platforms: ha_platforms:
- cover - cover
- sensor
--- ---
The `gogogate2` cover platform lets you control Gogogate2 and iSmartGate enabled garage doors and gates through Home Assistant. Device names in Home Assistant are generated based on the names defined in the GogoGate2 or iSmartGate mobile app. The `gogogate2` cover platform lets you control Gogogate2 and iSmartGate enabled garage doors and gates through Home Assistant. Device names in Home Assistant are generated based on the names defined in the GogoGate2 or iSmartGate mobile app.

View File

@ -29,6 +29,11 @@ port:
required: false required: false
type: integer type: integer
default: 2003 default: 2003
protocol:
description: "Type of communication protocol: `tcp` or `udp`."
required: false
type: string
default: tcp
prefix: prefix:
description: Prefix is the metric prefix in graphite. description: Prefix is the metric prefix in graphite.
required: false required: false

View File

@ -1,53 +0,0 @@
---
title: Griddy Power
description: Instructions on how to integrate griddy real-time electricity prices into Home Assistant.
ha_category:
- Energy
- Sensor
ha_release: 0.107
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@bdraco'
ha_domain: griddy
ha_platforms:
- sensor
---
The `griddy` integration allows you to integrate your [Griddy](https://griddy.com/) price data into Home Assistant.
There is currently support for the following device types within Home Assistant:
- Sensor
## Prerequisites
You will need your Griddy Load Zone to use this module.
{% include integrations/config_flow.md %}
### Sensor
The current price for the Load Zone will appear as a sensor:
- LZ_XXXXX Price Now
### Example Automation
```yaml
- id: '1572630019168'
alias: "Stop Tesla Charging if Power Price Spikes"
description: ""
trigger:
- above: '30'
entity_id: sensor.lz_houston_price_now
platform: numeric_state
condition:
- condition: zone
entity_id: device_tracker.my_tesla
zone: zone.home
action:
- service: switch.turn_off
target:
entity_id: switch.my_tesla_charger_switch
```

View File

@ -6,8 +6,6 @@ ha_category:
ha_release: 0.23 ha_release: 0.23
ha_iot_class: Local Push ha_iot_class: Local Push
ha_domain: hdmi_cec ha_domain: hdmi_cec
ha_codeowners:
- '@newAM'
ha_platforms: ha_platforms:
- switch - switch
--- ---

View File

@ -22,37 +22,23 @@ ha_platforms:
- sensor - sensor
- switch - switch
- water_heater - water_heater
ha_config_flow: true
--- ---
The `hive` integration is the main integration to set up and integrate all supported Hive devices. Once configured with the minimum required details it will detect and add all Hive devices into Home Assistant, including support for multi-zone heating. The Hive integration for Home Assistant allows you to interact with supported devices and services offered by
[hivehome.com](https://www.hivehome.com)
This integration uses the Hive website [https://my.hivehome.com](https://my.hivehome.com) credentials, you will need to use the same username and password you use on the Hive website to configure this Hive integration in Home Assistant. This Hive integration uses the same username and password you use on the [Hive website](https://sso.hivehome.com) to configure it within Home Assistant, 2FA authentication is also supported. Once configured Home Assistant will detect and add all Hive devices, including support for multi-zone heating.
To add your Hive devices into your Home Assistant installation, add the following to your `configuration.yaml` file: {% include integrations/config_flow.md %}
```yaml
# Example configuration.yaml entry
hive:
username: YOUR_USERNAME
password: YOUR_PASSWORD
```
{% configuration %} ## Options
username:
description: Your username from [https://my.hivehome.com](https://my.hivehome.com).
required: true
type: string
password:
description: Your password from [https://my.hivehome.com](https://my.hivehome.com).
required: true
type: string
scan_interval:
description: The time in minutes between Hive API calls
required: false
type: integer
default: 2
{% endconfiguration %}
Menu: *Configuration* > *Integrations* > *Select your new integration* > *Press the options button*
- **Scan Interval**: Update the scan interval allowing the integration to poll for data more frequently (Cannot be set lower than 30 seconds).
## Services ## Services
### Service `hive.boost_heating` ### Service `hive.boost_heating`

View File

@ -0,0 +1,91 @@
---
title: Legrand Home+ Control
description: Instructions on how to integrate Legrand Home+ Control into Home Assistant.
ha_category:
- Switch
ha_release: 2021.4
ha_iot_class: Cloud Polling
ha_codeowners:
- '@chemaaa'
ha_config_flow: true
ha_domain: home_plus_control
ha_platforms:
- switch
---
The Home+ Control integration platform allows you to control a range of Legrand in-wall switches and power outlets that have smart home functionality thanks to their "with Netatmo" capabilities.
This integration works against the Home+ Control API, which is one of the many APIs offered through the [*Works with Legrand*](https://developer.legrand.com/) program. The API is capable of managing "Legrand/Btcino with Netatmo" devices, such as light switches, power outlets and rolling shutters.
The devices that this API can manage are offered in different designs across different countries. The details of these can be found [here](https://developer.legrand.com/solutions/wiring-devices-with-netatmo/).
This Home+ Control integration for Home Assistant currently has support for the following devices:
- Light switches
- Power outlets
In both cases, the devices are modeled as on/off switches within Home Assistant.
This integration has been tested to work with the following range of Legrand products:
- Valena Next™ with Netatmo
## Authentication
Before you are able to configure the Legrand Home + Control integration into Home Assistant, you must register with the *Works with Legrand* platform.
These Legrand APIs rely on Oauth2 authentication, so you must follow these steps to obtain the necessary authentication parameters:
1. Register an account at <https://developer.legrand.com>.
2. Create a subscription to the *Starter Kit* (currently the only subscription available) and this will generate your `SUBSCRIPTION_KEY`.
3. Register an application, where you will have to define a name, a redirect URL and the scopes of your application. When selecting the scopes, be sure to include all of the `.read` scopes, as well as the `light.write` and `plug.write` scopes to be able to control these modules from the integration.
Once the registered application is confirmed, you should receive an email containing the `CLIENT_IDENTIFIER` and the `CLIENT_SECRET` which you will be using to set up the authentication flows. The application confirmation email is usually received within a few hours of having issued the request.
Finally, to set up Oauth2 authentication in Home Assistant you should add the following information to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
home_plus_control:
client_id: CLIENT_IDENTIFIER
client_secret: CLIENT_SECRET
subscription_key: SUBSCRIPTION_KEY
```
{% configuration %}
client_id:
description: Client identifier for your registered application on the *Works with Legrand* platform. Received via email.
required: true
type: string
client_secret:
description: Client secret for your registered application on the *Works with Legrand* platform. Received via email.
required: true
type: string
subscription_key:
description: Subscription identifier for your registered account on the *Works with Legrand* platform. Provided upon registration.
required: true
type: string
{% endconfiguration %}
At this point, you are now ready to add the Home+ Control integration to your Home Assistant instance as described in the [Configuration](#configuration) section.
{% include integrations/config_flow.md %}
## API Nomenclature
Within the context of the Home+ Control API you may come across the following terms:
* *Plant*: This is the term used to represent a *home* that holds the Legrand devices. In practice, a *plant* is represented by the *Legrand Home+ Control* gateway that acts as the central hub of the rest of the devices in the home network (uses Zigbee).
* *Module*: This is the term used to represent a generic device within the *plant*, i.e., a light, a plug, a remote, etc.
* *Light*: This is the term used to represent a light switch (or a micro-module). It is not modeled as your usual light entity because there are no brightness, color, etc. controls. It is modeled as an on/off switch.
* *Plug*: This is the term used to represent a power outlet.
Other devices that are mentioned in the API, but that are not currently supported by this integration are: *remotes* (wireless switches), *heaters* and *automations*.
## API Limitations
As described in the [authentication](#authentication) section, this integration requires you to set up a subscription in the *Works with Legrand* platform.
Currently, end-users only have access to the *Starter Kit* subscription which has a major limitation in the number of allowed API requests that are allowed - only 500 API calls per day (counter is reset at 00:00 every day). If this daily quota is ever exceeded, the API will report `403 Forbidden` HTTP responses.

View File

@ -21,6 +21,16 @@ The `homeassistant` integration provides services for controlling Home Assistant
Reads the configuration files and checks them for correctness, but **does not** load them into Home Assistant. Creates a persistent notification and log entry if errors are found. Reads the configuration files and checks them for correctness, but **does not** load them into Home Assistant. Creates a persistent notification and log entry if errors are found.
### Service `homeassistant.reload_config_entry`
Reloads an integration config entry.
| Service data attribute | Description |
|---------------------------|-------------------------------------------------------|
| `entity_id` | List of entity ids used to reference a config entry. |
| `area_id` | List of area ids used to reference a config entry. |
| `device_id` | List of device ids used to reference a config entry. |
### Service `homeassistant.reload_core_config` ### Service `homeassistant.reload_core_config`
Reloads the core configuration under `homeassistant:` and all linked files. Once loaded the new configuration is applied. New `customize:` information will be applied the next time the state of the entity gets updated. Reloads the core configuration under `homeassistant:` and all linked files. Once loaded the new configuration is applied. New `customize:` information will be applied the next time the state of the entity gets updated.

View File

@ -57,7 +57,7 @@ homekit:
linked_battery_sensor: sensor.living_room_motion_battery linked_battery_sensor: sensor.living_room_motion_battery
low_battery_threshold: 31 low_battery_threshold: 31
light.kitchen_table: light.kitchen_table:
name: "Kitchen Table Light" name: Kitchen Table Light
lock.front_door: lock.front_door:
code: 1234 code: 1234
media_player.living_room: media_player.living_room:
@ -69,9 +69,9 @@ homekit:
switch.bedroom_outlet: switch.bedroom_outlet:
type: outlet type: outlet
camera.back_porch: camera.back_porch:
support_audio: true support_audio: True
- name: "HASS Bridge 2" - name: HASS Bridge 2
port: 56332 port: 21065
filter: filter:
include_domains: include_domains:
- light - light
@ -83,16 +83,11 @@ homekit:
required: true required: true
type: map type: map
keys: keys:
auto_start:
description: Flag if the HomeKit Server should start automatically after the Home Assistant Core Setup is done. ([Disable Auto Start](#disable-auto-start))
required: false
type: boolean
default: true
port: port:
description: Port for the HomeKit extension. If you are adding more than one instance they need to have different values for port. description: Port for the HomeKit extension. If you are adding more than one instance they need to have different values for port.
required: false required: false
type: integer type: integer
default: 51827 default: 21063
name: name:
description: Need to be individual for each instance of Home Assistant using the integration on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed. description: Need to be individual for each instance of Home Assistant using the integration on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed.
required: false required: false
@ -304,12 +299,6 @@ Currently, this integration uses the `entity_id` to generate a unique `accessory
The HomeKit Accessory Protocol Specification only allows a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 devices limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`. The HomeKit Accessory Protocol Specification only allows a maximum of 150 unique accessories (`aid`) per bridge. Be mindful of this when configuring the filter(s). If you plan on exceeding the 150 devices limit, it is possible to create multiple bridges. If you need specific configuration for some entities via `entity_config` be sure to add them to a bridge configured via `YAML`.
### Persistence Storage
Unfortunately, `HomeKit` doesn't support any persistent storage - only the configuration for accessories that are added to the `Home Assistant Bridge` are kept. To avoid problems, it is recommended to use an automation to always start `HomeKit` with at least the same entities setup. If, for some reason, some entities are not set up, their configuration will be deleted. (State unknown or similar will not cause any issues.)
A common situation might be if you decide to disable parts of the configuration for testing. Please make sure to disable `auto start` and `turn off` the `Start HomeKit` automation (if you have one).
### Multiple HomeKit instances ### Multiple HomeKit instances
If you create a HomeKit integration via the UI (i.e., **Configuration** >> **Integrations**), it must be configured via the UI **only**. While the UI only offers limited configuration options at the moment, any attempt to configure a HomeKit instance created in the UI via the `configuration.yaml` file will result in another instance of HomeKit running on a different port. If you create a HomeKit integration via the UI (i.e., **Configuration** >> **Integrations**), it must be configured via the UI **only**. While the UI only offers limited configuration options at the moment, any attempt to configure a HomeKit instance created in the UI via the `configuration.yaml` file will result in another instance of HomeKit running on a different port.
@ -318,7 +307,7 @@ It is recommended to only edit a HomeKit instance in the UI that was created in
### Accessory mode ### Accessory mode
When exposing a Camera or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include a single entity. When exposing a Camera, Activity based remote (a `remote` that supports activities), Lock, or Television media player (a `media_player` with device class `tv`) to HomeKit, `mode` must be set to `accessory`, and the include filter should be setup to only include a single entity.
To quickly add all accessory modes entities in the UI: To quickly add all accessory modes entities in the UI:
@ -338,10 +327,6 @@ To add a single entity in accessory mode:
5. Complete the options flow 5. Complete the options flow
6. [Pair the accessory](#setup). 6. [Pair the accessory](#setup).
## Disable Auto Start
It is not needed (anymore) to disable `Auto Start` for all accessories to be available for `HomeKit` as Home Assistant restores all entities on start instantly.
## Configure Filter ## Configure Filter
By default, no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added. By default, no entity will be excluded. To limit which entities are being exposed to `HomeKit`, you can use the `filter` parameter. Keep in mind only [supported components](#supported-components) can be added.
@ -397,7 +382,7 @@ Restart your Home Assistant instance. This feature requires running an mDNS forw
If you have a firewall configured on your Home Assistant system, make sure you open the following ports: If you have a firewall configured on your Home Assistant system, make sure you open the following ports:
- UDP: 5353 - UDP: 5353
- TCP: 51827 (or the configured/used `port` in the integration settings). - TCP: 21063 (or the configured/used `port` in the integration settings).
## Supported Components ## Supported Components
@ -555,10 +540,6 @@ Pairing works fine when the filter is set to only include `demo.demo`, but fails
### Issues during normal use ### Issues during normal use
#### Some of my devices don't show up - Z-Wave / Discovery
See [disable auto start](#disable-auto-start)
#### My entity doesn't show up #### My entity doesn't show up
Check if the domain of your entity is [supported](#supported-components). If it is, check your [filter](#configure-filter) settings. Make sure the spelling is correct, especially if you use `include_entities`. Check if the domain of your entity is [supported](#supported-components). If it is, check your [filter](#configure-filter) settings. Make sure the spelling is correct, especially if you use `include_entities`.

View File

@ -14,8 +14,6 @@ ha_iot_class: Cloud Push
ha_release: 0.66 ha_release: 0.66
ha_config_flow: true ha_config_flow: true
ha_quality_scale: platinum ha_quality_scale: platinum
ha_codeowners:
- '@SukramJ'
ha_domain: homematicip_cloud ha_domain: homematicip_cloud
ha_platforms: ha_platforms:
- alarm_control_panel - alarm_control_panel

View File

@ -32,8 +32,9 @@ All configuration options are offered from the frontend. Choose `Options` under
relevant entry on the `Integrations` page. relevant entry on the `Integrations` page.
Options supported: Options supported:
- **priority**: The priority for color and effects, make sure this is lower then the streaming sources priority in hyperion itself (typically lower than 200 is appropriate). - **Priority**: The priority for color and effects, make sure this is lower then the streaming sources priority in hyperion itself (typically lower than 200 is appropriate).
- **Effects to hide**: An optional selection of effects to hide from the light effects
list. New effects added to the Hyperion server will be shown by default.
## Hyperion Instances ## Hyperion Instances
This integration supports multiple Hyperion instances running on a single Hyperion This integration supports multiple Hyperion instances running on a single Hyperion

View File

@ -122,3 +122,23 @@ logger:
``` ```
This will help you to find network connection issues etc. This will help you to find network connection issues etc.
## Services
### Service `izone.airflow_min`
Set the minimum airflow for a particular zone.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | izone Zone entity. For example `climate.bed_2`
| `airflow` | no | Airflow percent in 5% increments
### Service `izone.airflow_max`
Set the maximum airflow for a particular zone.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | izone Zone entity. For example `climate.bed_2`
| `airflow` | no | Airflow percent in 5% increments

View File

@ -58,13 +58,13 @@ There is currently support for the following device types within Home Assistant:
## Basic Configuration ## Basic Configuration
To use your KNX bus in your installation, add the following lines to your `configuration.yaml` file: To use your KNX devices from Home Assistant, add the following lines to your `configuration.yaml` file:
```yaml ```yaml
knx: knx:
``` ```
In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files as shown below: In order to make use of the various platforms that KNX offers you will need to add the relevant configuration sections to your setup. This could either all be in the Home Assistant main `configuration.yaml` file, or in a separate YAML file that you include in the main file or even be split into multiple dedicated files. See [Splitting up the configuration](/docs/configuration/splitting_configuration/).
```yaml ```yaml
knx: knx:
@ -79,18 +79,7 @@ knx:
Please see the dedicated platform sections below about how to configure them correctly. Please see the dedicated platform sections below about how to configure them correctly.
Alternatively, if you want to use the [XKNX](https://xknx.io/) library abstraction (e.g., to re-use the configuration also for other scripted tools outside of Home Assistant):
```yaml
knx:
config_file: "/path/to/xknx.yaml"
```
{% configuration %} {% configuration %}
config_file:
description: The path for XKNX configuration file. See [xknx.io](https://xknx.io/configuration) for details.
required: false
type: string
individual_address: individual_address:
description: The KNX individual address (IA) that shall be used for routing or if a tunneling server doesn't assign an IA at connection. description: The KNX individual address (IA) that shall be used for routing or if a tunneling server doesn't assign an IA at connection.
required: false required: false
@ -118,6 +107,33 @@ state_updater:
type: boolean type: boolean
{% endconfiguration %} {% endconfiguration %}
### Group addresses
Group addresses are configured as strings or integers in the format "1/2/3" for 3-level GA-structure, "1/2" for 2-level GA-structure or "1" for free GA-structure.
The HA KNX integration uses configured `state_address` or `*_state_address` to update the state of a function. These addresses are read by GroupValueRead requests on startup and when there was no incoming telegram for one hour (default `sync_state`).
It is possible to configure passive/listening group addresses for all functions of every KNX platform (except `expose` and `notify`). This allows having multiple group addresses to update the state of its function (e.g., the brightness of a light). When group addresses are configured as a list of strings, the first item is the active sending or state-reading address and the rest is registered as passive addresses. This schema behaves like in ETS configuration where the first is the "sending" address and others are just for updating the communication object.
If your KNX device provides active state communication objects it is advised to use `*_state_address` instead of passive addresses as it reduces configuration complexity and avoids wrong states (e.g., when channels are logically locked).
```yaml
knx:
switch:
- name: "Switch without passive addresses"
address: "1/1/1" # this is the address that will be sent to
state_address: "8/8/8" # this is the address GroupValueRead requests are sent to
- name: "Switch with passive addresses"
address:
- "1/1/1" # this is the address that will be sent to
- "1/1/2" # this and following are passive addresses
- "1/1/3"
state_address:
- "8/8/8" # this is the address GroupValueRead requests are sent to
- "8/8/2" # this and following are passive addresses
- "8/8/3"
```
## Connection ## Connection
Under normal conditions no connection configuration should be needed. The integration will auto-detect KNX/IP interfaces and connect to one. This requires multicast communication to work in your environment. Under normal conditions no connection configuration should be needed. The integration will auto-detect KNX/IP interfaces and connect to one. This requires multicast communication to work in your environment.
@ -145,6 +161,11 @@ local_ip:
description: IP address of the local interface. description: IP address of the local interface.
type: string type: string
required: false required: false
route_back:
description: When True the KNXnet/IP Server shall use the IP address and the port number from the IP package received as the target IP address or port number for the response to the KNXnet/IP Client (for NAT / Docker).
type: boolean
default: false
required: false
{% endconfiguration %} {% endconfiguration %}
### Routing ### Routing
@ -267,7 +288,7 @@ The `knx.event_register` service can be used to register (or unregister) group a
address: address:
description: Group address that shall be added or removed. description: Group address that shall be added or removed.
required: true required: true
type: string type: [string, list]
remove: remove:
description: If `True` the group address will be removed. description: If `True` the group address will be removed.
required: false required: false
@ -363,7 +384,7 @@ knx:
state_address: state_address:
description: KNX group address of the binary sensor. *DPT 1* description: KNX group address of the binary sensor. *DPT 1*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -569,7 +590,7 @@ name:
temperature_address: temperature_address:
description: KNX group address for reading current room temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current room temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
temperature_step: temperature_step:
description: Defines the step size in Kelvin for each step of setpoint_shift. description: Defines the step size in Kelvin for each step of setpoint_shift.
required: false required: false
@ -578,19 +599,19 @@ temperature_step:
target_temperature_address: target_temperature_address:
description: KNX group address for setting target temperature. *DPT 9.001* description: KNX group address for setting target temperature. *DPT 9.001*
required: false required: false
type: string type: [string, list]
target_temperature_state_address: target_temperature_state_address:
description: KNX group address for reading current target temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current target temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
setpoint_shift_address: setpoint_shift_address:
description: KNX address for setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode* description: KNX address for setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode*
required: false required: false
type: string type: [string, list]
setpoint_shift_state_address: setpoint_shift_state_address:
description: KNX address for reading setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode* description: KNX address for reading setpoint_shift. *DPT 6.010 or DPT 9.002 based on setpoint_shift_mode*
required: false required: false
type: string type: [string, list]
setpoint_shift_mode: setpoint_shift_mode:
description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'. description: Defines the internal device DPT used. Either 'DPT6010' or 'DPT9002'.
required: false required: false
@ -609,51 +630,51 @@ setpoint_shift_max:
operation_mode_address: operation_mode_address:
description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102* description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102*
required: false required: false
type: string type: [string, list]
operation_mode_state_address: operation_mode_state_address:
description: KNX address for reading operation mode. *DPT 20.102* description: KNX address for reading operation mode. *DPT 20.102*
required: false required: false
type: string type: [string, list]
controller_status_address: controller_status_address:
description: KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3). description: KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3).
required: false required: false
type: string type: [string, list]
controller_status_state_address: controller_status_state_address:
description: KNX address for reading HVAC controller status. description: KNX address for reading HVAC controller status.
required: false required: false
type: string type: [string, list]
controller_mode_address: controller_mode_address:
description: KNX address for setting HVAC controller modes. *DPT 20.105* description: KNX address for setting HVAC controller modes. *DPT 20.105*
required: false required: false
type: string type: [string, list]
controller_mode_state_address: controller_mode_state_address:
description: KNX address for reading HVAC control mode. *DPT 20.105* description: KNX address for reading HVAC control mode. *DPT 20.105*
required: false required: false
type: string type: [string, list]
heat_cool_address: heat_cool_address:
description: KNX address for switching between heat/cool mode. *DPT 1.100* description: KNX address for switching between heat/cool mode. *DPT 1.100*
required: false required: false
type: string type: [string, list]
heat_cool_state_address: heat_cool_state_address:
description: KNX address for reading heat/cool mode. *DPT 1.100* description: KNX address for reading heat/cool mode. *DPT 1.100*
required: false required: false
type: string type: [string, list]
operation_mode_frost_protection_address: operation_mode_frost_protection_address:
description: KNX address for switching on/off frost/heat protection mode. *DPT 1* description: KNX address for switching on/off frost/heat protection mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_night_address: operation_mode_night_address:
description: KNX address for switching on/off night mode. *DPT 1* description: KNX address for switching on/off night mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_comfort_address: operation_mode_comfort_address:
description: KNX address for switching on/off comfort mode. *DPT 1* description: KNX address for switching on/off comfort mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_mode_standby_address: operation_mode_standby_address:
description: KNX address for switching on/off standby mode. *DPT 1* description: KNX address for switching on/off standby mode. *DPT 1*
required: false required: false
type: string type: [string, list]
operation_modes: operation_modes:
description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device. description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device.
required: false required: false
@ -665,7 +686,7 @@ controller_modes:
on_off_address: on_off_address:
description: KNX address for switching the climate device on/off. *DPT 1* description: KNX address for switching the climate device on/off. *DPT 1*
required: false required: false
type: string type: [string, list]
on_off_invert: on_off_invert:
description: Value for switching the climate device on/off is inverted. description: Value for switching the climate device on/off is inverted.
required: false required: false
@ -674,7 +695,7 @@ on_off_invert:
on_off_state_address: on_off_state_address:
description: KNX address for gathering the current state (on/off) of the climate device. *DPT 1* description: KNX address for gathering the current state (on/off) of the climate device. *DPT 1*
required: false required: false
type: string type: [string, list]
min_temp: min_temp:
description: Override the minimum temperature. description: Override the minimum temperature.
required: false required: false
@ -719,31 +740,31 @@ name:
move_long_address: move_long_address:
description: KNX group address for moving the cover full up or down. *DPT 1* description: KNX group address for moving the cover full up or down. *DPT 1*
required: false required: false
type: string type: [string, list]
move_short_address: move_short_address:
description: KNX group address for moving the cover short time up or down. Used by some covers also as the means to stop the cover, if no dedicated `stop_address` exists on the actuator. *DPT 1* description: KNX group address for moving the cover short time up or down. Used by some covers also as the means to stop the cover, if no dedicated `stop_address` exists on the actuator. *DPT 1*
required: false required: false
type: string type: [string, list]
stop_address: stop_address:
description: KNX group address for stopping the current movement from the cover. *DPT 1* description: KNX group address for stopping the current movement from the cover. *DPT 1*
required: false required: false
type: string type: [string, list]
position_address: position_address:
description: KNX group address for moving the cover to the dedicated position. *DPT 5.001* description: KNX group address for moving the cover to the dedicated position. *DPT 5.001*
required: false required: false
type: string type: [string, list]
position_state_address: position_state_address:
description: Separate KNX group address for requesting the current position of the cover. *DPT 5.001* description: Separate KNX group address for requesting the current position of the cover. *DPT 5.001*
required: false required: false
type: string type: [string, list]
angle_address: angle_address:
description: KNX group address for moving the cover to the dedicated angle. *DPT 5.001* description: KNX group address for moving the cover to the dedicated angle. *DPT 5.001*
required: false required: false
type: string type: [string, list]
angle_state_address: angle_state_address:
description: Separate KNX group address for requesting the current angle of cover. *DPT 5.001* description: Separate KNX group address for requesting the current angle of cover. *DPT 5.001*
required: false required: false
type: string type: [string, list]
travelling_time_down: travelling_time_down:
description: Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling. description: Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling.
required: false required: false
@ -796,19 +817,19 @@ name:
address: address:
description: KNX group address for setting the percentage or step of the fan. *DPT 5.001* or *DPT 5.010* description: KNX group address for setting the percentage or step of the fan. *DPT 5.001* or *DPT 5.010*
required: true required: true
type: string type: [string, list]
state_address: state_address:
description: KNX group address for retrieving the percentage or step of the fan. *DPT 5.001* or *DPT 5.010* description: KNX group address for retrieving the percentage or step of the fan. *DPT 5.001* or *DPT 5.010*
required: false required: false
type: string type: [string, list]
oscillation_address: oscillation_address:
description: KNX group address for switching the fan oscillation on or off. *DPT 1* description: KNX group address for switching the fan oscillation on or off. *DPT 1*
required: false required: false
type: string type: [string, list]
oscillation_state_address: oscillation_state_address:
description: KNX group address for retrieving the state of the fan oscillation. *DPT 1* description: KNX group address for retrieving the state of the fan oscillation. *DPT 1*
required: false required: false
type: string type: [string, list]
max_step: max_step:
description: The maximum amount of steps for a step-controlled fan. If set, the integration will convert percentages to steps automatically. description: The maximum amount of steps for a step-controlled fan. If set, the integration will convert percentages to steps automatically.
required: false required: false
@ -838,11 +859,11 @@ knx:
address: address:
description: KNX group address for switching the light on and off. *DPT 1.001* description: KNX group address for switching the light on and off. *DPT 1.001*
required: true required: true
type: string type: [string, list]
state_address: state_address:
description: KNX group address for retrieving the switch state of the light. *DPT 1.001* description: KNX group address for retrieving the switch state of the light. *DPT 1.001*
required: false required: false
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -850,27 +871,27 @@ name:
brightness_address: brightness_address:
description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001* description: KNX group address for setting the brightness of the light in percent (absolute dimming). *DPT 5.001*
required: false required: false
type: string type: [string, list]
brightness_state_address: brightness_state_address:
description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001* description: KNX group address for retrieving the brightness of the light in percent. *DPT 5.001*
required: false required: false
type: string type: [string, list]
color_address: color_address:
description: KNX group address for setting the RGB color of the light. *DPT 232.600* description: KNX group address for setting the RGB color of the light. *DPT 232.600*
required: false required: false
type: string type: [string, list]
color_state_address: color_state_address:
description: KNX group address for retrieving the RGB color of the light. *DPT 232.600* description: KNX group address for retrieving the RGB color of the light. *DPT 232.600*
required: false required: false
type: string type: [string, list]
rgbw_address: rgbw_address:
description: KNX group address for setting the RGBW color of the light. *DPT 251.600* description: KNX group address for setting the RGBW color of the light. *DPT 251.600*
required: false required: false
type: string type: [string, list]
rgbw_state_address: rgbw_state_address:
description: KNX group address for retrieving the RGBW color of the light. *DPT 251.600* description: KNX group address for retrieving the RGBW color of the light. *DPT 251.600*
required: false required: false
type: string type: [string, list]
individual_colors: individual_colors:
description: Used when the actuator only supports individual group addresses for colors. When `address` is specified for all 3 (or 4) individual colors the root `address` key can be omitted. description: Used when the actuator only supports individual group addresses for colors. When `address` is specified for all 3 (or 4) individual colors the root `address` key can be omitted.
required: false required: false
@ -883,21 +904,19 @@ individual_colors:
keys: keys:
address: address:
description: KNX group address to switch the red component. *DPT 1.001* description: KNX group address to switch the red component. *DPT 1.001*
type: string type: [string, list]
required: false required: false
state_address: state_address:
description: KNX group address for the state of the red component. *DPT 1.001* description: KNX group address for the state of the red component. *DPT 1.001*
type: string type: [string, list]
required: false required: false
brightness_address: brightness_address:
description: KNX group address to set the brightness of the red component. *DPT 5.001* description: KNX group address to set the brightness of the red component. *DPT 5.001*
type: string type: [string, list]
required: true required: true
brightness_state_address: brightness_state_address:
description: KNX group address for the current brightness of the red component. *DPT 5.001* description: KNX group address for the current brightness of the red component. *DPT 5.001*
type: string type: [string, list]
required: false
type: string
required: false required: false
green: green:
description: Group addresses for the green component. Same keys available as for red component above. description: Group addresses for the green component. Same keys available as for red component above.
@ -914,11 +933,11 @@ individual_colors:
color_temperature_address: color_temperature_address:
description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* description: KNX group address for setting the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false required: false
type: string type: [string, list]
color_temperature_state_address: color_temperature_state_address:
description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode* description: KNX group address for retrieving the color temperature of the light. *DPT 5.001 or 7.600 based on color_temperature_mode*
required: false required: false
type: string type: [string, list]
color_temperature_mode: color_temperature_mode:
description: Color temperature group address data type. `absolute` color temperature in Kelvin. *color_temperature_address -> DPT 7.600*. `relative` color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001* description: Color temperature group address data type. `absolute` color temperature in Kelvin. *color_temperature_address -> DPT 7.600*. `relative` color temperature in percent cold white (0% warmest; 100% coldest). *color_temperature_address -> DPT 5.001*
required: false required: false
@ -996,7 +1015,7 @@ knx:
address: address:
description: KNX group address of the notification. *DPT 16.000* description: KNX group address of the notification. *DPT 16.000*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -1020,7 +1039,7 @@ knx:
address: address:
description: KNX group address for the scene. *DPT 17.001* description: KNX group address for the scene. *DPT 17.001*
required: true required: true
type: string type: [string, list]
scene_number: scene_number:
description: KNX scene number to be activated (range 1..64 ). description: KNX scene number to be activated (range 1..64 ).
required: true required: true
@ -1062,7 +1081,7 @@ knx:
state_address: state_address:
description: KNX group address of the sensor. description: KNX group address of the sensor.
required: true required: true
type: string type: [string, list]
type: type:
description: A type from the value types table below must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly. description: A type from the value types table below must be defined. The DPT of the group address should match the expected KNX DPT to be parsed correctly.
required: true required: true
@ -1268,7 +1287,7 @@ knx:
address: address:
description: KNX group address for switching the switch on/off. *DPT 1* description: KNX group address for switching the switch on/off. *DPT 1*
required: true required: true
type: string type: [string, list]
name: name:
description: A name for this device used within Home Assistant. description: A name for this device used within Home Assistant.
required: false required: false
@ -1277,7 +1296,7 @@ name:
state_address: state_address:
description: Separate KNX group address for retrieving the switch state. *DPT 1* description: Separate KNX group address for retrieving the switch state. *DPT 1*
required: false required: false
type: string type: [string, list]
invert: invert:
description: Invert the telegrams payload before processing or sending. description: Invert the telegrams payload before processing or sending.
required: false required: false
@ -1324,55 +1343,55 @@ name:
address_temperature: address_temperature:
description: KNX group address for reading current outside temperature from KNX bus. *DPT 9.001* description: KNX group address for reading current outside temperature from KNX bus. *DPT 9.001*
required: true required: true
type: string type: [string, list]
address_brightness_south: address_brightness_south:
description: KNX group address for reading current brightness to south coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to south coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_west: address_brightness_west:
description: KNX group address for reading current brightness to west coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to west coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_east: address_brightness_east:
description: KNX group address for reading current brightness to east coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to east coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_brightness_north: address_brightness_north:
description: KNX group address for reading current brightness to north coordinate from KNX bus. *DPT 9.004* description: KNX group address for reading current brightness to north coordinate from KNX bus. *DPT 9.004*
required: false required: false
type: string type: [string, list]
address_wind_bearing: address_wind_bearing:
description: KNX group address for reading current wind bearing from KNX bus. *DPT 5.003* description: KNX group address for reading current wind bearing from KNX bus. *DPT 5.003*
required: false required: false
type: string type: [string, list]
address_wind_speed: address_wind_speed:
description: KNX group address for reading current wind speed from KNX bus. *DPT 9.005* description: KNX group address for reading current wind speed from KNX bus. *DPT 9.005*
required: false required: false
type: string type: [string, list]
address_rain_alarm: address_rain_alarm:
description: KNX group address for reading if rain alarm is on/off. description: KNX group address for reading if rain alarm is on/off.
required: false required: false
type: string type: [string, list]
address_frost_alarm: address_frost_alarm:
description: KNX group address for reading if frost alarm is on/off. description: KNX group address for reading if frost alarm is on/off.
required: false required: false
type: string type: [string, list]
address_wind_alarm: address_wind_alarm:
description: KNX group address for reading if wind alarm is on/off. description: KNX group address for reading if wind alarm is on/off.
required: false required: false
type: string type: [string, list]
address_day_night: address_day_night:
description: KNX group address for reading if it's day/night. description: KNX group address for reading if it's day/night.
required: false required: false
type: string type: [string, list]
address_air_pressure: address_air_pressure:
description: KNX address reading current air pressure. *DPT 9.006* description: KNX address reading current air pressure. *DPT 9.006*
required: false required: false
type: string type: [string, list]
address_humidity: address_humidity:
description: KNX address for reading current humidity. *DPT 9.007* description: KNX address for reading current humidity. *DPT 9.007*
required: false required: false
type: string type: [string, list]
create_sensors: create_sensors:
description: If true, dedicated sensor entities are created for all configured properties. description: If true, dedicated sensor entities are created for all configured properties.
required: false required: false

View File

@ -15,6 +15,7 @@ The `mqtt` light platform lets you control your MQTT enabled lights through one
| Function | [`default`](#default-schema) | [`json`](#json-schema) | [`template`](#template-schema) | | Function | [`default`](#default-schema) | [`json`](#json-schema) | [`template`](#template-schema) |
|-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------| |-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------|
| Brightness | ✔ | ✔ | ✔ | | Brightness | ✔ | ✔ | ✔ |
| Color mode | | ✔ | |
| Color temperature | ✔ | ✔ | ✔ | | Color temperature | ✔ | ✔ | ✔ |
| Effects | ✔ | ✔ | ✔ | | Effects | ✔ | ✔ | ✔ |
| Flashing | ✘ | ✔ | ✔ | | Flashing | ✘ | ✔ | ✔ |
@ -138,6 +139,10 @@ device:
description: 'The name of the device.' description: 'The name of the device.'
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: 'The firmware version of the device.' description: 'The firmware version of the device.'
required: false required: false
@ -177,6 +182,10 @@ hs_value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the HS value."
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false
@ -389,16 +398,19 @@ light:
The `mqtt` light platform with JSON schema lets you control a MQTT-enabled light that can receive [JSON](https://en.wikipedia.org/wiki/JSON) messages. The `mqtt` light platform with JSON schema lets you control a MQTT-enabled light that can receive [JSON](https://en.wikipedia.org/wiki/JSON) messages.
This schema supports on/off, brightness, RGB colors, XY colors, color temperature, transitions, short/long flashing and white values. The messages sent to/from the lights look similar to this, omitting fields when they aren't needed: This schema supports on/off, brightness, RGB colors, XY colors, color temperature, transitions, short/long flashing and white values. The messages sent to/from the lights look similar to this, omitting fields when they aren't needed. The `color_mode` will not be present in messages sent to the light. It is optional in messages received from the light, but can be used to disambiguate the current mode in the light. In the example below, `color_mode` is set to `rgb` and `color_temp`, `color.c`, `color.w`, color.x`, `color.y`, `color.h`, `color.s` will all be ignored:
```json ```json
{ {
"brightness": 255, "brightness": 255,
"color_mode": "rgb",
"color_temp": 155, "color_temp": 155,
"color": { "color": {
"r": 255, "r": 255,
"g": 180, "g": 180,
"b": 200, "b": 200,
"c": 100,
"w": 50,
"x": 0.406, "x": 0.406,
"y": 0.301, "y": 0.301,
"h": 344.0, "h": 344.0,
@ -466,8 +478,8 @@ brightness_scale:
required: false required: false
type: integer type: integer
default: 255 default: 255
color_temp: color_mode:
description: Flag that defines if the light supports color temperature. description: Flag that defines if the light supports color modes.
required: false required: false
type: boolean type: boolean
default: false default: false
@ -523,11 +535,10 @@ flash_time_short:
required: false required: false
type: integer type: integer
default: 2 default: 2
hs: icon:
description: Flag that defines if the light supports HS colors. description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false required: false
type: boolean type: icon
default: false
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false
@ -574,11 +585,6 @@ retain:
required: false required: false
type: boolean type: boolean
default: false default: false
rgb:
description: Flag that defines if the light supports RGB colors.
required: false
type: boolean
default: false
schema: schema:
description: The schema to use. Must be `json` to select the JSON schema". description: The schema to use. Must be `json` to select the JSON schema".
required: false required: false
@ -588,20 +594,14 @@ state_topic:
description: The MQTT topic subscribed to receive state updates. description: The MQTT topic subscribed to receive state updates.
required: false required: false
type: string type: string
supported_color_modes:
description: A list of color modes supported by the list. This is required if `color_mode` is `True`. Possible color modes are `onoff`, `brightness`, `color_temp`, `hs`, `xy`, `rgb`, `rgbw`, `rgbww`.
required: false
type: list
unique_id: unique_id:
description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception. description: An ID that uniquely identifies this light. If two lights have the same unique ID, Home Assistant will raise an exception.
required: false required: false
type: string type: string
white_value:
description: Flag that defines if the light supports white values.
required: false
type: boolean
default: false
xy:
description: Flag that defines if the light supports XY colors.
required: false
type: boolean
default: false
{% endconfiguration %} {% endconfiguration %}
<div class='note warning'> <div class='note warning'>
@ -633,7 +633,8 @@ light:
state_topic: "home/rgb1" state_topic: "home/rgb1"
command_topic: "home/rgb1/set" command_topic: "home/rgb1/set"
brightness: true brightness: true
rgb: true color_mode: true
supported_color_modes: ["rgb"]
``` ```
### Brightness and no RGB support ### Brightness and no RGB support
@ -649,6 +650,8 @@ light:
state_topic: "home/rgb1" state_topic: "home/rgb1"
command_topic: "home/rgb1/set" command_topic: "home/rgb1/set"
brightness: true brightness: true
color_mode: true
supported_color_modes: ["brightness"]
``` ```
### Brightness Scaled ### Brightness Scaled
@ -664,6 +667,8 @@ light:
command_topic: "home/light/set" command_topic: "home/light/set"
brightness: true brightness: true
brightness_scale: 4095 brightness_scale: 4095
color_mode: true
supported_color_modes: ["brightness"]
``` ```
Home Assistant will then convert its 8bit value in the message to and from the device: Home Assistant will then convert its 8bit value in the message to and from the device:
@ -677,7 +682,7 @@ Home Assistant will then convert its 8bit value in the message to and from the d
### HS Color ### HS Color
To use a light with hue+saturation as the color model, set `hs` to `true` in the platform configuration: To use a light with hue+saturation as the color model, set `supported_color_modes` to `["hs"]` in the platform configuration:
```yaml ```yaml
light: light:
@ -686,7 +691,8 @@ light:
name: mqtt_json_hs_light name: mqtt_json_hs_light
state_topic: "home/light" state_topic: "home/light"
command_topic: "home/light/set" command_topic: "home/light/set"
hs: true color_mode: true
supported_color_modes: ["hs"]
``` ```
Home Assistant expects the hue values to be in the range 0 to 360 and the saturation values to be scaled from 0 to 100. For example, the following is a blue color shade: Home Assistant expects the hue values to be in the range 0 to 360 and the saturation values to be scaled from 0 to 100. For example, the following is a blue color shade:
@ -694,6 +700,7 @@ Home Assistant expects the hue values to be in the range 0 to 360 and the satura
```json ```json
{ {
"state": "ON", "state": "ON",
"color_mode": "hs",
"color": { "color": {
"h": 24.0, "h": 24.0,
"s": 100.0 "s": 100.0
@ -714,8 +721,8 @@ light:
state_topic: "home/rgbw1" state_topic: "home/rgbw1"
command_topic: "home/rgbw1/set" command_topic: "home/rgbw1/set"
brightness: true brightness: true
rgb: true color_mode: true
white_value: true supported_color_modes: ["rgbw"]
``` ```
@ -854,6 +861,10 @@ green_template:
description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value." description: "[Template](/docs/configuration/templating/#processing-incoming-data) to extract green color from the state payload value."
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -85,6 +85,10 @@ device:
description: 'The name of the device.' description: 'The name of the device.'
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: 'The firmware version of the device.' description: 'The firmware version of the device.'
required: false required: false
@ -93,6 +97,10 @@ device:
description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.' description: 'Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device. This is used to show device topology in Home Assistant.'
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false

View File

@ -88,6 +88,14 @@ where **namespace** is the *<component_namespace>* currently logging.
'&lt;component_namespace&gt;': '&lt;component_namespace&gt;':
description: Logger namespace of the component. See [log_level](#log-levels). description: Logger namespace of the component. See [log_level](#log-levels).
type: string type: string
filters:
description: Regular Expression logging filters.
required: false
type: map
keys:
'&lt;component_namespace&gt;':
description: Logger namespace of the component and a list of Regular Expressions. See [Log Filters](#log-filters).
type: list
{% endconfiguration %} {% endconfiguration %}
In the example, do note the difference between 'glances_api' and 'homeassistant.components.glances' namespaces, In the example, do note the difference between 'glances_api' and 'homeassistant.components.glances' namespaces,
@ -110,6 +118,26 @@ Possible log severity levels, listed in order from most severe to least severe,
- debug - debug
- notset - notset
### Log Filters
Service-specific Regular Expression filters for logs. A message is omitted if it matches the Regular Expression.
An example configuration might look like this:
```yaml
# Example configuration.yaml entry
logger:
default: info
logs:
custom_components.my_integration: critical
filters:
custom_component.my_integartion:
- "HTTP 429" # Filter all HTTP 429 errors
- "Request to .*unreliable.com.* Timed Out"
homeassistant.components.nws:
- "^Error handling request$"
```
## Services ## Services
### Service `set_default_level` ### Service `set_default_level`

View File

@ -175,3 +175,18 @@ default_room:
The target room has to be precreated, the room id can be obtained from the rooms settings dialog. Rooms by default have a canonical id of the form `"!<randomid>:homeserver.tld"`, but can also be allocated aliases like `"#roomname:homeserver.tld"`. Make sure to use quotes around the room id or alias to escape special characters (`!`, and `#`) in YAML. The notifying account may need to be invited to the room, depending on the individual rooms policies. The target room has to be precreated, the room id can be obtained from the rooms settings dialog. Rooms by default have a canonical id of the form `"!<randomid>:homeserver.tld"`, but can also be allocated aliases like `"#roomname:homeserver.tld"`. Make sure to use quotes around the room id or alias to escape special characters (`!`, and `#`) in YAML. The notifying account may need to be invited to the room, depending on the individual rooms policies.
To use notifications, please see the [getting started with automation page](/getting-started/automation/). To use notifications, please see the [getting started with automation page](/getting-started/automation/).
### Images in notification
It is possible to send images with notifications. To do so, add a list of paths in the notification `data`.
```yaml
# Example of notification with images
action:
service: notify.matrix_notify
data:
message: "Test with images"
data:
images:
- /path/to/picture.jpg
```

View File

@ -14,7 +14,7 @@ Interacts with media players on your network.
## Services ## Services
### Media control services ### Media control services
Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `repeat_set`, `play_media`, `select_source`, `select_sound_mode` Available services: `turn_on`, `turn_off`, `toggle`, `volume_up`, `volume_down`, `volume_set`, `volume_mute`, `media_play_pause`, `media_play`, `media_pause`, `media_stop`, `media_next_track`, `media_previous_track`, `clear_playlist`, `shuffle_set`, `repeat_set`, `play_media`, `select_source`, `select_sound_mode`, `join`, `unjoin`
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------ | | ---------------------- | -------- | ------------------------------------------------ |
@ -156,6 +156,21 @@ Currently only supported on [Sonos](/integrations/sonos), [Spotify](/integration
| `entity_id` | yes | Target a specific media player. For example `media_player.kitchen`| | `entity_id` | yes | Target a specific media player. For example `media_player.kitchen`|
| `repeat` | no | `off`/`all`/`one` for setting repeat mode | | `repeat` | no | `off`/`all`/`one` for setting repeat mode |
#### Service `media_player.join`
Allows to group media players together for synchronous playback. Only works on supported multiroom audio systems.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | yes | The media player entity whose playback will be expanded to the players specified in `group_members`. |
| `group_members` | no | The player entities which will be synced with the playback from `entity_id`. |
#### Service `media_player.unjoin`
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | yes | Unjoin this media player from any player groups. |
### Device Class ### Device Class
The way media players are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for media players: The way media players are displayed in the frontend can be modified in the [customize section](/getting-started/customizing-devices/). The following device classes are supported for media players:

View File

@ -1,6 +1,6 @@
--- ---
title: Modbus title: Modbus
description: Instructions on how to integrate Modbus within Home Assistant. description: Instructions on how to integrate Modbus and platforms.
ha_category: ha_category:
- Hub - Hub
ha_release: pre 0.7 ha_release: pre 0.7
@ -23,7 +23,16 @@ It supports various types of devices which can be controlled over serial, TCP, a
## Configuration ## Configuration
The configuration for adding modbus to your installation depends on the connection type, either a network or serial connection. How to add modbus to your installation depends on the connection type, either a network or serial connection.
Platforms:
- binary_sensor
- climate
- cover
- sensor
- switch
are all defined as part of the modbus configuration. The old configuration style, (having each outside the modbus configuration is still supported, but will cause a warning, and will be removed in a later release).
### Network connection ### Network connection
@ -32,40 +41,40 @@ For a network connection, add the following to your `configuration.yaml` file:
```yaml ```yaml
# Example configuration.yaml entry for a TCP connection # Example configuration.yaml entry for a TCP connection
modbus: modbus:
name: hub1 - name: hub1
type: tcp type: tcp
host: IP_ADDRESS host: IP_ADDRESS
port: 2020 port: 502
``` ```
{% configuration %} {% configuration %}
type:
description: Type of the connection to Modbus. Possible values are `tcp` (Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation.), `udp`(Modbus TCP form, but using UDP for transport. It removes the overheads required for TCP.) and `rtuovertcp` (Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines.).
required: true
type: string
host:
description: The IP address of your Modbus device, e.g., 192.168.1.1.
required: true
type: string
port:
description: The network port for the communication.
required: true
type: integer
name:
description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
required: false
default: modbus_hub
type: string
timeout:
description: Timeout for slave response in seconds.
required: false
default: 3
type: integer
delay: delay:
description: Time to sleep in seconds after connecting and before sending messages. Some modbus-tcp servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help. description: Time to sleep in seconds after connecting and before sending messages. Some modbus-tcp servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help.
required: false required: false
default: 0 default: 0
type: integer type: integer
host:
description: The IP address of your Modbus device, e.g., 192.168.1.1.
required: true
type: string
name:
description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
required: false
default: modbus_hub
type: string
port:
description: The network port for the communication.
required: true
type: integer
timeout:
description: Timeout for slave response in seconds.
required: false
default: 3
type: integer
type:
description: Type of the connection to Modbus. Possible values are `tcp` (Modbus TCP protocol according to "MODBUS Messaging Implementation Guide version 1.0b" provided by Schneider Automation.), `udp`(Modbus TCP form, but using UDP for transport. It removes the overheads required for TCP.) and `rtuovertcp` (Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of serial lines.).
required: true
type: string
{% endconfiguration %} {% endconfiguration %}
### Serial connection ### Serial connection
@ -75,58 +84,661 @@ For a serial connection, add the following to your `configuration.yaml` file:
```yaml ```yaml
# Example configuration.yaml entry for a serial connection # Example configuration.yaml entry for a serial connection
modbus: modbus:
name: hub1 - name: hub1
type: serial type: serial
method: rtu method: rtu
port: /dev/ttyUSB0 port: /dev/ttyUSB0
baudrate: 9600 baudrate: 9600
stopbits: 1 stopbits: 1
bytesize: 8 bytesize: 8
parity: N parity: N
``` ```
{% configuration %} {% configuration %}
type:
description: "Type of the connection to Modbus, needs to be `serial` for this setup."
required: true
type: string
method:
description: "Method of the connection to Modbus, either `rtu` or `ascii`."
required: true
type: string
port:
description: The port where your Modbus device is connected to your Home Assistant host.
required: true
type: string
baudrate: baudrate:
description: The speed for the serial connection. description: The speed for the serial connection.
required: true required: true
type: integer type: integer
stopbits:
description: "The stopbits for the serial connection, either `1` or `2`."
required: true
type: integer
bytesize: bytesize:
description: "The bytesize for the serial connection; can be `5`, `6`, `7` or `8`." description: "The bytesize for the serial connection; can be `5`, `6`, `7` or `8`."
required: true required: true
type: integer type: integer
parity: delay:
description: "The parity for the serial connection; can be `E`, `O` or `N`." description: Time to sleep in seconds after connecting and before sending messages. Some modbus servers need a short delay typically 1-2 seconds in order to prepare the communication. If a server accepts connecting, but there is no response to the requests send, this parameter might help.
required: false
default: 0
type: integer
method:
description: "Method of the connection to Modbus, either `rtu` or `ascii`."
required: true required: true
type: string type: string
name: name:
description: Name for this hub. Must be unique, so it is required when setting up multiple instances. description: Name for this hub. Must be unique, so it is required when setting up multiple instances.
required: false required: false
default: default default: modbus_hub
type: string type: string
parity:
description: "The parity for the serial connection; can be `E`, `O` or `N`."
required: true
type: string
port:
description: The port where your Modbus device is connected to your Home Assistant host.
required: true
type: string
stopbits:
description: "The stopbits for the serial connection, either `1` or `2`."
required: true
type: integer
timeout: timeout:
description: Timeout for slave response in seconds. description: Timeout for slave response in seconds.
required: false required: false
default: 3 default: 3
type: integer type: integer
type:
description: "Type of the connection to Modbus, needs to be `serial` for this setup."
required: true
type: string
{% endconfiguration %} {% endconfiguration %}
### Multiple connections ### Configuring platform binary sensor
The `modbus` binary sensor allows you to gather data from [Modbus](http://www.modbus.org/) coils with state ON/OFF.
To use your Modbus binary sensors in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry for binary_sensor configuration
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
binary_sensors:
- name: Sensor1
slave: 1
address: 100
- name: Sensor2
address: 110
input_type: discrete_input
```
{% configuration %}
binary_sensors:
description: A list of all binary_sensors available in this modbus instance.
required: false
type: [map]
keys:
device_class:
description: Device class to be used for the UI (e.g. "door").
required: false
type: string
input_type:
description: type of adddress (holding/discrete/coil)
required: false
default: holding
type: integer
name:
description: Name for this binary_sensor. Must be unique.
required: true
type: string
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
slave:
description: The number of the slave.
required: false
type: integer
{% endconfiguration %}
### Configuring platform climate
To use your Modbus thermostat in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
climates:
- name: Watlow F4T
slave: 1
data_type: uint
data_count: 1
scale: 0.1
offset: 0
precision: 1
max_temp: 30
min_temp: 15
temp_step: 1
target_temp_register: 2782
current_temp_register: 27586
```
{% configuration %}
climates:
description: A list of all climates available in this modbus instance.
required: false
type: [map]
keys:
current_temp_register:
description: Register number for current temperature (Process value).
required: true
type: integer
current_temp_register_type:
description: Modbus register type (holding, input) for current temperature, default holding.
required: false
type: string
default: holding
data_count:
description: Number of registers to read.
required: false
type: integer
default: 2
data_type:
description: Response representation (int, uint, float, custom). If float selected, value will converted to IEEE 754 floating point format.
required: false
type: string
default: float
min_temp:
description: Maximum setpoint temperature.
required: false
type: integer
default: 5
name:
description: Name of the device
required: true
type: string
offset:
description: Final offset (output = scale * value + offset).
required: false
type: float
default: 0
precision:
description: Number of valid decimals.
required: false
type: integer
default: 1
scale:
description: Scale factor (output = scale * value + offset).
required: false
type: float
default: 1
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
slave:
description: The number of the slave (Optional for tcp and upd Modbus, use 1).
required: true
type: integer
structure:
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
default: ">f"
target_temp_register:
description: Register number for target temperature (Setpoint).
required: true
type: integer
temp_step:
description: The supported step size a target temperature can be increased/decreased.
required: false
type: float
default: 0.5
temperature_unit:
description: Temperature unit reported by the current_temp_register. C or F
required: false
type: string
default: C
{% endconfiguration %}
#### Services
| Service | Description |
| ------- | ----------- |
| set_temperature | Set Temperature. Requires `value` to be passed in, which is the desired target temperature. `value` should be in the same type as `data_type` |
### Configuring platform cover
The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door).
At the moment, we support the opening and closing of a cover. You can control your covers either using coils or holding registers.
Cover that uses the `coil` attribute is not able to determine intermediary states such as opening and closing. Coil stores only two states — "0" means cover closed, and "1" implies cover open. To allow detecting intermediary states, we added an optional `status_register` attribute. It will enable you to write your command (e.g., to open a cover) into a coil, and read current cover status back through the register. Additionally, you can specify values for `state_open`, `state_opening`, `state_closed`, and `state_closing` attributes. These will be matched with the value read from the `status_register`.
If your cover uses holding register to send commands (defined by the `register` attribute), it can also read the intermediary states. To adjust which value represents what state, you can fine-tune the optional state attributes, like `state_open`. These optional state values are also used for specifying values written into the register. If you specify an optional status_register attribute, cover states will be read from status_register instead of the register used for sending commands.
To use Modbus covers in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
device_class: door
scan_interval: 1
coil: 0
- name: Door2
device_class: door
scan_interval: 1
coil: 1
status_register: 1
- name: Door3
slave: 2
device_class: door
scan_interval: 1
register: 0
state_open: 1
state_closed: 0
```
{% configuration %}
covers:
description: The array contains a list of all your Modbus covers.
required: true
type: map
keys:
coil:
description: Coil address; can be omitted if a register attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them.
required: true
type: integer
device_class:
description: The [type/class](/integrations/cover/#device-class) of the cover to set the icon in the frontend.
required: false
type: device_class
default: None
name:
description: Name of the switch.
required: true
type: string
register:
description: Holding register address; can be omitted if a coil attribute is specified. Coil and register attributes are mutually exclusive, and you need to always specify one of them.
required: true
type: integer
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: false
default: 1
type: integer
state_open:
description: A value in `status_register` or `register` representing an open cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to open the cover.
required: false
default: 1
type: integer
state_closed:
description: A value in `status_register` or `register` representing a closed cover. If your configuration uses an `register` attribute, this value will be also written into a holding register to close the cover.
required: false
default: 0
type: integer
state_opening:
description: A value in `status_register` or `register` telling us that the cover is opening at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected.
required: false
default: 2
type: integer
state_closing:
description: A value in `status_register` or `register` telling us that the cover is closing at the moment. Note that this state should be also supported on your connected Modbus cover. If it won't write this intermediary state into the register, this state won't be detected.
required: false
default: 2
type: integer
status_register:
description: An address of an register, from which all the cover states will be read. If you specified `register` attribute, and not `status_register` attribute, your main register will also be used as a status register.
required: false
type: integer
status_register_type:
description: Modbus register type (holding, input), default holding.
required: false
type: string
{% endconfiguration %}
#### Example: Modbus cover controlled by a coil
This example shows a configuration for a Modbus cover controlled using a coil. Intermediary states like opening/closing are not supported. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
coil: 1
device_class: door
scan_interval: 10
- name: Door2
slave: 2
coil: 2
device_class: door
scan_interval: 10
```
#### Example: Modbus cover controlled by a coil, it's state is read from the register
This example shows a configuration for a Modbus cover controlled using a coil. Actual cover state is read from the `status_register`. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
coil: 1
status_register: 1
status_register_type: input
state_opening: 1
state_open: 2
state_closing: 3
state_closed: 4
```
#### Example: Modbus cover controlled by a holding register
This example shows a configuration for a Modbus cover controlled using a holding register, from which we also read current cover state. We've also specified register values to match with the states open/opening/closed/closing. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
register: 1
state_opening: 1
state_open: 2
state_closing: 3
state_closed: 4
```
#### Example: Modbus cover controlled by a holding register, it's state is read from the status register
This example shows a configuration for a Modbus cover controlled using a holding register. However, cover state is read from a `status_register`. In this case, we've specified only values for `state_open` and `state_closed`, for the rest, default values are used. The cover state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
covers:
- name: Door1
slave: 1
device_class: door
scan_interval: 10
register: 1
status_register: 2
register_type: holding
state_open: 1
state_closed: 0
```
### Configuring platform sensor
The `modbus` cover platform allows you to control [Modbus](http://www.modbus.org/) covers (such as blinds, a roller shutter, or a garage door).
The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers.
To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
sensors:
- name: Sensor1
unit_of_measurement: °C
slave: 1
address: 100
- name: Sensor2
unit_of_measurement: mg
slave: 1
register: 110
count: 2
- name: Sensor3
unit_of_measurement: °C
slave: 1
address: 120
input_type: input
data_type: float
scale: 0.01
offset: -273.16
precision: 2
```
{% configuration %}
sensors:
description: The array contains a list of all your Modbus sensors.
required: true
type: map
keys:
address:
description: Register number.
required: true
type: integer
count:
description: Number of registers to read.
required: false
type: integer
default: 1
data_type:
description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format.
required: false
default: int
type: string
device_class:
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend.
required: false
type: device_class
default: None
input_type:
description: Modbus register type (holding, input), default holding.
required: false
type: string
name:
description: Name of the sensor.
required: true
type: string
offset:
description: Final offset (output = scale * value + offset).
required: false
default: 0
type: float
precision:
description: Number of valid decimals.
required: false
default: 0
type: integer
reverse_order:
description: Reverse the order of registers when count >1.
required: false
default: false
type: boolean
scale:
description: Scale factor (output = scale * value + offset).
required: false
default: 1
type: float
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
slave:
description: The number of the slave (Optional for tcp and upd Modbus).
required: true
type: integer
structure:
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
unit_of_measurement:
description: Unit to attach to value.
required: false
type: integer
{% endconfiguration %}
<div class='note'>
If you specify scale or offset as floating point values, double precision floating point arithmetic will be used to calculate final value. This can cause loss of precision for values that are larger than 2^53.
</div>
#### Full example
Example a temperature sensor with a 10 seconds scan interval:
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
sensors:
- name: Room_1
slave: 10
address: 0
input_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: integer
```
### Configuring platform switch
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
To use your Modbus switches in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
switches:
- name: Switch1
address: 13
input_type: coil
- name: Switch2
slave: 2
address: 14
input_type: coil
- name: Register1
address: 11
command_on: 1
command_off: 0
```
{% configuration %}
switches:
description: The array contains a list of all your Modbus switches.
required: true
type: map
keys:
address:
description: Coil number or register
required: true
type: integer
command_on:
description: Value to write to turn on the switch.
required: true
type: integer
command_off:
description: Value to write to turn off the switch.
required: true
type: integer
input_type:
description: type of adddress (holding/discrete/coil)
required: false
default: holding
type: integer
name:
description: Name of the switch.
required: true
type: string
scan_interval:
description: Defines the update interval of the sensor in seconds.
required: false
type: integer
default: 15
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
type: integer
state_on:
description: Register value when switch is on.
required: false
default: same as command_on
type: integer
state_off:
description: Register value when switch is off.
required: false
default: same as command_off
type: integer
verify_register:
description: Register to readback.
required: false
default: same as register
type: string
verify_state:
description: Define if is possible to readback the status of the switch.
required: false
default: true
type: boolean
{% endconfiguration %}
#### Full example
Example switches, for which the state is polled from Modbus every 10 seconds.
```yaml
modbus:
- name: hub1
type: tcp
host: IP_ADDRESS
port: 502
switches:
- name: Switch1
slave: 1
address: 13
input_type: coil
- name: Switch2
slave: 2
address: 14
```
#### Multiple connections
Multiple connections are possible, add something like the following to your `configuration.yaml` file: Multiple connections are possible, add something like the following to your `configuration.yaml` file:

View File

@ -104,6 +104,7 @@ The following attributes can be placed inside `data` for extended functionality.
| `priority` | For recipients which supports priority, the message will be highlighted accordingly.<br>Available values: `lowest`, `low`, `normal`, `high`, `highest`. | `priority` | For recipients which supports priority, the message will be highlighted accordingly.<br>Available values: `lowest`, `low`, `normal`, `high`, `highest`.
| `images` | Array of images to attach (see item properties below). | `images` | Array of images to attach (see item properties below).
| `files` | Array of files to attach (see item properties below). | `files` | Array of files to attach (see item properties below).
| `token` | Notify.Events channel token (in case you want to override the channel to get this message to).
Every item of images and files has the following properties: Every item of images and files has the following properties:

View File

@ -88,7 +88,7 @@ device:
required: false required: false
type: string type: string
icon: icon:
description: Icon for the number. description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false required: false
type: icon type: icon
json_attributes_template: json_attributes_template:

View File

@ -59,16 +59,16 @@ The precision and floor_temperature settings that were supported in configuratio
The OpenTherm Gateway can be further configured through the integration settings in the web interface The OpenTherm Gateway can be further configured through the integration settings in the web interface
The following options are available: The following options are available:
{% configuration %} {% configuration_basic %}
Precision: Read Precision:
description: "The desired precision for this device. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference." description: "The desired read precision for this device. Used to display the current temperature on the climate entity. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference."
type: float Set Precision:
default: "`0.5` for Celsius and `1.0` for Fahrenheit." description: "The desired set precision for this device. Used as step size for setting temperature setpoint from the climate entity. Can be used to match your actual thermostat's precision. Set to `0` to use the default value for your unit preference."
Temporary Setpoint Override Mode:
description: "The desired setpoint override mode. When Temporary Setpoint Override Mode is set to on, the thermostat will be able to cancel the setpoint override after a program change. When the option is set to off, the Setpoint Override Mode will be Constant and a manual temperature adjustment on the thermostat is needed to cancel the setpoint override."
Floor Temperature: Floor Temperature:
description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Enable this setting to override this behavior and round to the lower value according to the configured precision." description: "Some thermostats round all temperatures down to the lower value according to their precision. Default behavior for Home Assistant is to round temperatures to the nearest value. Enable this setting to override this behavior and round to the lower value according to the configured precision."
type: boolean {% endconfiguration_basic %}
default: Disabled
{% endconfiguration %}
## Services ## Services

View File

@ -43,35 +43,61 @@ not be activated yet.
| Mode | Forecast mode, `hourly` for a three-hour forecast, `daily` for daily forecast using a paid API tier, `onecall_hourly` for an hourly forecast up to 2 days, or `onecall_daily` for a daily forecast up to 7 days (ideal for the free tier). | | Mode | Forecast mode, `hourly` for a three-hour forecast, `daily` for daily forecast using a paid API tier, `onecall_hourly` for an hourly forecast up to 2 days, or `onecall_daily` for a daily forecast up to 7 days (ideal for the free tier). |
| Language | Language for receiving data (only for `sensor`) | | Language | Language for receiving data (only for `sensor`) |
The integration creates weather entity and also sensors for all available conditions. The integration creates a weather entity as well as sensors for supported weather conditions.
Selecting a `onecall` mode with the free tier leverages the One Call API, resulting in updates every 5 minutes and is recommended for both hourly and daily forecast. Selecting a `onecall` forecast mode with the free tier leverages the One Call API, resulting in updates every 5 minutes and is recommended for both hourly and daily forecast.
For each condition `sensor` entity will be created with id: A `sensor` entity will be created for each supported condition. Their ids will follow the format:
`sensor.<integration name>_<monitored condition>` `sensor.<integration name>_<monitored condition>`
Sensor prints information in language which was selected for integration. Sensors provide data in the language that was selected when configuring the integration.
All conditions:
| Condition | Description |
| :------------- | :----------------------------------- |
| `weather` | A human-readable text summary. |
| `temperature` | Current temperature. |
| `wind_speed` | Wind speed. |
| `wind_bearing` | Wind bearing. |
| `humidity` | Relative humidity. |
| `pressure` | Sea-level air pressure in millibars. |
| `clouds` | Description of cloud coverage. |
| `rain` | Rain volume. |
| `snow` | Snow volume. |
| `condition` | Current weather condition code. |
| `weather_code` | Current weather code. |
<div class='note'> <div class='note'>
Weather entity always will have English language. Home Assistant translate it to user language automatically. The Weather entity provides data only in English. Home Assistant automatically translates it to the language configured for the frontend.
</div> </div>
## Supported Weather Conditions
### Current Weather Conditions
| Condition | Description |
| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
| `cloud_coverage` | Cloudiness, %. |
| `condition` | [Weather condition](https://developers.home-assistant.io/docs/core/entity/weather/#recommended-values-for-state-and-condition). |
| `dew_point` | Atmospheric temperature below which water droplets begin to condense and dew can form, ºC. |
| `feels_like_temperature` | Temperature accounting for the human perception of weather, ºC. |
| `humidity` | Humidity, %. |
| `precipitation_kind` | The kind of precipitation (Rain, Snow, Snow and Rain, None) for the last hour. |
| `pressure` | Atmospheric pressure at sea level, hPa. |
| `rain` | Rain volume for the last hour, mm. |
| `snow` | Snow volume for the last hour, mm. |
| `temperature` | Temperature, ºC. |
| `uv_index` | UV Index. |
| `weather` | A human-readable description of the [weather condition](https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2). |
| `weather_code` | ID of the [weather condition](https://openweathermap.org/weather-conditions#Weather-Condition-Codes-2). |
| `wind_bearing` | Wind direction, degrees (meteorological). |
| `wind_speed` | Wind speed, metre/sec. |
### Forecast Weather Conditions
<div class='note'>
The time period these sensors use depends on the forecast mode selected when configuring the integration: `hourly` or `onecall_hourly` will show conditions for the current hour of the day, while `daily` or `onecall_daily` will show conditions for the current day.
</div>
| Condition | Description |
| :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `forecast_condition` | [Weather condition](https://developers.home-assistant.io/docs/core/entity/weather/#recommended-values-for-state-and-condition) for the forecast's time period. |
| `forecast_precipitation` | Combined Rain and Snow volume for the forecast's time period, mm. |
| `forecast_precipitation_probability` | Probability of precipitation for the forecast's time period. |
| `forecast_pressure` | Atmospheric pressure at sea level for the forecast's time period, hPa. |
| `forecast_temperature` | Maximum temperature for the day. |
| `forecast_temperature_low` | Minimum temperature for the day. |
| `forecast_time` | Time of the forecasted data. |
| `forecast_wind_bearing` | Wind direction for the forecast's time period, degrees (meteorological). |
| `forecast_wind_speed` | Wind speed for the forecast's time period, metre/sec. |
Details about the API are available in the [OpenWeatherMap documentation](https://openweathermap.org/api). Details about the API are available in the [OpenWeatherMap documentation](https://openweathermap.org/api).

View File

@ -3,19 +3,27 @@ title: Panasonic Viera
description: Instructions on how to integrate a Panasonic Viera TV with Home Assistant. description: Instructions on how to integrate a Panasonic Viera TV with Home Assistant.
ha_category: ha_category:
- Media Player - Media Player
- Remote
ha_release: 0.17 ha_release: 0.17
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_domain: panasonic_viera ha_domain: panasonic_viera
ha_config_flow: true ha_config_flow: true
ha_platforms:
- remote
--- ---
The `panasonic_viera` platform allows you to control a Panasonic Viera TV. The `panasonic_viera` platform allows you to control a Panasonic Viera TV.
There is currently support for the following device types within Home Assistant:
- Media Player
- [Remote](#remote)
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
If your TV needs to be paired, you will be prompted to type the PIN code that will be displayed on it. If your TV needs to be paired, you will be prompted to type the PIN code that will be displayed on it.
To allow your TV to be turned on or controlled while off, enable `Powered On By Apps` in the TV Settings: **Network > TV Remote App Settings** To allow your TV to be turned on or controlled while off, enable `Powered On By Apps` in your settings (if available): **Network > TV Remote App Settings**
## Manual configuration ## Manual configuration
@ -89,6 +97,23 @@ script:
entity_id: media_player.living_room_tv entity_id: media_player.living_room_tv
``` ```
### Remote
When the integration is configured, two entities will be created: a `media_player` and a `remote`. The remote allows you to send key commands to your TV with the `remote.send_command` service.
Some of the known valid key values are:
- `up`
- `down`
- `left`
- `right`
- `select`
- `home`
- `back`
- `power`
The list with all known valid keys can be found [here](https://github.com/florianholzapfel/panasonic-viera/blob/521cefadc8e1543514ce41d3d49e9218d1c2302d/panasonic_viera/__init__.py#L35). Additionally, you can also send custom commands, such as `"NRC_HOME-ONOFF"` (which is the same as `home`).
### Currently known supported models ### Currently known supported models
- TC-P50ST50 - TC-P50ST50

View File

@ -3,12 +3,15 @@ title: Philips TV
description: Instructions on how to add Philips TVs to Home Assistant. description: Instructions on how to add Philips TVs to Home Assistant.
ha_category: ha_category:
- Media Player - Media Player
- Remote
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_release: 0.34 ha_release: 0.34
ha_codeowners: ha_codeowners:
- '@elupus' - '@elupus'
ha_domain: philips_js ha_domain: philips_js
ha_config_flow: true ha_config_flow: true
ha_platforms:
- remote
--- ---
The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) JSON-API. The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) JSON-API.
@ -41,4 +44,75 @@ Also, note that version 6 of the API needs to be authenticated by a PIN code dis
### Turn on device ### Turn on device
The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on some models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on. The Philips TV does not always support turning on via the API. You can either turn it on via IR blaster or on som models WOL. To trigger this command from the entities, the integration exposes a `device trigger` that can be setup to execute when the `media_player` is asked to turn on.
### Remote
The integration provides a remote entity for sending remote key presses directly to the TV. The following list of commands are available for use with the `remote.send_command` service.
| Command | Comment |
| ---------------- | ----------------------------------------- |
| Standby | |
| CursorUp | |
| CursorDown | |
| CursorLeft | |
| CursorRight | |
| Confirm | |
| Back | |
| Exit | |
| WatchTV | |
| Home | |
| Source | |
| List | |
| Find | |
| Options | |
| Adjust | |
| RedColour | |
| GreenColour | |
| YellowColour | |
| BlueColour | |
| Play | |
| PlayPause | Mapped to same as Play on Android devices |
| Pause | |
| FastForward | |
| Stop | |
| Rewind | |
| Record | |
| ChannelStepUp | |
| ChannelStepDown | |
| Digit0 | |
| Digit1 | |
| Digit2 | |
| Digit3 | |
| Digit4 | |
| Digit5 | |
| Digit6 | |
| Digit7 | |
| Digit8 | |
| Digit9 | |
| Dot | |
| VolumeUp | |
| VolumeDown | |
| Mute | |
| Teletext | |
| Subtitle | |
| ClosedCaption | |
| TvGuide | |
| Info | |
| AmbilightOnOff | |
| Viewmode | |
| 3dFormat | |
| Multiview | |
| PictureStyle | |
| 3dDepth | |
| SoundStyle | |
| SurroundMode | |
| HeadphonesVolume | |
| 2PlayerGaming | |
| Setup | |
| WhiteColour | |
| PowerOn | |
| PowerOff | Mapped to same as Standby on Android |
| Online | |
| SmartTV | |
| PhilipsMenu | |

View File

@ -15,7 +15,7 @@ ha_platforms:
- sensor - sensor
--- ---
The Plex integration allows you to connect Home Assistant to a [Plex Media Server](https://plex.tv). Once configured, actively streaming [Plex Clients](https://www.plex.tv/apps-devices/) show up as [Media Players](/integrations/media_player/) and report playback status via a [Sensor](/integrations/sensor/) in Home Assistant. Media Players will allow you to control media playback and see the current playing item. The Plex integration allows you to connect Home Assistant to a [Plex Media Server](https://plex.tv). Once configured, actively streaming [Plex Clients](https://www.plex.tv/apps-devices/) show up as [Media Players](/integrations/media_player/) and report playback status and library sizes via [Sensors](/integrations/sensor/) in Home Assistant. Media Players will allow you to control media playback and see the current playing item.
Support for playing music directly on linked [Sonos](/integrations/sonos/) speakers is available for users with an active [Plex Pass](https://www.plex.tv/plex-pass/) subscription. More information [here](#sonos-playback). Support for playing music directly on linked [Sonos](/integrations/sonos/) speakers is available for users with an active [Plex Pass](https://www.plex.tv/plex-pass/) subscription. More information [here](#sonos-playback).
@ -56,7 +56,16 @@ Alternatively, you can manually configure a Plex server connection by selecting
## Sensor ## Sensor
The Plex sensor platform monitors activity on a given Plex Media Server. The sensor state provides the a count of users currently watching media from the Plex server. Clicking the sensor shows who is watching what media. The activity sensor provides a count of users currently watching media from the Plex server. Clicking the sensor shows details for the active users and media streams.
The library sensors show a count of items in each library. Depending on the library contents, the sensor will show extra detail in its attributes. For example, a library sensor for TV shows will represent the total number of episodes in the library and its attributes will also report the number of shows and seasons it contains.
<div class='note info'>
The library sensors are disabled by default, but can be enabled via the Plex integration page.
</div>
## Media Player ## Media Player

View File

@ -76,16 +76,21 @@ The Point only supports a Arm/Disarm action, so it is only `Arm Away` that is im
Each Point exposes the following binary sensors: Each Point exposes the following binary sensors:
- **alarm**: `On` means alarm sound was recognised, `Off` means normal
- **battery**: `On` means low, `Off` means normal - **battery**: `On` means low, `Off` means normal
- **button_press**: `On` means the button was pressed, `Off` means normal - **button_press**: `On` means the button was pressed, `Off` means normal
- **cold**: `On` means cold, `Off` means normal - **cold**: `On` means cold, `Off` means normal
- **connectivity**: `On` means connected, `Off` means disconnected - **connectivity**: `On` means connected, `Off` means disconnected
- **dry**: `On` means too dry, `Off` means normal - **dry**: `On` means too dry, `Off` means normal
- **glass**: `On` means the sound of glass break was detected, `Off` means normal
- **heat**: `On` means hot, `Off` means normal - **heat**: `On` means hot, `Off` means normal
- **light**: `On` means light detected, `Off` means no light - **light**: `On` means light detected, `Off` means no light
- **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry) - **moisture**: `On` means moisture detected (wet), `Off` means no moisture (dry)
- **motion**: `On` means motion was detected, `Off` means no motion
- **noise**: `On` means noise was detected, `Off` means noise levels have gone back to normal
- **sound**: `On` means sound detected, `Off` means no sound (clear) - **sound**: `On` means sound detected, `Off` means no sound (clear)
- **tamper**: `On` means the point was removed or attached, `Off` means normal - **tamper**: `On` means the point was removed, `Off` means normal
- **tamper_old**: `On` means the point was removed or attached, `Off` means normal (this is only supported on some "old" devices)
<div class="note"> <div class="note">

View File

@ -179,3 +179,16 @@ When looking into the metrics on the Prometheus side, there will be:
- The [client library](https://github.com/prometheus/client_python) provided metrics, which are a bunch of **process_\*** and also a single pseudo-metric **python_info** which contains (not as value but as labels) information about the Python version of the client, i.e., the Home Assistant Python interpreter. - The [client library](https://github.com/prometheus/client_python) provided metrics, which are a bunch of **process_\*** and also a single pseudo-metric **python_info** which contains (not as value but as labels) information about the Python version of the client, i.e., the Home Assistant Python interpreter.
Typically, you will only be interested in the first set of metrics. Typically, you will only be interested in the first set of metrics.
## Metrics in unavailable or unknown states
When the Prometheus exporter starts (typically when Home Assistant starts), all non-excluded entities in an unavailable or unknown state are not be exported until they are available again. If the entity goes into state unavailable or unknown again, the value exported will always be the latest known one.
While an entity is in those states, the `entity_available` corresponding metric is set to 0. This metric can be used to filter out values while the entity is unavailable or in an unknown state thanks to a [recording rule](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/).
For example:
```yaml
- record: "known_temperature_c"
expr: "temperature_c unless entity_available == 0"
```

View File

@ -40,8 +40,9 @@ api_key:
The following attributes can be placed `data` for extended functionality. The following attributes can be placed `data` for extended functionality.
| Service data attribute | Optional | Description | | Service data attribute | Optional | Default | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ------- | ----------- |
| `priority` | yes | Priority level, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). | | `priority` | yes | 0 | Priority level, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). |
| `url` | yes | n/a | URL to be attached, for more info refer to the [Prowl API documentation](https://www.prowlapp.com/api.php#add). |
To use notifications, please see the [getting started with automation page](/getting-started/automation/). To use notifications, please see the [getting started with automation page](/getting-started/automation/).

View File

@ -76,12 +76,13 @@ The above `python_script` can be called using the following YAML as an input.
## Documenting your Python scripts ## Documenting your Python scripts
You can add descriptions for your Python scripts that will be shown in the Call Services tab of the Developer Options page. To do so, simply create a `services.yaml` file in your `<config>/python_scripts` folder. Using the above Python script as an example, the `services.yaml` file would look like: You can add names and descriptions for your Python scripts that will be shown in the frontend. To do so, simply create a `services.yaml` file in your `<config>/python_scripts` folder. Using the above Python script as an example, the `services.yaml` file would look like:
```yaml ```yaml
# services.yaml # services.yaml
turn_on_light: turn_on_light:
description: Turn on a light and set its color. name: Turn on light
description: Turn on a specific light and set its color.
fields: fields:
entity_id: entity_id:
description: The light that will be turned on. description: The light that will be turned on.

View File

@ -210,6 +210,7 @@ Note that purging will not immediately decrease disk space usage but it will sig
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `keep_days` | yes | The number of history days to keep in recorder database (defaults to the integration `purge_keep_days` configuration) | | `keep_days` | yes | The number of history days to keep in recorder database (defaults to the integration `purge_keep_days` configuration) |
| `repack` | yes | When using SQLite or PostgreSQL this will rewrite the entire database. When using MySQL or MariaDB it will optimize or recreate the events and states tables. This is a heavy operation that can cause slowdowns and increased disk space usage while it runs. Only supported by SQLite, PostgreSQL, MySQL and MariaDB. | | `repack` | yes | When using SQLite or PostgreSQL this will rewrite the entire database. When using MySQL or MariaDB it will optimize or recreate the events and states tables. This is a heavy operation that can cause slowdowns and increased disk space usage while it runs. Only supported by SQLite, PostgreSQL, MySQL and MariaDB. |
| `apply_filter` | yes | Apply entity_id and event_type filter in addition to time based purge. Useful in combination with `include` / `exclude` filter to remove falsely added states and events. Combine with `repack: true` to reduce database size. |
### Service `disable` ### Service `disable`

View File

@ -0,0 +1,32 @@
---
title: Pentair ScreenLogic
description: Instructions on how to integrate a ScreenLogic gateway within Home Assistant.
ha_release: '2021.4'
ha_category:
- Hub
- Binary Sensor
- Climate
- Sensor
- Switch
ha_iot_class: Local Polling
ha_config_flow: true
ha_dhcp: true
ha_codeowners:
- '@dieselrabbit'
ha_domain: screenlogic
ha_platforms:
- binary_sensor
- climate
- sensor
- switch
---
The Pentair ScreenLogic integration allows you to integrate your Pentair Intellitouch or EasyTouch pool controller with Home Assistant via the [Pentair ScreenLogic](https://www.pentair.com/en-us/products/residential/pool-spa-equipment/pool-automation/screenlogic2_interfaceforintellitouchandeasytouchautomationsystems.html) gateway.
{% include integrations/config_flow.md %}
## Options
ScreenLogic options are set via **Configuration** -> **Integrations** -> **Pentair ScreenLogic** -> **Options**.
* Seconds between scans - How many seconds between each polling of the ScreenLogic gateway.

View File

@ -11,7 +11,7 @@ ha_domain: script
ha_iot_class: ha_iot_class:
--- ---
The `script` integration allows users to specify a sequence of actions to be executed by Home Assistant. These are run when you turn the script on. The script integration will create an entity for each script and allow them to be controlled via services. The script integration allows users to specify a sequence of actions to be executed by Home Assistant. These are run when you turn the script on. The script integration will create an entity for each script and allow them to be controlled via services.
## Configuration ## Configuration
@ -62,21 +62,41 @@ variables:
description: The value of the variable. Any YAML is valid. Templates can also be used to pass a value to the variable. description: The value of the variable. Any YAML is valid. Templates can also be used to pass a value to the variable.
type: any type: any
fields: fields:
description: "Information about the parameters that the script uses; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. Please note: In order for this description to be displayed in the Services tab of the Developer Tools, the script description must be defined as well." description: "Information about the script field parameters; see the [Passing variables to scripts](#passing-variables-to-scripts) section below. Please note: In order for this description to be displayed in the Services tab of the Developer Tools, the script description must be defined as well."
required: false required: false
default: {} default: {}
type: map type: map
keys: keys:
PARAMETER_NAME: FIELD_NAME:
description: A parameter used by this script. description: A parameter field used by this script. All sub-options are only used for creating a representation of this script in the UI.
type: map type: map
keys: keys:
name:
description: The name of this script parameter field.
type: string
description: description:
description: A description of PARAMETER_NAME. description: A description of this of this script parameter.
type: string type: string
advanced:
description: Marks this field as an advanced parameter. This causes it only to be shown in the UI, when the user has advanced mode enabled.
type: boolean
default: false
required:
description: Mark if this field is required. This is a UI only feature.
type: boolean
default: false
example: example:
description: An example value for PARAMETER_NAME. description: An example value. This will only be shown in table of options available in the Services tab of the Developer Tools.
type: string type: string
default:
description: The default value for this field, as shown in the UI.
type: any
selector:
description: >
The [selector](/docs/blueprint/selectors/) to use for this input. A
selector defines how the input is displayed in the frontend UI.
type: selector
required: false
mode: mode:
description: "Controls what happens when script is invoked while it is still running from one or more previous invocations. See [Script Modes](#script-modes)." description: "Controls what happens when script is invoked while it is still running from one or more previous invocations. See [Script Modes](#script-modes)."
required: false required: false
@ -125,8 +145,15 @@ script: 
turn_on_entity: group.living_room turn_on_entity: group.living_room
fields: fields:
minutes: minutes:
name: Minutes
description: "The amount of time to wait before turning on the living room lights" description: "The amount of time to wait before turning on the living room lights"
example: 1 selector:
number:
min: 0
max: 60
step: 1
unit_of_measurement: minutes
mode: slider
# If called again while still running (probably in delay step), start over. # If called again while still running (probably in delay step), start over.
mode: restart mode: restart
sequence: sequence:

View File

@ -1,145 +0,0 @@
---
title: Modbus Sensor
description: "Instructions on how to integrate Modbus sensors into Home Assistant."
ha_category:
- Sensor
ha_release: pre 0.7
ha_iot_class: Local Push
ha_domain: modbus
---
The `modbus` sensor allows you to gather data from [Modbus](http://www.modbus.org/) registers.
## Configuration
To use your Modbus sensors in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
platform: modbus
registers:
- name: Sensor1
hub: hub1
unit_of_measurement: °C
slave: 1
register: 100
- name: Sensor2
hub: hub1
unit_of_measurement: mg
slave: 1
register: 110
count: 2
- name: Sensor3
hub: hub1
unit_of_measurement: °C
slave: 1
register: 120
register_type: input
data_type: float
scale: 0.01
offset: -273.16
precision: 2
```
{% configuration %}
registers:
description: The array contains a list of relevant registers to read from.
required: true
type: map
keys:
name:
description: Name of the sensor.
required: true
type: string
hub:
description: The name of the hub.
required: false
default: modbus_hub
type: string
slave:
description: The number of the slave (Optional for tcp and upd Modbus).
required: true
type: integer
register:
description: Register number.
required: true
type: integer
register_type:
description: Modbus register type (holding, input), default holding.
required: false
type: string
unit_of_measurement:
description: Unit to attach to value.
required: false
type: integer
device_class:
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend.
required: false
type: device_class
default: None
count:
description: Number of registers to read.
required: false
type: integer
default: 1
reverse_order:
description: Reverse the order of registers when count >1.
required: false
default: false
type: boolean
scale:
description: Scale factor (output = scale * value + offset).
required: false
default: 1
type: float
offset:
description: Final offset (output = scale * value + offset).
required: false
default: 0
type: float
precision:
description: Number of valid decimals.
required: false
default: 0
type: integer
data_type:
description: Response representation (int, uint, float, string, custom). If float selected, value will be converted to IEEE 754 floating point format.
required: false
default: int
type: string
structure:
description: "If `data_type` is custom specified a double-quoted Python struct is expected here, to format the string to unpack the value. See Python documentation for details. Example: `>i`."
required: false
type: string
{% endconfiguration %}
It's possible to change the default 30 seconds scan interval for the sensor updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation.
<div class='note'>
If you specify scale or offset as floating point values, double precision floating point arithmetic will be used to calculate final value. This can cause loss of precision for values that are larger than 2^53.
</div>
### Full example
Example a temperature sensor with a 10 seconds scan interval:
```yaml
sensor:
- platform: modbus
scan_interval: 10
registers:
- name: Room_1
hub: hub1
slave: 10
register: 0
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: integer
```

View File

@ -75,6 +75,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -99,7 +103,7 @@ force_update:
type: boolean type: boolean
default: false default: false
icon: icon:
description: The icon for the sensor. description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false required: false
type: icon type: icon
json_attributes_template: json_attributes_template:

View File

@ -10,6 +10,8 @@ ha_domain: solaredge
ha_dhcp: true ha_dhcp: true
ha_platforms: ha_platforms:
- sensor - sensor
ha_codeowners:
- '@frenck'
--- ---
The `solaredge` platform uses the [SolarEdge Monitoring API](https://www.solaredge.com/sites/default/files/se_monitoring_api.pdf) to allow you to get details from your SolarEdge solar power setup and integrate these in your Home Assistant installation. The `solaredge` platform uses the [SolarEdge Monitoring API](https://www.solaredge.com/sites/default/files/se_monitoring_api.pdf) to allow you to get details from your SolarEdge solar power setup and integrate these in your Home Assistant installation.

View File

@ -8,8 +8,6 @@ ha_release: 0.92
ha_iot_class: Assumed State ha_iot_class: Assumed State
ha_domain: somfy_mylink ha_domain: somfy_mylink
ha_config_flow: true ha_config_flow: true
ha_codeowners:
- '@bdraco'
ha_dhcp: true ha_dhcp: true
ha_platforms: ha_platforms:
- cover - cover

View File

@ -9,6 +9,7 @@ ha_quality_scale: internal
ha_codeowners: ha_codeowners:
- '@hunterjm' - '@hunterjm'
- '@uvjustin' - '@uvjustin'
- '@allenporter'
ha_domain: stream ha_domain: stream
--- ---

View File

@ -1,137 +0,0 @@
---
title: "Modbus Switch"
description: "Instructions on how to integrate Modbus switches into Home Assistant."
ha_category:
- Switch
ha_release: pre 0.7
ha_iot_class: Local Push
ha_domain: modbus
---
The `modbus` switch platform allows you to control [Modbus](http://www.modbus.org/) coils or registers.
## Configuration
To use your Modbus switches in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
switch:
platform: modbus
coils:
- name: Switch1
hub: hub1
slave: 1
coil: 13
- name: Switch2
slave: 2
coil: 14
registers:
- name: Register1
hub: hub1
slave: 1
register: 11
command_on: 1
command_off: 0
```
{% configuration %}
coils:
description: A list of relevant coils to read from/write to.
required: false
type: map
keys:
hub:
description: The name of the hub.
required: false
default: default
type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
type: integer
name:
description: Name of the switch.
required: true
type: string
coil:
description: Coil number.
required: true
type: integer
registers:
description: A list of relevant registers to read from/write to.
required: false
type: map
keys:
hub:
description: The hub to use.
required: false
default: default
type: string
slave:
description: The number of the slave (can be omitted for tcp and udp Modbus).
required: true
type: integer
name:
description: Name of the switch.
required: true
type: string
register:
description: Register number.
required: true
type: integer
command_on:
description: Value to write to turn on the switch.
required: true
type: integer
command_off:
description: Value to write to turn off the switch.
required: true
type: integer
verify_state:
description: Define if is possible to readback the status of the switch.
required: false
default: true
type: boolean
verify_register:
description: Register to readback.
required: false
default: same as register
type: string
register_type:
description: Modbus register types are holding or input.
required: false
default: holding
type: string
state_on:
description: Register value when switch is on.
required: false
default: same as command_on
type: integer
state_off:
description: Register value when switch is off.
required: false
default: same as command_off
type: integer
{% endconfiguration %}
It's possible to change the default 30 seconds scan interval for the switch state updates as shown in the [Platform options](/docs/configuration/platform_options/#scan-interval) documentation.
### Full example
Example switches, for which the state is polled from Modbus every 10 seconds.
```yaml
switch:
platform: modbus
scan_interval: 10
coils:
- name: Switch1
hub: hub1
slave: 1
coil: 13
- name: Switch2
hub: hub1
slave: 2
coil: 14
```

View File

@ -85,6 +85,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false
@ -94,7 +98,7 @@ device:
required: false required: false
type: string type: string
icon: icon:
description: Icon for the switch. description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false required: false
type: icon type: icon
json_attributes_template: json_attributes_template:

View File

@ -8,6 +8,7 @@ ha_category:
- Water Heater - Water Heater
- Presence Detection - Presence Detection
- Sensor - Sensor
- Weather
ha_release: 0.41 ha_release: 0.41
ha_iot_class: Cloud Polling ha_iot_class: Cloud Polling
ha_codeowners: ha_codeowners:
@ -34,6 +35,7 @@ There is currently support for the following device types within Home Assistant:
- Water Heater - for water heater zones. - Water Heater - for water heater zones.
- [Presence Detection](#presence-detection) - [Presence Detection](#presence-detection)
- Sensor - for some additional information of the zones. - Sensor - for some additional information of the zones.
- Weather - for information about the current weather at the location of your Tado home.
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}

View File

@ -49,6 +49,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false

View File

@ -23,7 +23,22 @@ ha_platforms:
- weather - weather
--- ---
The `template` platform supports sensors which get their values from other entities. The `template` integration allows creating entities which derive their values from other entities. This is done by defining [templates](/docs/configuration/templating/) for each property of an entity, like the name or the state. Entities are updated automatically whenever a value that a template relies on changes.
For template sensors it's also possible to derive the state from [automation triggers](#configuration-for-trigger-based-template-sensors).
Available template platforms:
- [Alarm_control_panel](/integrations/alarm_control_panel.template/)
- [Binary_sensor](/integrations/binary_sensor.template/)
- [Cover](/integrations/cover.template/)
- [Fan](/integrations/fan.template/)
- [Light](/integrations/light.template/)
- [Lock](/integrations/lock.template/)
- Sensor (this page)
- [Switch](/integrations/switch.template/)
- [Vacuum](/integrations/vacuum.template/)
- [Weather](/integrations/weather.template/)
## Configuration ## Configuration
@ -49,7 +64,7 @@ sensor:
{% configuration %} {% configuration %}
sensors: sensors:
description: List of your sensors. description: Map of your sensors.
required: true required: true
type: map type: map
keys: keys:
@ -90,7 +105,7 @@ sensor:
"attribute: template": "attribute: template":
description: The attribute and corresponding template. description: The attribute and corresponding template.
required: true required: true
type: template type: template
availability_template: availability_template:
description: Defines a template to get the `available` state of the component. If the template returns `true`, the device is `available`. If the template returns any other value, the device will be `unavailable`. If `availability_template` is not configured, the component will always be `available`. description: Defines a template to get the `available` state of the component. If the template returns `true`, the device is `available`. If the template returns any other value, the device will be `unavailable`. If `availability_template` is not configured, the component will always be `available`.
required: false required: false
@ -103,6 +118,106 @@ sensor:
default: None default: None
{% endconfiguration %} {% endconfiguration %}
## Configuration for trigger-based template sensors
Trigger-based template sensors allow the user to define [an automation trigger][trigger-doc] for a group of template sensors. Whenever the trigger fires, the template sensor will re-render and it will have access to [the trigger data](/docs/automation/templating/) in the templates. This feature is a great way to create data based on webhook data, or have sensors be updated based on a time-schedule.
Trigger-based template entities are defined in YAML directly under the `template:` key. You can define multiple configuration blocks as a list. Each block defines one or more triggers and the sensors that should be updated when the trigger fires.
Trigger-based entities do not automatically update when states referenced in the templates change. This functionality can be added by defining a [state trigger](/docs/automation/trigger/#state-trigger) for each entity that you want to trigger updates.
{% raw %}
```yaml
# Example configuration entry
template:
- trigger:
- platform: webhook
webhook_id: my-super-secret-webhook-id
sensor:
- name: "Webhook Temperature"
state: "{{ trigger.json.temperature }}"
- name: "Webhook Humidity"
state: "{{ trigger.json.humidity }}"
```
{% endraw %}
You can test this trigger entity with the following CURL command:
```bash
curl --header "Content-Type: application/json" \
--request POST \
--data '{"temperature": 5, "humidity": 34}' \
http://homeassistant.local:8123/api/webhook/my-super-secret-webhook-id
```
<p class='note'>Configuration under the <code>template:</code> key uses a different format compared to the platform configuration.</p>
{% configuration %}
trigger:
description: The trigger configuration for this entity. [See trigger documentation](/docs/automation/trigger)
required: true
type: list
unique_id:
description: The unique ID for this trigger. This will be prefixed to all unique IDs of all entities in this block.
required: false
type: string
sensor:
description: List of sensors to create from the trigger data.
required: true
type: map
keys:
state:
description: Defines a template to get the state of the sensor.
required: true
type: template
name:
description: Defines a template to get the name of the sensor.
required: false
type: template
unique_id:
description: An ID that uniquely identifies this sensor. Will be combined with the unique ID of the configuration block if available.
required: false
type: string
unit_of_measurement:
description: "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualization as a continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values."
required: false
type: string
default: None
icon:
description: Defines a template for the icon of the sensor.
required: false
type: template
picture:
description: Defines a template for the entity picture of the sensor.
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
availability:
description: Defines a template to get the `available` state of the component. If the template returns `true`, the device is `available`. If the template returns any other value, the device will be `unavailable`. If not configured, the component will always be `available`.
required: false
type: template
default: true
device_class:
description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the `unit_of_measurement`.
required: false
type: device_class
default: None
{% endconfiguration %}
<p class='note'>It's currently only possible to define trigger-based entities via the top-level configuration. These entities are not yet included when reloading template entities.</p>
[trigger-doc]: /docs/automation/trigger
## Considerations ## Considerations
### Startup ### Startup

View File

@ -59,6 +59,8 @@ Plugs are type `switch` when autodiscovery has been disabled.
### Bulbs ### Bulbs
Other bulbs may also work, but with limited color temperatures. If you find a bulb isn't reaching the full-color temperature boundaries, submit a bug report.
- LB100 - LB100
- LB110 - LB110
- LB120 - LB120
@ -66,7 +68,10 @@ Plugs are type `switch` when autodiscovery has been disabled.
- LB230 - LB230
- KL110 - KL110
- KL120 - KL120
- KL125
- KL130 - KL130
- KB130
- KL430
## Configuration ## Configuration

View File

@ -15,8 +15,6 @@ ha_platforms:
The `updater` binary sensor will check daily for new releases. The state will be "on" when an update is available. Otherwise, the state will be "off". The newer version, as well as the link to the release notes, are attributes of the updater. The `updater` binary sensor will check daily for new releases. The state will be "on" when an update is available. Otherwise, the state will be "off". The newer version, as well as the link to the release notes, are attributes of the updater.
The updater integration will also collect basic information about the running Home Assistant instance and its environment. The information includes the current Home Assistant version, the time zone, Python version and operating system information. No identifiable information (i.e., IP address, GPS coordinates, etc.) will ever be collected. If you are concerned about your privacy, you are welcome to scrutinize the Python [source code](https://github.com/home-assistant/home-assistant/tree/dev/homeassistant/components/updater).
## Configuration ## Configuration
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
@ -25,38 +23,6 @@ This integration is by default enabled, unless you've disabled or removed the [`
updater: updater:
``` ```
{% configuration %}
reporting:
description: Whether or not to share system information when checking for updates.
required: false
type: boolean
default: true
include_used_components:
description: Whether or not to report the integrations that you are using in Home Assistant.
required: false
type: boolean
default: false
{% endconfiguration %}
For further information about the Updater's data, please check the [detailed overview](/docs/backend/updater/). If you choose not to share any information when checking for updates, you can set `reporting: false`.
It is possible to report the integrations that you are using to the Home Assistant developers. This will help them focus on improving the popular ones. To enable this option, you have to add `include_used_components: true`.
```json
"components": [
"apcupsd",
"api",
"automation",
"binary_sensor",
"binary_sensor.zwave",
"camera",
"camera.uvc",
"config",
"config.core",
...
]
```
## Notification ## Notification
For an added bonus, an automation integration can be created to send a message with a notifier when that state of this component's entity changes. For an added bonus, an automation integration can be created to send a message with a notifier when that state of this component's entity changes.

View File

@ -113,6 +113,10 @@ fan_speed_topic:
description: The MQTT topic subscribed to receive fan speed values from the vacuum. description: The MQTT topic subscribed to receive fan speed values from the vacuum.
required: false required: false
type: string type: string
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
type: icon
json_attributes_template: json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation." description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
required: false required: false
@ -348,6 +352,10 @@ device:
description: The name of the device. description: The name of the device.
required: false required: false
type: string type: string
suggested_area:
description: 'Suggest an area if the device isnt in one yet.'
required: false
type: string
sw_version: sw_version:
description: The firmware version of the device. description: The firmware version of the device.
required: false required: false

View File

@ -16,7 +16,7 @@ ha_iot_class: Local Polling
ha_config_flow: true ha_config_flow: true
ha_domain: vera ha_domain: vera
ha_codeowners: ha_codeowners:
- '@vangorra' - '@pavoni'
ha_platforms: ha_platforms:
- binary_sensor - binary_sensor
- climate - climate

View File

@ -21,6 +21,8 @@ ha_platforms:
- lock - lock
- sensor - sensor
- switch - switch
ha_config_flow: true
ha_dhcp: true
--- ---
Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices. Home Assistant has support to integrate your [Verisure](https://www.verisure.com/) devices.
@ -34,75 +36,7 @@ There is currently support for the following device types within Home Assistant:
- Lock - Lock
- Binary Sensor (Door & Window) - Binary Sensor (Door & Window)
## Configuration {% include integrations/config_flow.md %}
To integrate Verisure with Home Assistant, add the following section to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
verisure:
username: USERNAME
password: PASSWORD
```
{% configuration %}
username:
description: The username to Verisure mypages.
required: true
type: string
password:
description: The password to Verisure mypages.
required: true
type: string
alarm:
description: Set to `true` to show alarm, `false` to disable.
required: false
type: boolean
default: true
hygrometers:
description: Set to `true` to show hygrometers, `false` to disable.
required: false
type: boolean
default: true
smartplugs:
description: Set to `true` to show smartplugs, `false` to disable.
required: false
type: boolean
default: true
locks:
description: Set to `true` to show locks, `false` to disable.
required: false
type: boolean
default: true
default_lock_code:
description: Code that will be used to lock or unlock, if none is supplied.
required: false
type: string
thermometers:
description: Set to `true` to show thermometers, `false` to disable.
required: false
type: boolean
default: true
mouse:
description: Set to `true` to show mouse detectors, `false` to disable.
required: false
type: boolean
default: true
door_window:
description: Set to `true` to show doors and windows, `false` to disable.
required: false
type: boolean
default: true
code_digits:
description: Number of digits in PIN code.
required: false
type: integer
default: 4
giid:
description: The GIID of your installation (If you have more then one alarm system). To find the GIID for your systems run `python verisure.py` EMAIL PASSWORD installations'.
required: false
type: string
{% endconfiguration %}
## 2 Factor Authentication Prerequisite ## 2 Factor Authentication Prerequisite

View File

@ -34,17 +34,17 @@ name:
type: string type: string
default: "`Current Version` in case of `source: local`, `Latest Version` otherwise." default: "`Current Version` in case of `source: local`, `Latest Version` otherwise."
beta: beta:
description: Flag to indicate that it will check for beta versions, only supported for the sources `pypi`, `hassio` and `docker`. description: Flag to indicate that it will check for beta versions, only supported for the sources `pypi`, `supervisor` and `container`.
required: false required: false
type: boolean type: boolean
default: false default: false
image: image:
description: The image you want to check against, this is only supported for `hassio` and `docker`, see full list under. description: The image you want to check against, this is only supported for `supervisor` and `container`, see full list under.
required: false required: false
type: string type: string
default: default default: default
source: source:
description: The source you want to check against, possible values are `local`, `pypi`, `hassio`, `haio` and `docker`. description: The source you want to check against, possible values are `local`, `pypi`, `supervisor`, `haio` and `container`.
required: false required: false
type: string type: string
default: local default: local

View File

@ -52,7 +52,7 @@ circuit:
required: false required: false
type: integer type: integer
heating_type: heating_type:
description: One of `generic`, `gas` or `heatpump`. Specifying the heating_type provides additional attributes and sensors specific for the heating system. description: One of `generic`, `gas`, `heatpump` or `fuelcell`. Specifying the heating_type provides additional attributes and sensors specific for the heating system.
required: false required: false
type: string type: string
default: generic default: generic

View File

@ -9,6 +9,8 @@ ha_iot_class: Local Push
ha_domain: wake_on_lan ha_domain: wake_on_lan
ha_platforms: ha_platforms:
- switch - switch
ha_codeowners:
- '@ntilley905'
--- ---
The `wake_on_lan` integration enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices to turn them on. The `wake_on_lan` integration enables the ability to send _magic packets_ to [Wake on LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) capable devices to turn them on.
@ -83,7 +85,7 @@ name:
default: Wake on LAN default: Wake on LAN
type: string type: string
host: host:
description: The IP address or hostname to check the state of the device (on/off). description: The IP address or hostname to check the state of the device (on/off). If this is not provided, the state of the switch will be assumed based on the last action that was taken.
required: false required: false
type: string type: string
turn_off: turn_off:

View File

@ -56,6 +56,10 @@ humidity_template:
description: The current humidity. description: The current humidity.
required: true required: true
type: template type: template
attribution_template:
description: The attribution to be shown in the frontend.
required: false
type: string
pressure_template: pressure_template:
description: The current air pressure. description: The current air pressure.
required: false required: false
@ -64,6 +68,18 @@ wind_speed_template:
description: The current wind speed. description: The current wind speed.
required: false required: false
type: template type: template
wind_bearing_template:
description: The current wind bearing.
required: false
type: template
ozone_template:
description: The current ozone level.
required: false
type: template
visibility_template:
description: The current visibility.
required: false
type: template
forecast_template: forecast_template:
description: Daily forecast data. description: Daily forecast data.
required: false required: false

View File

@ -36,8 +36,7 @@ The `xiaomi_miio` integration supports the following devices:
- [Xiaomi Gateway](#xiaomi-gateway) - [Xiaomi Gateway](#xiaomi-gateway)
- [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2) - [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2)
- [Xiaomi Air Purifier and Humidifier](#xiaomi-air-purifier-and-humidifier) - [Xiaomi Air Purifier and Humidifier](#xiaomi-air-purifier-and-humidifier)
- [Xiaomi Air Quality Index Monitor](#xiaomi-air-quality-index-monitor) - [Xiaomi Air Quality Monitor](#xiaomi-air-quality-monitor)
- [Xiaomi Mi Air Quality Monitor](#xiaomi-mi-air-quality-monitor)
- [Xiaomi IR Remote](#xiaomi-ir-remote) - [Xiaomi IR Remote](#xiaomi-ir-remote)
- [Xiaomi Mi Robot Vacuum](#xiaomi-mi-robot-vacuum) - [Xiaomi Mi Robot Vacuum](#xiaomi-mi-robot-vacuum)
- [Xiaomi Philips Light](#xiaomi-philips-light) - [Xiaomi Philips Light](#xiaomi-philips-light)
@ -239,6 +238,26 @@ These subdevices are fully implemented in HomeAssistant:
| -------------------------------- | ----------------------- | --------------- | ------------------------------------------------ | | -------------------------------- | ----------------------- | --------------- | ------------------------------------------------ |
| Weather sensor | lumi.sensor_ht | WSDCGQ01LM | readout `temperature` and `humidity` | | Weather sensor | lumi.sensor_ht | WSDCGQ01LM | readout `temperature` and `humidity` |
| Weather sensor | lumi.weather.v1 | WSDCGQ11LM | readout `temperature`, `humidity` and `pressure` | | Weather sensor | lumi.weather.v1 | WSDCGQ11LM | readout `temperature`, `humidity` and `pressure` |
| Wall switch single | lumi.ctrl_ln1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle |
| Wall switch single | lumi.ctrl_ln1.aq1 | QBKG11LM | load_power, status, turn_on, turn_off, toggle |
| Wall switch no neutral | lumi.ctrl_neutral1.v1 | QBKG04LM | status, turn_on, turn_off, toggle |
| Wall switch double | lumi.ctrl_ln2 | QBKG12LM | load_power, status, turn_on, turn_off, toggle |
| Wall switch double | lumi.ctrl_ln2.aq1 | QBKG12LM | load_power, status, turn_on, turn_off, toggle |
| Wall switch double no neutral | lumi.ctrl_neutral2 | QBKG03LM | status, turn_on, turn_off, toggle |
| D1 wall switch triple | lumi.switch.n3acn3 | QBKG26LM | load_power, status, turn_on, turn_off, toggle |
| D1 wall switch triple no neutral | lumi.switch.l3acn3 | QBKG25LM | load_power, status, turn_on, turn_off, toggle |
| Wall outlet | lumi.ctrl_86plug.v1 | QBCZ11LM | status, turn_on, turn_off, toggle |
| Wall outlet | lumi.ctrl_86plug.aq1 | QBCZ11LM | load_power, status, turn_on, turn_off, toggle |
| Plug | lumi.plug | ZNCZ02LM | load_power, status, turn_on, turn_off, toggle |
| Relay | lumi.relay.c2acn01 | LLKZMK11LM | load_power, status, turn_on, turn_off, toggle |
| Smart bulb E27 | lumi.light.aqcn02 | ZNLDP12LM | on/off, brightness, color temperature |
| IKEA smart bulb E27 white | ikea.light.led1545g12 | LED1545G12 | on/off, brightness, color temperature |
| IKEA smart bulb E27 white | ikea.light.led1546g12 | LED1546G12 | on/off, brightness, color temperature |
| IKEA smart bulb E12 white | ikea.light.led1536g5 | LED1536G5 | on/off, brightness, color temperature |
| IKEA smart bulb GU10 white | ikea.light.led1537r6 | LED1537R6 | on/off, brightness, color temperature |
| IKEA smart bulb E27 white | ikea.light.led1623g12 | LED1623G12 | on/off, brightness, color temperature |
| IKEA smart bulb GU10 white | ikea.light.led1650r5 | LED1650R5 | on/off, brightness, color temperature |
| IKEA smart bulb E12 white | ikea.light.led1649c5 | LED1649C5 | on/off, brightness, color temperature |
### Recognized subdevices (not yet implemented) ### Recognized subdevices (not yet implemented)
@ -266,18 +285,6 @@ These subdevices are recognized by the python-miio code but are still being work
| Remote switch double | lumi.sensor_86sw2.v1 | WXKG02LM 2016 | | Remote switch double | lumi.sensor_86sw2.v1 | WXKG02LM 2016 |
| Remote switch double | lumi.remote.b286acn01 | WXKG02LM 2018 | | Remote switch double | lumi.remote.b286acn01 | WXKG02LM 2018 |
| D1 remote switch double | lumi.remote.b286acn02 | WXKG07LM | | D1 remote switch double | lumi.remote.b286acn02 | WXKG07LM |
| Wall switch single | lumi.ctrl_ln1 | QBKG11LM |
| Wall switch single | lumi.ctrl_ln1.aq1 | QBKG11LM |
| Wall switch no neutral | lumi.ctrl_neutral1.v1 | QBKG04LM |
| Wall switch double | lumi.ctrl_ln2 | QBKG12LM |
| Wall switch double | lumi.ctrl_ln2.aq1 | QBKG12LM |
| Wall switch double no neutral | lumi.ctrl_neutral2 | QBKG03LM |
| D1 wall switch triple | lumi.switch.n3acn3 | QBKG26LM |
| D1 wall switch triple no neutral | lumi.switch.l3acn3 | QBKG25LM |
| Wall outlet | lumi.ctrl_86plug.v1 | QBCZ11LM |
| Wall outlet | lumi.ctrl_86plug.aq1 | QBCZ11LM |
| Plug | lumi.plug | ZNCZ02LM |
| Relay | lumi.relay.c2acn01 | LLKZMK11LM |
| Curtain | lumi.curtain | ZNCLDJ11LM | | Curtain | lumi.curtain | ZNCLDJ11LM |
| Curtain | lumi.curtain.aq2 | ZNGZDJ11LM | | Curtain | lumi.curtain.aq2 | ZNGZDJ11LM |
| Curtain B1 | lumi.curtain.hagl04 | ZNCLDJ12LM | | Curtain B1 | lumi.curtain.hagl04 | ZNCLDJ12LM |
@ -285,14 +292,6 @@ These subdevices are recognized by the python-miio code but are still being work
| Door lock S2 | lumi.lock.acn02 | ZNMS12LM | | Door lock S2 | lumi.lock.acn02 | ZNMS12LM |
| Door lock S2 pro | lumi.lock.acn03 | ZNMS13LM | | Door lock S2 pro | lumi.lock.acn03 | ZNMS13LM |
| Vima cylinder lock | lumi.lock.v1 | A6121 | | Vima cylinder lock | lumi.lock.v1 | A6121 |
| Smart bulb E27 | lumi.light.aqcn02 | ZNLDP12LM |
| IKEA smart bulb E27 white | ikea.light.led1545g12 | LED1545G12 |
| IKEA smart bulb E27 white | ikea.light.led1546g12 | LED1546G12 |
| IKEA smart bulb E12 white | ikea.light.led1536g5 | LED1536G5 |
| IKEA smart bulb GU10 white | ikea.light.led1537r6 | LED1537R6 |
| IKEA smart bulb E27 white | ikea.light.led1623g12 | LED1623G12 |
| IKEA smart bulb GU10 white | ikea.light.led1650r5 | LED1650R5 |
| IKEA smart bulb E12 white | ikea.light.led1649c5 | LED1649C5 |
| Thermostat S2 | lumi.airrtc.tcpecn02 | KTWKQ03ES | | Thermostat S2 | lumi.airrtc.tcpecn02 | KTWKQ03ES |
## Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2) ## Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)
@ -350,6 +349,13 @@ Supported devices:
| Air Humidifier CB1 | zhimi.humidifier.cb1 | | | Air Humidifier CB1 | zhimi.humidifier.cb1 | |
| Air Fresh VA2 | zhimi.airfresh.va2 | | | Air Fresh VA2 | zhimi.airfresh.va2 | |
### Configuration
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup.
To add a Xiaomi Air Purifier to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located.
### Features ### Features
### Air Purifier 2 et al. ### Air Purifier 2 et al.
@ -677,37 +683,6 @@ This model uses newer MiOT communication protocol.
- `motor_speed` - `motor_speed`
- `extra_features` - `extra_features`
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
To add a Xiaomi Air Purifier to your installation, add the following to your `configuration.yaml` file:
```yaml
fan:
# Example configuration.yaml entry
- platform: xiaomi_miio
host: 192.168.130.66
token: YOUR_TOKEN
```
{% configuration %}
host:
description: The IP address of your miio fan.
required: true
type: string
token:
description: The API token of your miio fan.
required: true
type: string
name:
description: The name of your miio fan.
required: false
type: string
default: Xiaomi Air Purifier
model:
description: The model of your miio fan. See the table above for valid values (f.e. `zhimi.airpurifier.v2`). This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}
### Platform Services ### Platform Services
@ -893,91 +868,29 @@ Check if the device is in the same subnet as the Home Assistant instance. Otherw
If it's not possible to use VLANs for some reason, your last resort may be using NAT translation, between the IPs. If it's not possible to use VLANs for some reason, your last resort may be using NAT translation, between the IPs.
## Xiaomi Air Quality Index Monitor ## Xiaomi Air Quality Monitor
The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index. The `xiaomi_miio` Air Quality Monitor is observing your Xiaomi Mi Air Quality Monitor (PM2.5) and reporting the air quality index and other values.
Currently, the supported features are: Currently, the supported features are:
- Air Quality Index (AQI) - Air Quality Index (AQI)
- Particulate matter 2.5
- Attributes - Attributes
- power - power
- charging - charging
- battery - battery
- time_stat - time_stat
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token.
### Configuration
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: xiaomi_miio
host: IP_ADDRESS
token: YOUR_TOKEN
```
{% configuration %}
host:
description: The IP address of your miio device.
required: true
type: string
token:
description: The API token of your miio device.
required: true
type: string
name:
description: The name of your miio device.
required: false
type: string
default: Xiaomi Miio Sensor
{% endconfiguration %}
## Xiaomi Mi Air Quality Monitor
The `xiaomi_miio` sensor platform is observing your Xiaomi Mi Air Quality Monitor and reporting the air quality values.
Currently, the supported features are:
- Particulate matter 2.5
- Attributes
- carbon_dioxide_equivalent - carbon_dioxide_equivalent
- total_volatile_organic_compounds - total_volatile_organic_compounds
- temperature - temperature
- humidity - humidity
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token.
### Configuration ### Configuration
To add a Xiaomi Mi Air Quality Monitor to your installation, add the following to your `configuration.yaml` file: Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup.
```yaml To add a Xiaomi Mi Air Quality Monitor to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located.
# Example configuration.yaml entry
air_quality:
- platform: xiaomi_miio
host: IP_ADDRESS
token: YOUR_TOKEN
```
{% configuration %}
host:
description: The IP address of your miio device.
required: true
type: string
token:
description: The API token of your miio device.
required: true
type: string
name:
description: The name of your miio device.
required: false
type: string
default: Xiaomi Miio Air Quality Monitor
{% endconfiguration %}
## Xiaomi IR Remote ## Xiaomi IR Remote
@ -1513,6 +1426,12 @@ It seems to be the case that Numbers 1..15 are used to number the intitial segme
The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2, Xiaomi Philips Moonlight Bedside Lamp and Philips Zhirui Desk Lamp. The `xiaomi_miio` platform allows you to control the state of your Xiaomi Philips LED Ball Lamp, Xiaomi Philips Zhirui LED Bulb E14 Candle Lamp, Xiaomi Philips Zhirui Downlight, Xiaomi Philips LED Ceiling Lamp, Xiaomi Philips Eyecare Lamp 2, Xiaomi Philips Moonlight Bedside Lamp and Philips Zhirui Desk Lamp.
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use during configuration flow setup.
### Configuration
To add a Xiaomi Philips Light to your installation, click Configuration in the sidebar, then click Integrations and then click the + icon in the lower right and find xiaomi_miio. You will then be presented with a form in which you will need to fill in the “IP address” and 32 characters “token”. After you click submit, you will have the opportunity to select the area that your devices are located.
### Features ### Features
### Philips LED Ball Lamp, Philips Zhirui LED Candle Lamp and Philips Zhirui Downlight ### Philips LED Ball Lamp, Philips Zhirui LED Candle Lamp and Philips Zhirui Downlight
@ -1597,40 +1516,6 @@ Supported models: `philips.light.moonlight`
- brand_sleep - brand_sleep
- brand - brand
Please follow the instructions on [Retrieving the Access Token](/integrations/xiaomi_miio/#retrieving-the-access-token) to get the API token to use in the `configuration.yaml` file.
To add a Xiaomi Philips Light to your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entries
light:
- platform: xiaomi_miio
name: Xiaomi Philips Smart LED Ball
host: 192.168.130.67
token: YOUR_TOKEN
model: philips.light.bulb
```
{% configuration %}
host:
description: The IP address of your miio light.
required: true
type: string
token:
description: The API token of your miio light.
required: true
type: string
name:
description: The name of your miio light.
required: false
type: string
default: Xiaomi Philips Light
model:
description: The model of your light. Valid values are `philips.light.sread1`, `philips.light.ceiling`, `philips.light.zyceiling`, `philips.light.moonlight`, `philips.light.bulb`, `philips.light.candle`, `philips.light.candle2`, `philips.light.mono1` and `philips.light.downlight`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
required: false
type: string
{% endconfiguration %}
### Platform Services ### Platform Services
### Service `xiaomi_miio.light_set_scene` ### Service `xiaomi_miio.light_set_scene`

View File

@ -30,10 +30,10 @@ zeroconf:
type: map type: map
keys: keys:
default_interface: default_interface:
description: By default, `zeroconf` will attempt to bind to all interfaces. For systems running using network isolation or similar, this may result in `zeroconf` being unavailable. Change this option to `true` if `zeroconf` does not function. description: By default, `zeroconf` will broadcast on the default interface. For systems that require broadcasting `mdns` on all interfaces, change this option to `false` if `zeroconf` does not function.
required: false required: false
type: boolean type: boolean
default: false default: true
ipv6: ipv6:
description: By default, `zeroconf` will enable IPv6 support. If your network has trouble with IPv6 being enabled, you can set this option to `false`. description: By default, `zeroconf` will enable IPv6 support. If your network has trouble with IPv6 being enabled, you can set this option to `false`.
required: false required: false

View File

@ -30,6 +30,7 @@ ha_platforms:
- lock - lock
- sensor - sensor
- switch - switch
ha_zeroconf: true
--- ---
The ZHA (Zigbee Home Automation) integration allows you to connect many off-the-shelf [Zigbee based devices](https://zigbeealliance.org) directly to Home Assistant, using one of the many available Zigbee coordinators. The ZHA (Zigbee Home Automation) integration allows you to connect many off-the-shelf [Zigbee based devices](https://zigbeealliance.org) directly to Home Assistant, using one of the many available Zigbee coordinators.
@ -267,12 +268,45 @@ from the same group:
### Service `zha.remove` ### Service `zha.remove`
This service remove an existing device from the network. This service removes an existing device from the network.
| Data | Optional | Description | | Data | Optional | Description |
| ---- | ---- | ----------- | | ---- | ---- | ----------- |
| `ieee` | no | IEEE address of the device to remove | `ieee` | no | IEEE address of the device to remove
### Service `zha.set_lock_user_code`
This service sets a lock code on a Zigbee lock.
| Data | Optional | Description |
| --------- | ---- | ----------- |
| `code_slot` | no | Which lock code slot to store the code. Ex. 1-32 will work for Kwikset 954
| `user_code` | no | Code to set on the lock. Ex. Kwikset accepts numbers 4-8 digits in length
### Service `zha.clear_lock_user_code`
This service clears a lock code from a Zigbee lock.
| Data | Optional | Description |
| --------- | ---- | ----------- |
| `code_slot` | no | Which lock code slot to clear
### Service `zha.enable_lock_user_code`
This service enables a lock code on a Zigbee lock.
| Data | Optional | Description |
| --------- | ---- | ----------- |
| `code_slot` | no | Which lock code slot to enable
### Service `zha.disable_lock_user_code`
This service disables a lock code on a Zigbee lock.
| Data | Optional | Description |
| --------- | ---- | ----------- |
| `code_slot` | no | Which lock code slot to disable
## Adding devices ## Adding devices
To add a new device: To add a new device:

View File

@ -31,7 +31,7 @@ ha_platforms:
This integration allows you to control a Z-Wave network via the [Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/) driver. This is our recommended Z-Wave integration for Home Assistant. This integration allows you to control a Z-Wave network via the [Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/) driver. This is our recommended Z-Wave integration for Home Assistant.
Please review the limitations [below](/integrations/zwave_js/#current-limitations) before you get started as a few devices still may not work or only work partially. Please review the limitations [below](/integrations/zwave_js/#current-limitations) before you get started as a few devices still may not work or only work partially.
## Quick start (Home Assistant including Supervisor) ## Quick start (Home Assistant including Supervisor)
@ -57,7 +57,7 @@ Advanced users: Make sure that the server started successfully by inspecting the
### Service `zwave_js.set_config_parameter` ### Service `zwave_js.set_config_parameter`
This service will update a configuration parameter. At this time, it is not possible to update multiple partial parameters in a single call, but we hope to add support for that in the future. This service will update a configuration parameter. To update multiple partial parameters in a single call, use the `zwave_js.bulk_set_partial_config_parameters` service.
| Service Data Attribute | Required | Description | | Service Data Attribute | Required | Description |
|------------------------ |----------- |------------------------------------------------------------------------------------------------------------------------------------------- | |------------------------ |----------- |------------------------------------------------------------------------------------------------------------------------------------------- |
@ -72,6 +72,7 @@ This service will update a configuration parameter. At this time, it is not poss
Let's use parameter 31 for [this device](https://devices.zwave-js.io/?jumpTo=0x000c:0x0203:0x0001:0.0) as an example to show examples of different ways that the `LED 1 Blink Status (bottom)` partial parameter can be set. Note that in places where we are using different values for the same key, the different values are interchangeable across the examples. We can, for instance, use `1` or `Blink` interchangeably for the `value` in all of the examples. Let's use parameter 31 for [this device](https://devices.zwave-js.io/?jumpTo=0x000c:0x0203:0x0001:0.0) as an example to show examples of different ways that the `LED 1 Blink Status (bottom)` partial parameter can be set. Note that in places where we are using different values for the same key, the different values are interchangeable across the examples. We can, for instance, use `1` or `Blink` interchangeably for the `value` in all of the examples.
Example 1: Example 1:
```yaml ```yaml
service: zwave_js.set_config_parameter service: zwave_js.set_config_parameter
target: target:
@ -83,6 +84,7 @@ data:
``` ```
Example 2: Example 2:
```yaml ```yaml
service: zwave_js.set_config_parameter service: zwave_js.set_config_parameter
target: target:
@ -94,16 +96,77 @@ data:
``` ```
Example 3: Example 3:
```yaml ```yaml
service: zwave_js.set_config_parameter service: zwave_js.set_config_parameter
target: target:
entity_id: switch.fan entity_id: switch.fan
data: data:
entity_id: switch.fan entity_id: switch.fan
parameter: "LED 1 Blink Status (bottom)" parameter: "LED 1 Blink Status (bottom)"
value: "Blink" value: "Blink"
``` ```
### Service `zwave_js.bulk_set_partial_config_parameters`
This service will bulk set multiple partial configuration parameters. Be warned that correctly using this service requires advanced knowledge of Z-Wave to use correctly.
| Service Data Attribute | Required | Description |
|------------------------ |----------- |------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity_id` | no | Entity (or list of entities) to set the configuration parameter on. At least one `entity_id` or `device_id` must be provided. |
| `device_id` | no | ID of device to set the configuration parameter on. At least one `entity_id` or `device_id` must be provided. |
| `parameter` | yes | The parameter number or the name of the property. The name of the property is case sensitive. |
| `value` | yes | Either the raw integer value that you want to set for the entire parameter, or a dictionary where the keys are the bitmasks (in integer or hex form) and the values are the value you want to set on each partial. Note that when using a dictionary, and bitmasks that are not provided will be set to their currently cached values. |
#### Examples of bulk setting partial parameter values
Let's use parameter 21 for [this device](https://devices.zwave-js.io/?jumpTo=0x031e:0x000a:0x0001:0.0) as an example to show how partial parameters can be bulk set. In this case, we want to set `0xff` to `127`, `0x7f00` to `10`, and `0x8000` to `1` (or the raw value of `4735`).
<div class='note'>
When using the dictionary format to map the partial parameter to values, the cached values for the missing partial parameters will be used. So in examples 2 and 3, the service would use the cached value for partial parameters `0xff0000`, `0x3f000000`, and `0x40000000` because new values haven't been specified. If you send the raw integer value, it is assumed that you have calculated the full value, so in example 1, partial parameters `0xff0000`, `0x3f000000`, and `0x40000000` would all be set to `0`.
</div>
Example 1:
```yaml
service: zwave_js.bulk_set_partial_config_parameters
target:
entity_id: switch.fan
data:
parameter: 21
value: 4735
```
Example 2:
```yaml
service: zwave_js.bulk_set_partial_config_parameters
target:
entity_id: switch.fan
data:
parameter: 21
value:
0xff: 127
0x7f00: 10
0x8000: 1
```
Example 3:
```yaml
service: zwave_js.bulk_set_partial_config_parameters
target:
entity_id: switch.fan
data:
parameter: 21
value:
255: 127
32512: 10
32768: 1
```
### Service `zwave_js.refresh_value` ### Service `zwave_js.refresh_value`
This service will refresh the value(s) for an entity. This service will generate extra traffic on your Z-Wave network and should be used sparingly. Updates from devices on battery may take some time to be received. This service will refresh the value(s) for an entity. This service will generate extra traffic on your Z-Wave network and should be used sparingly. Updates from devices on battery may take some time to be received.
@ -113,6 +176,21 @@ This service will refresh the value(s) for an entity. This service will generate
| `entity_id` | yes | Entity or list of entities to refresh values for. | | `entity_id` | yes | Entity or list of entities to refresh values for. |
| `refresh_all_values` | no | Whether all values should be refreshed. If `false`, only the primary value will be refreshed. If `true`, all watched values will be refreshed. | | `refresh_all_values` | no | Whether all values should be refreshed. If `false`, only the primary value will be refreshed. If `true`, all watched values will be refreshed. |
### Service `zwave_js.set_value`
This service will set a value on a Z-Wave device. It is for advanced use cases where you need to modify the state of a node and can't do it using native Home Assistant entity functionality. Be warned that correctly using this service requires advanced knowledge of Z-Wave. The service provides minimal validation and blindly calls the Z-Wave JS API, so if you are having trouble using it, it is likely because you are providing an incorrect value somewhere. To set a config parameter, you should use the `zwave_js.set_config_parameter` or `zwave_js.bulk_set_partial_config_parameters` services instead of this one.
| Service Data Attribute | Required | Description |
|------------------------ |---------- |-------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entity_id` | no | Entity (or list of entities) to set the configuration parameter on. At least one `entity_id` or `device_id` must be provided. |
| `device_id` | no | ID of device to set the configuration parameter on. At least one `entity_id` or `device_id` must be provided. |
| `command_class` | yes | ID of Command Class that you want to set the value for. |
| `property` | yes | ID of Property that you want to set the value for. |
| `property_key` | no | ID of Property Key that you want to set the value for. |
| `endpoint` | no | ID of Endpoint that you want to set the value for. |
| `value` | yes | The new value that you want to set. |
| `wait_for_result` | no | Boolean that indicates whether or not to wait for a response from the node. If not included in the payload, the integration will decide whether to wait or not. If set to `true`, note that the service call can take a while if setting a value on an asleep battery device. |
### Service `zwave_js.set_lock_usercode` ### Service `zwave_js.set_lock_usercode`
This service will set the usercode of a lock to X at code slot Y. This service will set the usercode of a lock to X at code slot Y.
@ -136,33 +214,58 @@ Valid code slots are between 1-254.
## Events ## Events
Events are fired when you press a button on a remote (aka Central Scene support) or when a stateless value is being signalled by a device. You can test what events come in using the event {% my developer_events title="developer tools in Home Assistant" %} and subscribe to `zwave_js_event`. Once you know what the event data looks like, you can use this to create automations. There are two types of events that are fired, notification events and value notification events. You can test what events come in using the event {% my developer_events title="developer tools in Home Assistant" %} and subscribing to the `zwave_js_notification` or `zwave_js_value_notification` events respectively. Once you know what the event data looks like, you can use this to create automations.
### Node events (Notification) ### Node events (Notification)
These are events fired by the device using the notification command class. The `parameters` attribute in the example below is optional, and when it is included, the keys in the attribute will vary depending on the event. Check the [Z-Wave JS notification event documentation](https://zwave-js.github.io/node-zwave-js/#/api/node?id=quotnotificationquot) for an explanation of the notification event data. These events fire with the `zwave_js_notification` event type.
#### Notification Command Class
These are notification events fired by devices using the Notification command class. The `parameters` attribute in the example below is optional, and when it is included, the keys in the attribute will vary depending on the event.
```json ```json
{ {
"type": "notification",
"domain": "zwave_js", "domain": "zwave_js",
"node_id": 1, "node_id": 1,
"home_id": "974823419", "home_id": "974823419",
"device_id": "ad8098fe80980974", "device_id": "ad8098fe80980974",
"label": "Keypad lock operation", "command_class": 113,
"command_class_name": "Notification",
"type": 6,
"event": 5,
"label": "Access Control",
"event_label": "Keypad lock operation",
"parameters": {"userId": 1} "parameters": {"userId": 1}
} }
``` ```
#### Entry Control Command Class
These are notification events fired by devices using the Entry Control command class.
```json
{
"domain": "zwave_js",
"node_id": 1,
"home_id": "974823419",
"device_id": "ad8098fe80980974",
"command_class": 111,
"command_class_name": "Entry Control",
"event_type": 6,
"data_type": 5,
"event_data": "555"
}
```
## Scene events (Value Notification) ## Scene events (Value Notification)
Value Notifications are used for stateless values, like `Central Scenes` and `Scene Activation`. Value Notifications are used for stateless values, like `Central Scenes` and `Scene Activation`. These events fire with the `zwave_js_value_notification` event type.
Value Notification example: Value Notification example:
```json ```json
{ {
"type": "value_notification",
"domain": "zwave_js", "domain": "zwave_js",
"node_id": 1, "node_id": 1,
"home_id": "974823419", "home_id": "974823419",
@ -185,7 +288,6 @@ Value Notification example:
As this integration is still in the early stages there are some important limitations to be aware of. As this integration is still in the early stages there are some important limitations to be aware of.
- While support for the most common devices is working, some command classes are not yet (fully) implemented in Z-Wave JS. You can track the status [here](https://github.com/zwave-js/node-zwave-js/issues/6). - While support for the most common devices is working, some command classes are not yet (fully) implemented in Z-Wave JS. You can track the status [here](https://github.com/zwave-js/node-zwave-js/issues/6).
- Configuration of Z-Wave nodes within the Home Assistant UI is not yet implemented, but a [service](#service-zwave_js.set_config_parameter) is available with limited configuration capabilities. If the service doesn't meet your needs, you will need to use another tool, such as [zwavejs2mqtt](https://github.com/zwave-js/zwavejs2mqtt), to manage device configuration.
- There currently is no migration path available from any of the other Z-Wave implementations in Home Assistant. Your Z-Wave network is however stored on your stick so migrating will only require you to redo your device and entity naming. - There currently is no migration path available from any of the other Z-Wave implementations in Home Assistant. Your Z-Wave network is however stored on your stick so migrating will only require you to redo your device and entity naming.
You can keep track of the Roadmap for the Z-Wave JS integration [here](https://github.com/home-assistant-libs/zwave-js-server-python/issues/56). You can keep track of the Roadmap for the Z-Wave JS integration [here](https://github.com/home-assistant-libs/zwave-js-server-python/issues/56).

File diff suppressed because it is too large Load Diff

View File

@ -1073,14 +1073,19 @@
/components/xiaomi /integrations/xiaomi_aqara /components/xiaomi /integrations/xiaomi_aqara
/integrations/air_quality.xiaomi_miio /integrations/xiaomi_miio /integrations/air_quality.xiaomi_miio /integrations/xiaomi_miio
/integrations/alarm_control_panel.xiaomi_miio /integrations/xiaomi_miio /integrations/alarm_control_panel.xiaomi_miio /integrations/xiaomi_miio
/integrations/binary_sensor.modbus /integrations/modbus
/integrations/climate.modbus /integrations/modbus
/integrations/cover.modbus /integrations/modbus
/integrations/fan.xiaomi_miio /integrations/xiaomi_miio /integrations/fan.xiaomi_miio /integrations/xiaomi_miio
/integrations/light.xiaomi_miio /integrations/xiaomi_miio /integrations/light.xiaomi_miio /integrations/xiaomi_miio
/integrations/lovelace /lovelace
/integrations/remote.xiaomi_miio /integrations/xiaomi_miio /integrations/remote.xiaomi_miio /integrations/xiaomi_miio
/integrations/sensor.websocket_api /integrations/websocket_api /integrations/sensor.websocket_api /integrations/websocket_api
/integrations/sensor.modbus /integrations/modbus
/integrations/sensor.xiaomi_miio /integrations/xiaomi_miio /integrations/sensor.xiaomi_miio /integrations/xiaomi_miio
/integrations/switch.modbus /integrations/modbus
/integrations/switch.xiaomi_miio /integrations/xiaomi_miio /integrations/switch.xiaomi_miio /integrations/xiaomi_miio
/integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio /integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio
/integrations/lovelace /lovelace
# Renaming components to integrations # Renaming components to integrations
/components /integrations /components /integrations
@ -2015,6 +2020,7 @@
# Moved documentation # Moved documentation
/details/database /docs/backend/database /details/database /docs/backend/database
/details/updater /docs/backend/updater /details/updater /docs/backend/updater
/docs/backend/updater /integrations/analytics
/docs/ecosystem/ios/ https://companion.home-assistant.io/ /docs/ecosystem/ios/ https://companion.home-assistant.io/
/docs/ecosystem/ios/devices_file https://companion.home-assistant.io/ /docs/ecosystem/ios/devices_file https://companion.home-assistant.io/
/docs/ecosystem/ios/integration https://companion.home-assistant.io/docs/integrations/integrations /docs/ecosystem/ios/integration https://companion.home-assistant.io/docs/integrations/integrations
@ -2287,3 +2293,4 @@
/components/sensor.coinmarketcap /more-info/removed-integration 301 /components/sensor.coinmarketcap /more-info/removed-integration 301
/components/coinmarketcap /more-info/removed-integration 301 /components/coinmarketcap /more-info/removed-integration 301
/integrations/coinmarketcap /more-info/removed-integration 301 /integrations/coinmarketcap /more-info/removed-integration 301
/integrations/griddy /more-info/removed-integration 301

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB