diff --git a/CODEOWNERS b/CODEOWNERS
index 2608aa2e5f9..80e9f59c0b4 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -20,7 +20,6 @@ source/_integrations/airnow.markdown @asymworks
source/_integrations/airthings.markdown @danielhiversen
source/_integrations/airtouch4.markdown @LonePurpleWolf
source/_integrations/airvisual.markdown @bachya
-source/_integrations/alarmdecoder.markdown @ajschmidt8
source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy
source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy
source/_integrations/almond.markdown @gcampax @balloob
@@ -115,9 +114,11 @@ source/_integrations/devolo_home_network.markdown @2Fake @Shutgun
source/_integrations/dexcom.markdown @gagebenne
source/_integrations/dhcp.markdown @bdraco
source/_integrations/dht.markdown @thegardenmonkey
+source/_integrations/diagnostics.markdown @home-assistant/core
source/_integrations/digital_ocean.markdown @fabaff
source/_integrations/discogs.markdown @thibmaek
source/_integrations/dlna_dmr.markdown @StevenLooman @chishm
+source/_integrations/dlna_dms.markdown @chishm
source/_integrations/dnsip.markdown @gjohansson-ST
source/_integrations/doorbird.markdown @oblogic7 @bdraco @flacjacket
source/_integrations/dsmr.markdown @Robbie1221 @frenck
@@ -147,6 +148,7 @@ source/_integrations/enocean.markdown @bdurrer
source/_integrations/enphase_envoy.markdown @gtdiehl
source/_integrations/entur_public_transport.markdown @hfurubotten
source/_integrations/environment_canada.markdown @gwww @michaeldavie
+source/_integrations/envisalink.markdown @ufodone
source/_integrations/ephember.markdown @ttroy50
source/_integrations/epson.markdown @pszafer
source/_integrations/epsonworkforce.markdown @ThaStealth
@@ -161,6 +163,7 @@ source/_integrations/file.markdown @fabaff
source/_integrations/filter.markdown @dgomes
source/_integrations/fireservicerota.markdown @cyberjunky
source/_integrations/firmata.markdown @DaAwesomeP
+source/_integrations/fivem.markdown @Sander0542
source/_integrations/fixer.markdown @fabaff
source/_integrations/fjaraskupan.markdown @elupus
source/_integrations/flick_electric.markdown @ZephireNZ
@@ -197,6 +200,7 @@ source/_integrations/gogogate2.markdown @vangorra @bdraco
source/_integrations/goodwe.markdown @mletenay @starkillerOG
source/_integrations/google_assistant.markdown @home-assistant/cloud
source/_integrations/google_cloud.markdown @lufton
+source/_integrations/google_travel_time.markdown @eifinger
source/_integrations/gpsd.markdown @fabaff
source/_integrations/gree.markdown @cmroche
source/_integrations/greeneye_monitor.markdown @jkeljo
@@ -257,6 +261,7 @@ source/_integrations/ipma.markdown @dgomes @abmantis
source/_integrations/iqvia.markdown @bachya
source/_integrations/irish_rail_transport.markdown @ttroy50
source/_integrations/islamic_prayer_times.markdown @engrbm87
+source/_integrations/iss.markdown @DurgNomis-drol
source/_integrations/isy994.markdown @bdraco @shbatm
source/_integrations/izone.markdown @Swamp-Ig
source/_integrations/jellyfin.markdown @j-stienstra
@@ -316,6 +321,7 @@ source/_integrations/mobile_app.markdown @home-assistant/core
source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik
source/_integrations/modem_callerid.markdown @tkdrob
source/_integrations/modern_forms.markdown @wonderslug
+source/_integrations/moehlenhoff_alpha2.markdown @j-a-n
source/_integrations/monoprice.markdown @etsinko @OnFreund
source/_integrations/moon.markdown @fabaff
source/_integrations/motion_blinds.markdown @starkillerOG
@@ -395,7 +401,7 @@ source/_integrations/picnic.markdown @corneyl
source/_integrations/pilight.markdown @trekky12
source/_integrations/plaato.markdown @JohNan
source/_integrations/plex.markdown @jjlawren
-source/_integrations/plugwise.markdown @CoMPaTech @bouwew @brefra
+source/_integrations/plugwise.markdown @CoMPaTech @bouwew @brefra @frenck
source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa
source/_integrations/point.markdown @fredrike
source/_integrations/poolsense.markdown @haemishkyd
@@ -406,6 +412,7 @@ source/_integrations/prometheus.markdown @knyar
source/_integrations/prosegur.markdown @dgomes
source/_integrations/proxmoxve.markdown @jhollowe @Corbeno
source/_integrations/ps4.markdown @ktnrg45
+source/_integrations/pure_energie.markdown @klaasnicolaas
source/_integrations/push.markdown @dgomes
source/_integrations/pvoutput.markdown @fabaff @frenck
source/_integrations/pvpc_hourly_pricing.markdown @azogue
@@ -415,6 +422,7 @@ source/_integrations/quantum_gateway.markdown @cisasteelersfan
source/_integrations/qvr_pro.markdown @oblogic7
source/_integrations/qwikswitch.markdown @kellerza
source/_integrations/rachio.markdown @bdraco
+source/_integrations/radio_browser.markdown @frenck
source/_integrations/radiotherm.markdown @vinnyfuria
source/_integrations/rainbird.markdown @konikvranik
source/_integrations/raincloud.markdown @vanstinator
@@ -443,7 +451,7 @@ source/_integrations/rtsp_to_webrtc.markdown @allenporter
source/_integrations/ruckus_unleashed.markdown @gabe565
source/_integrations/safe_mode.markdown @home-assistant/core
source/_integrations/saj.markdown @fredericvl
-source/_integrations/samsungtv.markdown @escoand @chemelli74
+source/_integrations/samsungtv.markdown @escoand @chemelli74 @epenet
source/_integrations/scene.markdown @home-assistant/core
source/_integrations/schluter.markdown @prairieapps
source/_integrations/scrape.markdown @fabaff
@@ -471,6 +479,7 @@ source/_integrations/siren.markdown @home-assistant/core @raman325
source/_integrations/sisyphus.markdown @jkeljo
source/_integrations/sky_hub.markdown @rogerselwyn
source/_integrations/slack.markdown @bachya
+source/_integrations/sleepiq.markdown @mfugate1 @kbickar
source/_integrations/slide.markdown @ualex73
source/_integrations/sma.markdown @kellerza @rklomp
source/_integrations/smappee.markdown @bsmappee
@@ -577,7 +586,7 @@ source/_integrations/vicare.markdown @oischinger
source/_integrations/vilfo.markdown @ManneW
source/_integrations/vivotek.markdown @HarlemSquirrel
source/_integrations/vizio.markdown @raman325
-source/_integrations/vlc_telnet.markdown @rodripf @dmcc @MartinHjelmare
+source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare
source/_integrations/volkszaehler.markdown @fabaff
source/_integrations/volumio.markdown @OnFreund
source/_integrations/volvooncall.markdown @molobrakos @decompil3d
@@ -586,6 +595,7 @@ source/_integrations/wallbox.markdown @hesselonline
source/_integrations/waqi.markdown @andrey-git
source/_integrations/watson_tts.markdown @rutkai
source/_integrations/watttime.markdown @bachya
+source/_integrations/waze_travel_time.markdown @eifinger
source/_integrations/weather.markdown @fabaff
source/_integrations/webostv.markdown @bendavid @thecode
source/_integrations/websocket_api.markdown @home-assistant/core
@@ -596,6 +606,7 @@ source/_integrations/wiffi.markdown @mampfes
source/_integrations/wilight.markdown @leofig-rj
source/_integrations/wirelesstag.markdown @sergeymaysak
source/_integrations/withings.markdown @vangorra
+source/_integrations/wiz.markdown @sbidy
source/_integrations/wled.markdown @frenck
source/_integrations/wolflink.markdown @adamkrol93
source/_integrations/workday.markdown @fabaff
@@ -609,7 +620,7 @@ source/_integrations/xmpp.markdown @fabaff @flowolf
source/_integrations/yale_smart_alarm.markdown @gjohansson-ST
source/_integrations/yamaha_musiccast.markdown @vigonotion @micha91
source/_integrations/yandex_transport.markdown @rishatik92 @devbis
-source/_integrations/yeelight.markdown @zewelor @shenxn @starkillerOG
+source/_integrations/yeelight.markdown @zewelor @shenxn @starkillerOG @alexyao2015
source/_integrations/yeelightsunflower.markdown @lindsaymarkward
source/_integrations/yi.markdown @bachya
source/_integrations/youless.markdown @gjong
@@ -621,3 +632,4 @@ source/_integrations/zone.markdown @home-assistant/core
source/_integrations/zoneminder.markdown @rohankapoorcom
source/_integrations/zwave.markdown @home-assistant/z-wave
source/_integrations/zwave_js.markdown @home-assistant/z-wave
+source/_integrations/zwave_me.markdown @lawfulchaos @Z-Wave-Me
diff --git a/_config.yml b/_config.yml
index e96aef85398..108776739bb 100644
--- a/_config.yml
+++ b/_config.yml
@@ -106,9 +106,9 @@ social:
# Home Assistant release details
current_major_version: 2022
-current_minor_version: 02
-current_patch_version: 9
-date_released: 2022-02-18
+current_minor_version: 03
+current_patch_version: 0
+date_released: 2022-03-02
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_docs/mqtt/birth_will.markdown b/source/_docs/mqtt/birth_will.markdown
index 7ffa0a48ba9..89fd94709dd 100644
--- a/source/_docs/mqtt/birth_will.markdown
+++ b/source/_docs/mqtt/birth_will.markdown
@@ -8,68 +8,4 @@ Home Assistant's MQTT integration supports so-called Birth and Last Will and Tes
By default, Home Assistant sends `online` and `offline` to `homeassistant/status`.
-To customize the MQTT Birth and Last Will messages, add the following section to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-mqtt:
- birth_message:
- topic: "hass/status"
- payload: "online"
- will_message:
- topic: "hass/status"
- payload: "offline"
-```
-
-{% configuration %}
-birth_message:
- description: Birth Message. Set to the empty dict, `{}`, to disable publishing a birth message.
- required: false
- type: map
- keys:
- topic:
- description: The MQTT topic to publish the message.
- required: false
- default: homeassistant/status
- type: string
- payload:
- description: The message content.
- required: false
- default: online
- type: string
- qos:
- description: The maximum QoS level of the topic.
- required: false
- default: 0
- type: integer
- retain:
- description: If the published message should have the retain flag on or not.
- required: false
- default: false
- type: boolean
-will_message:
- description: Will Message. Set to the empty dict, `{}`, to disable publishing a will message.
- required: false
- type: map
- keys:
- topic:
- description: The MQTT topic to publish the message.
- required: false
- default: homeassistant/status
- type: string
- payload:
- description: The message content.
- required: false
- default: offline
- type: string
- qos:
- description: The maximum QoS level of the topic.
- required: false
- default: 0
- type: integer
- retain:
- description: If the published message should have the retain flag on or not.
- required: false
- default: false
- type: boolean
-{% endconfiguration %}
+MQTT Birth and Last Will messages can be customized or disabled from the UI. To do this, click on "Configure" in the integration page in the UI, then "Re-configure MQTT" and then "Next".
diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown
index e5e42f02a38..e199de5bcc9 100644
--- a/source/_docs/mqtt/broker.markdown
+++ b/source/_docs/mqtt/broker.markdown
@@ -22,23 +22,26 @@ There is [an issue](https://github.com/rabbitmq/rabbitmq-mqtt/issues/154) with t
-## Configuration
+## Connect to a public broker
-```yaml
-# Example configuration.yaml entry
-mqtt:
- broker: 192.168.1.100
-```
+The Mosquitto project runs a [public broker](https://test.mosquitto.org). This is the easiest to set up, but there is no privacy as all messages are public. Use this only for testing purposes and not for real tracking of your devices or controlling your home. To use the public mosquitto broker, confiure the MQTT integration to connect to broker `test.mosquitto.org` on port 1183 or 8883.
+
+
+
+If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then add `certificate: auto` to your broker configuration and restart Home Assistant.
+
+
+
+## Broker configuration
+
+MQTT broker settings are configured when the MQTT integration is first setup, and can be changed if needed. To change the settings, click on "Configure" in the integration page in the UI, then "Re-configure MQTT".
+
+## Advanced broker configuration
+
+Some broker configuration options can't be set via the user interface, but require changes of your `configuration.yaml` file.
+Additional SSL certificate options are documented [here](/docs/mqtt/certificate/).
{% configuration %}
-broker:
- required: false
- description: The IP address or hostname of your MQTT broker, e.g., 192.168.1.32.
- type: string
-port:
- required: false
- description: The network port to connect to. Default is 1883.
- type: integer
client_id:
required: false
description: The client ID that Home Assistant will use. Has to be unique on the server. Default is a randomly generated one.
@@ -47,14 +50,6 @@ keepalive:
required: false
description: The time in seconds between sending keep alive messages for this client. Default is 60.
type: integer
-username:
- required: false
- description: The username to use with your MQTT broker.
- type: string
-password:
- required: false
- description: The corresponding password for the username to use with your MQTT broker.
- type: string
protocol:
required: false
description: "Protocol to use: 3.1 or 3.1.1. By default it connects with 3.1.1 and falls back to 3.1 if server does not support 3.1.1."
@@ -76,24 +71,3 @@ If you are running a Mosquitto instance on a different server with proper SSL en
-### Public broker
-
-The Mosquitto project runs a [public broker](https://test.mosquitto.org). This is the easiest to set up, but there is no privacy as all messages are public. Use this only for testing purposes and not for real tracking of your devices or controlling your home.
-
-```yaml
-mqtt:
- broker: test.mosquitto.org
- port: 1883 or 8883
-
- # Optional, replace port 1883 with following if you want encryption
- # (doesn't really matter because broker is public)
- port: 8883
- # Download certificate from https://test.mosquitto.org/ssl/mosquitto.org.crt
- certificate: /home/paulus/downloads/mosquitto.org.crt
-```
-
-
-
-If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then add `certificate: auto` to your broker configuration and restart Home Assistant.
-
-
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index 86a47020d16..4f5c224db31 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -24,24 +24,19 @@ Supported by MQTT discovery:
- [Scenes](/integrations/scene.mqtt/)
- [Selects](/integrations/select.mqtt/)
- [Sensors](/integrations/sensor.mqtt/)
+- [Sirens](/integrations/siren.mqtt/)
- [Switches](/integrations/switch.mqtt/)
- [Tag Scanners](/integrations/tag.mqtt/)
- [Vacuums](/integrations/vacuum.mqtt/)
-MQTT discovery is enabled by default. To disable MQTT discovery, add the following to your `configuration.yaml` file:
+## Configuration
+MQTT discovery is enabled by default, but can be disable. To do this, click on "Configure" in the integration page in the UI, then "Re-configure MQTT" and then "Next".
-```yaml
-# Example configuration.yaml entry
-mqtt:
- discovery: false
-```
+### Advanced discovery configuration
+
+It's possible to configure the prefix of the discovery topic through `configuration.yaml`.
{% configuration %}
-discovery:
- description: If the MQTT discovery should be enabled or not.
- required: false
- default: true
- type: boolean
discovery_prefix:
description: The prefix for the discovery topic.
required: false
@@ -49,7 +44,7 @@ discovery_prefix:
type: string
{% endconfiguration %}
-### Discovery topic
+## Discovery topic
The discovery topic need to follow a specific format:
@@ -83,6 +78,7 @@ Supported abbreviations:
'aux_cmd_t': 'aux_command_topic',
'aux_stat_tpl': 'aux_state_template',
'aux_stat_t': 'aux_state_topic',
+ 'av_tones': 'available_tones',
'avty' 'availability',
'avty_mode': 'availability_mode',
'avty_t': 'availability_topic',
@@ -92,6 +88,7 @@ Supported abbreviations:
'away_mode_stat_t': 'away_mode_state_topic',
'b_tpl': 'blue_template',
'bri_cmd_t': 'brightness_command_topic',
+ 'bri_cmd_tpl': 'brightness_command_template',
'bri_scl': 'brightness_scale',
'bri_stat_t': 'brightness_state_topic',
'bri_tpl': 'brightness_template',
@@ -121,6 +118,7 @@ Supported abbreviations:
'dock_t': 'docked_topic',
'dock_tpl': 'docked_template',
'e': 'encoding',
+ 'ent_cat': 'entity_category,
'err_t': 'error_topic',
'err_tpl': 'error_template',
'fanspd_t': 'fan_speed_topic',
@@ -129,6 +127,7 @@ Supported abbreviations:
'flsh_tlng': 'flash_time_long',
'flsh_tsht': 'flash_time_short',
'fx_cmd_t': 'effect_command_topic',
+ 'fx_cmd_tpl': 'effect_command_template',
'fx_list': 'effect_list',
'fx_stat_t': 'effect_state_topic',
'fx_tpl': 'effect_template',
@@ -252,7 +251,10 @@ Supported abbreviations:
'stat_tpl': 'state_template',
'stat_val_tpl': 'state_value_template',
'stype': 'subtype',
+ 'sup_duration': 'support_duration',
+ 'sup_vol': 'support_volume_set',
'sup_feat': 'supported_features',
+ 'sup_off': 'supported_turn_off',
'swing_mode_cmd_tpl': 'swing_mode_command_template',
'swing_mode_cmd_t': 'swing_mode_command_topic',
'swing_mode_stat_tpl': 'swing_mode_state_template',
diff --git a/source/_integrations/alarmdecoder.markdown b/source/_integrations/alarmdecoder.markdown
index 2e3f7b8a629..53bbcbab9c7 100644
--- a/source/_integrations/alarmdecoder.markdown
+++ b/source/_integrations/alarmdecoder.markdown
@@ -8,8 +8,6 @@ ha_category:
ha_release: 0.43
ha_iot_class: Local Push
ha_domain: alarmdecoder
-ha_codeowners:
- - '@ajschmidt8'
ha_config_flow: true
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/aseko_pool_live.markdown b/source/_integrations/aseko_pool_live.markdown
index c806b67281e..32b38ebddc9 100644
--- a/source/_integrations/aseko_pool_live.markdown
+++ b/source/_integrations/aseko_pool_live.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
- '@milanmeu'
ha_domain: aseko_pool_live
ha_platforms:
+ - binary_sensor
- sensor
---
diff --git a/source/_integrations/asuswrt.markdown b/source/_integrations/asuswrt.markdown
index 9af32109fa9..f7bfd44e6cd 100644
--- a/source/_integrations/asuswrt.markdown
+++ b/source/_integrations/asuswrt.markdown
@@ -13,6 +13,7 @@ ha_codeowners:
- '@ollo69'
ha_domain: asuswrt
ha_platforms:
+ - diagnostics
- device_tracker
- sensor
---
diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown
index 59cae7be9a4..6881c91b8a8 100644
--- a/source/_integrations/august.markdown
+++ b/source/_integrations/august.markdown
@@ -2,8 +2,9 @@
title: August
description: Instructions on how to integrate your August devices into Home Assistant.
ha_category:
- - Doorbell
- Binary Sensor
+ - Button
+ - Doorbell
- Sensor
- Camera
- Lock
@@ -17,6 +18,7 @@ ha_dhcp: true
ha_platforms:
- binary_sensor
- camera
+ - button
- lock
- sensor
---
@@ -43,6 +45,7 @@ There is currently support for the following device types within Home Assistant:
- Doorbell
- Binary Sensor
+- Button
- Sensor
- Camera
- Lock
@@ -69,6 +72,10 @@ If you have an August Smart Lock with DoorSense, once you have enabled the Augus
- Door sensor
+## Button
+
+Buttons are created to wake locks from a deep sleep. If your lock is not reporting a status, it may be in a deep sleep, and the button can be used to wake it. Locks are not automatically woken from deep sleep to preserve battery life.
+
## Camera
The `august` camera platform allows you to view the latest camera image (triggered by motion) by your [August](https://august.com/) device in Home Assistant.
diff --git a/source/_integrations/aussie_broadband.markdown b/source/_integrations/aussie_broadband.markdown
index 616da313790..ee8272f6b3f 100644
--- a/source/_integrations/aussie_broadband.markdown
+++ b/source/_integrations/aussie_broadband.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@Bre77'
ha_domain: aussie_broadband
ha_platforms:
+ - diagnostics
- sensor
---
diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown
index ef9b3d92de8..2ce84fdea51 100644
--- a/source/_integrations/binary_sensor.mqtt.markdown
+++ b/source/_integrations/binary_sensor.mqtt.markdown
@@ -8,9 +8,9 @@ ha_iot_class: Configurable
ha_domain: mqtt
---
-The `mqtt` binary sensor platform uses an MQTT message received to set the binary sensor's state to `on` or `off`.
+The `mqtt` binary sensor platform uses an MQTT message received to set the binary sensor's state to `on`, `off` or `unknown`.
-The state will be updated only after a new message is published on `state_topic` matching `payload_on` or `payload_off`. If these messages are published with the `retain` flag set,
+The state will be updated only after a new message is published on `state_topic` matching `payload_on`, `payload_off` or `None`. If these messages are published with the `retain` flag set,
the binary sensor will receive an instant state update after subscription and Home Assistant will display the correct state on startup.
Otherwise, the initial state displayed in Home Assistant will be `unknown`.
diff --git a/source/_integrations/broadlink.markdown b/source/_integrations/broadlink.markdown
index 76db44ad707..4be4482d1d8 100644
--- a/source/_integrations/broadlink.markdown
+++ b/source/_integrations/broadlink.markdown
@@ -29,7 +29,7 @@ The Broadlink integration allows you to control and monitor Broadlink universal
- Smart Plugs: `SP mini`, `SP mini+`, `SP mini 3`, `SP1`, `SP2`, `SP2-CL`, `SP2-UK/BR/IN`, `SP3`, `SP3-EU`, `SP3S-EU`, `SP3S-US`, `SP4L-EU` and `SP4M-US`
- Universal Remotes: `RM mini`, `RM mini 3`, `RM pro`, `RM pro+`, `RM plus`, `RM4 mini`, `RM4 pro` and `RM4C mini`
- Wi-Fi Controlled Switches: `BG1`, `SC1`
-- Smart Light Bulbs: `LB1`
+- Smart Light Bulbs: `LB1`,`LB2`
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/camera.markdown b/source/_integrations/camera.markdown
index 6a5e5d1185f..6884ee90275 100644
--- a/source/_integrations/camera.markdown
+++ b/source/_integrations/camera.markdown
@@ -3,6 +3,7 @@ title: Camera
description: Instructions on how to integrate cameras within Home Assistant.
ha_category:
- Camera
+ - Media Source
ha_release: 0.7
ha_quality_scale: internal
ha_domain: camera
diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown
index 44774daf73f..7be60df28b3 100644
--- a/source/_integrations/climate.mqtt.markdown
+++ b/source/_integrations/climate.mqtt.markdown
@@ -79,18 +79,6 @@ availability_topic:
description: The MQTT topic subscribed to receive availability (online/offline) updates. Must not be used together with `availability`.
required: false
type: string
-away_mode_command_topic:
- description: The MQTT topic to publish commands to change the away mode.
- required: false
- type: string
-away_mode_state_template:
- description: A template to render the value received on the `away_mode_state_topic` with.
- required: false
- type: template
-away_mode_state_topic:
- description: The MQTT topic to subscribe for changes of the HVAC away mode. If this is not set, the away mode works in optimistic mode (see below).
- required: false
- type: string
current_temperature_template:
description: A template with which the value received on `current_temperature_topic` will be rendered.
required: false
@@ -176,26 +164,6 @@ fan_modes:
required: false
default: ['auto', 'low', 'medium', 'high']
type: list
-hold_command_template:
- description: A template to render the value sent to the `hold_command_topic` with.
- required: false
- type: template
-hold_command_topic:
- description: The MQTT topic to publish commands to change the hold mode.
- required: false
- type: string
-hold_state_template:
- description: A template to render the value received on the `hold_state_topic` with.
- required: false
- type: template
-hold_state_topic:
- description: The MQTT topic to subscribe for changes of the HVAC hold mode. If this is not set, the hold mode works in optimistic mode (see below).
- required: false
- type: string
-hold_modes:
- description: A list of available hold modes.
- required: false
- type: list
initial:
description: Set the initial target temperature.
required: false
@@ -280,6 +248,27 @@ precision:
required: false
type: float
default: 0.1 for Celsius and 1.0 for Fahrenheit.
+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 subscribed to receive climate speed based on presets. When preset 'none' is received or `None` the `preset_mode` will be reset.
+ required: false
+ type: string
+preset_mode_value_template:
+ description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`.
+ required: false
+ type: string
+preset_modes:
+ description: List of preset modes this climate is supporting. Common examples include `eco`, `away`, `boost`, `comfort`, `home`, `sleep` and `activity`.
+ required: false
+ type: [list]
+ default: []
qos:
description: The maximum QoS level to be used when receiving and publishing messages.
required: false
@@ -429,7 +418,12 @@ climate:
- "high"
- "medium"
- "low"
+ preset_modes:
+ - "eco"
+ - "sleep"
+ - "activity"
power_command_topic: "study/ac/power/set"
+ preset_mode_command_topic: "study/ac/preset_mode/set"
mode_command_topic: "study/ac/mode/set"
temperature_command_topic: "study/ac/temperature/set"
fan_mode_command_topic: "study/ac/fan/set"
diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown
index 6d71ea9255a..705f62b9fbd 100644
--- a/source/_integrations/deconz.markdown
+++ b/source/_integrations/deconz.markdown
@@ -24,6 +24,7 @@ ha_ssdp: true
ha_platforms:
- alarm_control_panel
- binary_sensor
+ - button
- diagnostics
- climate
- cover
diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown
index 67a581da9ee..ade52316437 100644
--- a/source/_integrations/default_config.markdown
+++ b/source/_integrations/default_config.markdown
@@ -39,7 +39,6 @@ This integration is a meta-component and configures a default set of integration
- [System Health](/integrations/system_health/) (`system_health`)
- [Tag](/integrations/tag/) (`tag`)
- [Timer](/integrations/timer/) (`timer`)
-- [Updater](/integrations/updater/) (`updater`)
- [USB](/integrations/usb/) (`usb`)
- [Webhooks](/integrations/webhook) (`webhook`)
- [Zero-configuration networking (zeroconf)](/integrations/zeroconf/) (`zeroconf`)
diff --git a/source/_integrations/diagnostics.markdown b/source/_integrations/diagnostics.markdown
index ec20dbd6f54..a6aa1d41f74 100644
--- a/source/_integrations/diagnostics.markdown
+++ b/source/_integrations/diagnostics.markdown
@@ -6,6 +6,8 @@ ha_category:
ha_release: 2022.2
ha_quality_scale: internal
ha_domain: diagnostics
+ha_codeowners:
+ - '@home-assistant/core'
---
The diagnostics integration provides a way to download diagnostic data from
diff --git a/source/_integrations/dlna_dmr.markdown b/source/_integrations/dlna_dmr.markdown
index d661872d7da..8ff01fdb589 100644
--- a/source/_integrations/dlna_dmr.markdown
+++ b/source/_integrations/dlna_dmr.markdown
@@ -49,3 +49,11 @@ DLNA devices can support a range of features. Depending on the device itself, th
* `media_player.shuffle_set`
* `media_player.repeat_set`
* `media_player.select_sound_mode`
+
+## Playing media
+
+Most DLNA DMR devices can play media from local HTTP servers. For best results, use HTTP instead of HTTPS, and refer to the server using an IP address instead of a hostname, e.g. `http://192.168.1.1:8080/song.mp3`.
+
+### Media sources
+
+The DLNA Digital Media Renderer integration can browse any configured [Media Source](/integrations/media_source/). Displayed media will be filtered based on the capabilities of the DLNA DMR device.
diff --git a/source/_integrations/dlna_dms.markdown b/source/_integrations/dlna_dms.markdown
new file mode 100644
index 00000000000..9dd39923b2b
--- /dev/null
+++ b/source/_integrations/dlna_dms.markdown
@@ -0,0 +1,58 @@
+---
+title: DLNA Digital Media Server
+description: Instructions on how to access media stored on a DLNA DMS device with Home Assistant.
+ha_category:
+ - Media Source
+ha_release: 2022.3
+ha_iot_class: Local Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@chishm'
+ha_domain: dlna_dms
+ha_ssdp: true
+ha_quality_scale: platinum
+---
+
+The DLNA Digital Media Server integration allows you to browse and play media from a [DLNA Digital Media Server](https://www.dlna.org/). Configured DMS devices act as a [Media Source](/integrations/media_source/) and can be browsed in the Media panel.
+
+{% include integrations/config_flow.md %}
+
+## Renaming
+
+The name/title of the DMS device is the same as the title of the config entry. It can be changed on the Integrations Configuration page from the three-dot menu.
+
+## Media source URIs
+
+Media source URIs for DLNA DMS look like `media-source://dlna_dms//`.
+
+Here `` is the slugified name of the DMS device. For example, "DLNA Server" becomes "dlna_server". If multiple DMS devices have the same name, an underscore and a unique number will be appended to the end of some of them, e.g., "server", "server_1", "server_2".
+
+The `` can have one of three forms:
+
+- `path/to/file` or `/path/to/file`: Slash-separated path through the Content Directory. This must refer to a unique media item.
+- `:ObjectID`: Colon followed by a server-assigned ID for an object.
+- `?query`: Question mark followed by a query string to search for, see [DLNA ContentDirectory SearchCriteria](http://www.upnp.org/specs/av/UPnP-av-ContentDirectory-v1-Service.pdf) for the syntax. The first result found will be used.
+
+URIs generated while browsing will look like the Object ID form above. However, all three forms will work with the [media_player.play_media](/integrations/media_player/#service-media_playerplay_media) service.
+
+### Examples
+
+Using a path URI:
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.living_room_tv
+data:
+ media_content_id: "media-source://dlna_dms/my_server/videos/favourites/Epic Sax Guy 10 Hours.mp4"
+```
+
+Using a query URI:
+
+```yaml
+service: media_player.play_media
+target:
+ entity_id: media_player.living_room_tv
+data:
+ media_content_id: 'media-source://dlna_dms/my_server/?dc:title="Big Buck Bunny"'
+```
diff --git a/source/_integrations/elkm1.markdown b/source/_integrations/elkm1.markdown
index 099a8d90e2f..8f6bd683e8a 100644
--- a/source/_integrations/elkm1.markdown
+++ b/source/_integrations/elkm1.markdown
@@ -12,6 +12,7 @@ ha_category:
- Switch
ha_iot_class: Local Push
ha_domain: elkm1
+ha_dhcp: true
ha_config_flow: true
ha_codeowners:
- '@gwww'
@@ -174,11 +175,6 @@ prefix:
description: The prefix to use, if any, for all the devices created for this controller. At most one host can omit the prefix, all others must have a unique prefix within the Home Assistant instance.
require: false
type: string
-temperature_unit:
- description: The temperature unit that the Elk panel uses. Valid values are `C` and `F`.
- required: false
- type: string
- default: F
auto_configure:
description: Auto configure `area`, `counter`, `keypad`, `output`, `setting`, `task`, `thermostat`, `plc`, and `zone` by only adding elements that ElkM1 reports on the initial sync.
required: false
diff --git a/source/_integrations/envisalink.markdown b/source/_integrations/envisalink.markdown
index 6cc1430f60c..a684cc17c68 100644
--- a/source/_integrations/envisalink.markdown
+++ b/source/_integrations/envisalink.markdown
@@ -12,6 +12,9 @@ ha_platforms:
- alarm_control_panel
- binary_sensor
- sensor
+ - switch
+ha_codeowners:
+ - '@ufodone'
---
The `envisalink` integration will allow Home Assistant users who own either a DSC or Honeywell alarm panel to leverage their alarm system and its sensors to provide Home Assistant with rich information about their homes. Connectivity between Home Assistant and the alarm panel is accomplished through a device produced by Eyez On, known as the Envisalink. The Envisalink evl3 and evl4 boards provide a TCP/IP interface to the alarm panel, where it emulates an alarm keypad. This board also exposes a raw TCP/IP based API, upon which this integration is built. Currently, the Envisalink version 4 is the latest model. This integration supports both the evl3 and the evl4.
diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown
index c223d58cd8c..772c4175dda 100644
--- a/source/_integrations/esphome.markdown
+++ b/source/_integrations/esphome.markdown
@@ -21,6 +21,7 @@ ha_platforms:
- cover
- fan
- light
+ - lock
- number
- sensor
- select
diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown
index 3a1ae169fb1..a871d2e41cb 100644
--- a/source/_integrations/fan.mqtt.markdown
+++ b/source/_integrations/fan.mqtt.markdown
@@ -12,9 +12,9 @@ The `mqtt` fan platform lets you control your MQTT enabled fans.
## Configuration
-In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT fan will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the fan will be `false` / `off`.
+In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT fan will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the fan will be `unknown`. A MQTT device can reset the current state to `unknown` using a `None` payload.
-When a `state_topic` is not available, the fan will work in optimistic mode. In this mode, the fan will immediately change state after every command. Otherwise, the fan will wait for state confirmation from the device (message from `state_topic`).
+When a `state_topic` is not available, the fan will work in optimistic mode. In this mode, the fan will immediately change state after every command. Otherwise, the fan will wait for state confirmation from the device (message from `state_topic`). The initial state is set to `False` / `off` in optimistic mode.
Optimistic mode can be forced even if a `state_topic` is available. Try to enable it if you are experiencing incorrect fan operation.
diff --git a/source/_integrations/filter.markdown b/source/_integrations/filter.markdown
index df7c9cafa19..78cb9f357f4 100644
--- a/source/_integrations/filter.markdown
+++ b/source/_integrations/filter.markdown
@@ -64,6 +64,10 @@ name:
description: Name to use in the frontend.
required: false
type: string
+unique_id:
+ description: An ID that uniquely identifies the filter sensor. Set this to a unique value to allow customization through the UI.
+ required: false
+ type: string
filters:
description: Filters to be used.
required: true
diff --git a/source/_integrations/fivem.markdown b/source/_integrations/fivem.markdown
new file mode 100644
index 00000000000..cf6f5682592
--- /dev/null
+++ b/source/_integrations/fivem.markdown
@@ -0,0 +1,34 @@
+---
+title: FiveM
+description: Instructions on how to integrate a FiveM server into Home Assistant.
+ha_release: 2022.3
+ha_category:
+ - Binary Sensor
+ - Sensor
+ha_iot_class: Local Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@Sander0542'
+ha_domain: fivem
+ha_platforms:
+ - binary_sensor
+ - sensor
+---
+
+FiveM allows players to play the game [Grand Theft Auto V](https://www.rockstargames.com/V) by [Rockstar Games](https://www.rockstargames.com) online with other players. FiveM adds support for custom resources. The FiveM integration lets you retrieve information from a FiveM server within Home Assistant.
+
+{% include integrations/config_flow.md %}
+
+## Binary sensors
+
+This integration provides a binary sensor for the following information from a FiveM server:
+
+- Connection status
+
+## Sensors
+
+This integration provides sensors for the following information from a FiveM server:
+
+- Number of online players (player names are available in state attributes)
+- Number of maximum players
+- Number of resources (resource names are available in state attributes)
diff --git a/source/_integrations/flux_led.markdown b/source/_integrations/flux_led.markdown
index 8baaf95af4f..1278ea37dc2 100644
--- a/source/_integrations/flux_led.markdown
+++ b/source/_integrations/flux_led.markdown
@@ -13,6 +13,7 @@ ha_release: 0.25
ha_domain: flux_led
ha_platforms:
- button
+ - diagnostics
- light
- number
- sensor
diff --git a/source/_integrations/freebox.markdown b/source/_integrations/freebox.markdown
index 2b751485aaa..10e8b612590 100644
--- a/source/_integrations/freebox.markdown
+++ b/source/_integrations/freebox.markdown
@@ -14,6 +14,7 @@ ha_codeowners:
ha_config_flow: true
ha_domain: freebox
ha_platforms:
+ - button
- device_tracker
- sensor
- switch
diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown
index 19817a9a5ec..786d59d1238 100644
--- a/source/_integrations/fritz.markdown
+++ b/source/_integrations/fritz.markdown
@@ -61,12 +61,25 @@ A device is identified as stale when it's still present on Home Assistant but no
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------- |
| `device_id` | no | Only act on a specific router |
+#### Service `fritz.set_guest_wifi_password`
+
+Set a new password for the guest wifi.
+The password must be between 8 and 63 characters long.
+If no password is given, it will be auto-generated.
+
+| Service data attribute | Optional | Description |
+| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------- |
+| `device_id` | no | Only act on a specific router |
+| `password` | yes | New password for the guest wifi |
+| `length` | yes | Length of the auto-generated password. (_default 12_) |
+
## Integration Options
It is possible to change some behaviors through the integration options.
These can be changed at **AVM FRITZ!Box Tools** -> **Configure** on the Integrations page.
- **Consider home**: Number of seconds that must elapse before considering a disconnected device "not at home".
+- **Enable old discovery method**: Needed on some scenarios like no mesh support (fw <= 6.x), mixed brands network devices or LAN switches.
## Additional info
@@ -97,11 +110,11 @@ The following script can be used to easily add a reconnect button to your UI. If
```yaml
fritz_box_reconnect:
- alias: "Reboot FRITZ!Box"
+ alias: "Reconnect FRITZ!Box"
sequence:
- service: button.press
target:
- entity_id: button.fritzbox_7530_reboot
+ entity_id: button.fritzbox_7530_reconnect
```
diff --git a/source/_integrations/github.markdown b/source/_integrations/github.markdown
index 0babed50e2d..2e86ec5c10b 100644
--- a/source/_integrations/github.markdown
+++ b/source/_integrations/github.markdown
@@ -21,9 +21,7 @@ The GitHub integration allows you to monitor your favorite [GitHub][github] repo
When you set up this integration, you will first be guided to allow the integration to use the [GitHub API][github_api] on your behalf. If you do not yet have a [GitHub][github] account you will be prompted to create one during the configuration of the integration.
-When you have authorized the integration, you select repositories you want to monitor, the list contains repositories you have [starred][github_starred] on GitHub with your account.
-
-Most of the entities provided by this integration are disabled by default, you can enable these by going to the {% my entities title="entities panel" %}.
+When you have authorized the integration, you select repositories you want to monitor, the list contains repositories you have created and [starred][github_starred] on GitHub with your account.
## Remove authorization
diff --git a/source/_integrations/gntp.markdown b/source/_integrations/gntp.markdown
deleted file mode 100644
index dea35d7b366..00000000000
--- a/source/_integrations/gntp.markdown
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Growl (GnGNTP)
-description: Instructions for adding GNTP/Growl notifications to Home Assistant.
-ha_category:
- - Notifications
-ha_iot_class: Local Push
-ha_release: 0.16
-ha_domain: gntp
-ha_platforms:
- - notify
----
-
-
-
-The Growl (GnGNTP) integration has been deprecated and is going to be removed
-in Home Assistant Core 2021.6. The Growl project
-[has retired](https://growl.github.io/growl/).
-
-
-
-[GNTP](http://growl.info/documentation/developer/gntp.php) is a specification for sending and receiving notifications between computers. The most well known server implementations are [Growl](http://growl.info) for Mac and [Growl for Windows](http://www.growlforwindows.com/).
-
-To use GNTP notifications, add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-notify:
- - name: NOTIFER_NAME
- platform: gntp
-```
-
-GNTP will attempt to connect to a local server running on port 23053 if no `hostname` is provided.
-
-{% configuration %}
-name:
- description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
- required: false
- default: notify
- type: string
-app_name:
- description: The application name that will be displayed on every notification and will be registered with the server.
- required: false
- default: HomeAssistant
- type: string
-app_icon:
- description: "The icon that will be displayed on every notification. You can provide an HTTP URL or a `file://` URL. File URLs only work if Home Assistant and the GNTP server are running on the same machine. If no `app_icon` is set a local copy of the Home Assistant logo will be used. If you choose to use an HTTP URL please make the maximum image size 150 px by 150 px as Growl for Mac will sometimes timeout when registering."
- required: false
- type: string
-hostname:
- description: The hostname or IP address of the GNTP server to contact.
- required: false
- default: localhost
- type: string
-password:
- description: The password to authenticate to the GNTP server with.
- required: false
- type: string
-port:
- description: The port that the GNTP server runs on. The specification states that servers should not allow users to use any port other than 23053 but `port` is provided here just in case.
- required: false
- default: 23053
- type: integer
-{% endconfiguration %}
-
-To use notifications, please see the [getting started with automation page](/getting-started/automation/).
diff --git a/source/_integrations/google_travel_time.markdown b/source/_integrations/google_travel_time.markdown
index b5d62703558..8b4f39a8e59 100644
--- a/source/_integrations/google_travel_time.markdown
+++ b/source/_integrations/google_travel_time.markdown
@@ -9,6 +9,8 @@ ha_config_flow: true
ha_domain: google_travel_time
ha_platforms:
- sensor
+ha_codeowners:
+ - '@eifinger'
---
The `google_travel_time` sensor provides travel time from the [Google Distance Matrix API](https://developers.google.com/maps/documentation/distance-matrix/).
diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown
index b475894d556..86ecb13c765 100644
--- a/source/_integrations/homekit.markdown
+++ b/source/_integrations/homekit.markdown
@@ -11,6 +11,8 @@ ha_config_flow: true
ha_codeowners:
- '@bdraco'
ha_zeroconf: true
+ha_platforms:
+ - diagnostics
---
The HomeKit integration allows you to make your Home Assistant entities available in Apple HomeKit,
diff --git a/source/_integrations/homekit_controller.markdown b/source/_integrations/homekit_controller.markdown
index 0190b3193a9..f1be7def917 100644
--- a/source/_integrations/homekit_controller.markdown
+++ b/source/_integrations/homekit_controller.markdown
@@ -37,6 +37,7 @@ ha_platforms:
- media_player
- number
- sensor
+ - select
- switch
---
diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown
index bc62d95aac9..cc73423ea8b 100644
--- a/source/_integrations/hue.markdown
+++ b/source/_integrations/hue.markdown
@@ -17,6 +17,7 @@ ha_ssdp: true
ha_homekit: true
ha_platforms:
- binary_sensor
+ - diagnostics
- light
- scene
- sensor
diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown
index 59d780546cb..5445422b5b6 100644
--- a/source/_integrations/humidifier.mqtt.markdown
+++ b/source/_integrations/humidifier.mqtt.markdown
@@ -12,9 +12,9 @@ The `mqtt` humidifier platform lets you control your MQTT enabled humidifiers.
## Configuration
-In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT humidifier will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the humidifier will be `false` / `off`.
+In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT humidifier will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the humidifier will be `unknown`. A MQTT device can reset the current state to `unknown` using a `None` payload.
-When a `state_topic` is not available, the humidifier will work in optimistic mode. In this mode, the humidifier will immediately change state after every command. Otherwise, the humidifier will wait for state confirmation from the device (message from `state_topic`).
+When a `state_topic` is not available, the humidifier will work in optimistic mode. In this mode, the humidifier will immediately change state after every command. Otherwise, the humidifier will wait for state confirmation from the device (message from `state_topic`). The initial state is set to `False` / `off` in optimistic mode.
Optimistic mode can be forced even if a `state_topic` is available. Try to enable it if you are experiencing incorrect humidifier operation.
diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown
index 60f5aac2625..efc7520107a 100644
--- a/source/_integrations/influxdb.markdown
+++ b/source/_integrations/influxdb.markdown
@@ -424,6 +424,10 @@ queries:
type: string
description: The name of the sensor.
required: true
+ unique_id:
+ type: string
+ description: The unique ID for this query. This allows changing the name, icon and entity_id from the web interface.
+ required: false
unit_of_measurement:
type: string
description: Defines the units of measurement of the sensor, if any.
@@ -464,6 +468,10 @@ queries_flux:
type: string
description: The name of the sensor.
required: true
+ unique_id:
+ type: string
+ description: The unique ID for this query. This allows changing the name, icon and entity_id from the web interface.
+ required: false
unit_of_measurement:
type: string
description: Defines the units of measurement of the sensor, if any.
diff --git a/source/_integrations/intellifire.markdown b/source/_integrations/intellifire.markdown
index ef18458cbe1..f8cb614f926 100644
--- a/source/_integrations/intellifire.markdown
+++ b/source/_integrations/intellifire.markdown
@@ -31,10 +31,18 @@ The following sensors are available as either a **Binary Sensor** when dealing w
- **Timer Sensor**: Whether the sleep timer is turned on.
- **Thermostat Sensor**: Whether the thermostat is turned on.
-### Sensors
+### Sensor
- **Flame Height**: Numerical indicator of flame height, where `0` is the lowest setting.
- **Temperature**: Current ambient temperature as read by the fireplace remote.
- **Target Temperature**: If the thermostat is engaged this is the target temperature the fireplace will try to reach, as measured by the remote.
- **Fan Speed**: Numerical indicator of fan speed.
- **Timer End Time**: If the sleep timer is enabled, this is time it will finish.
+
+### Diagnostic Sensors
+
+- **Connection Quality** - Local network connection quality _(disabled by default)_.
+- **Downtime** - Unit downtime. Will read `Unknown` if there is currently no downtime.
+- **ECM Latency** - Electronic Control Module Latency value _(disabled by default)_.
+- **IP** - IP Address of the unit.
+- **Uptime** - Unit uptime.
diff --git a/source/_integrations/iss.markdown b/source/_integrations/iss.markdown
index e99d852b44f..32ca1253931 100644
--- a/source/_integrations/iss.markdown
+++ b/source/_integrations/iss.markdown
@@ -8,6 +8,9 @@ ha_release: 0.36
ha_domain: iss
ha_platforms:
- binary_sensor
+ha_codeowners:
+ - '@DurgNomis-drol'
+ha_config_flow: true
---
The `iss` platform uses the
@@ -18,33 +21,12 @@ This means that ISS is 10° above the horizon of your home.
You can check in the attributes of the sensor to see the timestamp for the next
rise of the station, its current coordinates, and the number of people in space.
-## Configuration
-
-To add ISS binary sensor to your installation,
-add the following to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-binary_sensor:
- - platform: iss
-```
-
-{% configuration %}
-name:
- description: The name for this sensor in the frontend.
- required: false
- type: string
- default: ISS
-show_on_map:
- description: Option to show the position of the ISS on the map.
- required: false
- type: boolean
- default: false
-{% endconfiguration %}
+{% include integrations/config_flow.md %}
-If you set `show_on_map: true` then the location attributes are named `latitude` and `longitude`.
-The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
+If you enable "Show on map" in the options for this integration then the location attributes
+are named `latitude` and `longitude`. The default name of the location attributes is
+`lat` and `long` to avoid showing them on the map.
diff --git a/source/_integrations/kodi.markdown b/source/_integrations/kodi.markdown
index 5d6ee2eb141..cdd70c38570 100644
--- a/source/_integrations/kodi.markdown
+++ b/source/_integrations/kodi.markdown
@@ -4,6 +4,7 @@ description: Instructions on how to integrate Kodi into Home Assistant.
ha_category:
- Notifications
- Media Player
+ - Media Source
ha_release: pre 0.7
ha_iot_class: Local Push
ha_codeowners:
diff --git a/source/_integrations/kostal_plenticore.markdown b/source/_integrations/kostal_plenticore.markdown
index db98d3dd234..43698e0143b 100644
--- a/source/_integrations/kostal_plenticore.markdown
+++ b/source/_integrations/kostal_plenticore.markdown
@@ -96,6 +96,18 @@ The following sensors are available in the library:
| Energy Yield Month | kWh | Energy yield of the current month. |
| Energy Yield Year | kWh | Energy yield of the current year. |
| Energy Yield Total | kWh | Energy yield total. |
+| Energy Discharge to Grid Day | kWh | Energy discharged to the Grid of the current day. |
+| Energy Discharge to Grid Month | kWh | Energy discharged to the Grid of the current month. |
+| Energy Discharge to Grid Year | kWh | Energy discharged to the Grid of the current year. |
+| Energy Discharge to Grid Total | kWh | Energy discharged to the Grid total. |
+| Battery Charge from Grid Day | kWh | Energy charged to the battery from the Grid of the current day. |
+| Battery Charge from Grid Month | kWh | Energy charged to the battery from the Grid of the current month. |
+| Battery Charge from Grid Year | kWh | Energy charged to the battery from the Grid of the current year. |
+| Battery Charge from Grid Total | kWh | Energy charged to the battery from the Grid total. |
+| Battery Charge from PV Day | kWh | Energy charged to the battery from the PV of the current day. |
+| Battery Charge from PV Month | kWh | Energy charged to the battery from the PV of the current month. |
+| Battery Charge from PV Year | kWh | Energy charged to the battery from the PV of the current year. |
+| Battery Charge from PV Total | kWh | Energy charged to the battery from the PV total. |
### Settings Sensors
diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown
index 57bef94700f..4a0781ded75 100644
--- a/source/_integrations/light.mqtt.markdown
+++ b/source/_integrations/light.mqtt.markdown
@@ -13,18 +13,18 @@ The `mqtt` light platform lets you control your MQTT enabled lights through one
## Comparison of light MQTT schemas
| Function | [`default`](#default-schema) | [`json`](#json-schema) | [`template`](#template-schema) |
-|-------------------|------------------------------------------------------------|----------------------------------------------------------------------|------------------------------------------------------------------------------|
-| Brightness | ✔ | ✔ | ✔ |
-| Color mode | ✔ | ✔ | ✘ |
-| Color temperature | ✔ | ✔ | ✔ |
-| Effects | ✔ | ✔ | ✔ |
-| Flashing | ✘ | ✔ | ✔ |
-| HS Color | ✔ | ✔ | ✔ |
-| RGB Color | ✔ | ✔ | ✔ |
-| RGBW Color | ✔ | ✔ | ✘ |
-| RGBWW Color | ✔ | ✔ | ✘ |
-| Transitions | ✘ | ✔ | ✔ |
-| XY Color | ✔ | ✔ | ✘ |
+| ----------------- | ---------------------------- | ---------------------- | ------------------------------ |
+| Brightness | ✔ | ✔ | ✔ |
+| Color mode | ✔ | ✔ | ✘ |
+| Color temperature | ✔ | ✔ | ✔ |
+| Effects | ✔ | ✔ | ✔ |
+| Flashing | ✘ | ✔ | ✔ |
+| HS Color | ✔ | ✔ | ✔ |
+| RGB Color | ✔ | ✔ | ✔ |
+| RGBW Color | ✔ | ✔ | ✘ |
+| RGBWW Color | ✔ | ✔ | ✘ |
+| Transitions | ✘ | ✔ | ✔ |
+| XY Color | ✔ | ✔ | ✘ |
## Default schema
@@ -33,9 +33,9 @@ The `mqtt` light platform with default schema lets you control your MQTT enabled
## Default schema - Configuration
-In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT light will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the switch will be `false` / `off`.
+In an ideal scenario, the MQTT device will have a state topic to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT light will receive an instant state update after subscription and will start with the correct state. Otherwise, the initial state of the switch will be `unknown`. A MQTT device can reset the current state to `unknown` using a `None` payload.
-When a state topic is not available, the light will work in optimistic mode. In this mode, the light will immediately change state after every command. Otherwise, the light will wait for state confirmation from the device (message from `state_topic`).
+When a state topic is not available, the light will work in optimistic mode. In this mode, the light will immediately change state after every command. Otherwise, the light will wait for state confirmation from the device (message from `state_topic`). The initial state is set to `False` / `off` in optimistic mode.
Optimistic mode can be forced, even if the `state_topic` is available. Try to enable it, if experiencing incorrect light operation.
@@ -90,6 +90,10 @@ brightness_command_topic:
description: The MQTT topic to publish commands to change the light’s brightness.
required: false
type: string
+brightness_command_template:
+ description: "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `brightness_command_topic`. Available variables: `value`."
+ required: false
+ type: string
brightness_scale:
description: "Defines the maximum brightness value (i.e., 100%) of the MQTT device."
required: false
@@ -191,6 +195,10 @@ effect_command_topic:
description: "The MQTT topic to publish commands to change the light's effect state."
required: false
type: string
+effect_command_template:
+ description: "Defines a [template](/docs/configuration/templating/) to compose message which will be sent to `effect_command_topic`. Available variables: `value`."
+ required: false
+ type: string
effect_list:
description: The list of effects the light supports.
required: false
diff --git a/source/_integrations/lutron_caseta.markdown b/source/_integrations/lutron_caseta.markdown
index 195d1dbb84f..3c93649bea2 100644
--- a/source/_integrations/lutron_caseta.markdown
+++ b/source/_integrations/lutron_caseta.markdown
@@ -21,6 +21,7 @@ ha_zeroconf: true
ha_homekit: true
ha_platforms:
- binary_sensor
+ - diagnostics
- cover
- fan
- light
diff --git a/source/_integrations/manual.markdown b/source/_integrations/manual.markdown
index 357b145af37..89d3b7b4e2f 100644
--- a/source/_integrations/manual.markdown
+++ b/source/_integrations/manual.markdown
@@ -1,5 +1,5 @@
---
-title: Manual
+title: Manual Alarm Control Panel
description: Instructions on how to integrate manual alarms into Home Assistant.
ha_category:
- Alarm
diff --git a/source/_integrations/manual_mqtt.markdown b/source/_integrations/manual_mqtt.markdown
index fbf2e480dc0..67258ed6481 100644
--- a/source/_integrations/manual_mqtt.markdown
+++ b/source/_integrations/manual_mqtt.markdown
@@ -1,5 +1,5 @@
---
-title: Manual MQTT
+title: Manual MQTT Alarm Control Panel
description: Instructions on how to integrate manual alarms into Home Assistant with MQTT support.
ha_category:
- Alarm
diff --git a/source/_integrations/mjpeg.markdown b/source/_integrations/mjpeg.markdown
index 7e24084f240..dd64cfae0b1 100644
--- a/source/_integrations/mjpeg.markdown
+++ b/source/_integrations/mjpeg.markdown
@@ -6,88 +6,52 @@ ha_category:
ha_release: pre 0.7
ha_iot_class: Local Push
ha_domain: mjpeg
+ha_config_flow: true
ha_platforms:
- camera
---
-The `mjpeg` camera platform allows you to integrate IP cameras which are capable
-to stream their video with MJPEG into Home Assistant.
+The MJPEG IP Camera integration allows you to integrate IP cameras which are
+capable to stream their video with MJPEG (Motion JPEG) into Home Assistant.
-## Configuration
+## Prerequisites
-To enable this camera in your installation,
-add the following to your `configuration.yaml` file:
+To use this integration, you will need to at least have the video streaming
+URL for your camera. If you don't know it, you could try to look it up
+in the [iSpy Camera Connection Database](https://www.ispyconnect.com/cameras).
-```yaml
-# Example configuration.yaml entry
-camera:
- - platform: mjpeg
- mjpeg_url: http://192.168.1.92/mjpeg
-```
+{% include integrations/config_flow.md %}
-{% configuration %}
-mjpeg_url:
+{% configuration_basic %}
+MJPEG URL:
description: The URL your camera serves the video on, e.g., `http://192.168.1.21:2112/`
- required: true
- type: string
-still_image_url:
- description: The URL for thumbnail picture if camera support that.
- required: false
- type: string
-name:
- description: This parameter allows you to override the name of your camera.
- required: false
- type: string
-username:
+Still Image URL:
+ description: The URL for thumbnail picture (if the camera support that).
+Username:
description: The username for accessing your camera.
- required: false
- type: string
-password:
+Password:
description: The password for accessing your camera.
- required: false
- type: string
-authentication:
- description: "`basic` or `digest` auth for requests."
- required: false
- type: string
- default: basic
-verify_ssl:
+Verify SSL:
description: Validate the SSL certificate for this camera.
- required: false
- type: boolean
- default: true
-{% endconfiguration %}
+{% endconfiguration_basic %}
-## Examples
+This integration support both basic and digest authentication, which one to
+use is automatically detected when using a username and password.
-Example of using a DCS-930L Wireless N Network Camera from D-Link:
+## Examples of MJPEG and still image URLs
-```yaml
-camera:
- - platform: mjpeg
- name: Livingroom Camera
- still_image_url: http://IP/image.jpg
- mjpeg_url: http://IP/video/mjpg.cgi
-```
+- Blue Iris Cameras / Blue Iris Server:
+ - MJPEG URL: `http://IP:PORT/mjpg/CAMERASHORTNAME/video.mjpeg`
+ - Still Image URL: n/a
-Example of integrating Blue Iris Cameras from a Blue Iris server.
+- DCS-930L Wireless N Network Camera from D-Link:
+ - MJPEG URL: `http://IP/video/mjpg.cgi`
+ - Still Image URL: `http://IP/image.jpg`
-```yaml
-camera:
- - platform: mjpeg
- name: Livingroom Camera
- mjpeg_url: http://IP:PORT/mjpg/CAMERASHORTNAME/video.mjpeg
- username: BLUE_IRIS_USERNAME
- password: BLUE_IRIS_PASSWORD
- authentication: basic
-```
+- DCS-933L Wireless N Network Camera from D-Link:
+ - MJPEG URL: `http://IP:PORT/video/mjpg.cgi`
+ - Still Image URL: `http://IP:PORT/image/jpeg.cgi`
-Example of using a DCS-933L Wireless N Network Camera from D-Link:
-
-```yaml
-camera:
- - platform: mjpeg
- name: "YOUR_FRIENDLY_NAME"
- still_image_url: "http://USER:PASSWORD@IP_CAM:PORT/image/jpeg.cgi"
- mjpeg_url: "http://USER:PASSWORD@IP_CAM:PORT/video/mjpg.cgi"
-```
+- OctoPrint (OctoPi):
+ - MJPEG URL: `http://IP/webcam/?action=stream`
+ - Still Image URL: `http://IP/webcam/?action=snapshot`
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index ec0cff0ba6a..9b9e2c40a96 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -289,7 +289,7 @@ modbus:
{% configuration %}
data_type:
- description: Response representation (int16, int32, int64, uint16, uint32, uint64, float16, float32, float64, string). `int/uint`are silently converted to `int16/uint16`.
+ description: Response representation (int8, int16, int32, int64, uint8, uint16, uint32, uint64, float16, float32, float64, string). `int/uint`are silently converted to `int16/uint16`.
required: false
type: string
default: int16
diff --git a/source/_integrations/modem_callerid.markdown b/source/_integrations/modem_callerid.markdown
index a30584393f2..058881fd00e 100644
--- a/source/_integrations/modem_callerid.markdown
+++ b/source/_integrations/modem_callerid.markdown
@@ -9,15 +9,16 @@ ha_domain: modem_callerid
ha_codeowners:
- '@tkdrob'
ha_platforms:
+ - button
- sensor
ha_config_flow: true
---
The `modem_callerid` integration uses an available modem for collecting caller ID information. It requires a Hayes AT compatible modem that supports caller ID detection (via AT+VCID=1). Usually any modem that uses a CX93001 will support this.
-When the sensor detects a new call, its state changes to 'ring' for each ring and 'callerid' when caller id information is received. It returns to 'idle' once ringing stops. The state event includes an attribute payload that includes the time of the call, name and number.
+When the sensor detects a new call, its state changes to 'ring' for each ring and 'callerid' when caller id information is received. It returns to 'idle' once ringing stops. The state event includes an attribute payload that includes the time of the call, name, and number.
-This integration also offers a service. `modem_callerid.reject_call` to pick up and then hang up the call to properly reject a call (via ATA anf ATH).
+This integration also offers a button to pick up and then hang up the call to properly reject it (via ATA and ATH).
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/moehlenhoff_alpha2.markdown b/source/_integrations/moehlenhoff_alpha2.markdown
new file mode 100644
index 00000000000..cbbf977714a
--- /dev/null
+++ b/source/_integrations/moehlenhoff_alpha2.markdown
@@ -0,0 +1,51 @@
+---
+title: Möhlenhoff Alpha 2
+description: Instructions on how to integrate a Möhlenhoff Alpha 2 temperature control system into Home Assistant.
+ha_category: Climate
+ha_release: 2022.3
+ha_iot_class: Local Push
+ha_config_flow: true
+ha_codeowners:
+ - '@j-a-n'
+ha_domain: moehlenhoff_alpha2
+ha_platforms:
+ - climate
+---
+
+The Möhlenhoff Alpha 2 integration allows you to control a
+[Möhlenhoff Alpha 2](https://www.moehlenhoff.de/en/products/room-by-room-control/oem-alpha-2-system)
+temperature control system.
+
+## Prerequisites
+
+Please make sure the base station is turned on and connected to your local network.
+
+
+{% include integrations/config_flow.md %}
+
+## Climate
+
+The climate platform provides current and target temperature information,
+HVAC and preset mode.
+
+A climate entity will be created for each area. The name of the entity is
+taken from the name of the heat area defined in the Alpha 2 base station.
+
+The state is polled from the base every 60 seconds.
+
+Please note that after changing the temperature in Home Assistant,
+it may take up to 10 minutes for your room control units to display these
+changes.
+
+### Integration services
+
+This integration supports the following services (see [Climate](/integrations/climate/)).
+
+- [`set_temperature`](/integrations/climate/#service-climateset_temperature)
+- [`set_hvac_mode`](/integrations/climate/#service-climateset_hvac_mode)
+ - `heat` for heating mode
+ - `cool` for cooling mode
+- [`set_preset_mode`](/integrations/climate/#service-climateset_preset_mode)
+ - `auto` enable schedule based operation
+ - `day` enable day mode
+ - `night` enable night mode
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 6ae7951031b..5f48a478c0d 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -15,6 +15,7 @@ ha_platforms:
- binary_sensor
- camera
- button
+ - diagnostics
- climate
- cover
- fan
@@ -24,6 +25,7 @@ ha_platforms:
- scene
- sensor
- select
+ - siren
- switch
---
@@ -33,29 +35,10 @@ Your first step to get MQTT and Home Assistant working is to choose a [broker](/
{% include integrations/config_flow.md %}
-## Manual configuration
+### Advanced broker configuration
-Alternatively, if you want to manually configure MQTT, you will need to add the following to your `configuration.yaml` file.
-
-To connect to your [own MQTT broker](/docs/mqtt/broker#run-your-own):
-
-```yaml
-# Example configuration.yaml entry
-mqtt:
- broker: IP_ADDRESS_BROKER
-```
-
-Manual configuration is required when connecting to a broker over TLS.
-
-```yaml
-# Example configuration.yaml entry
-mqtt:
- certificate: "PATH_TO_CA.crt"
- broker: "IP_ADDRESS_BROKER"
- port: 8883
- username: "MQTT_USERNAME"
- password: !secret MQTT_PASSWORD
-```
+Some broker configuration options can't be set via the user interface, but require changes of your `configuration.yaml` file.
+This includes configuring SSL [certificate](/docs/mqtt/certificate/) options.
## Additional features
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index c9bddf02fc1..1e7de3a872d 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -8,6 +8,7 @@ ha_category:
- Climate
- Doorbell
- Sensor
+ - Media Source
ha_iot_class: Cloud Push
ha_release: 0.7
ha_config_flow: true
@@ -348,12 +349,14 @@ This is an example of what the `nest_event` payload looks like for a Device Trig
"type": "doorbell_chime",
"timestamp": "2022-01-26T04:56:54.031000+00:00",
"nest_event_id": "EXAMPLE_EVENT_ID",
+ "zones": ["Zone 1"],
},
}
```
* `device_id`: The Home Assistant device identifier for the camera
* `nest_event_id`: is an opaque identifier that can be used with the Media Source Attachments described below for supported cameras.
+* `zones`: Zones triggering the event if available. Zones are configured in the Google Home App, though not supported by all cameras. Events in the area outside of a named zone will be an empty zone name.
{% enddetails %}
diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown
index 5707c7b3f91..8fa1a14f8a7 100644
--- a/source/_integrations/netatmo.markdown
+++ b/source/_integrations/netatmo.markdown
@@ -9,6 +9,7 @@ ha_category:
- Climate
- Camera
- Light
+ - Media Source
ha_release: '0.20'
ha_iot_class: Cloud Polling
ha_codeowners:
diff --git a/source/_integrations/netgear.markdown b/source/_integrations/netgear.markdown
index 11188e5ae00..a3ae855c2b8 100644
--- a/source/_integrations/netgear.markdown
+++ b/source/_integrations/netgear.markdown
@@ -7,8 +7,10 @@ ha_iot_class: Local Polling
ha_release: pre 0.7
ha_domain: netgear
ha_platforms:
+ - button
- device_tracker
- sensor
+ - switch
ha_config_flow: true
ha_codeowners:
- '@hacf-fr'
@@ -17,15 +19,52 @@ ha_codeowners:
ha_ssdp: true
---
-This platform allows you to detect presence by looking at connected devices to a [NETGEAR](https://www.netgear.com/) device.
+This platform allows you to detect presence by looking at connected devices to a [NETGEAR](https://www.netgear.com/) device and control the NETGEAR device.
+Both routers and access points can be used with this integration. Some access points will not be automatically discovered and need to be set up manually.
{% include integrations/config_flow.md %}
-Most NETGEAR routers use port 5000 to communicate, however the following list of models are known to use port 80:
-- Nighthawk RAX50
-- Nighthawk X4S - AC2600 (R7800)
-- Orbi
-- XR500
-When setup through ssdp discovery the port schould be automatically detected.
+{% include integrations/option_flow.md %}
+{% configuration_basic %}
+Consider_home:
+ description: "The consider home time is the number of seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. This option helps prevent false alarms in presence detection."
+{% endconfiguration_basic %}
-The options flow of the NETGEAR integration (in the sidebar of your Home Assistant instance click on "Configuration" -> "Integrations" -> find the NETGEAR integration and click "Configure") allows you to specify the 'consider_home' time. This is the amount of seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. consider_home helps prevent false alarms in presence detection.
+## Router entities
+The NETGEAR router will have the following entities:
+
+### Reboot button
+
+Button entity to restart the router.
+
+### Traffic meter data
+
+The total and average amount of downloaded/uploaded data through the router can be tracked per day/week/month.
+In order for these entities to display the data (instead of 0), the "Traffic Meter" should be enabled in the router settings.
+Log into your router > Select **ADVANCED** > **Advanced Setup** > **Traffic Meter** > **Enable Traffic Meter** check box.
+
+## Connected device entities
+
+For each device connected to the NETGEAR router the following entities will be available:
+
+### Device tracker
+
+Displays if the device is currently connected to the router (Home) or not (Away).
+
+### Allowed on Network
+
+Switch that lets you Allow or Block a device on the Network.
+For this entity to actually Block the device, "Access Control" needs to be turned on in the Router settings.
+Log into your router > Select **ADVANCED** > **Security** > **Access Control** > **Turn on Access Control** check box.
+
+### Signal strength
+
+Displays the wifi signal strength of the device.
+
+### Link rate
+
+Displays the current link rate of the device indicating the maximum possible data speed with the current connection.
+
+### Link type
+
+Displays the current link type: wired, 2.4GHz or 5GHz.
diff --git a/source/_integrations/nut.markdown b/source/_integrations/nut.markdown
index 4fe6c4afa43..7fd893c6ba4 100644
--- a/source/_integrations/nut.markdown
+++ b/source/_integrations/nut.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@ollo69'
ha_zeroconf: true
ha_platforms:
+ - diagnostics
- sensor
---
diff --git a/source/_integrations/octoprint.markdown b/source/_integrations/octoprint.markdown
index 7974b449abf..6746134f01d 100644
--- a/source/_integrations/octoprint.markdown
+++ b/source/_integrations/octoprint.markdown
@@ -3,6 +3,7 @@ title: OctoPrint
description: Integration between OctoPrint and Home Assistant.
ha_category:
- Binary Sensor
+ - Button
- Sensor
ha_config_flow: true
ha_release: 0.19
@@ -14,6 +15,7 @@ ha_zeroconf: true
ha_ssdp: true
ha_platforms:
- binary_sensor
+ - button
- sensor
---
@@ -84,3 +86,11 @@ camera:
still_image_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=snapshot
mjpeg_url: http://YOUR_OCTOPRINT_HOST_IP/webcam/?action=stream
```
+
+## Buttons
+
+The OctoPrint integration provides the following buttons.
+
+- Pause Job
+- Resume Job
+- Stop Job
diff --git a/source/_integrations/opensky.markdown b/source/_integrations/opensky.markdown
index b1c177a9c23..c8db8127624 100644
--- a/source/_integrations/opensky.markdown
+++ b/source/_integrations/opensky.markdown
@@ -35,11 +35,12 @@ Configuration options for the OpenSky Network sensor:
- **opensky_entry**: Fired when a flight enters the region.
- **opensky_exit**: Fired when a flight exits the region.
-Both events have three attributes:
+Both events have four attributes:
- **sensor**: Name of `opensky` sensor that fired the event.
- **callsign**: Callsign of the flight.
- **altitude**: Altitude of the flight in meters.
+- **icao24**: The ICAO 24-bit address of the aircraft's transponder.
To receive notifications of the entering flights using the [Home Assistant Companion App](https://companion.home-assistant.io/), add the following lines to your `configuration.yaml` file:
diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown
index 58cfef023c5..acd0447da7f 100644
--- a/source/_integrations/overkiz.markdown
+++ b/source/_integrations/overkiz.markdown
@@ -4,6 +4,7 @@ description: Instructions on how to integrate hubs whom use the Overkiz platform
ha_category:
- Binary Sensor
- Button
+ - Climate
- Cover
- Hub
- Light
@@ -12,6 +13,7 @@ ha_category:
- Scene
- Select
- Sensor
+ - Siren
- Switch
ha_release: 2022.2
ha_config_flow: true
@@ -27,6 +29,7 @@ ha_platforms:
- binary_sensor
- button
- diagnostics
+ - climate
- cover
- light
- lock
@@ -34,6 +37,7 @@ ha_platforms:
- scene
- sensor
- select
+ - siren
- switch
---
diff --git a/source/_integrations/philips_js.markdown b/source/_integrations/philips_js.markdown
index b2eff1c0961..2505d6bb44b 100644
--- a/source/_integrations/philips_js.markdown
+++ b/source/_integrations/philips_js.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
ha_domain: philips_js
ha_config_flow: true
ha_platforms:
+ - diagnostics
- light
- media_player
- remote
diff --git a/source/_integrations/picnic.markdown b/source/_integrations/picnic.markdown
index 611e536ef8f..ff692262fcf 100644
--- a/source/_integrations/picnic.markdown
+++ b/source/_integrations/picnic.markdown
@@ -32,8 +32,10 @@ This integration provides the following sensors. Some sensors are disabled by de
| Last order slot start | Start of the last placed order's delivery slot |
| Last order slot end | End of the last placed order's delivery slot |
| Last order status | Status of the last order, either `CURRENT`, `CANCELLED` or `COMPLETED`. Will only transition to `COMPLETED` after the invoice email has been sent. |
-| Last order ETA start | Start of the ETA window of the last order, will get more precise if the driver is underway. |
-| Last order ETA end | End of the ETA window of the last order. |
| Last order max order time | Maximum time it is/was still possible to add products to the last order. |
-| Last order delivery time | The delivery time of the last order, `unknown` if not yet delivered. |
+| Last order delivery time | The delivery time of the last order, `unavailable` if not yet delivered. |
| Last order total price | The total price of the last order. |
+| Next delivery ETA start | Start of the ETA window of the next delivery, will get more precise if the driver is underway. |
+| Next delivery ETA end | End of the ETA window of the next delivery. |
+| Next delivery slot start | Start of the next delivery's delivery slot. |
+| Next delivery slot end | End of the next delivery's delivery slot. |
diff --git a/source/_integrations/plex.markdown b/source/_integrations/plex.markdown
index 86e91c38553..a053e72faee 100644
--- a/source/_integrations/plex.markdown
+++ b/source/_integrations/plex.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@jjlawren'
ha_domain: plex
ha_platforms:
+ - button
- media_player
- sensor
ha_zeroconf: true
diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown
index 415ad051d75..416a82be929 100644
--- a/source/_integrations/plugwise.markdown
+++ b/source/_integrations/plugwise.markdown
@@ -12,11 +12,13 @@ ha_codeowners:
- '@CoMPaTech'
- '@bouwew'
- '@brefra'
+ - '@frenck'
ha_config_flow: true
ha_domain: plugwise
ha_zeroconf: true
ha_platforms:
- binary_sensor
+ - diagnostics
- climate
- sensor
- switch
diff --git a/source/_integrations/pure_energie.markdown b/source/_integrations/pure_energie.markdown
new file mode 100644
index 00000000000..094d02db58b
--- /dev/null
+++ b/source/_integrations/pure_energie.markdown
@@ -0,0 +1,40 @@
+---
+title: Pure Energie
+description: Instructions on how to integrate Pure Energie within Home Assistant.
+ha_category:
+ - Energy
+ha_release: 2022.3
+ha_iot_class: Local Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@klaasnicolaas'
+ha_domain: pure_energie
+ha_platforms:
+ - sensor
+ha_quality_scale: platinum
+ha_zeroconf: true
+---
+
+The Pure Energie integration integrates the [Pure Energie Monitor](https://pure-energie.nl/kennisbank/pure-energie-meter/)
+device with Home Assistant.
+
+The Pure Energie meter is a product that allows you to read the data
+from your smart meter via the serial port (P1), such as your energy
+consumption and power flow.
+
+
+The product of Pure Energie is a white label product of Net2Grid,
+other white label products may be found by zeroconf and work with
+this integration.
+
+
+{% include integrations/config_flow.md %}
+
+### SmartBridge
+
+Read out what your meter readings are for energy consumption/production
+and see what your current power flow is.
+
+- Power Flow (W)
+- Energy Consumption (kWh)
+- Energy Production (kWh)
diff --git a/source/_integrations/radio_browser.markdown b/source/_integrations/radio_browser.markdown
new file mode 100644
index 00000000000..f8a161ad0b9
--- /dev/null
+++ b/source/_integrations/radio_browser.markdown
@@ -0,0 +1,27 @@
+---
+title: Radio Browser
+description: Instructions on how to integrate Radio Browser into Home Assistant.
+ha_category:
+ - Multimedia
+ - Media Source
+ha_release: 2022.3
+ha_iot_class: Cloud Polling
+ha_domain: radio_browser
+ha_config_flow: true
+ha_codeowners:
+ - '@frenck'
+---
+
+The Radio Browser integration allows you to use the directory of
+radio stations collected on [Radio Browser](https://www.radio-browser.info)
+in Home Assistant.
+
+All radio stations can be browsed and played via the Media panel in
+Home Assistant.
+
+Additionally, when creating automations, the "Play Media" action can be used
+to pick a station from the directory. This makes it possible to create
+an automation that e.g., starts playing your favorite radio station on your
+Cast devices.
+
+{% include integrations/config_flow.md %}
diff --git a/source/_integrations/roku.markdown b/source/_integrations/roku.markdown
index f91547a104d..3815d418be8 100644
--- a/source/_integrations/roku.markdown
+++ b/source/_integrations/roku.markdown
@@ -6,6 +6,7 @@ ha_category:
- Binary Sensor
- Media Player
- Remote
+ - Select
- Sensor
ha_iot_class: Local Polling
ha_release: 0.86
@@ -22,6 +23,7 @@ ha_platforms:
- media_player
- remote
- sensor
+ - select
---
The Roku integration allows you to control a [Roku](https://www.roku.com/) device.
@@ -154,8 +156,10 @@ The `media_player.play_media` service may be used to send media URLs (primarily
| `entity_id` | no | Target a specific media player. |
| `media_content_id` | no | A media URL. | http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
| `media_content_type` | no | A media type. | `url`
-| `extra.format` | no | A media format. Should be one of `mp4` (supports mov and m4v), `wma`, `mp3`, `hls`, `ism` (smooth streaming), `dash` (MPEG-DASH), `mkv`, `mka`, `mks` | `mp4`
+| `extra.format` | no | A media format. Should be one of `mp4` (supports mov and m4v), `mp3`, `hls`, `ism` (smooth streaming), `dash` (MPEG-DASH), `mkv`, `mka`, `mks` | `mp4`
| `extra.name` | yes | A name for the media. | Big Buck Bunny
+| `extra.thumbnail` | yes | A thumbnail URL for the media. |
+| `extra.artist_name` | yes | The name of the media artist. | Blender
### Example
diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown
index e9b911bc06b..efbd7d081cf 100644
--- a/source/_integrations/samsungtv.markdown
+++ b/source/_integrations/samsungtv.markdown
@@ -9,6 +9,7 @@ ha_config_flow: true
ha_codeowners:
- '@escoand'
- '@chemelli74'
+ - '@epenet'
ha_domain: samsungtv
ha_ssdp: true
ha_platforms:
diff --git a/source/_integrations/sensibo.markdown b/source/_integrations/sensibo.markdown
index 9f4ceef1249..f58a1075683 100644
--- a/source/_integrations/sensibo.markdown
+++ b/source/_integrations/sensibo.markdown
@@ -11,8 +11,11 @@ ha_codeowners:
- '@gjohansson-ST'
ha_domain: sensibo
ha_platforms:
+ - diagnostics
- climate
+ - number
ha_homekit: true
+ha_dhcp: true
---
Integrates [Sensibo](https://sensibo.com) Air Conditioning controller into Home Assistant.
diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown
index a2ca790db55..85c51fe2ac9 100644
--- a/source/_integrations/shelly.markdown
+++ b/source/_integrations/shelly.markdown
@@ -6,6 +6,7 @@ ha_category:
- Cover
- Energy
- Light
+ - Number
- Sensor
- Switch
ha_release: 0.115
@@ -26,6 +27,7 @@ ha_platforms:
- climate
- cover
- light
+ - number
- sensor
- switch
---
@@ -236,6 +238,16 @@ Trigger reboot of device.
- Reboot
- triggers the reboot
+
+## Shelly Thermostatic Radiator Valve (TRV)
+
+Shelly TRV generates 2 entities that can be used to control the device behavior: `climate` and `number`.
+The first will allow specifying a temperature, the second instead of a percentage of the valve position.
+
+**Note**: that if you change the valve position then automatic temperature control
+ will be disabled.
+As soon as you change the temperature, it gets enabled again.
+
## CoAP port (generation 1)
In some cases, it may be needed to customize the CoAP port (default: `5683`) your Home Assistant instance is listening to.
diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown
new file mode 100644
index 00000000000..855e90c8fde
--- /dev/null
+++ b/source/_integrations/siren.mqtt.markdown
@@ -0,0 +1,273 @@
+---
+title: "MQTT Siren"
+description: "Instructions on how to integrate MQTT sirens into Home Assistant."
+ha_category:
+ - Siren
+ha_release: 2022.3
+ha_iot_class: Configurable
+ha_domain: mqtt
+---
+
+The `mqtt` siren platform lets you control your MQTT enabled sirens and text based notification devices.
+
+## Configuration
+
+In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT siren will receive an instant state update after subscription, and will start with the correct state. Otherwise, the initial state of the siren will be `false` / `off`.
+
+When a `state_topic` is not available, the siren will work in optimistic mode. In this mode, the siren will immediately change state after every command. Otherwise, the siren will wait for state confirmation from the device (message from `state_topic`).
+
+Optimistic mode can be forced, even if the `state_topic` is available. Try to enable it, if experiencing incorrect operation.
+
+To enable this siren in your installation, add the following to your `configuration.yaml` file:
+
+```yaml
+# Example configuration.yaml entry
+siren:
+ - platform: mqtt
+ command_topic: "home/bedroom/siren/set"
+```
+
+{% configuration %}
+availability:
+ description: A list of MQTT topics subscribed to receive availability (online/offline) updates. Must not be used together with `availability_topic`.
+ required: false
+ type: list
+ keys:
+ payload_available:
+ description: The payload that represents the available state.
+ required: false
+ type: string
+ default: online
+ payload_not_available:
+ description: The payload that represents the unavailable state.
+ required: false
+ type: string
+ default: offline
+ topic:
+ description: An MQTT topic subscribed to receive availability (online/offline) updates.
+ required: true
+ type: string
+ value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
+ required: false
+ type: template
+availability_mode:
+ description: When `availability` is configured, this controls the conditions needed to set the entity to `available`. Valid entries are `all`, `any`, and `latest`. If set to `all`, `payload_available` must be received on all configured availability topics before the entity is marked as online. If set to `any`, `payload_available` must be received on at least one configured availability topic before the entity is marked as online. If set to `latest`, the last `payload_available` or `payload_not_available` received on any configured availability topic controls the availability.
+ required: false
+ type: string
+ default: latest
+availability_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
+ required: false
+ type: template
+availability_topic:
+ description: The MQTT topic subscribed to receive availability (online/offline) updates. Must not be used together with `availability`.
+ required: false
+ type: string
+available_tones:
+ description: A list of available tones the siren supports. When configured, this enables the support for setting a `tone` and enables the `tone` state attribute.
+ required: false
+ type: list
+command_template:
+ description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `command_topic`. The variable `value` will be assigned with the configured `payload_on` or `payload_off` setting. The siren turn on service parameters `tone`, `volume_level` or `duration` can be used as variables in the template. When operation in optimistic mode the corresponding state attributes will be set. Turn parameters will be filtered if a device misses the support.
+ required: false
+ type: template
+command_off_template:
+ description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to generate the payload to send to `command_topic` when the siren turn off service is called. By default `command_template` will be used as template for service turn off. The variable `value` will be assigned with the configured `payload_off` setting.
+ required: false
+ type: template
+command_topic:
+ description: The MQTT topic to publish commands to change the siren state. Without command template a JSON payload is published. When the siren turn on service is called, the startup parameters will be added to the JSON payload. The `state` value of the JSON payload will be set to the the `payload_on` or `payload_off` configured payload.
+ required: false
+ type: string
+device:
+ description: "Information about the device this siren is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works through [MQTT discovery](/docs/mqtt/discovery/) and when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
+ required: false
+ type: map
+ keys:
+ configuration_url:
+ description: 'A link to the webpage that can manage the configuration of this device. Can be either an HTTP or HTTPS link.'
+ required: false
+ type: string
+ connections:
+ description: 'A list of connections of the device to the outside world as a list of tuples `[connection_type, connection_identifier]`. For example the MAC address of a network interface: `"connections": [["mac", "02:5b:26:a8:dc:12"]]`.'
+ required: false
+ type: list
+ identifiers:
+ description: A list of IDs that uniquely identify the device. For example a serial number.
+ required: false
+ type: [string, list]
+ manufacturer:
+ description: The manufacturer of the device.
+ required: false
+ type: string
+ model:
+ description: The model of the device.
+ required: false
+ type: string
+ name:
+ description: The name of the device.
+ required: false
+ type: string
+ suggested_area:
+ description: 'Suggest an area if the device isn’t in one yet.'
+ required: false
+ type: string
+ sw_version:
+ description: The firmware version of the device.
+ required: false
+ type: string
+ via_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.'
+ required: false
+ type: string
+enabled_by_default:
+ description: Flag which defines if the entity should be enabled when first added.
+ required: false
+ type: boolean
+ default: true
+encoding:
+ description: The encoding of the payloads received and published messages. Set to `""` to disable decoding of incoming payload.
+ required: false
+ type: string
+ default: "utf-8"
+entity_category:
+ description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
+ required: false
+ type: string
+ default: None
+icon:
+ description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
+ required: false
+ type: icon
+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."
+ required: false
+ type: template
+json_attributes_topic:
+ description: The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation.
+ required: false
+ type: string
+name:
+ description: The name to use when displaying this siren.
+ required: false
+ type: string
+ default: MQTT Siren
+object_id:
+ description: Used instead of `name` for automatic generation of `entity_id`
+ required: false
+ type: string
+optimistic:
+ description: Flag that defines if siren works in optimistic mode.
+ required: false
+ type: boolean
+ default: "`true` if no `state_topic` defined, else `false`."
+payload_available:
+ description: The payload that represents the available state.
+ required: false
+ type: string
+ default: online
+payload_not_available:
+ description: The payload that represents the unavailable state.
+ required: false
+ type: string
+ default: offline
+payload_off:
+ description: The payload that represents `off` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_off` for details) and sending as `off` command to the `command_topic`.
+ required: false
+ type: string
+ default: "OFF"
+payload_on:
+ description: The payload that represents `on` state. If specified, will be used for both comparing to the value in the `state_topic` (see `value_template` and `state_on` for details) and sending as `on` command to the `command_topic`.
+ required: false
+ type: string
+ default: "ON"
+qos:
+ description: The maximum QoS level of the state topic. Default is 0 and will also be used to publishing messages.
+ required: false
+ type: integer
+ default: 0
+retain:
+ description: If the published message should have the retain flag on or not.
+ required: false
+ type: boolean
+ default: false
+state_off:
+ description: The payload that represents the `off` state. Used when value that represents `off` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `off`.
+ required: false
+ type: string
+ default: "`payload_off` if defined, else `'OFF'`"
+state_on:
+ description: The payload that represents the `on` state. Used when value that represents `on` state in the `state_topic` is different from value that should be sent to the `command_topic` to turn the device `on`.
+ required: false
+ type: string
+ default: "`payload_on` if defined, else `'ON'`"
+state_topic:
+ description: "The MQTT topic subscribed to receive state updates. When a JSON payload is detected, the `state` value of the JSON payload should supply the `payload_on` or `payload_off` defined payload to turn the siren on or off. Additional the state attributes `duration`, `tone` and `volume_level` can be updated. Use `value_template` to update render custom payload to a compliant JSON payload. Attributes will only be set if the function is supported by the device and a valid value is supplied. The initial state will be `unknown`. The state will be reset to `unknown` if a `None` payload or `null` JSON value is received as a state update."
+ required: false
+ type: string
+state_value_template:
+ description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract device's state from the `state_topic`. To determine the siren's state result of this template will be compared to `state_on` and `state_off`. Alternatively `value_template` can be used to render to a valid JSON payload."
+ required: false
+ type: string
+support_duration:
+ description: Set to `true` if the MQTT siren supports the `duration` service turn on parameter and enables the `duration` state attribute.
+ required: false
+ type: boolean
+ default: true
+support_volume_set:
+ description: Set to `true` if the MQTT siren supports the `volume_set` service turn on parameter and enables the `volume_level` state attribute.
+ required: false
+ type: boolean
+ default: true
+unique_id:
+ description: An ID that uniquely identifies this siren device. If two sirens have the same unique ID, Home Assistant will raise an exception.
+ required: false
+ type: string
+{% endconfiguration %}
+
+
+
+Make sure that your topic matches exactly. `some-topic/` and `some-topic` are different topics.
+
+
+
+## Examples
+
+In this section, you will find an example of how to use this siren platform.
+
+### Full configuration
+
+The example below shows a full configuration for a siren.
+
+{% raw %}
+
+```yaml
+# Example configuration.yaml entry
+siren:
+ - platform: mqtt
+ unique_id: custom_siren
+ name: "Intrusion siren"
+ state_topic: "home/alarm/siren1"
+ command_topic: "home/alarm/siren1/set"
+ available_tones:
+ - ping
+ - siren
+ availability:
+ - topic: "home/alarm/siren1/available"
+ payload_on: "ON"
+ payload_off: "OFF"
+ state_on: "ON"
+ state_off: "OFF"
+ optimistic: false
+ qos: 0
+ retain: true
+```
+
+{% endraw %}
+
+For a check, you can use the command line tools `mosquitto_pub` shipped with `mosquitto` to send MQTT messages. This allows you to operate your siren manually:
+
+```bash
+mosquitto_pub -h 127.0.0.1 -t home/alarm/siren1 -m "ON"
+```
diff --git a/source/_integrations/sleepiq.markdown b/source/_integrations/sleepiq.markdown
index a07baa8e3e0..69de7594c0c 100644
--- a/source/_integrations/sleepiq.markdown
+++ b/source/_integrations/sleepiq.markdown
@@ -8,35 +8,28 @@ ha_category:
ha_release: 0.29
ha_iot_class: Cloud Polling
ha_domain: sleepiq
+ha_config_flow: true
+ha_dhcp: true
+ha_codeowners:
+ - '@kbickar'
+ - '@mfugate1'
ha_platforms:
- binary_sensor
+ - button
- sensor
+ - switch
---
-The SleepIQ implementation lets you view sensor data from [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker). In particular, it lets you see the occupancy and current SleepNumber (ie current firmness) of each side of a SleepNumber bed.
+The SleepIQ integration lets you integrate your SleepNumber Bed via [SleepIQ by SleepNumber](https://www.sleepnumber.com/sleepiq-sleep-tracker).
-## Setup
+There is currently support for the following platforms within Home Assistant:
-You will need an account on [SleepIQ](https://sleepiq.sleepnumber.com/) to use this component.
+- Binary Sensor - View occupancy of each side
+- Sensor - View Current SleepNumber (ie current firmness) of each side
+- Switch - Toggle Privacy mode
+- Button - Calibrate the bed
+- Button - Stop the pump
-## Configuration
+You will need an account on [SleepIQ](https://sleepiq.sleepnumber.com/) to use this integration.
-To set it up, add the following information to your `configuration.yaml` file:
-
-```yaml
-# Example configuration.yaml entry
-sleepiq:
- username: YOUR_USERNAME
- password: YOUR_PASSWORD
-```
-
-{% configuration %}
-username:
- description: Your SleepIQ username (usually an e-mail address).
- required: true
- type: string
-password:
- description: Your SleepIQ password.
- required: true
- type: string
-{% endconfiguration %}
+{% include integrations/config_flow.md %}
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 3c401acbeac..974611ae327 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -12,9 +12,9 @@ The `mqtt` switch platform lets you control your MQTT enabled switches.
## Configuration
-In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT switch will receive an instant state update after subscription, and will start with the correct state. Otherwise, the initial state of the switch will be `false` / `off`.
+In an ideal scenario, the MQTT device will have a `state_topic` to publish state changes. If these messages are published with a `RETAIN` flag, the MQTT switch will receive an instant state update after subscription, and will start with the correct state. Otherwise, the initial state of the switch will be `unknown`. A MQTT device can reset the current state to `unknown` using a `None` payload.
-When a `state_topic` is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from the device (message from `state_topic`).
+When a `state_topic` is not available, the switch will work in optimistic mode. In this mode, the switch will immediately change state after every command. Otherwise, the switch will wait for state confirmation from the device (message from `state_topic`). The initial state is set to `False` / `off` in optimistic mode.
Optimistic mode can be forced, even if the `state_topic` is available. Try to enable it, if experiencing incorrect switch operation.
diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown
index cef6b4e2e4d..2cf47e4fe4e 100644
--- a/source/_integrations/telegram.markdown
+++ b/source/_integrations/telegram.markdown
@@ -377,3 +377,33 @@ inline_keyboard:
required: false
type: list
{% endconfiguration %}
+
+### Extra data attributes support
+
+```yaml
+...
+action:
+ service: notify.NOTIFIER_NAME
+ data:
+ title: "*Send a message*"
+ message: "That's an example that sends a message with message_tag and disable_notification."
+ data:
+ message_tag: "example_tag"
+ disable_notification: True
+```
+
+{% configuration %}
+parse_mode:
+ description: "Parser for the message text: `markdownv2`, `html` or `markdown`."
+ required: false
+ type: string
+disable_notification:
+ description: True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound.
+ required: false
+ default: false
+ type: boolean
+message_tag:
+ description: Tag for sent message.
+ required: false
+ type: string
+{% endconfiguration %}
diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown
index 144d76721c0..60e23e2dec5 100644
--- a/source/_integrations/telegram_bot.markdown
+++ b/source/_integrations/telegram_bot.markdown
@@ -124,6 +124,7 @@ Send a sticker.
|---------------------------|----------|--------------------------------------------------|
| `url` | no | Remote path to a static .webp or animated .tgs sticker. |
| `file` | no | Local path to a static .webp or animated .tgs sticker. |
+| `sticker_id` | no | ID of a sticker that exists on telegram servers. The ID can be found by sending a sticker to your bot and querying the telegram-api method [getUpdates](https://core.telegram.org/bots/api#getting-updates) or by using the [@idstickerbot](https://t.me/idstickerbot) |
| `username` | yes | Username for a URL which requires HTTP authentication. |
| `password` | yes | Password (or bearer token) for a URL which require HTTP authentication. |
| `authentication` | yes | Define which authentication method to use. Set to `digest` to use HTTP digest authentication, or `bearer_token` for OAuth 2.0 bearer token authentication. Defaults to `basic`. |
@@ -236,7 +237,7 @@ Remove the bot from the chat group where it was added.
## Telegram notification platform
-The [`telegram` notification platform](/integrations/telegram) requires the `telegram_bot` integration to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility.
+The [`telegram` notification platform](/integrations/telegram) requires the `telegram_bot` integration to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. The data attributes `parse_mode`, `disable_notification` and `message_tag` are also supported.
The required YAML configuration now reduces to:
@@ -527,3 +528,15 @@ action:
title: Example Message
message: 'Message with *BOLD*, _ITALIC_ and `MONOSPACE` Text'
```
+
+## Example: send_message with message tag
+
+```yaml
+action:
+- service: notify.telegrambot
+ data:
+ title: Example Message
+ message: "Message with tag"
+ data:
+ message_tag: "example_tag"
+```
diff --git a/source/_integrations/tibber.markdown b/source/_integrations/tibber.markdown
index b8fb2211662..0ddf025d8bf 100644
--- a/source/_integrations/tibber.markdown
+++ b/source/_integrations/tibber.markdown
@@ -19,7 +19,7 @@ ha_platforms:
---
The `tibber` integration provides a sensor with the current electricity price if you are a [Tibber](https://tibber.com/) customer.
-If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) or [Watty](https://tibber.com/se/store/produkt/watty-smart-energimatare) it will also show the electricity consumption in real-time. If you do not have a real-time meter, you get a sensor for monthly consumption, monthly cost, and monthly peak hour updated once per day. Once a day a statistics with hourly consumption and cost data is generated that can be used in the [Energy Dashboard](/docs/energy/). (The ids are `tibber:energy_consumption_HOMEID` and `tibber:energy_totalcost_HOMEID` )
+If you have a [Tibber Pulse](https://norge.tibber.com/products/pulse/) or [Watty](https://tibber.com/se/store/produkt/watty-smart-energimatare) it will also show the electricity consumption in real-time. You get a sensor for monthly consumption, monthly cost, and monthly peak hour. If you do have a real-time meter it is updated once every hour, oterwise it is updated once per day. Statistics with hourly consumption and cost data is generated that can be used in the [Energy Dashboard](/docs/energy/). (The ids are `tibber:energy_consumption_HOMEID` and `tibber:energy_totalcost_HOMEID` )
There is currently support for the following device types within Home Assistant:
@@ -51,6 +51,7 @@ action:
## Sensor
The `tibber` sensor provides the current electricity price if you are a [Tibber](https://tibber.com/) customer.
+You also get sensors for monthly consumption, monthly cost, and monthly peak hour
If you have a Tibber Pulse it will also show the electricity consumption in real time.
diff --git a/source/_integrations/tolo.markdown b/source/_integrations/tolo.markdown
index 85922f679de..9130fdc5ed6 100644
--- a/source/_integrations/tolo.markdown
+++ b/source/_integrations/tolo.markdown
@@ -17,6 +17,7 @@ ha_platforms:
- climate
- fan
- light
+ - number
- sensor
- select
ha_dhcp: true
@@ -30,6 +31,7 @@ The integration allows for:
- Setting the target temperature and target humidity
- Controlling the fan (used for drying and cooling down the sauna)
- Controlling the sauna lights (on/off, mode selection)
+- Configuring timers for automatic power shutdown, automatic fan shutdown and salt spray activation interval
- Checking diagnostic information (water level, tank temperature, water in/out valves)
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown
index 80b011b483f..e6ec2b72750 100644
--- a/source/_integrations/tplink.markdown
+++ b/source/_integrations/tplink.markdown
@@ -14,6 +14,7 @@ ha_codeowners:
- '@thegardenmonkey'
ha_domain: tplink
ha_platforms:
+ - diagnostics
- light
- sensor
- switch
diff --git a/source/_integrations/tradfri.markdown b/source/_integrations/tradfri.markdown
index 522d0e78c79..1f2fa6fb18d 100644
--- a/source/_integrations/tradfri.markdown
+++ b/source/_integrations/tradfri.markdown
@@ -14,6 +14,7 @@ ha_category:
ha_domain: tradfri
ha_homekit: true
ha_platforms:
+ - diagnostics
- cover
- fan
- light
@@ -23,34 +24,14 @@ ha_platforms:
The `tradfri` integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your `configuration.yaml` file.
+{% include integrations/config_flow.md %}
+
You will be prompted to configure the gateway through the Home Assistant interface. The configuration process is very simple: when prompted, enter the security key printed on the sticker on the bottom of the IKEA Trådfri Gateway, then click *configure*.
If you see an "Unable to connect" message, restart the gateway and try again. Don't forget to assign a permanent IP address to your IKEA Trådfri Gateway on your router or DHCP server.
-## Configuration
-
-You can add the following to your `configuration.yaml` file if you are not using the [`discovery:`](/integrations/discovery/) component:
-
-```yaml
-# Example configuration.yaml entry
-tradfri:
- host: IP_ADDRESS
-```
-
-{% configuration %}
-host:
- description: "The IP address or hostname of your IKEA Trådfri Gateway."
- required: true
- type: string
-allow_tradfri_groups:
- description: "Set this to `true` to allow Home Assistant to import the groups defined on the IKEA Trådfri Gateway."
- required: false
- type: boolean
- default: false
-{% endconfiguration %}
-
## Troubleshooting
### Incorrect security key
@@ -61,7 +42,6 @@ allow_tradfri_groups:
After updating your IKEA Trådfri Gateway firmware it might be necessary to repeat the configuration process. One error you might experience after a firmware update is `Fatal DTLS error: code 115`. If you encounter problems:
- when configured using the integration: remove the integration through Settings > Integrations > Tradfri > delete (trash can icon)
-- with manual configuration: delete the `.tradfri_psk.conf` file in your `/config` directory (`/.homeassistant` directory if using Home Assistant Core)
Then restart Home Assistant. When prompted, enter the security key and click *configure*, just like during initial setup.
@@ -73,10 +53,6 @@ Then restart Home Assistant. When prompted, enter the security key and click *co
Please make sure you have `autoconf` installed (`$ sudo apt-get install autoconf`) if you want to use this component. Also, installing some dependencies might take considerable time (more than one hour) on slow devices.
-### Setting the `api_key`
-
-Do not use the `api_key` variable in `configuration.yaml`. The API key is only needed once at initial setup and will be stored.
-
## Known limitations
- The TRÅDFRI Shortcut button, Remotes and motion sensor only send information about their battery status, no events, to Home Assistant and thus can't be used to automate with. If you want to automate with these devices, you need to use something like [ZHA](/integrations/zha/).
diff --git a/source/_integrations/tts.markdown b/source/_integrations/tts.markdown
index 14cf93d0069..0396756da03 100644
--- a/source/_integrations/tts.markdown
+++ b/source/_integrations/tts.markdown
@@ -3,6 +3,7 @@ title: Text-to-Speech (TTS)
description: Instructions on how to set up Text-to-Speech (TTS) with Home Assistant.
ha_category:
- Text-to-speech
+ - Media Source
ha_release: 0.35
ha_codeowners:
- '@pvizeli'
diff --git a/source/_integrations/twitch.markdown b/source/_integrations/twitch.markdown
index 097618a0199..ae85e259a0d 100644
--- a/source/_integrations/twitch.markdown
+++ b/source/_integrations/twitch.markdown
@@ -12,16 +12,16 @@ ha_platforms:
The `twitch` platform will allow you to monitor [Twitch](https://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information.
-## Setup Client ID
+## Setup Client ID and Client secret
-Create a new app at "Register Your Application" in the [Twitch developer portal](https://dev.twitch.tv/console/apps). Then get the __Client ID__ for the new application.
+Create a new app at "Register Your Application" in the [Twitch developer portal](https://dev.twitch.tv/console/apps). Then get the __Client ID__ and __Client secret__ for the new application.
## Setup OAuth Token
To enable the follow and subscription attributes, the OAuth token is needed to get the right permissions on the Twitch API.
If you don't need those, ignore the configuration setting: `token`.
-To get the OAuth token, visit the [OAuth Token Generator](https://twitchapps.com/tokengen/#), insert your __Client ID__ and `user_read user_subscriptions` inside __scopes__.
+To get the OAuth token, visit the [OAuth Token Generator](https://twitchapps.com/tokengen/#), insert your __Client ID__ and `user:read:subscriptions` inside __scopes__.
Before clicking Summit (the broken image below the form), visit the [Twitch dev console](https://dev.twitch.tv/console) and add a new application.
@@ -38,6 +38,8 @@ To use Twitch with your installation, add the following to your `configuration.y
sensor:
platform: twitch
client_id: YOUR_TWITCH_CLIENT_ID
+ client_secret: YOUR_TWITCH_CLIENT_SECRET
+ token: YOUR_TWITCH_OAUTH_TOKEN
channels:
- channel1
- channel2
@@ -48,6 +50,10 @@ client_id:
description: Your Twitch client ID.
required: true
type: string
+client_secret:
+ description: Your Twitch client secret.
+ required: true
+ type: string
token:
description: Your Twitch OAuth Token.
required: false
diff --git a/source/_integrations/updater.markdown b/source/_integrations/updater.markdown
index a228180ab90..7bca70369a4 100644
--- a/source/_integrations/updater.markdown
+++ b/source/_integrations/updater.markdown
@@ -13,6 +13,12 @@ ha_platforms:
- binary_sensor
---
+
+
+This integration is deprecated and will be removed in Home Assistant Core 2022.5.
+
+
+
The `updater` binary sensor will check daily for new releases of the Home
Assistant Core. 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
@@ -20,9 +26,8 @@ notes, are attributes of the updater.
## 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:
-
```yaml
+# Example configuration.yaml entry
updater:
```
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index 84f52d242e6..87cc38316e6 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -11,6 +11,7 @@ The `mqtt` vacuum integration allows you to control your MQTT-enabled vacuum.
There are two possible message schemas - `legacy` and `state`, chosen by setting the `schema` configuration parameter.
New installations should use the `state` schema as `legacy` is deprecated and might be removed someday in the future.
The `state` schema is preferred because the vacuum will then be represented as a `StateVacuumDevice` which is the preferred parent vacuum entity.
+The initial state of the state vacuum entity will set to `unknown` and can be reset by a device by sending a `null` payload as state. The legacy `mqtt` vacuum does not support handling an `unknown` state.
This documentation has 3 sections. Configuration for `legacy` vacuum with examples, configuration for `state` vacuum with examples and shared section with examples which are the same for both schemas.
diff --git a/source/_integrations/vallox.markdown b/source/_integrations/vallox.markdown
index 4f213ae0456..35a808a4f7c 100644
--- a/source/_integrations/vallox.markdown
+++ b/source/_integrations/vallox.markdown
@@ -20,12 +20,7 @@ ha_codeowners:
The `vallox` integration lets you control any Vallox ventilation unit that is supported by the [vallox_websocket_api](https://github.com/yozik04/vallox_websocket_api) (follow the link for a list of supported units).
-The **fan** platform of this integration allows you to either turn on/off the complete unit via the toggle switch or select a ventilation profile through the service `vallox/set_profile`. The four standard Vallox profiles are provided:
-
-- `At Home`
-- `Away`
-- `Boost`
-- `Fireplace`
+The **fan** platform of this integration allows you to turn on/off the complete unit via the toggle switch and to select a ventilation profile.
Also, there is a **sensor** platform that exposes a number of relevant metrics like fan speed, various air temperatures and humidity.
@@ -33,65 +28,17 @@ Also, there is a **sensor** platform that exposes a number of relevant metrics l
## Profile Switching
-For convenient switching of ventilation profiles in the GUI, consider using an [input_select](../input_select) hooked to an automation, for example:
+For convenient switching of ventilation profiles in the GUI, just click on the `Vallox` fan entity to get a drop-down menu to select from. Alternatively, the service `fan/set_preset_mode` can be used.
-{% raw %}
+The four standard Vallox profiles are supported:
-```yaml
-input_select:
- ventilation_profile:
- name: Ventilation profile select
- options:
- - "Home"
- - "Away"
- - "Boost"
- - "Fireplace"
- icon: mdi:fan
-
-automation:
- - alias: "Set Ventilation Profile"
- trigger:
- platform: state
- entity_id: input_select.ventilation_profile
- action:
- service: vallox.set_profile
- data:
- profile: "{{ states('input_select.ventilation_profile') }}"
-```
-
-{% endraw %}
-
-In order to also update the input select in case some external event changes the Vallox profile (web interface, mechanical switch, reboot, etc...) you can use the following automation:
-
-{% raw %}
-
-```yaml
-automation:
- - alias: "Update Vallox input_select"
- description: Update input_select when external event changes the profile
- trigger:
- - entity_id: sensor.vallox_current_profile
- platform: state
- action:
- - service: input_select.select_option
- target:
- entity_id: input_select.ventilation_profile
- data:
- option: "{{ states('sensor.vallox_current_profile') }}"
-```
-
-{% endraw %}
+- `At Home`
+- `Away`
+- `Boost`
+- `Fireplace`
## Fan Services
-### Service `vallox.set_profile`
-
-Set the ventilation profile.
-
-| Service data attribute | Optional | Description |
-|------------------------|----------|------------------------------------------------------|
-| `profile` | no | Allowed values: `Home`, `Away`, `Boost`, `Fireplace` |
-
### Service `vallox.set_profile_fan_speed_home`
Set the fan speed of the `Home` profile.
diff --git a/source/_integrations/velbus.markdown b/source/_integrations/velbus.markdown
index c883826c157..9e9c41451a1 100644
--- a/source/_integrations/velbus.markdown
+++ b/source/_integrations/velbus.markdown
@@ -17,6 +17,7 @@ ha_codeowners:
ha_domain: velbus
ha_platforms:
- binary_sensor
+ - diagnostics
- climate
- cover
- light
diff --git a/source/_integrations/version.markdown b/source/_integrations/version.markdown
index f9d0452c78f..45e886659e2 100644
--- a/source/_integrations/version.markdown
+++ b/source/_integrations/version.markdown
@@ -1,6 +1,6 @@
---
title: Version
-description: Instructions on how to integrate a version sensor into Home Assistant.
+description: Instructions on how to integrate the Version integration into Home Assistant.
ha_category:
- Utility
- Sensor
@@ -12,6 +12,8 @@ ha_codeowners:
- '@ludeeus'
ha_domain: version
ha_platforms:
+ - binary_sensor
+ - diagnostics
- sensor
ha_config_flow: true
---
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index 529fa8a51dd..947793eded0 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -40,6 +40,8 @@ The required Client ID can be obtained as follows:
Redirect URIs: vicare://oauth-callback/everest
```
+The `heating_type` can either be `auto` to automatically find the most suitable type for your device or one of `gas`, `oil`, `pellets`, `heatpump`, `fuelcell`, `hybrid`.
+
Multiple device instances might be generated depending on the number of burners and/or circuits of your installation. If there is more than a single instance all devices are suffixed with the circuit or burner ID.
## Viessmann API limits
diff --git a/source/_integrations/vlc_telnet.markdown b/source/_integrations/vlc_telnet.markdown
index 0afb7bde652..afc96cd407c 100644
--- a/source/_integrations/vlc_telnet.markdown
+++ b/source/_integrations/vlc_telnet.markdown
@@ -7,7 +7,6 @@ ha_release: 0.95
ha_iot_class: Local Polling
ha_codeowners:
- '@rodripf'
- - '@dmcc'
- '@MartinHjelmare'
ha_config_flow: true
ha_domain: vlc_telnet
diff --git a/source/_integrations/waze_travel_time.markdown b/source/_integrations/waze_travel_time.markdown
index f86b8b40b98..f89bbb9c148 100644
--- a/source/_integrations/waze_travel_time.markdown
+++ b/source/_integrations/waze_travel_time.markdown
@@ -9,6 +9,8 @@ ha_config_flow: true
ha_domain: waze_travel_time
ha_platforms:
- sensor
+ha_codeowners:
+ - '@eifinger'
---
The `waze_travel_time` sensor provides travel time from the [Waze](https://www.waze.com/).
diff --git a/source/_integrations/wiz.markdown b/source/_integrations/wiz.markdown
new file mode 100644
index 00000000000..aec5f5510e0
--- /dev/null
+++ b/source/_integrations/wiz.markdown
@@ -0,0 +1,84 @@
+---
+title: WiZ
+description: Instructions on setting up WiZ within Home Assistant.
+ha_category:
+ - Binary Sensor
+ - Light
+ - Number
+ - Switch
+ha_iot_class: Local Push
+ha_release: '2022.3'
+ha_dhcp: true
+ha_config_flow: true
+ha_quality_scale: platinum
+ha_codeowners:
+ - '@sbidy'
+ha_domain: wiz
+ha_platforms:
+ - binary_sensor
+ - diagnostics
+ - light
+ - number
+ - switch
+---
+
+The WiZ integration allows you to control your WiZ lights and smart sockets.
+The devices are set up through your Wi-Fi network and don't need any additional bridge or gateway.
+
+These devices have been sold under at least the following brands:
+
+- [4Lite](https://4liteuk.com/)
+- AEG
+- [Altair](https://altairlighting.com/default.dmx)
+- [Ansell](https://anselluk.com/)
+- [Atom Lighting](https://atomlighting.com.au/)
+- [ATX LED](https://atxledinc.com/)
+- [Brilliant](https://www.brilliantlightsource.com/)
+- [Designers Fountain](https://designersftn.com/default.dmx)
+- [Evoluziona](https://tecnolite.mx/)
+- [Fischer & Honsel](https://www.fischer-honsel.de/de/)
+- [Gauss](https://gauss.ru/smartlight/products/)
+- iDual
+- [KSR](https://www.ksrlighting.com/)
+- [Laurie Lumiere](https://www.laurielumiere.com/)
+- [Lednify](https://lednify.com/)
+- [Leyton](https://www.leyton-lighting.co.uk/)
+- [Liteline](https://www.liteline.com/)
+- [Lutec](https://www.lutec.com/highlight/wiz)
+- [Philips Smart LED lights with WiZ Connected](https://www.usa.lighting.philips.com/consumer/smart-wifi-led)
+- [SLV](https://www.slv.com/)
+- [Trio](https://wiz.trio-lighting.com/en/)
+- [Wofi](https://wofi-wiz.com/)
+
+The integration can report the state of occupancy sensors that have been linked to a device.
+
+{% include integrations/config_flow.md %}
+
+## Connect WiZ devices to your network
+
+To connect a WiZ device to your Wi-Fi network, please follow the instructions in the [WiZ app](https://www.wizconnected.com/en/consumer/app/) (available for iOS and Android).
+If you have further questions, please have a look at the [WiZ Support Page](https://www.wizconnected.com/en/consumer/support/).
+
+### Enable local connectivity
+
+The integration needs to communicate locally with the WiZ device. This setting **Allow local communication** can be disabled or enabled in WiZ app.
+This setting should be enabled by default.
+
+Steps to enable:
+
+1. Open the WiZ app on your phone.
+2. Click on the settings menu in the upper-left corner.
+3. Scroll down to the security settings.
+4. Enable the switch **Allow local communication**.
+
+### Occupancy Sensors
+
+The occupancy sensors will only be added once a motion event is detected. Home Assistant can detect the sensors if they turn on at least one device when the room is occupied, and turn off at least one device when the room is not occupied. Sensors that are not linked to a device cannot be detected.
+
+When a device is linked to an occupancy sensor, by default, the sensor will be disabled for 30 minutes after manual control.
+
+Devices linked to the occupancy sensor that was last controlled manually will show an unknown at startup. The state will be known the next time the light is controlled by the sensor.
+
+### Effect Speed
+
+The speed of an effect can be controlled via a `number` entity. The entity will only be available when an effect has been set that allows the speed to be adjusted.
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index b8bbc194e91..482f20d8b4b 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -213,7 +213,9 @@ Supported devices:
| Air Purifier 3 (2019) | zhimi.airpurifier.ma4 | |
| Air Purifier 3H (2019) | zhimi.airpurifier.mb3 | |
| Air Purifier 3C | zhimi.airpurifier.mb4 | |
+| Air Fresh A1 | dmaker.airfresh.a1 | MJXFJ-150-A1 |
| Air Fresh VA2 | zhimi.airfresh.va2 | |
+| Air Fresh T2017 | dmaker.airfresh.t2017 | MJXFJ-300-G1 |
| Air Humidifier | zhimi.humidifier.v1 | |
| Air Humidifier CA1 | zhimi.humidifier.ca1 | |
| Air Humidifier CA4 | zhimi.humidifier.ca4 | |
@@ -491,6 +493,29 @@ Buzzer | Turn on/off the buzzer
Child Lock | Turn on/off the child lock
LED | Turn on/off the LED
+### Air Fresh A1 (dmaker.airfresh.a1)
+
+- Power (on, off)
+- Operation modes (Auto, Sleep, Favorite)
+- Sensor entities
+
+Sensor | Description
+------------------------------- | --------------------------------------------------------------
+Carbon Dioxide | The current carbon dioxide in ppm
+Dust filter life remaining | The remaining life of the filter
+Dust filter life remaining days | The remaining life of the filter in day
+PM2.5 | The current particulate matter 2.5
+Temperature | The current outside temperature
+Control Speed | The current motor speed in rpm
+Favorite Speed | The favorite motor speed in rpm
+
+- Switch entities
+
+Switch | Description
+----------------------- | -----------------------
+Buzzer | Turn on/off `buzzer`
+Child Lock | Turn on/off `child lock`
+
### Air Fresh VA2
- Power (on, off)
@@ -524,6 +549,33 @@ Buzzer | Turn on/off `buzzer`
Child Lock | Turn on/off `child lock`
LED | Turn on/off `led`
+
+### Air Fresh T2017 (dmaker.airfresh.t2017)
+
+- Power (on, off)
+- Operation modes (Auto, Sleep, Favorite)
+- Sensor entities
+
+Sensor | Description
+-------------------------------- | --------------------------------------------------------------
+Carbon Dioxide | The current carbon dioxide in ppm
+Dust filter life remaining | The remaining life of the dust filter
+Dust filter life remaining days | The remaining life of the dust filter in days
+Upper filter life remaining | The remaining life of the upper filter
+Upper filter life remaining days | The remaining life of the upper filter in days
+PM2.5 | The current particulate matter 2.5
+Temperature | The current outside temperature
+Control Speed | The current motor speed in rpm
+Favorite Speed | The favorite motor speed in rpm
+
+- Switch entities
+
+Switch | Description
+----------------------- | -----------------------
+Buzzer | Turn on/off `buzzer`
+Child Lock | Turn on/off `child lock`
+
+
### Air Humidifier (zhimi.humidifier.v1)
- On, Off
diff --git a/source/_integrations/yale_smart_alarm.markdown b/source/_integrations/yale_smart_alarm.markdown
index 64b3b31eb36..0dc6af22867 100644
--- a/source/_integrations/yale_smart_alarm.markdown
+++ b/source/_integrations/yale_smart_alarm.markdown
@@ -14,6 +14,7 @@ ha_domain: yale_smart_alarm
ha_platforms:
- alarm_control_panel
- binary_sensor
+ - diagnostics
- lock
---
diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown
index 61edb9dfc58..4aeb3186bad 100644
--- a/source/_integrations/yeelight.markdown
+++ b/source/_integrations/yeelight.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
- '@zewelor'
- '@shenxn'
- '@starkillerOG'
+ - '@alexyao2015'
ha_domain: yeelight
ha_platforms:
- binary_sensor
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index c41ecef5816..6fd7a86772e 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -4,10 +4,12 @@ description: Instructions on how to integrate Z-Wave with Home Assistant via Z-W
featured: true
ha_category:
- Binary Sensor
+ - Button
- Climate
- Cover
- Fan
- Hub
+ - Humidifier
- Light
- Lock
- Number
@@ -23,10 +25,12 @@ ha_codeowners:
ha_domain: zwave_js
ha_platforms:
- binary_sensor
+ - button
- diagnostics
- climate
- cover
- fan
+ - humidifier
- light
- lock
- number
@@ -239,6 +243,8 @@ This service will set a value on multiple Z-Wave devices using multicast. It is
### Service `zwave_js.ping`
+> NOTE: This service has been deprecated and replaced with a new button entity. The service will still work for now but will be removed in a future release. Users are advised to move their automations to use the `button.press` service with the new entity which is a like for like replacement.
+
Calling this service forces Z-Wave JS to try to reach a node. This can be used to update the status of the node in Z-Wave JS when you think it doesn't accurately reflect reality, e.g. reviving a failed/dead node or marking the node as asleep.
| Service Data Attribute | Required | Description |
@@ -473,6 +479,46 @@ In addition to the [standard automation trigger data](/docs/automation/templatin
| `trigger.current_value` | The current value for this Z-Wave value (translated to a state name when possible). |
| `trigger.current_value_raw` | The raw current value for this Z-Wave value (the key of the state when a state is named). |
+### `zwave_js.event`
+
+This trigger platform can be used to trigger automations on any Z-Wave JS controller, driver, or node event, including events that may not be handled by Home Assistant automatically. Refer to the linked [Z-Wave JS documentation](https://zwave-js.github.io/node-zwave-js/#/) to learn more about the available events and the data that is sent along with it.
+
+There is strict validation in place based on all known event types, so if you come across an event type that isn't supported, please open a GitHub issue in the `home-assistant/core` repository.
+
+#### Example automation trigger configuration
+
+```yaml
+# Fires whenever the `interview failed` event is fired on the three devices (devices will be derived from device and entity IDs).
+trigger:
+ platform: zwave_js.event
+ # At least one `device_id` or `entity_id` must be provided for `node` events. For any other events, a `config_entry_id` needs to be provided.
+ device_id: 45d7d3230dbb7441473ec883dab294d4 # Garage Door Lock device ID
+ entity_id:
+ - lock.front_lock
+ - lock.back_door
+ config_entry_id:
+ # `event_source` and `event` are required
+ event_source: node # options are node, controller, and driver
+ event: "interview failed" # event names can be retrieved from the Z-Wave JS docs (see links above)
+ # `event_data` and `partial_dict_match` are optional. If `event_data` isn't included, all events of a given type for the given context will trigger the automation. When the `interview failed` event is fired, all argument live in a dictionary within the `event_data` dictionary under the `args` key. The default behavior is to require a full match of the event_data dictionary below and the dictionary that is passed to the event. By setting `partial_dict_match` to true, Home Assistant will check if the isFinal argument is true and ignore any other values in the dictionary. If this setting was false, this trigger would never fire because the dictionary always contains more keys than `isFinal` so the comparsion check would never evaluate to true.
+ event_data:
+ args:
+ isFinal: true
+ partial_dict_match: true # defaults to false
+```
+
+#### Available Trigger Data
+
+In addition to the [standard automation trigger data](/docs/automation/templating/#all), the `zwave_js.event` trigger platform has additional trigger data available for use.
+
+| Template variable | Data |
+|------------------------------|--------------------------------------------------------------------------------------------|
+| `trigger.device_id` | Device ID for the device in the device registry (only included for node events). |
+| `trigger.node_id` | Z-Wave node ID (only included for node events). |
+| `trigger.event_source` | Source of event (node, controller, or driver). |
+| `trigger.event` | Name of event. |
+| `trigger.event_data` | Any data included in the event. |
+
## Migrating from previous Z-Wave implementations
If you are switching from the `zwave` or `ozw` integrations to the new Z-Wave JS integration, you will not need to recreate your entire network, as the network is **stored on your stick**. A few things, such as how you receive [central scene events](#events) will work differently than they did before.
diff --git a/source/_integrations/zwave_me.markdown b/source/_integrations/zwave_me.markdown
new file mode 100644
index 00000000000..d4359a307be
--- /dev/null
+++ b/source/_integrations/zwave_me.markdown
@@ -0,0 +1,49 @@
+---
+title: Z-Wave.Me
+description: Instructions on how to integrate Z-Wave with Home Assistant via Z-Wave.Me Z-Way.
+ha_category:
+ - Binary Sensor
+ - Button
+ - Climate
+ - Hub
+ - Light
+ - Lock
+ - Number
+ - Sensor
+ - Switch
+ha_release: 2022.3
+ha_iot_class: Local Push
+ha_config_flow: true
+ha_codeowners:
+ - '@lawfulchaos'
+ - '@Z-Wave-Me'
+ha_domain: zwave_me
+ha_platforms:
+ - binary_sensor
+ - button
+ - climate
+ - light
+ - lock
+ - number
+ - sensor
+ - switch
+ha_zeroconf: true
+---
+
+This integration allows you to control a Z-Wave network via the [Z-Wave.Me Z-Way](https://z-wave.me/z-way/). It combines the performance and the power of the diagnostics tools built-in Z-Way with the flexibility of Home Assistant. The integration brings all Z-Way devices in Home Assistant (Z-Wave, EnOcean, HTTP based, and others).
+
+{% include integrations/config_flow.md %}
+
+Note: You can use Z-Wave.Me UI with its enhanced diagnostics tools together with the Home Assistant UI.
+
+## Hardware requirements
+
+Z-Wave.Me Z-Way requires Z-Wave.Me RaZberry, RaZberry7, UZB1, Hub1 or any other Z-Wave.Me based controller.
+
+## Installing Z-Way
+
+Z-Wave.Me Z-Way runs on various platforms: Raspberry Pi OS, Linux, Windows. Installation instructions are available here: https://z-wave.me/z-way/download-z-way/
+
+## Migration to Z-Way
+
+To migrate from any other Z-Wave controller to Z-Way, include Z-Way as a secondary controller (with security to let Z-Way learn the network key). Use the Z-Way migration tool to make the controller primary in your network.
diff --git a/source/_posts/2022-03-02-release-20223.markdown b/source/_posts/2022-03-02-release-20223.markdown
new file mode 100644
index 00000000000..f7a0237b330
--- /dev/null
+++ b/source/_posts/2022-03-02-release-20223.markdown
@@ -0,0 +1,1019 @@
+---
+layout: post
+title: "2022.3: Select and play media"
+description: "Lots of media sources that can easily used with the Play media action!"
+date: 2022-03-02 00:00:00
+date_formatted: "March 02, 2022"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+- Release-Notes
+- Core
+og_image: /images/blog/2022-03/social.png
+---
+
+
+
+Did you know that today - March 2nd - in 1949, the first automatic street
+light was lit in New Milford, Connecticut, USA? Thirty-seven years later, we
+automate our entire homes 😎
+
+Home Assistant Core 2022.3! And this release has a different and fresh "tune"
+to it! Yes, pun intended as this release brings tons of improvements
+involving media.
+
+And what is so cool about it? It is not just about browsing media,
+it is even more about using it! Using media allows us to make the automations
+in our home more "personal".
+
+For example, having our favorite radio station playing when we get home
+or broadcasting announcements and sound bites to our speakers to notify
+us of stuff happening in and around our home. (I really need to install that
+camera at the front door now 😅.)
+
+What are you using media for?
+
+Enjoy the release!
+
+../Frenck
+
+- [The Home Assistant Newsletter](#the-home-assistant-newsletter)
+- [Media Selector and the new "Play media" action](#media-selector-and-the-new-play-media-action)
+- [More media sources!](#more-media-sources)
+- [Upload your media straight from the browser](#upload-your-media-straight-from-the-browser)
+- [UI Upgrades](#ui-upgrades)
+- [Triggered!](#triggered)
+- [Entity ID autocompletion](#entity-id-autocompletion)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New Integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Breaking Changes](#breaking-changes)
+- [Updates for custom integration developers](#updates-for-custom-integration-developers)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+## The Home Assistant Newsletter
+
+We realize you might like email more than watching this blog, our [Twitter],
+or notifications in our [Discord chat] to stay on top of the latest Home Assistant news.
+
+In that case, you might like to sign-up for our newsletter instead! We'll
+send you a new email once a month when a new release drops with the release's highlights
+and interesting things we found in our community.
+
+Our newsletter is free of any analytics and tracking. The
+sign-up is below, and we have enabled double opt-in to ensure no emails
+are sent if users don't want them.
+
+[Sign up for the Home Assistant newsletter](/newsletter)
+
+[Twitter]: /twitter
+[Discord chat]: /join-chat
+
+## Media Selector and the new "Play media" action
+
+This release brings a new media selector and a "Play media" action.
+These make it super easy to use media in your automations and scripts.
+
+Choose the "Play media" action when creating an automation, select the media
+player you'd like to play something on, and next... just browse and pick the
+media that you want it to play! Done! 🚀
+
+
+
+Have you ever wanted to play your front door camera stream on your television
+when the doorbell rings? Well, this is now very possible with this update.
+Check out this video on how to set that up in only 1.5 minutes. 🤯
+
+
+
+
+
+## More media sources!
+
+Of course, the above-shown “Play media” action and selector is incredible. But,
+you'd need some media to select! We already supported local media
+and things like Spotify, but wouldn't it be cool if we had more!?
+
+So, this release will bring in a bunch of new media sources.
+
+Your Cameras! Your Lovelace Dashboards! You can just pick one of your cameras
+or Lovelace dashboards and "Play" them on a supported device
+(like a Google Nest Hub or television). But also text to speech!
+
+
+
+But that's not it; we also have new integrations adding new media sources.
+This release adds the [DLNA Digital Media Server] and [Radio Browser]
+integrations that allow the use of their sources with your media players.
+
+
+
+You can browse and listen to thirty thousand radio stations from all
+around the world. But what is even cooler is that with the new "Play media"
+action in automations, you can just select your favorite radio station to be
+playing when, for example, you arrive home!
+
+## Upload your media straight from the browser
+
+Getting your media files (pictures, images, soundbites, music) into your
+local media folder required you to use the
+{% my supervisor_addon addon="core_samba" title="Samba add-on" %} (or something
+similar).
+
+Can we improve this experience? Sure we can!
+
+This release adds initial support for local media management straight from the
+Home Assistant frontend, allowing you to upload and remove files directly.
+
+
+
+## UI Upgrades
+
+We have been working hard on upgrading the Home Assistant frontend to use
+Material Web Components (MWC) everywhere, saying goodbye to our old
+(and deprecated) paper style.
+
+This allows our frontend to be up-to-date with the latest features and the
+latest style. As you'll notice, these elements have a different look from the
+older style, so don't be alarmed if your inputs look slightly different.
+
+Updating to MWC gives us many new opportunities for the future and makes
+Home Assistant more accessible, for example, when using a screen reader.
+
+
+
+The screenshot above shows the new MWC styling on the left and the previous
+paper styling from an older Home Assistant version on the right. The styling
+change mainly impacts input fields look and feel.
+
+## Triggered!
+
+When working an automation, triggers now show live in the UI when they are
+triggering. Allowing you to validate you set it up correctly.
+
+In this little animation below, the remote is pressed a couple of times.
+The automation editor will show the "TRIGGERED" bar.
+
+
+
+Each time the trigger triggers it will be indicated in the UI.
+
+
+Additionally, you can now also trigger each individual action in your automation
+to test if the action you are creating runs as expected:
+
+
+
+## Entity ID autocompletion
+
+Our YAML configuration and Jinja templates used in, for example, automations,
+scripts, and frontend dashboards can be a really powerful customization
+tool. You can definitely appreciate this feature if you use our code editor
+in the frontend at times.
+
+Thanks to [@kubawolanin], we now have entity ID autocompletion when using
+the built-in code editor in the Home Assistant frontend 😎.
+
+Just start typing an entity ID, and the code editor will try to suggest an
+entity ID and show the selected entity's current state.
+
+
+
+_Theme: [Waves] by [Tim Cowell]._
+
+This works when you are configuring your [Lovelace cards],
+creating advanced template conditions in your {% my automations %},
+and even if you are testing out your Jinja-template in the
+{% my developer_template title="template developer tools" %}.
+
+Click the My button below to test it out on your Home Assistant instance:
+
+{% my developer_template badge %}
+
+[@kubawolanin]: https://github.com/kubawolanin
+[Lovelace cards]: /lovelace/cards
+[Tim Cowell]: https://github.com/tgcowell
+[Waves]: https://github.com/tgcowell/waves
+
+## Other noteworthy changes
+
+There is much more juice in this release; here are some of the other
+noteworthy changes this release:
+
+- [ESPHome] added support for locks! Thanks, [@kbickar]
+- The [HomeKit Controller] integration has improved support for the Ecobee
+ thermostats. Thanks, [@Jc2k]!
+- When playing media in the media browser, the media player bar in the bottom
+ will now have a volume control, thanks [@balloob]!
+- Thanks to [@kubawolanin], you can now filter and search the
+ {% my logs title="Home Assistant logs" %}!
+- When selecting a date in the frontend, a beautiful new date picker is shown.
+ Thanks, [@bramkragten]!
+- The [IKEA TRÅDFRI] integration has been worked on by [@ggravlingen] and
+ [@martinhjelmare]. Lots of stability issues have been resolved, battery
+ sensors for blinds have been added, and also support for the air purifier
+ has been extended with sensors for air quality and filter time left.
+- [@rfleming71] added button entities to the OctoPrint integration, allowing
+ you to control to resume, pause or stop a 3D print.
+- The following integrations have added an option to set a `unique_id` in their
+ YAML configuration; If set, you can customize those entities in the UI.
+ - [InfluxDB Sensor], thanks [@Sanderhuisman]
+ - [Filter][filter], thanks [@dgomes]
+- [@starkillerOG] has been chewing on [NETGEAR], adding traffic sensors,
+ a reboot button, but also switch to allow/block devices. Awesome!
+- Don't be alarmed now, but [@jbouwh] added support for [Sirens to MQTT]!
+- [@rubenverhoef] also dove into MQTT and added additional command templates
+ for MQTT lights.
+- The [Renault integration] added HVAC, door, and lock sensors, thanks [@epenet]
+- [@bdraco] added support to [HomeKit] for controlling the fan and oscillating
+ of fans in climate entities. Nice!
+- The [GitHub integration] became much more efficient and now has many more
+ sensors available! Thanks [@ludeeus] and [@timmo001], that is just amazing!
+- [@kbickar] hasn't been sleeping much as he modernized the [SleepIQ integration],
+ adding a bunch of new entities in the process.
+- If you have a [Samsung Smart TV], [@epenet] added support for showing your
+ installed TV apps as media sources!
+- Thanks to [@chemelli74], you can now control the valves of those brand new
+ [Shelly] TRVs!
+
+[@kubawolanin]: https://github.com/kubawolanin
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@chemelli74]: https://github.com/chemelli74
+[@dgomes]: https://github.com/dgomes
+[@epenet]: https://github.com/epenet
+[@epenet]: https://github.com/epenet
+[@ggravlingen]: https://github.com/ggravlingen
+[@jbouwh]: https://github.com/jbouwh
+[@Jc2k]: https://github.com/Jc2k
+[@kbickar]: https://github.com/kbickar
+[@kbickar]: https://github.com/kbickar
+[@ludeeus]: https://github.com/ludeeus
+[@martinhjelmare]: https://github.com/martinhjelmare
+[@rfleming71]: https://github.com/rfleming71
+[@rubenverhoef]: https://github.com/rubenverhoef
+[@Sanderhuisman]: https://github.com/@Sanderhuisman
+[@starkillerOG]: https://github.com/starkillerOG
+[@timmo001]: https://github.com/timmo001
+[@zsarnett]: https://github.com/zsarnett
+[ESPHome]: /integrations/esphome
+[filter]: /integrations/filter
+[GitHub integration]: /integrations/github
+[HomeKit Controller]: /integrations/homekit_controller
+[HomeKit]: /integrations/homekit
+[IKEA TRÅDFRI]: /integrations/tradfri
+[InfluxDB Sensor]: /integrations/influxdb#sensor
+[NETGEAR]: /integrations/netgear
+[Renault integration]: /integrations/renault
+[Samsung Smart TV]: /integrations/samsungtv
+[Shelly]: /integrations/shelly
+[Sirens to MQTT]: /integrations/siren.mqtt/
+[SleepIQ integration]: /integrations/sleepiq
+
+## New Integrations
+
+We welcome the following new integrations this release:
+
+- [DLNA Digital Media Server], added by [@chishm]
+- [Fivem], added by [@Sander0542]
+- [Moehlenhoff Alpha2], added by [@j-a-n]
+- [Pure Energie], added by [@klaasnicolaas]
+- [Radio Browser], added by [@frenck]
+- [WiZ], added by [@sbidy] and [@bdraco]
+- [Z-Wave.Me Z-Way], added by [@PoltoS]
+
+[@bdraco]: https://github.com/bdraco
+[@chishm]: https://github.com/chishm
+[@frenck]: https://github.com/frenck
+[@j-a-n]: https://github.com/j-a-n
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@PoltoS]: https://github.com/PoltoS
+[@Sander0542]: https://github.com/Sander0542
+[@sbidy]: https://github.com/sbidy
+[DLNA Digital Media Server]: /integrations/dlna_dms
+[Fivem]: /integrations/fivem
+[Moehlenhoff Alpha2]: /integrations/moehlenhoff_alpha2
+[Pure Energie]: /integrations/pure_energie
+[Radio Browser]: /integrations/radio_browser
+[WiZ]: /integrations/wiz
+[Z-Wave.Me Z-Way]: /integrations/zwave_me
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- [International Space Station (ISS)], done by [@DurgNomis-drol]
+- [MJPEG IP Camera], done by [@frenck]
+
+[@DurgNomis-drol]: https://github.com/DurgNomis-drol
+[@frenck]: https://github.com/frenck
+[International Space Station (ISS)]: /integrations/iss
+[MJPEG IP Camera]: /integrations/mjpeg
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our newsletter](/newsletter) to get
+the latest news about features and things happening in our community straight
+into your inbox.
+
+
+
+## Breaking Changes
+
+Below is a listing of the breaking change for this release, per subject or
+integration. Click on one of those to read more about the breaking change
+for that specific item.
+
+{% details "Z-Wave / OpenZWave" %}
+
+This breaking change does **NOT** apply to users of the [Z-Wave JS] integration.
+
+This is a breaking change notice regarding the older [Z-Wave] and [OpenZWave]
+integrations, which both have been previously deprecated.
+
+This release of Home Assistant Core 2022.3 will be the final release that
+provides these integrations. Both the old `zwave` and `ozw` integrations
+are pending removal for Home Assistant Core 2022.4.
+
+The `ozw` integration has been deprecated before as the upstream projects
+projects we depends on, for e.g., libraries and add-on containers,
+are no longer maintained.
+
+As Home Assistant is moving towards support for Python 3.10, it became clear
+that the old `zwave` integration isn't compatible and thus is going to
+be removed for that reason.
+
+If you are still running your Z-Wave network on either of those deprecated
+integrations, we highly recommend migrating
+to the newer [Z-Wave JS] integration after upgrading to this release.
+
+The new [Z-Wave JS] will provide you with a modern, more feature-rich,
+maintained, and stable Z-Wave stack for the future.
+
+See our documentation for a guide on
+[Migrating from previous Z-Wave implementations](/integrations/zwave_js/#migrating-from-previous-z-wave-implementations).
+
+[OpenZWave]: /integrations/openzwave
+[Z-Wave JS]: /integrations/zwave_js
+[Z-Wave]: /integrations/zwave
+
+{% enddetails %}
+
+{% details "ASUSWRT" %}
+
+The previously deprecated YAML configuration of the ASUSWRT
+integration has been removed.
+
+ASUSWRT is now configured via the UI, any existing YAML
+configuration has been imported in previous releases and can now be safely
+removed from your YAML configuration files.
+
+([@ollo69] - [#65904]) ([documentation](/integrations/asuswrt))
+
+[@ollo69]: https://github.com/ollo69
+[#65904]: https://github.com/home-assistant/core/pull/65904
+
+{% enddetails %}
+
+{% details "AVM FRITZ!Box Call Monitor" %}
+
+The AVM FRITZ!Box Call Monitor integration previously migrated to configuration
+via the UI. Therefore, configuring the AVM FRITZ!Box Call Monitor integration
+via YAML configuration has now been deprecated and will be removed
+in a future Home Assistant release.
+
+Your existing YAML configuration has been automatically imported and
+can be safely removed from your YAML configuration.
+
+([@tkdrob] - [#61762]) ([documentation](/integrations/fritzbox_callmonitor))
+
+[@tkdrob]: https://github.com/tkdrob
+[#61762]: https://github.com/home-assistant/core/pull/61762
+
+{% enddetails %}
+
+{% details "ebusd" %}
+
+A typo was fixed in the ebusd integration for monitored condition
+`WaterPressure`. It is incorrectly named "WaterPreasure" in the code.
+
+The [documentation](/integrations/ebusd/#waterpressure) represents the correct value.
+
+([@nklebedev] - [#66355]) ([documentation](/integrations/ebusd))
+
+[@nklebedev]: https://github.com/nklebedev
+[#66355]: https://github.com/home-assistant/core/pull/66355
+
+{% enddetails %}
+
+{% details "Elexa Guardian" %}
+
+Elexa Guardian no longer accepts the previously deprecated `entity_id` parameter
+in service calls; automations and scripts calling those services now require
+a `device_id` parameter.
+
+([@bachya] - [#65484]) ([documentation](/integrations/guardian))
+
+[@bachya]: https://github.com/bachya
+[#65484]: https://github.com/home-assistant/core/pull/65484
+
+{% enddetails %}
+
+{% details "Freebox" %}
+
+The `freebox.reboot` service is now deprecated and replaced by a dedicated
+reboot `button` entity; please use that entity to reboot the Freebox instead.
+
+([@epenet] - [#65501]) ([documentation](/integrations/freebox))
+
+[@epenet]: https://github.com/epenet
+[#65501]: https://github.com/home-assistant/core/pull/65501
+
+{% enddetails %}
+
+{% details "IKEA TRÅDFRI" %}
+
+The native IKEA Tradfri groups are now deprecated, and this feature will be
+removed from the integration in a future release.
+
+Tradfri groups rely on sending frequent requests (polling) to the gateway to
+check the states of the groups. Continuously polling the gateway causes
+stability issues of the gateway, sometimes causing it to crash and requiring
+a restart. We propose using [light groups](/integrations/light.group/) instead.
+
+Configuring IKEA Tradfri via YAML configuration has been deprecated and will
+be removed in a future Home Assistant release. Any remaining YAML configuration
+has been automatically imported for a long time and thus can be safely
+removed from your YAML configuration.
+
+([@ggravlingen] - [#65226]) ([documentation](/integrations/tradfri))
+
+[@ggravlingen]: https://github.com/ggravlingen
+[#65226]: https://github.com/home-assistant/core/pull/65226
+
+{% enddetails %}
+
+{% details "International Space Station (ISS)" %}
+
+The International Space Station (ISS) integration migrated to configuration
+via the UI. Configuring International Space Station (ISS) via YAML configuration
+has been deprecated and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration
+after upgrading.
+
+([@DurgNomis-drol] - [#64987]) ([documentation](/integrations/iss))
+
+[@DurgNomis-drol]: https://github.com/DurgNomis-drol
+[#64987]: https://github.com/home-assistant/core/pull/64987
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+MQTT binary sensors, lights, fans, humidifiers, and switches can now have
+an `unknown` state in case the state is unknown.
+
+This change was made to make the MQTT entities more consistent with
+how these entities behave in other parts of Home Assistant. You may need
+to adapt your script and automations to this change.
+
+([@jbouwh] - [#65183] [#65308] [#65301] [#65302] [#65294]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#65183]: https://github.com/home-assistant/core/pull/65183
+[#65294]: https://github.com/home-assistant/core/pull/65294
+[#65301]: https://github.com/home-assistant/core/pull/65301
+[#65302]: https://github.com/home-assistant/core/pull/65302
+[#65308]: https://github.com/home-assistant/core/pull/65308
+
+---
+
+An MQTT configuration in `configuration.yaml` no longer results in an
+imported integration entry, MQTT must now be set up from the frontend.
+
+Please note that:
+
+- Any previously imported configuration is still valid, this PR does not
+ remove or modify imported configurations.
+- It's still possible to configure MQTT entities and advanced broker
+ configurations, such as SSL certificates, via YAML.
+
+([@emontnemery] - [#66160]) ([documentation](/integrations/mqtt))
+
+[@emontnemery]: https://github.com/emontnemery
+[#66160]: https://github.com/home-assistant/core/pull/66160
+
+---
+
+The MQTT climate `hold` and `away` mode configuration settings are now
+deprecated and removed in Home Assistant Core 2022.9.0.
+
+Please use the new `preset_mode` configuration options instead.
+
+([@jbouwh] - [#66062]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#66062]: https://github.com/home-assistant/core/pull/66062
+
+---
+
+Configuring basic MQTT broker options with YAML is now deprecated,
+this affects the following configuration variables:
+
+- `birth_message`
+- `broker`
+- `discovery`
+- `password`
+- `port`
+- `username`
+- `will_message`
+
+Configuring those options can instead be done via the UI.
+
+([@emontnemery] - [#66247]) ([documentation](/integrations/mqtt))
+
+[@emontnemery]: https://github.com/emontnemery
+[#66247]: https://github.com/home-assistant/core/pull/66247
+
+{% enddetails %}
+
+{% details "Nest" %}
+
+Older Nest cameras no longer use thumbnail images from events, and instead
+always use the live stream.
+
+You should use the newer [Nest Media Source APIs](/integrations/nest/#media-source)
+to fetch media for events.
+
+([@allenporter] - [#66427]) ([documentation](/integrations/nest))
+
+[@allenporter]: https://github.com/allenporter
+[#66427]: https://github.com/home-assistant/core/pull/66427
+
+{% enddetails %}
+
+{% details "NINA" %}
+
+Districts of Hamburg and Berlin have been removed.
+Alternatively, `Hamburg, Freie und Hansestadt` and `Berlin, Stadt` can be used.
+
+([@DeerMaximum] - [#65914]) ([documentation](/integrations/nina))
+
+[@DeerMaximum]: https://github.com/DeerMaximum
+[#65914]: https://github.com/home-assistant/core/pull/65914
+
+{% enddetails %}
+
+{% details "Overkiz (by Somfy)" %}
+
+Previously, a Myfox Camera Shutter was mapped to a (non-functional) `cover`
+entity. This is now changed to be a functional `switch` entity instead.
+
+([@iMicknl] - [#66088]) ([documentation](/integrations/overkiz))
+
+[@iMicknl]: https://github.com/iMicknl
+[#66088]: https://github.com/home-assistant/core/pull/66088
+
+{% enddetails %}
+
+{% details "Phone Modem" %}
+
+The `modem_callerid.reject_call` has been deprecated and will be removed in
+Home Assistant 2022.4.
+
+The integration now provides a button entity that can be used instead.
+
+If you have been using the `reject_call` service in your automation or scripts,
+you will need to adopt those to this change.
+
+([@tkdrob] - [#66742]) ([documentation](/integrations/modem_callerid))
+
+[@tkdrob]: https://github.com/tkdrob
+[#66742]: https://github.com/home-assistant/core/pull/66742
+
+{% enddetails %}
+
+{% details "Picnic" %}
+
+The sensors for the "last order ETA start/end" have been renamed to
+"next delivery ETA start/end" and will now contain the ETA of the first
+upcoming delivery.
+
+If multiple deliveries are planned, the `next_delivery_*` sensors
+contain information about the first upcoming delivery,
+while the `last_order_*` sensors contain information
+about the last-placed order.
+
+([@corneyl] - [#66474]) ([documentation](/integrations/picnic))
+
+[@corneyl]: https://github.com/corneyl
+[#66474]: https://github.com/home-assistant/core/pull/6666474062
+
+{% enddetails %}
+
+{% details "Plugwise" %}
+
+Changing the scan interval options of Plugwise devices in the integration
+configuration has been removed. Home Assistant will, by default, use a sane
+and safe interval.
+
+If you, however, still need to customize the interval, you can do so by
+disabling automatic updates for the integration and using an automation
+to trigger on your preferred interval and call `homeassistant.update_entity`
+service.
+
+([@frenck] - [#65808]) ([documentation](/integrations/plugwise))
+
+[@frenck]: https://github.com/frenck
+[#65808]: https://github.com/home-assistant/core/pull/65808
+
+---
+
+The Plugwise Auxiliary `sensor` entities for heating and cooling have been
+removed and replaced by equivalent `binary_sensor` entities.
+
+([@frenck] - [#66259]) ([documentation](/integrations/plugwise))
+
+[@frenck]: https://github.com/frenck
+[#66259]: https://github.com/home-assistant/core/pull/66259
+
+{% enddetails %}
+
+{% details "Radarr" %}
+
+The "Wanted" option for the Radarr integration has been removed, as this
+was an invalid endpoint.
+
+If you have this option configured in your YAML configuration, you will need
+to remove it.
+
+([@tkdrob] - [#63818]) ([documentation](/integrations/radarr))
+
+[@tkdrob]: https://github.com/tkdrob
+[#63818]: https://github.com/home-assistant/core/pull/63818
+
+{% enddetails %}
+
+{% details "Renault" %}
+
+Previously, Renault `binary_sensor` entities could have the
+state `on` or `off`, and in case the endpoint was unreachable: `unavailable`.
+
+However, it wasn't able to have the `unknown` state, which has been added.
+
+So, a `binary_sensor` entity can now have the `on`, `off`, `unavailable`,
+or `unknown` state.
+
+You might need to adapt your automations or scripts to account this new
+`unknown` state.
+
+([@epenet] - [#65997]) ([documentation](/integrations/renault))
+
+[@epenet]: https://github.com/epenet
+[#65997]: https://github.com/home-assistant/core/pull/65997
+
+{% enddetails %}
+
+{% details "Sensibo" %}
+
+The optional battery voltage attribute has been removed from the climate entity.
+If you used this attribute in your automations or scripts, you'll need
+to adjust them to handle this change.
+
+([@gjohansson-ST] - [#64753]) ([documentation](/integrations/sensibo))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#64753]: https://github.com/home-assistant/core/pull/64753
+
+{% enddetails %}
+
+{% details "SimpliSafe" %}
+
+SimpliSafe no longer accepts the, previously deprecated, `system_id` parameter
+in service calls; automations and scripts calling those services now require a
+`device_id` parameter instead.
+
+([@bachya] - [#65483]) ([documentation](/integrations/simplisafe))
+
+[@bachya]: https://github.com/bachya
+[#65483]: https://github.com/home-assistant/core/pull/65483
+
+{% enddetails %}
+
+{% details "Sonarr" %}
+
+Sonarr v2 is no longer supported and has been deemed End of Life by its
+developers since early 2021. Please upgrade to Sonarr v3 to continue
+using the Sonarr integration.
+
+The attribute date format of the Wanted sensor is now isoformated
+with a time of airing.
+
+([@ctalkington] - [#65349]) ([documentation](/integrations/sonarr))
+
+[@ctalkington]: https://github.com/ctalkington
+[#65349]: https://github.com/home-assistant/core/pull/65349
+
+{% enddetails %}
+
+{% details "Synology DSM" %}
+
+The Home-Mode switch of the Surveillance Station is no longer categorized to be
+a configuration entity since it is part of the primary functionality.
+
+([@mib1185] - [#65949]) ([documentation](/integrations/synology_dsm))
+
+[@mib1185]: https://github.com/mib1185
+[#65949]: https://github.com/home-assistant/core/pull/65949
+
+{% enddetails %}
+
+{% details "Twitch" %}
+
+The old Twitch API, this integration previously relied on, is shutting down soon.
+
+Therefore, this release updated the Twitch integration to support the new API,
+and now requires a `client_secret` as well as a `client_id`, and new OAuth
+tokens need to be issued with the `user:read:subscriptions` scope.
+
+([@Doridian] - [#67153]) ([documentation](/integrations/twitch))
+
+[@Doridian]: https://github.com/Doridian
+[#67153]: https://github.com/home-assistant/core/pull/67153
+
+{% enddetails %}
+
+{% details "Updater" %}
+
+The Updater integration has been deprecated; other integrations have replaced
+all its functionality. It is no longer a part of `default_config`,
+and if you have the `updater` integration defined directly in your YAML
+configuration, please remove it.
+
+- For the `binary_sensor.updater` entity, you can set up the
+ [Version integration](/integrations/version/) with the
+ "Home Assistant Website" source to get the same functionality back.
+- For the configuration options `reporting` and `include_used_components` for
+ the `updater:` configuration entry that was deprecated in 2021.4.
+ If you still want to share that,
+ please use the new [Analytics integration](/integrations/analytics/).
+
+([@ludeeus] - [#67038]) ([documentation](/integrations/updater))
+
+[@ludeeus]: https://github.com/ludeeus
+[#67038]: https://github.com/home-assistant/core/pull/67038
+
+{% enddetails %}
+
+{% details "Vallox" %}
+
+The previously deprecated `vallox.set_profile` service has now been removed,
+please use the standard `fan.set_preset_mode` service as a replacement.
+
+([@andre-richter] - [#66655]) ([documentation](/integrations/vallox))
+
+[@andre-richter]: https://github.com/andre-richter]
+[#66655]: https://github.com/home-assistant/core/pull/66655
+
+{% enddetails %}
+
+{% details "Viessmann ViCare" %}
+
+The sensor `solar power production` has been removed. This sensor was
+a collection of multiple values.
+
+Instead, we now provide four new sensors that each provides the data as single
+value:
+
+- `solar power production today`
+- `solar power production this week`
+- `solar power production this month`
+- `solar power production this year`
+
+You might need to adapt your automations or scripts to this change.
+The stale restored sensor can be safely removed.
+
+([@tschnilo] - [#63339]) ([documentation](/integrations/vicare))
+
+[@tschnilo]: https://github.com/tschnilo
+[#63339]: https://github.com/home-assistant/core/pull/63339
+
+{% enddetails %}
+
+{% details "XBee" %}
+
+The Xbee integration has been disabled due to the third-party library
+we depend on not being compatible with Python 3.10.
+
+Home Assistant is working towards adding support for Python 3.10, and
+we had to disable this integration now to be able to get our development and
+testing environments upgraded.
+
+([@frenck] - [#59729])
+
+[@frenck]: https://github.com/frenck
+[#59729]: https://github.com/home-assistant/core/pull/59729
+
+{% enddetails %}
+
+{% details "Z-Wave JS" %}
+
+The `zwave_js.ping` service is now deprecated in favor of a new ping `button`
+entity. You can replace any `zwave_js.ping` service calls in your automation
+with a `button.press` call against the new entity with no change in
+functionality.
+
+The `zwave_js.ping` service will be removed in a future release of Home Assistant.
+
+([@raman325] - [#66129]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#66129]: https://github.com/home-assistant/core/pull/66129
+
+---
+
+With this release, you will need to update your zwave-js-server instance.
+
+- If you use the zwave_js add-on, you need to have at least version `0.1.54.`.
+- If you use the Z-Wave JS 2 MQTT add-on, you need to have at least version `0.35.2`.
+- If you use the zwavejs2mqtt Docker container, you need to have at least version `6.5.2`.
+- If you run your own Docker container, or some other installation method,
+ you will need to update your zwave-js-server instance to at least `1.15.0`.
+
+([@raman325] - [#66785]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#66785]: https://github.com/home-assistant/core/pull/66785
+
+---
+
+Your Z-Wave controllers will no longer get a node status sensor. While this is
+technically a breaking change, in practice it should not be because the
+controller is always alive.
+
+([@raman325] - [#67209]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#67209]: https://github.com/home-assistant/core/pull/67209
+
+{% enddetails %}
+
+## Updates for custom integration developers
+
+If you are a custom integration developer, we have some updates in this
+release that you may want to take into account for your integration.
+
+Below is a listing of the breaking change for this release, per subject.
+Click on one of those to read more about the breaking change
+for that specific item.
+
+{% details "Integration dependencies and Python pip" %}
+
+In November 2020, with the release of Python pip 20.3, a new dependency
+resolver was introduced in pip, which is more strict.
+
+Home Assistant held back supporting the new pip version because of the
+large number of dependencies we have, it took time for us to adjust to this
+change. Meanwhile, Python pip would only warn for conflicts.
+
+As we have resolved almost all dependency conflicts, we have now lifted
+the pip version pinning, and thus now use the newer and stricter pip version.
+
+If you use external dependencies in your custom integration, you might be
+impacted by the new pip resolver. Your dependencies (and their version ranges)
+must be compatible with the dependencies Home Assistant has; otherwise,
+the installation of your custom integration will not succeed.
+
+You can find more information on the new dependency resolver in Python pip here:
+
+
+
+{% enddetails %}
+
+{% details "async_timeout()" %}
+
+We now use version 3.8+ of `aiohttp`, which requires `async_timeout` 4.0+
+which has multiple breaking changes:
+
+- `async_timeout.timeout` drops the `loop=` keyword arg.
+- `async_timeout.current_task` has been removed.
+- The `timeout.remaining` property has been removed.
+- The `timeout.timeout` property has been removed.
+
+Previously we had a backward-compatible layer in Home Assistant to
+ease this change, which has now been removed.
+
+([@frenck] - [#65732])
+
+[@frenck]: https://github.com/frenck
+[#65732]: https://github.com/home-assistant/core/pull/65732
+
+{% enddetails %}
+
+{% details "Helper: get_url()" %}
+
+If a user has the `http` integration configured to use SSL,
+it only accepts HTTPS traffic. This means that the internal URL needs
+to be set to use HTTPS too, and for the certificate to be valid,
+this needs to be a domain name.
+
+A lot of integrations that we send the URL to will fail if the
+certificate is not valid (ie. Sonos, Cast).
+
+To help the user get this right, the default for the `get_url` helper
+will now prefer the external address if SSL is configured.
+
+This has a higher chance of being correct, delivering a better out-of-the-box
+experience to a larger group of users.
+
+([@balloob] - [#66039])
+
+[@balloob]: https://github.com/balloob
+[#66039]: https://github.com/home-assistant/core/pull/66039
+
+{% enddetails %}
+
+{% details "Helper: split_entity_id()" %}
+
+`split_entity_id` will now raise a `ValueError` if the passed value
+does not follow the basic entity ID format
+(`.