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! 🚀 + +Screenshot showing the new media selector and play media action + +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! + +Screenshot showing playing TTS as a media action + +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. + +Screenshot showing the Radio Browser + +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. + +Screenshot showing media management + +## 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. + +Screenshot showing the styling difference between MWC and paper style + +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. + +

+Screen recording showing automations triggers triggering showing in the UI +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: + +Screenshot showing how to run an individual from the automation editor + +## 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. + +Screenshot showing the code editor with entity ID autocompletion + +_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 +(`.`). + +Previously it could return a list with a single item. + +([@balloob] - [#66835]) + +[@balloob]: https://github.com/balloob +[#66835]: https://github.com/home-assistant/core/pull/66835 + +{% enddetails %} + +{% details "Sensors with date/time" %} + +When using `datetime` and `date` device classes in sensors, the returned +native value must (respectively) be a datetime or date Python object. + +Returning an iso formatted date(time) string in these cases was +previously deprecated and the fallback/backward compatibility has now +been removed. + +([@frenck] - [#65734]) + +[@frenck]: https://github.com/frenck +[#65734]: https://github.com/home-assistant/core/pull/665734062 + +{% enddetails %} + +{% details "Zero-configuration networking (zeroconf)" %} + +Currently, zeroconf returns IPv4 addresses in the `host` field. If there were +no advertised IPv4 addresses, the discovery would fail. For example, +a specific manufacturer's Thread Border Router advertised devices as +IPv6-only zeroconf services. + +IPv6-only devices can now be discovered and an IPv6 address will +be present in the `host` property for those devices. + +Developers who need to filter discovered devices by IP address version +should use `homeassistant.util.network.is_ipv4_address` or +`homeassistant.util.network.is_ipv6_address` to reject zeroconf +discoveries they do not want. + +([@roysjosh] - [#66455]) + +[@roysjosh]: https://github.com/roysjosh +[#66455]: https://github.com/home-assistant/core/pull/66455 + +{% enddetails %} + +## Farewell to the following + +The following integration is no longer available as of this release: + +- **Growl (GnGNTP)** has been removed. The Growl project + [has retired](https://growl.github.io/growl/). + ([@frenck] - [#65741]) + +[@frenck]: https://github.com/frenck +[#65741]: https://github.com/home-assistant/core/pull/65741 + +## All changes + +Of course, there is a lot more in this release. You can find a list of +all changes made here: [Full changelog for Home Assistant Core 2022.3](/changelogs/core-2022.3) diff --git a/source/_redirects b/source/_redirects index 278d56da8ba..611742fd2ad 100644 --- a/source/_redirects +++ b/source/_redirects @@ -565,7 +565,6 @@ /components/notify.file /integrations/file /components/notify.flock /integrations/flock /components/notify.free_mobile /integrations/free_mobile -/components/notify.gntp /integrations/gntp /components/notify.hangouts /integrations/hangouts /components/notify.homematic /integrations/homematic /components/notify.html5 /integrations/html5 @@ -1359,7 +1358,6 @@ /components/gitlab_ci /integrations/gitlab_ci /components/gitter /integrations/gitter /components/glances /integrations/glances -/components/gntp /integrations/gntp /components/goalfeed /integrations/goalfeed /components/gogogate2 /integrations/gogogate2 /components/google_assistant /integrations/google_assistant @@ -2358,3 +2356,6 @@ /components/device_tracker.ee_brightbox /more-info/removed-integration 301 /components/ee_brightbox /more-info/removed-integration 301 /integrations/ee_brightbox /more-info/removed-integration 301 +/components/gntp /more-info/removed-integration 301 +/components/notify.gntp /more-info/removed-integration 301 +/integrations/gntp /more-info/removed-integration 301 diff --git a/source/changelogs/core-2022.3.markdown b/source/changelogs/core-2022.3.markdown new file mode 100644 index 00000000000..d15dfc2108e --- /dev/null +++ b/source/changelogs/core-2022.3.markdown @@ -0,0 +1,1957 @@ +--- +title: Full Changelog for Home Assistant Core 2022.3 +description: Detailed changelog for the Home Assistant Core 2022.3 release +--- + +These are all the changes included in the Home Assistant Core 2202.3 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2022/02/02/release-20223/). + +## Full Changelog + +- Bump version to 2022.3.0dev0 ([@frenck] - [#64996]) +- Add plugin option [hassfest] ([@cdce8p] - [#65024]) +- Implement coordinator class for Tradfri integration ([@ggravlingen] - [#64166]) ([tradfri docs]) +- Prometheus tests simulate entities ([@alim4r] - [#64916]) ([prometheus docs]) +- Fix vera typing ([@cdce8p] - [#65051]) ([vera docs]) +- Improve proximity typing ([@cdce8p] - [#65053]) ([proximity docs]) +- Allow homekit_controller to customise Ecobee home/sleep/away thresholds ([@Jc2k] - [#65036]) ([homekit_controller docs]) +- Add battery sensor for Tradfri blinds ([@ggravlingen] - [#65067]) ([tradfri docs]) +- Allow homekit_controller to set Ecobee's mode ([@Jc2k] - [#65032]) ([homekit_controller docs]) +- Complementing the Tuya Curtain (cl) category ([@dougiteixeira] - [#65023]) ([tuya docs]) +- Move netatmo dataclass registrations ([@ludeeus] - [#65052]) ([netatmo docs]) +- Remove artifacts from black formatting ([@emontnemery] - [#65113]) +- Add dedicated pre-commit hook for mypy_config [hassfest] ([@cdce8p] - [#65092]) +- Add test: warn entity_category assigned as str ([@davet2001] - [#65142]) +- Add loggers to integration manifest.json ([@bdraco] - [#65083]) +- Add loggers to zeroconf ([@bdraco] - [#65168]) ([zeroconf docs]) +- Add config flow to ISS integration ([@DurgNomis-drol] - [#64987]) ([iss docs]) (breaking-change) +- Bump dependency to v31 which makes has_relay more robust ([@Kane610] - [#65180]) ([unifi docs]) +- Bump pyefergy to 22.1.1 ([@tkdrob] - [#65156]) ([efergy docs]) +- Rewrite pylint init-hook ([@cdce8p] - [#65193]) +- Add air quality sensor for Tradfri air purifier ([@ggravlingen] - [#65070]) ([tradfri docs]) +- Fix typo’s ISS ([@LEJOUI] - [#65228]) ([iss docs]) +- Fix REQUIRED_NEXT_PYTHON_HA_RELEASE comment placement ([@scop] - [#65251]) +- Align config flow type hints to scaffold ([@davet2001] - [#65157]) +- Add homekit_controller support for ecobee vendor extensions ([@josephnad] - [#60914]) ([homekit_controller docs]) +- Clean up no longer needed Python 3.8 support code ([@scop] - [#65231]) ([systemmonitor docs]) +- Flag Tradfri groups and YAML as deprecated ([@ggravlingen] - [#65226]) ([tradfri docs]) (breaking-change) +- Fix comment typo in ESPHome diagnostics ([@jesserockz] - [#65268]) ([esphome docs]) +- Add Edl21 unit of measurement mapping ([@StephanU] - [#64926]) ([edl21 docs]) +- Remove deprecated helper functions from homekit_controller pairing flow ([@Jc2k] - [#65270]) ([homekit_controller docs]) +- Use upstream constants when defining homekit service to platform mapping ([@Jc2k] - [#65272]) ([homekit_controller docs]) +- Improve homekit_controller tests ([@Jc2k] - [#65266]) ([homekit_controller docs]) +- Update readthedocs config ([@scop] - [#65230]) +- Update black target version to 3.9+ ([@scop] - [#65260]) +- Update python-typing-update config to py39plus ([@scop] - [#65261]) +- Bump home-assistant/builder from 2021.12.0 to 2022.01.0 (@dependabot - [#65284]) +- Allow `unknown` state to be set ([@jbouwh] - [#65183]) ([mqtt docs]) (breaking-change) +- Add MQTT siren platform ([@jbouwh] - [#64440]) ([mqtt docs]) (new-platform) +- Use super() in mqtt siren init ([@jbouwh] - [#65291]) ([mqtt docs]) +- Add support to reprompt user ([@w35l3y] - [#65256]) ([alexa docs]) ([intent_script docs]) +- Introduce number platform for Shelly ([@chemelli74] - [#64207]) ([shelly docs]) +- Refactor homekit_controller to prepare for more typing information ([@Jc2k] - [#65329]) ([homekit_controller docs]) +- Refactor sonarr tests ([@ctalkington] - [#64886]) ([sonarr docs]) +- Remove stale tradfri devices ([@MartinHjelmare] - [#65218]) ([tradfri docs]) +- Improve google calendar test coverage to 97% ([@allenporter] - [#65223]) ([google docs]) +- Refactor platform loading in homekit_controller ([@Jc2k] - [#65338]) ([homekit_controller docs]) +- Enable mypy checks for homekit_controller ([@Jc2k] - [#65358]) ([homekit_controller docs]) +- Use dataclass asdict to convert to dict ([@klaasnicolaas] - [#65365]) ([p1_monitor docs]) +- Tuya fan natural wind mode ([@fOmey] - [#65343]) ([tuya docs]) +- Add type hints for google calendar integration ([@allenporter] - [#65353]) ([google docs]) +- Fix tradfri coordinator error handling ([@MartinHjelmare] - [#65204]) ([tradfri docs]) +- Add missing type hints to homekit_controller ([@Jc2k] - [#65368]) ([homekit_controller docs]) +- Add Netatmo error logging when no public stations are available ([@cgtobi] - [#65298]) ([netatmo docs]) +- Import registries in MQTT mixins ([@emontnemery] - [#65411]) ([mqtt docs]) +- Add type hints for config entry update listeners ([@epenet] - [#65412]) +- Rewrite sensibo integration ([@gjohansson-ST] - [#64753]) ([sensibo docs]) (breaking-change) +- Set last_reset for integrated entities in IoTaWatt ([@agners] - [#65143]) ([iotawatt docs]) +- Add events on cloud connect and disconnect ([@cgtobi] - [#65215]) ([cloud docs]) +- Adjust config_entry UpdateListenerType signature ([@epenet] - [#65410]) +- Add update listener type hints to coinbase ([@epenet] - [#65414]) ([coinbase docs]) +- Expose ESPHome project information in device information ([@jesserockz] - [#65466]) ([esphome docs]) +- Fix race when handling updated MQTT discovery data ([@emontnemery] - [#65415]) ([mqtt docs]) ([tasmota docs]) +- Remove nest legacy from mypy ignored modules ([@epenet] - [#65421]) ([nest docs]) +- Remove sonos media_player from strict typing ([@epenet] - [#65419]) +- Add update listener type hints to broadlink ([@epenet] - [#65413]) ([broadlink docs]) +- Add tests for pylint plugins ([@epenet] - [#65436]) +- Remove freebox from mypy ignore list ([@epenet] - [#65126]) ([freebox docs]) +- Upgrade pwmled to 1.6.9 ([@cdce8p] - [#65465]) ([rpi_gpio_pwm docs]) +- Netgear coordinator ([@starkillerOG] - [#65255]) ([netgear docs]) +- Make util.async_.protect_loop name names ([@emontnemery] - [#65493]) +- Code quality custom service for sensibo ([@gjohansson-ST] - [#65496]) ([sensibo docs]) +- Use Domain not Platform on test service calls ([@epenet] - [#65508]) +- Make mypy IGNORED_MODULES file specific ([@epenet] - [#65416]) +- Implement diagnostics for Sensibo ([@gjohansson-ST] - [#65515]) ([sensibo docs]) +- Add support Mqtt switch for unkown state ([@jbouwh] - [#65294]) ([mqtt docs]) (breaking-change) +- Add Mqtt Fan unknown state support ([@jbouwh] - [#65301]) ([mqtt docs]) (breaking-change) +- Add MQTT humidifier unknown state support ([@jbouwh] - [#65302]) ([mqtt docs]) (breaking-change) +- Add MQTT light unknown state support ([@jbouwh] - [#65308]) ([mqtt docs]) (breaking-change) +- Add Mqtt vacuum `unknown` state ([@jbouwh] - [#65311]) +- Enable strict typing for isy994 ([@bdraco] - [#65439]) ([isy994 docs]) +- Enable types from aiohomekit to be used by mypy for homekit_controller ([@Jc2k] - [#65433]) ([homekit_controller docs]) +- Remove deprecated SimpliSafe `service_id` service parameter ([@bachya] - [#65483]) ([simplisafe docs]) (breaking-change) +- Remove deprecated Guardian `entity_id` service parameter ([@bachya] - [#65484]) ([guardian docs]) (breaking-change) +- Migrate powerwall from using ip address as unique id ([@bdraco] - [#65257]) ([powerwall docs]) +- Adjust pylint plugin to enforce diagnostics type hints ([@epenet] - [#64976]) +- Add device class to ESPHome switches ([@oxan] - [#64919]) ([esphome docs]) +- Add a Lovelace cast platform ([@balloob] - [#65401]) ([lovelace docs]) +- Improve code quality sensibo ([@gjohansson-ST] - [#65503]) ([sensibo docs]) +- Add kmtronic device_info ([@dgomes] - [#65456]) ([kmtronic docs]) +- Add fritz set guest wifi password service ([@sti0] - [#62892]) ([fritz docs]) +- Some tweaks to the demo ([@balloob] - [#65623]) ([demo docs]) +- Use _attr_last_reset to set last_reset ([@agners] - [#65648]) ([iotawatt docs]) +- Add TRV (`wkf`) support to Tuya ([@frenck] - [#65649]) ([tuya docs]) +- Parametrize deCONZ binary sensors ([@Kane610] - [#65012]) ([deconz docs]) +- Bump velbusaio to 2022.2.2 ([@Cereal2nd] - [#65657]) ([velbus docs]) +- Log transmitted MQTT messages ([@emontnemery] - [#65550]) ([mqtt docs]) +- Netgear add traffic sensors ([@starkillerOG] - [#65645]) ([netgear docs]) +- Add diagnostics support for Asuswrt ([@ollo69] - [#65605]) ([asuswrt docs]) +- Use SSDP byebye to mark Sonos as offline ([@jjlawren] - [#65686]) ([sonos docs]) +- Fix `homewizard_energy` migration issues from #65594 ([@DCSBL] - [#65718]) ([homewizard docs]) +- Protect state.as_dict from mutation ([@balloob] - [#65693]) ([tuya docs]) +- Introduce wiz integration for the WiZ Platform ([@sbidy] - [#44779]) ([wiz_light docs]) (new-integration) +- Add diagnostics to issue form ([@frenck] - [#65715]) +- Complementing the Tuya Air Purifier (kj) category ([@dougiteixeira] - [#65283]) ([tuya docs]) +- Remove async_timeout backcompat ([@frenck] - [#65732]) (breaking-change) +- Remove unnecessary `TYPE_CHECKING` declarations in SimpliSafe ([@bachya] - [#65750]) ([simplisafe docs]) +- Remove deprecated format for date(time) sensors ([@frenck] - [#65734]) ([sensor docs]) (breaking-change) +- Remove deprecated GNTP integration ([@frenck] - [#65741]) ([gntp docs]) (breaking-change) +- Small cleanup in Plugwise binary sensors ([@frenck] - [#65738]) ([plugwise docs]) +- Add current temperature sensor for Tuya Fan (fs) ([@dougiteixeira] - [#65744]) ([tuya docs]) +- Add Heater (rs) support Tuya Climate ([@frenck] - [#65707]) ([tuya docs]) +- Bugfix temp step list out of range sensibo ([@gjohansson-ST] - [#65782]) ([sensibo docs]) +- Add capabilities to sensibo coordinator data ([@gjohansson-ST] - [#65775]) ([sensibo docs]) +- Bump pytradfri to 9.0.0 ([@ggravlingen] - [#65784]) +- Update apprise to 0.9.7 ([@frenck] - [#65780]) ([apprise docs]) +- Update delijn to 1.0.0 ([@frenck] - [#65776]) ([delijn docs]) +- Update pyfritzhome to 0.6.4 ([@flabbamann] - [#65777]) ([fritzbox docs]) +- Update sentry-dsk to 1.5.4 ([@frenck] - [#65792]) ([sentry docs]) +- Update black to 22.1.0 ([@frenck] - [#65788]) +- Small cleanup in Plugwise sensors ([@frenck] - [#65765]) ([plugwise docs]) +- Clean up vicare code ([@oischinger] - [#65774]) ([vicare docs]) +- Update coverage to 6.3.1 ([@frenck] - [#65790]) +- Drop responses from test requirements ([@frenck] - [#65793]) +- WiZ cleanups part 1 ([@bdraco] - [#65746]) ([wiz docs]) +- Remove options flow from Plugwise ([@frenck] - [#65808]) ([plugwise docs]) (breaking-change) +- Remove dmcc from codeowners in vlc_telnet ([@dmcc] - [#65810]) ([vlc_telnet docs]) +- Small cleanup in Plugwise climate ([@frenck] - [#65800]) ([plugwise docs]) +- Add INTEGRATION_DISCOVERY to DISCOVERY_SOURCES ([@bdraco] - [#65811]) +- Add discovery support to WiZ Part 1 ([@bdraco] - [#65752]) ([wiz docs]) +- Add missing vicare state class ([@oischinger] - [#65795]) ([vicare docs]) +- WiZ Cleanups part 3 ([@bdraco] - [#65819]) ([wiz docs]) (new-platform) +- Cleanup Plugwise config flow and tests ([@frenck] - [#65818]) ([plugwise docs]) +- Extract base entity class in Plugwise ([@frenck] - [#65821]) ([plugwise docs]) +- Complementing the Tuya Humidifier (jsq) category ([@dougiteixeira] - [#65276]) ([tuya docs]) +- Improve entry setup error logging for Plugwise ([@frenck] - [#65830]) ([plugwise docs]) +- Add support for picking discovered devices to WiZ ([@bdraco] - [#65826]) ([wiz docs]) +- Reduce System Bridge load on server ([@timmo001] - [#65794]) ([system_bridge docs]) +- Simplify unique ID handling in Plugwise ([@frenck] - [#65839]) ([plugwise docs]) +- Move Plugwise logger into constants ([@frenck] - [#65842]) ([plugwise docs]) +- Remove port from description ([@starkillerOG] - [#65851]) ([netgear docs]) +- Update rokuecp to 0.13.1 ([@ctalkington] - [#65814]) ([roku docs]) +- Clean-up AsusWRT setup entry ([@ollo69] - [#65860]) ([asuswrt docs]) +- Small cleanup in Plugwise switch ([@frenck] - [#65845]) ([plugwise docs]) +- Remove deprecated yaml config from AsusWRT ([@ollo69] - [#65904]) ([asuswrt docs]) (breaking-change) +- Fix Task exception was never retrieved when WiZ devices are offline ([@bdraco] - [#65844]) ([wiz docs]) +- BinarySensorEntityDescriptions for Plugwise ([@frenck] - [#65887]) ([plugwise docs]) +- Add mbd Tuya light support ([@frenck] - [#65918]) ([tuya docs]) +- Extract Plugwise DataUpdateCoordinator into module ([@frenck] - [#65915]) ([plugwise docs]) +- Remove homeassistant import [pylint plugin] ([@cdce8p] - [#65911]) +- Correct description of entity_globs ([@masto] - [#65805]) ([recorder docs]) +- Add unique ID to InfluxDB sensor ([@Sanderhuisman] - [#65518]) ([influxdb docs]) +- Add diagnostics support for Nut ([@ollo69] - [#65893]) ([nut docs]) +- SensorEntityDescriptions for Plugwise ([@frenck] - [#65898]) ([plugwise docs]) +- rfxtrx: Add command_on/command_off support for pt2262 switch entities ([@nielsAD] - [#65798]) ([rfxtrx docs]) +- Support songpal wireless-only soundbar identifiers ([@Flameeyes] - [#65330]) ([songpal docs]) +- Fix Yeelight Music Mode Rate Limits ([@alexyao2015] - [#64891]) ([yeelight docs]) +- Ihc integration, move manual setup out of init.py ([@dingusdk] - [#65087]) ([ihc docs]) +- Add DataUpdateCoordinator to Nanoleaf ([@milanmeu] - [#65950]) ([nanoleaf docs]) +- Remove unused temp_unit attr [sensibo] ([@cdce8p] - [#65953]) ([sensibo docs]) +- Add tplink hardware version to device info ([@rytilahti] - [#65951]) ([tplink docs]) +- remove EntityCategory from home_mode switch ([@mib1185] - [#65949]) ([synology_dsm docs]) (breaking-change) +- Add tplink diagnostics ([@rytilahti] - [#65822]) ([tplink docs]) +- Cycle pip wheel cache on dev version bump [CI] ([@cdce8p] - [#65791]) +- Address late review from #65814 for roku ([@ctalkington] - [#65967]) ([roku docs]) +- Remove LIFX devices with no entities ([@amelchio] - [#65964]) ([lifx docs]) +- Bump actions/setup-python from 2.3.1 to 2.3.2 (@dependabot - [#65974]) +- Reduce coordinator cooldown for roku ([@ctalkington] - [#65973]) ([roku docs]) +- Small cleanup of sonarr sensor platform ([@ctalkington] - [#65962]) ([sonarr docs]) +- 100% code coverage for config_flow of dsmr component ([@rhpijnacker] - [#65238]) ([dsmr docs]) +- Trigger full CI run on pylint amends ([@epenet] - [#65430]) +- Add support for qjdcz to Tuya ([@frenck] - [#65985]) ([tuya docs]) +- Add more tests to device registry updates ([@ludeeus] - [#65989]) +- Add secondary dimmer to dj in Tuya ([@frenck] - [#65990]) ([tuya docs]) +- Add Netgear allow/block switch ([@starkillerOG] - [#65705]) ([netgear docs]) (new-platform) (noteworthy) +- Allow None on Renault binary sensors ([@epenet] - [#65997]) ([renault docs]) (breaking-change) +- Upgrade aionanoleaf to 0.2.0 ([@milanmeu] - [#66008]) ([nanoleaf docs]) +- Upgrade to newer Python pip>=21.0 ([@frenck] - [#59769]) +- Add Z-Wave.Me integration ([@PoltoS] - [#65473]) ([zwave_me docs]) (new-integration) +- Add push updates support to WiZ ([@bdraco] - [#65987]) ([wiz docs]) +- Cache webostv supported_features state ([@pedrolamas] - [#65930]) ([webostv docs]) +- Add title placeholders to overkiz discovery ([@vlebourl] - [#65506]) ([overkiz docs]) +- Move WiZ socket ident to upstream lib ([@bdraco] - [#65958]) ([wiz docs]) +- Improve code quality filesize ([@gjohansson-ST] - [#65240]) ([filesize docs]) +- Add firmware and hardware version to WiZ ([@bdraco] - [#66017]) ([wiz docs]) +- Remove passing loop into sleep in SamsungTV ([@frenck] - [#66030]) ([samsungtv docs]) +- Get_url to prefer external URL if SSL configured ([@balloob] - [#66039]) (breaking-change) +- Add discovery support to elkm1 ([@bdraco] - [#65205]) ([elkm1 docs]) +- Add sensor for filter time left on Tradfri fan platform ([@ggravlingen] - [#65877]) ([tradfri docs]) +- Lock Netgear api during setup ([@starkillerOG] - [#66033]) ([netgear docs]) +- Add support for mc devices to Tuya ([@frenck] - [#66044]) ([tuya docs]) +- Add configuration_url to Octoprint discovery ([@frenck] - [#66046]) ([octoprint docs]) +- Add configuration_url to Plugwise discovery ([@frenck] - [#66047]) ([plugwise docs]) +- Bump velbusaio to 2022.2.3 ([@Cereal2nd] - [#66055]) ([velbus docs]) +- Bump pytest to 7.0.0 ([@cgtobi] - [#65981]) +- Fivem integration ([@Sander0542] - [#65089]) ([fivem docs]) (new-integration) +- Update plugwise 0.16.2 ([@frenck] - [#65933]) ([plugwise docs]) +- Add diagnostics support to Plugwise ([@frenck] - [#65982]) ([plugwise docs]) +- Bump azure-eventhub to 5.7.0 ([@eavanvalkenburg] - [#66061]) ([azure_event_hub docs]) +- Remove Overkiz switch platform todo and add 2 devices ([@iMicknl] - [#66069]) ([overkiz docs]) +- Remove AlarmDecoder Codeowner ([@ajschmidt8] - [#66078]) ([alarmdecoder docs]) +- Increase timeout for InfluxDB v2 connections ([@pinpox] - [#63885]) ([influxdb docs]) +- Add myself as codeowner to Plugwise ([@frenck] - [#66080]) ([plugwise docs]) +- Update base image to 2022.02.0 ([@frenck] - [#66082]) +- Update PyOverkiz to 1.3.4 ([@iMicknl] - [#66076]) ([overkiz docs]) +- Fix typo in base image tag ([@frenck] - [#66087]) +- Fix MyFox Camera Shutter entity in Overkiz integration ([@iMicknl] - [#66088]) ([overkiz docs]) (breaking-change) +- Use upstream device information for Plugwise ([@frenck] - [#66074]) ([plugwise docs]) +- Refactor Sonos polling ([@jjlawren] - [#65722]) ([sonos docs]) +- Use legacy pip resolver in machine builds ([@frenck] - [#66094]) +- Bump async-upnp-client to 0.23.5 ([@Tigger2014] - [#65922]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs]) +- Reuse existing coordinator entity update in Plugwise platforms ([@frenck] - [#66079]) ([plugwise docs]) +- Loosen wiz discovery matching ([@bdraco] - [#66095]) ([wiz docs]) +- Cleanup hass.data in Plugwise ([@frenck] - [#66096]) ([plugwise docs]) +- Fivem code quality improvements ([@Sander0542] - [#66086]) ([fivem docs]) +- Improve wiz performance ([@bdraco] - [#66105]) ([wiz docs]) +- Add Renault hvac sensors ([@epenet] - [#65993]) ([renault docs]) +- Add diagnostics for Tradfri platform ([@ggravlingen] - [#66092]) ([tradfri docs]) +- Support restoring SensorEntity native_value ([@emontnemery] - [#66068]) ([sensor docs]) +- Adapt deCONZ number platform to align with updated design of binary sensor and sensor platforms ([@Kane610] - [#65248]) ([deconz docs]) +- Improve typing of Spotify ([@frenck] - [#66109]) ([spotify docs]) +- Fix Plugwise notification sensor ([@frenck] - [#66116]) ([plugwise docs]) +- Add camera media source ([@balloob] - [#65977]) ([camera docs]) ([cast docs]) +- Allow HomeWizard devices with disabled api to show up in discovery ([@DCSBL] - [#65295]) ([homewizard docs]) +- Roku to sign all HASS urls ([@balloob] - [#66122]) ([roku docs]) +- VLC Telnet to sign all HASS URLs ([@balloob] - [#66123]) ([vlc_telnet docs]) +- Move the buttonlights to diagnostic entities ([@Cereal2nd] - [#65423]) ([velbus docs]) +- Move Plugewise binary sensor icon state into entity description ([@frenck] - [#66148]) ([plugwise docs]) +- Clean up unneeded preset variable in Plugwise climate ([@frenck] - [#66151]) ([plugwise docs]) +- Correct Velbus button light entity category ([@frenck] - [#66156]) ([velbus docs]) +- Add device availability to Plugwise ([@frenck] - [#66152]) ([plugwise docs]) +- Resolve zones and return state in find_coordinates ([@eifinger] - [#66081]) +- Add entity descriptions to Plugwise switch platform ([@frenck] - [#66174]) ([plugwise docs]) +- Refactor Plugwise notification binary sensor ([@frenck] - [#66159]) ([plugwise docs]) +- Enable basic type checking for config ([@emontnemery] - [#66197]) ([config docs]) +- Update WiZ with IP address validation ([@sbidy] - [#66117]) ([wiz docs]) +- Add helper for media players to handle HA hosted media ([@balloob] - [#66120]) ([sonos docs]) +- Extract Spotify media browsing into a module ([@frenck] - [#66175]) ([spotify docs]) +- Adjust coverage to include all config flows ([@epenet] - [#66193]) +- Move Freebox reboot service to a button entity ([@epenet] - [#65501]) ([freebox docs]) (breaking-change) (new-platform) +- add @eifinger as google_travel_time_codeowner ([@eifinger] - [#66215]) ([google_travel_time docs]) +- add @eifinger as waze_travel_time codeowner ([@eifinger] - [#66214]) ([waze_travel_time docs]) +- Schedule activity checks when using manual hosts ([@jjlawren] - [#65970]) ([sonos docs]) +- Add siren platform to Overkiz ([@iMicknl] - [#65300]) ([overkiz docs]) +- Sonos lock subscription actions ([@jjlawren] - [#66204]) ([sonos docs]) +- Fix tradfri device name ([@ggravlingen] - [#66219]) ([tradfri docs]) +- Add Moehlenhoff Alpha2 underfloor heating system integration ([@j-a-n] - [#42771]) ([moehlenhoff_alpha2 docs]) (new-integration) +- Simplify get_unique_id helper function for zwave_js ([@raman325] - [#66221]) ([zwave_js docs]) +- Add more sensors for users with Tibber Pulse ([@Danielhiversen] - [#66201]) ([tibber docs]) +- Sort media sources ([@balloob] - [#66237]) ([cast docs]) ([media_source docs]) +- Enable basic type checking in demo init ([@epenet] - [#66218]) ([demo docs]) +- Mqtt move to .const ([@jbouwh] - [#65631]) ([mqtt docs]) +- Refactor Plugwise command handling ([@frenck] - [#66202]) ([plugwise docs]) +- Enable basic type checking in demo platforms ([@epenet] - [#66212]) ([demo docs]) +- More cleanup in Plugwise switch ([@frenck] - [#66254]) ([plugwise docs]) +- Enable basic type checking in template ([@epenet] - [#66222]) ([template docs]) +- Tweak constant config_entries.DISCOVERY_SOURCES ([@emontnemery] - [#66249]) +- More cleanup in Plugwise binary sensor ([@frenck] - [#66255]) ([plugwise docs]) +- Add additional switches to Plugwise ([@frenck] - [#66261]) ([plugwise docs]) +- Remove Plugwise Auxiliary sensors ([@frenck] - [#66259]) ([plugwise docs]) (breaking-change) +- Add RGBW/RGBWW support to WiZ ([@bdraco] - [#66196]) ([wiz docs]) +- Allow uploading media to media folder ([@balloob] - [#66143]) ([media_source docs]) +- Add unique_id for decora_wifi lights ([@jarodwilson] - [#66142]) ([decora_wifi docs]) +- More cleanup in Plugwise climate ([@frenck] - [#66257]) ([plugwise docs]) +- More cleanup in Plugwise sensor ([@frenck] - [#66274]) ([plugwise docs]) +- Add Flame State binary sensor to Plugwise ([@frenck] - [#66275]) +- Plugwise HVAC/Preset mode fixes ([@frenck] - [#66273]) ([plugwise docs]) +- Clean up unnecessary branch in SimpliSafe ([@bachya] - [#66268]) ([simplisafe docs]) +- Cleanup existing Plugwise tests and test fixtures ([@frenck] - [#66282]) ([plugwise docs]) +- Extend Plugwise climate support ([@frenck] - [#66278]) ([plugwise docs]) +- Add humidity sensor to Plugwise ([@frenck] - [#66280]) ([plugwise docs]) +- Drop MQTT import flow ([@emontnemery] - [#66160]) ([mqtt docs]) (breaking-change) +- Tweak Sonos activity monitoring ([@jjlawren] - [#66207]) ([sonos docs]) +- Fix shutil import for local source ([@balloob] - [#66286]) ([media_source docs]) +- Add discovery on network up to WiZ ([@bdraco] - [#66144]) ([wiz docs]) +- Type Spotify hass data ([@frenck] - [#66285]) ([spotify docs]) +- Skip polling Sonos audio input sensor when idle ([@jjlawren] - [#66271]) ([sonos docs]) +- Add diagnostics for philips_js ([@elupus] - [#66233]) ([philips_js docs]) +- Guard against 0 value for color temp in WiZ when turning off ([@bdraco] - [#66295]) ([wiz docs]) +- Prepare for Ihc config flow ([@dingusdk] - [#64852]) ([ihc docs]) +- Create MQTT discovery flow when manual config is present ([@emontnemery] - [#66248]) ([mqtt docs]) +- Add Icelandic to list of supported Azure languages ([@stebet] - [#66310]) ([microsoft docs]) +- Add heating and cooling binary sensors to Plugwise ([@frenck] - [#66317]) ([plugwise docs]) +- Bump velbusaio to 2022.2.4 ([@Cereal2nd] - [#66321]) ([velbus docs]) +- Fix webostv restored supported features turn on ([@thecode] - [#66318]) ([webostv docs]) +- Fix WiZ bulb being offline if kelvin limits cannot be obtained ([@bdraco] - [#66305]) ([wiz docs]) +- Don't requests known Spotify playlist ([@frenck] - [#66313]) ([spotify docs]) +- Use DataUpdateCoordinator for Spotify devices ([@frenck] - [#66314]) ([spotify docs]) +- Prepare for new aiohomekit lifecycle API ([@Jc2k] - [#66340]) ([homekit_controller docs]) +- Upgrade OVO library to v1.2.0 ([@stuart-c] - [#66210]) ([ovo_energy docs]) +- Add additional OUI for G3 wifi cameras to unifiprotect ([@bdraco] - [#66349]) ([unifiprotect docs]) +- Add additional oui to blink ([@bdraco] - [#66348]) ([blink docs]) +- Add dhcp discovery to Sensibo for non-HomeKit devices ([@bdraco] - [#66350]) ([sensibo docs]) +- Initial xiaomi_miio support for dmaker.airfresh.a1/t2017 ([@Kirmas] - [#66331]) +- Get discovered zeroconf IPv6 addresses ([@roysjosh] - [#65462]) ([zeroconf docs]) +- New amcrest binary sensor to monitor doorbell button ([@PanicRide] - [#66302]) ([amcrest docs]) +- Add button to wake august locks from deep sleep ([@bdraco] - [#66343]) ([august docs]) +- Fix zwave_me zeroconf mocking ([@bdraco] - [#66356]) ([zwave_me docs]) +- Add a base class for Intellifire entities ([@jeeftor] - [#65077]) ([intellifire docs]) +- Code cleanup yale_smart_alarm ([@gjohansson-ST] - [#65081]) ([yale_smart_alarm docs]) +- Add device info to Solax ([@Sander0542] - [#65244]) ([solax docs]) +- Fix uncaught exception during WiZ discovery during firmware update ([@bdraco] - [#66358]) ([wiz docs]) +- Add select platform to roku ([@ctalkington] - [#66133]) ([roku docs]) +- Publish Nest Motion/Person events with optional user defined zone information ([@allenporter] - [#66187]) ([nest docs]) +- Fix supported features sensibo ([@gjohansson-ST] - [#65895]) ([sensibo docs]) +- Add Diagnostics ([@Bre77] - [#65755]) ([aussie_broadband docs]) +- Simplify the homekit_controller unignore journey ([@Jc2k] - [#66353]) ([homekit_controller docs]) +- Stop homekit_controller using backend specific API's ([@Jc2k] - [#66375]) ([homekit_controller docs]) +- Improve code quality sql ([@gjohansson-ST] - [#65321]) ([sql docs]) +- Improve code quality telnet ([@gjohansson-ST] - [#65239]) ([telnet docs]) +- Improve code quality command_line ([@gjohansson-ST] - [#65333]) ([command_line docs]) +- Code quality scrape ([@gjohansson-ST] - [#65441]) ([scrape docs]) +- Implement diagnostics for yale_smart_alarm ([@gjohansson-ST] - [#65085]) ([yale_smart_alarm docs]) +- Specify specific Nanoleaf models in the manifest ([@roysjosh] - [#66326]) ([nanoleaf docs]) +- Update zigpy-zigate to 0.8.0 ([@doudz] - [#66289]) ([zha docs]) +- Fix typo in ebusd WaterPressure const ([@nklebedev] - [#66355]) ([ebusd docs]) (breaking-change) +- Fix Spotify session token refresh ([@frenck] - [#66386]) ([spotify docs]) +- Add Picnic re-auth flow ([@corneyl] - [#62938]) ([picnic docs]) +- Fix typing [roku] ([@cdce8p] - [#66397]) ([roku docs]) +- Code quality file ([@gjohansson-ST] - [#65258]) ([file docs]) +- Add is_controller_node flag to WS node status ([@kpine] - [#66404]) ([zwave_js docs]) +- Fix error decorator [sonos] ([@cdce8p] - [#66399]) ([sonos docs]) +- Redact stream url credentials in debug logging ([@allenporter] - [#66407]) ([stream docs]) +- Revert Amcrest change ([@Kane610] - [#66412]) ([amcrest docs]) +- Improve stream robustness by always retrying worker ([@allenporter] - [#66417]) ([stream docs]) +- Replace use of deprecated APIs in aiohomekit ([@Jc2k] - [#66409]) ([homekit_controller docs]) +- bump total_connect_client to 2022.2 ([@austinmroczek] - [#66408]) ([totalconnect docs]) +- Handle NoneType error in OVO integration ([@timmo001] - [#66439]) ([ovo_energy docs]) +- Remove entities when config entry is removed from device ([@emontnemery] - [#66385]) +- Update homekit_controller to use the new typed discovery data ([@Jc2k] - [#66462]) ([homekit_controller docs]) +- Bump pywizlight to 0.5.8 ([@bdraco] - [#66448]) ([wiz docs]) +- Add is_ipv4_address and is_ipv6_address utils ([@bdraco] - [#66472]) +- Don't abort zeroconf discovery for IPv6-only devices ([@roysjosh] - [#66455]) ([zeroconf docs]) (breaking-change) +- Reduce update_interval for Opengarage ([@Danielhiversen] - [#66478]) ([opengarage docs]) +- Use shorthand attributes in webostv ([@thecode] - [#66418]) ([webostv docs]) +- Update requirements_test.txt ([@cgtobi] - [#66481]) +- Octoprint buttons ([@rfleming71] - [#66368]) ([octoprint docs]) +- Adjust type hint in core add_job ([@epenet] - [#66503]) +- Enable assumed state in webostv media player ([@thecode] - [#66486]) ([webostv docs]) +- Add missing dataclass decorator [fivem] ([@cdce8p] - [#66505]) ([fivem docs]) +- Fix http typing ([@cdce8p] - [#66506]) ([http docs]) +- Support browsing multiple Spotify accounts ([@emontnemery] - [#66256]) ([spotify docs]) +- Improve setup_time typing ([@cdce8p] - [#66509]) ([websocket_api docs]) +- Add WiZ occupancy sensor support ([@bdraco] - [#66231]) ([wiz docs]) (new-platform) +- Fix cast turn on image ([@balloob] - [#66500]) ([cast docs]) +- Small improvement of cast test ([@emontnemery] - [#66513]) ([cast docs]) +- Update sentry-dsk to 1.5.5 ([@frenck] - [#66515]) ([sentry docs]) +- Improve `DiscoveryFlowHandler` typing ([@cdce8p] - [#66511]) ([sonos docs]) ([rpi_power docs]) +- Improve `util.async_` typing ([@cdce8p] - [#66510]) +- Improve raised exception consistency for media source ([@balloob] - [#66497]) ([media_source docs]) +- Fix vicare program presets ([@barche] - [#66476]) ([vicare docs]) +- Add test coverage for WiZ lights and switches ([@bdraco] - [#66387]) ([wiz docs]) (new-platform) +- Add support for setting the effect speed in WiZ ([@bdraco] - [#66457]) ([wiz docs]) (new-platform) +- Add support for MJPEG cameras to camera media source ([@balloob] - [#66499]) ([camera docs]) +- Fix ImportError when discovery deps change ([@bdraco] - [#66518]) +- Ensure WiZ cleans up on shutdown and failed setup ([@bdraco] - [#66520]) ([wiz docs]) +- Add a media source to TTS ([@balloob] - [#66483]) ([tts docs]) ([voicerss docs]) ([yandextts docs]) ([google_translate docs]) +- Update pylint plugin to validate `_async_has_devices` ([@cdce8p] - [#66512]) +- Fix `translation` typing ([@cdce8p] - [#66516]) +- Support for lock domain in esphome ([@kbickar] - [#65280]) ([esphome docs]) (new-platform) (noteworthy) +- Add velbus diagnostics ([@Cereal2nd] - [#65426]) ([velbus docs]) +- Fix `auth` type comment ([@cdce8p] - [#66522]) +- Adjust Sonos for updated Spotify media browsing ([@emontnemery] - [#66508]) ([sonos docs]) +- Move config option to OptionsFlow in iss ([@DurgNomis-drol] - [#65303]) ([iss docs]) (breaking-change) +- Improve zwave_js device automation strings for config parameters ([@raman325] - [#66428]) ([zwave_js docs]) +- Add button entity to ping zwave_js node ([@raman325] - [#66129]) ([zwave_js docs]) (breaking-change) +- Improve code quality season ([@gjohansson-ST] - [#66449]) ([season docs]) +- Overkiz/address cover feedback ([@iMicknl] - [#65043]) ([overkiz docs]) +- Create unique_id for sleepiq sensors ([@jarodwilson] - [#65227]) ([sleepiq docs]) +- Fix HVAC modes for zha Stelpro fan heater ([@EtienneMD] - [#66293]) ([zha docs]) +- Bump frontend to 20220214.0 ([@balloob] - [#66535]) ([frontend docs]) +- Adjust Plugwise debouncer to not refresh immediately ([@frenck] - [#66521]) ([plugwise docs]) +- Bump pyaussiebb in Aussie Broadband ([@Bre77] - [#65754]) ([aussie_broadband docs]) +- Bump hass-nabucas to 0.52.1 ([@balloob] - [#66536]) ([cloud docs]) +- Update nest camera to pull still images from stream component ([@allenporter] - [#66427]) ([nest docs]) (breaking-change) +- Fix missing abort strings in wiz ([@bdraco] - [#66538]) ([wiz docs]) +- Improve Deconz sensors ([@Kane610] - [#65259]) ([deconz docs]) +- Override iotawatt coordinator request_refresh_debouncer to allow updates every 5s ([@amosyuen] - [#64892]) ([iotawatt docs]) +- Replace discord.py with nextcord ([@frenck] - [#66540]) ([discord docs]) +- Add workaround for python bug to HAQueueHandler ([@emontnemery] - [#66541]) +- Use enums in vizio ([@tkdrob] - [#61996]) ([vizio docs]) +- Fix econet spelling ([@jsoref] - [#64254]) ([econet docs]) +- Bump intellifire4py to 0.9.8 ([@jeeftor] - [#66531]) ([intellifire docs]) +- Add a asset name for CAS / official_image ([@pvizeli] - [#66276]) +- Cleanup and strict typing for MJPEG integration ([@frenck] - [#66526]) ([mjpeg docs]) +- Fix integrations building on top of mjpeg ([@frenck] - [#66557]) ([zoneminder docs]) ([axis docs]) ([mjpeg docs]) ([motioneye docs]) ([agent_dvr docs]) +- Add Connectivity sensor to SIA ([@eavanvalkenburg] - [#64305]) +- Add binary_sensor to Version integration ([@ludeeus] - [#66539]) ([version docs]) (new-platform) +- Switch unifiprotect to use integration discovery ([@bdraco] - [#66569]) ([unifiprotect docs]) +- Allow integrations to request dhcp discovery flows for registered devices ([@bdraco] - [#66528]) ([dhcp docs]) +- Enable dhcp flows for tplink registered devices ([@bdraco] - [#66592]) ([tplink docs]) +- Add extra entity descriptions to Overkiz integration ([@iMicknl] - [#66093]) ([overkiz docs]) +- Enable dhcp flows for axis registered devices ([@bdraco] - [#66581]) ([axis docs]) +- Improve exception catching and handling in Overkiz integration ([@iMicknl] - [#66604]) ([overkiz docs]) +- Always create a new session in ConfigFlow in Overkiz integration ([@iMicknl] - [#66602]) ([overkiz docs]) +- Deduplicate flux_led title and CONF_NAME ([@bdraco] - [#66598]) ([flux_led docs]) +- Enable dhcp flows for wiz registered devices ([@bdraco] - [#66595]) ([wiz docs]) +- Enable dhcp flows for emonitor registered devices ([@bdraco] - [#66584]) ([emonitor docs]) +- Switch steamist to use integration discovery ([@bdraco] - [#66578]) ([steamist docs]) +- Switch elkm1 to use integration discovery ([@bdraco] - [#66572]) ([elkm1 docs]) +- Update plugwise 0.16.4 ([@frenck] - [#66613]) ([plugwise docs]) +- Switch senseme to use integration discovery ([@bdraco] - [#66576]) ([senseme docs]) +- Switch flux_led to use integration discovery ([@bdraco] - [#66574]) ([flux_led docs]) +- Enable dhcp flows for steamist registered devices ([@bdraco] - [#66593]) ([steamist docs]) +- Enable dhcp flows for hunterdouglas_powerview registered devices ([@bdraco] - [#66587]) ([hunterdouglas_powerview docs]) +- Enable dhcp flows for senseme registered devices ([@bdraco] - [#66590]) ([senseme docs]) +- Enable dhcp flows for screenlogic registered devices ([@bdraco] - [#66591]) ([screenlogic docs]) +- Enable dhcp flows for isy994 registered devices ([@bdraco] - [#66588]) ([isy994 docs]) +- Fix zwave_js device condition bug ([@raman325] - [#66626]) ([zwave_js docs]) +- Enable dhcp flows for goalzero registered devices ([@bdraco] - [#66586]) ([goalzero docs]) +- Enable dhcp flows for broadlink registered devices ([@bdraco] - [#66582]) ([broadlink docs]) +- Switch tplink to use integration discovery ([@bdraco] - [#66575]) ([tplink docs]) +- Switch ezviz to use integration discovery ([@bdraco] - [#66579]) ([ezviz docs]) +- Enable dhcp flows for flux_led registered devices ([@bdraco] - [#66585]) ([flux_led docs]) +- Add vicare sensors ([@tschnilo] - [#63339]) ([vicare docs]) (breaking-change) +- Enable dhcp flows for elkm1 registered devices ([@bdraco] - [#66583]) ([elkm1 docs]) +- Include changes in EVENT_DEVICE_REGISTRY_UPDATED ([@emontnemery] - [#66641]) +- Enable dhcp flows for samsungtv registered devices ([@bdraco] - [#66589]) ([samsungtv docs]) +- Add binary sensor platform to Aseko ([@milanmeu] - [#66643]) ([aseko_pool_live docs]) (new-platform) +- Fix Plugwise auto HVAC mode ([@frenck] - [#66639]) ([plugwise docs]) +- Refactor sleepiq as async with config flow ([@mfugate1] - [#64850]) ([sleepiq docs]) +- Add epenet to samsungtv codeowners ([@epenet] - [#66654]) ([samsungtv docs]) +- Fix try_connect in samsungtv ([@epenet] - [#66653]) ([samsungtv docs]) +- add entity_category ([@dgomes] - [#66377]) ([mqtt docs]) +- Improve handling of cloud hook registration ([@cgtobi] - [#65664]) ([netatmo docs]) ([cloud docs]) +- Add Google local indicator ([@balloob] - [#66610]) ([cloud docs]) ([google_assistant docs]) +- Keep TTS media browser params in identifier ([@bramkragten] - [#66663]) ([tts docs]) +- Add Button platform to deCONZ integration ([@Kane610] - [#65700]) ([deconz docs]) +- Fix missing effects on dimmable WiZ bulbs ([@bdraco] - [#66665]) ([wiz docs]) +- Teach _async_abort_entries_match about entry options ([@bdraco] - [#66662]) +- Allow metadata in service call data ([@bramkragten] - [#66672]) +- Fix side_effect patching in samsungtv tests ([@epenet] - [#66651]) ([samsungtv docs]) +- Remove duplicated options from input_select ([@emontnemery] - [#66680]) ([input_select docs]) +- Update plugwise 0.16.5 ([@frenck] - [#66684]) ([plugwise docs]) +- Fix slow samsungtv test ([@epenet] - [#66696]) ([samsungtv docs]) +- Code Quality improvements for Aussie Broadband ([@Bre77] - [#65408]) ([aussie_broadband docs]) +- Improve MQTT binary_sensor test ([@emontnemery] - [#66688]) ([mqtt docs]) +- Bump Advantage Air to 0.3.1 ([@Bre77] - [#66699]) ([advantage_air docs]) +- Bump pyeconet version for Gen 5 Water Heater Support ([@rborkow] - [#66691]) ([econet docs]) +- Netgear add reboot button ([@starkillerOG] - [#65706]) ([netgear docs]) (new-platform) +- Brunt package to 1.2.0 ([@eavanvalkenburg] - [#66722]) ([brunt docs]) +- Add inclusion state to zwave_js/network_status WS API cmd ([@raman325] - [#65398]) ([zwave_js docs]) +- Update google-cloud-texttospeech to 2.10.0 ([@frenck] - [#66726]) ([google_cloud docs]) +- Add device info to samsungtv diagnostics ([@epenet] - [#66728]) ([samsungtv docs]) +- Don't allow creating or updating input_select with duplicates ([@emontnemery] - [#66718]) ([input_select docs]) +- MQTT climate preset_modes rework ([@jbouwh] - [#66062]) ([mqtt docs]) (breaking-change) +- Revert "Update google-cloud-texttospeech to 2.10.0" ([@frenck] - [#66736]) ([google_cloud docs]) +- Use min/max/step from thermostat in Plugwise ([@frenck] - [#66618]) ([plugwise docs]) +- Bump withings-api 2.3.2->2.4.0 ([@nbogojevic] - [#66723]) ([withings docs]) +- Add Python 3.10 to CI ([@frenck] - [#59729]) (breaking-change) +- Fix trigger of full CI on dependency bumps ([@frenck] - [#66738]) +- Plugwise: Update fixtures ([@CoMPaTech] - [#66749]) ([plugwise docs]) +- Remove ThreadPoolExecutor `shutdown` backport ([@cdce8p] - [#66735]) +- Improve roku play media handling ([@ctalkington] - [#66429]) ([roku docs]) +- Use pylint disable-next in MQTT ([@emontnemery] - [#66758]) ([mqtt docs]) +- Plugwise update Zigbee addressing fixture data to 64bits ([@CoMPaTech] - [#66761]) ([plugwise docs]) +- Bump holidays to 0.13 ([@bruxy70] - [#66612]) ([workday docs]) +- Remove deprecated way of setting fan preset in Vallox ([@andre-richter] - [#66655]) ([vallox docs]) (breaking-change) +- Fix Twilio webhook content type ([@felipecrs] - [#66561]) ([twilio docs]) +- Add type hints in samsungtv tests ([@epenet] - [#66632]) ([samsungtv docs]) +- Fix samsung mocks ([@epenet] - [#66765]) ([samsungtv docs]) +- Improve `device_automation` typing ([@cdce8p] - [#66621]) ([device_automation docs]) +- Remove use of hass.helpers from MQTT ([@emontnemery] - [#66757]) ([mqtt docs]) +- Ensure lutron caseta imports set the unique id ([@bdraco] - [#66754]) ([lutron_caseta docs]) +- Fix merge conflict resolution error in flux_led ([@bdraco] - [#66775]) ([flux_led docs]) +- Update nest camera tests to use common test fixture ([@allenporter] - [#66192]) ([nest docs]) +- Add type ignore error codes [core] ([@cdce8p] - [#66773]) +- Add type ignore error codes [other] ([@cdce8p] - [#66781]) +- Bump grpcio to 1.44.0 ([@allenporter] - [#66787]) +- Bump zwave-js-server-python to 0.35.0 ([@raman325] - [#66785]) ([zwave_js docs]) (breaking-change) +- Add config flow to MJPEG IP Camera ([@frenck] - [#66607]) ([mjpeg docs]) +- Increase helpers.frame test coverage ([@davet2001] - [#65137]) +- Fix wifi switches name for Fritz ([@chemelli74] - [#66529]) ([fritz docs]) +- Add MQTT diagnostics ([@emontnemery] - [#66730]) ([mqtt docs]) +- Add type ignore error codes [A-L] ([@cdce8p] - [#66778]) +- Add type ignore error codes [N-Z] ([@cdce8p] - [#66779]) ([nest docs]) ([notify docs]) ([tibber docs]) ([tplink docs]) ([norway_air docs]) ([zwave_js docs]) +- Bump docker/login-action from 1.12.0 to 1.13.0 (@dependabot - [#66788]) +- Bump python-songpal dependency to 0.14 ([@rytilahti] - [#66769]) ([songpal docs]) +- Bump pypck to 0.7.14 ([@alengwenus] - [#66794]) +- Add type ignore error codes [recorder] ([@cdce8p] - [#66780]) ([recorder docs]) +- Bump python-miio dependency to 0.5.10 ([@rytilahti] - [#66782]) ([xiaomi_miio docs]) +- Add list to async_delay_save typing ([@ludeeus] - [#66795]) +- Add type ignore error codes [util] ([@cdce8p] - [#66777]) +- Add type ignore error codes [helpers] ([@cdce8p] - [#66776]) +- Correct state restoring for MQTT temperature sensors ([@emontnemery] - [#66741]) ([mqtt docs]) +- Add `workflow_dispatch` ci trigger ([@cdce8p] - [#66697]) +- Improve MQTT device removal ([@emontnemery] - [#66766]) ([mqtt docs]) +- Clean webostv notify ([@MartinHjelmare] - [#66803]) ([webostv docs]) +- Improve cleanup of Google Cast entities ([@emontnemery] - [#66801]) ([cast docs]) +- Add support for removing Google Cast devices ([@emontnemery] - [#66808]) ([cast docs]) +- Small cleanup of MQTT mixins ([@emontnemery] - [#66812]) ([mqtt docs]) +- Add type ignore error codes [last ones] ([@cdce8p] - [#66816]) ([automation docs]) ([sensor docs]) +- Intellifire Diagnostic Sensors ([@jeeftor] - [#66597]) ([intellifire docs]) +- Silence sisyphus chatty logging from dependencies ([@jkeljo] - [#66711]) ([sisyphus docs]) +- Add google_travel_time sensor tests ([@eifinger] - [#66568]) ([google_travel_time docs]) +- Modernize Sleepiq and add new entities ([@kbickar] - [#66336]) ([sleepiq docs]) (new-platform) +- Dependency Bump on Intellifire Lib ([@jeeftor] - [#66814]) ([intellifire docs]) +- Bump hass-nabucasa to 0.53.0 ([@balloob] - [#66826]) ([cloud docs]) +- Add broadlink lb2 support ([@madmat777] - [#63530]) ([broadlink docs]) (noteworthy) +- Downgrade log warning->info for unregistered webhook message ([@frenck] - [#66830]) ([webhook docs]) +- Improve code quality workday ([@gjohansson-ST] - [#66446]) ([workday docs]) +- Add installed apps to samsungtv sources ([@epenet] - [#66752]) ([samsungtv docs]) +- Bump SoCo to 0.26.3 ([@jjlawren] - [#66834]) ([sonos docs]) +- Add support for validating and serializing selectors ([@emontnemery] - [#66565]) +- Add type ignore error codes [auth] ([@cdce8p] - [#66774]) +- Add SleepIQ device type ([@kbickar] - [#66833]) ([sleepiq docs]) +- Bump hass-nabucasa to 0.53.1 ([@balloob] - [#66845]) ([cloud docs]) +- Startup with an emergency self signed cert if the ssl certificate cannot be loaded ([@bdraco] - [#66707]) ([http docs]) +- Validate in split_entity_id ([@balloob] - [#66835]) (breaking-change) +- Create zwave_js ping button at the right time ([@raman325] - [#66848]) ([zwave_js docs]) +- Code enhancements for ISS ([@DurgNomis-drol] - [#66813]) ([iss docs]) +- Add missing hass argument in async_request_config call ([@ludeeus] - [#66864]) ([sabnzbd docs]) +- Don't run pytest CI jobs on push to forks ([@cdce8p] - [#66870]) +- typo fix networrk --> network ([@gregsheremeta] - [#66878]) ([zwave_js docs]) +- Kaiterra type issue ([@AnilDaoud] - [#66867]) ([kaiterra docs]) +- Fix braviatv typing ([@cdce8p] - [#66871]) ([braviatv docs]) +- Fix modbus typing ([@cdce8p] - [#66872]) ([modbus docs]) +- Ensure dhcp can still discover new devices from device trackers ([@bdraco] - [#66822]) ([device_tracker docs]) ([dhcp docs]) +- Fix typo [recorder] ([@cdce8p] - [#66879]) ([recorder docs]) +- Add support for INT8 and UINT8 in Modbus ([@janiversen] - [#66889]) ([modbus docs]) +- Use assignment expressions [K-Z] ([@cdce8p] - [#66881]) +- Use assignment expressions [A-I] ([@cdce8p] - [#66880]) +- Use assignment expressions [other] ([@cdce8p] - [#66882]) +- Fix yeelight config flow ip update and timeout ([@bdraco] - [#66883]) ([yeelight docs]) +- Add Shelly gen2 error sensors ([@thecode] - [#66825]) ([shelly docs]) +- Add Pure Energie integration ([@klaasnicolaas] - [#66846]) ([pure_energie docs]) (new-integration) +- Update srpenergy dependency to 1.3.6 ([@trekie86] - [#66821]) ([srp_energy docs]) +- Create button entities for SleepIQ ([@kbickar] - [#66849]) ([sleepiq docs]) +- Bump pysensibo to 1.0.4 ([@gjohansson-ST] - [#66886]) ([sensibo docs]) +- Fix Mill Gen1 Climate Control ([@jingsno] - [#66899]) ([mill docs]) +- Enable consumable sensors per default for xiaomi_miio vacuums ([@rytilahti] - [#66843]) ([xiaomi_miio docs]) +- Proxy Plex thumbnail images in media browser ([@jjlawren] - [#66702]) ([plex docs]) +- Bump aiodiscover to 1.4.8 ([@bdraco] - [#66892]) ([dhcp docs]) +- Update RSS feed template ([@jt-nti] - [#62966]) ([rss_feed_template docs]) +- Prefix sma sensor name ([@rklomp] - [#65234]) ([sma docs]) +- Bump pysensibo to v1.0.5 ([@gjohansson-ST] - [#66906]) ([sensibo docs]) +- bump total_connect_client to 2022.2.1 ([@austinmroczek] - [#66907]) ([totalconnect docs]) +- Update rokuecp to 0.14.1 ([@ctalkington] - [#66894]) ([roku docs]) +- Add support for WiZ diagnostics ([@bdraco] - [#66817]) ([wiz docs]) +- Update nest climate set_temperature to allow hvac_mode ([@allenporter] - [#66909]) ([nest docs]) +- Remove async_setup_component() from tests ([@janiversen] - [#66905]) ([modbus docs]) +- Add media browser support to dlna_dmr ([@chishm] - [#66425]) ([dlna_dmr docs]) +- Deduplicate code in cast media_player ([@emontnemery] - [#66815]) ([cast docs]) +- Improve zwave_js notification event handling ([@raman325] - [#66790]) ([zwave_js docs]) +- Bump frontend to 20220220.0 ([@balloob] - [#66919]) ([frontend docs]) +- Bump aiogithubapi from 22.2.0 to 22.2.3 ([@ludeeus] - [#66924]) ([github docs]) +- Add service configuration URL for vicare ([@oischinger] - [#66927]) ([vicare docs]) +- Introduce const file in LaMetric ([@frenck] - [#66929]) ([lametric docs]) +- Add zwave_js.event automation trigger ([@raman325] - [#62828]) ([zwave_js docs]) +- Set slave default to 0, as already documented in Modbus ([@janiversen] - [#66921]) ([modbus docs]) +- Use GraphQL for GitHub integration ([@ludeeus] - [#66928]) ([github docs]) +- Enable all GitHub sensors by default ([@ludeeus] - [#66931]) ([github docs]) +- Bump pysensibo to v1.0.6 ([@gjohansson-ST] - [#66930]) ([sensibo docs]) +- Add Latest Tag sensor to GitHub integration ([@ludeeus] - [#66932]) ([github docs]) +- Add discussions sensors to GitHub ([@timmo001] - [#66937]) ([github docs]) +- Avoid accessing hass.data in test_play_media_didl_metadata ([@chishm] - [#66939]) ([dlna_dmr docs]) +- Bump aiowebostv to 0.1.3 ([@thecode] - [#66942]) ([webostv docs]) +- Fix broken aftership sensor after pyaftership 21.11.0 bump ([@dewdropawoo] - [#66855]) ([aftership docs]) +- Update Pure Energie integration ([@klaasnicolaas] - [#66946]) ([pure_energie docs]) +- Bump bimmer_connected to 0.8.11 ([@rikroe] - [#66951]) ([bmw_connected_drive docs]) +- Plugwise bump module version to fix heating-state and OnOff devices ([@CoMPaTech] - [#66936]) ([plugwise docs]) +- Use new enums in vizio tests ([@davet2001] - [#62710]) ([vizio docs]) +- Use hass.add_job in samsungtv ([@epenet] - [#66976]) ([samsungtv docs]) +- Fix typo in const.py ([@julesxxl] - [#66856]) ([version docs]) +- Add WS API for removing a config entry from a device ([@emontnemery] - [#66188]) ([config docs]) +- Bump samsungtvws to 1.7.0 ([@epenet] - [#66978]) ([samsungtv docs]) +- Bump to subarulink 0.4.2 ([@G-Two] - [#66403]) ([subaru docs]) +- Bump greeneye_monitor to v3.0.3 ([@jkeljo] - [#66973]) ([greeneye_monitor docs]) +- Motion blinds add VerticalBlindLeft support ([@starkillerOG] - [#66961]) ([motion_blinds docs]) +- Add support for dual head WiZ devices ([@bdraco] - [#66955]) ([wiz docs]) +- Remove `setup.py` ([@cdce8p] - [#66023]) +- Add aditional sensors for dmaker.airfresh.a1/t2017 to xiaomi_miio ([@Kirmas] - [#66370]) ([xiaomi_miio docs]) +- Allow stream log level to change at runtime ([@uvjustin] - [#66153]) ([stream docs]) +- Add additional WiZ OUIs ([@bdraco] - [#66991]) ([wiz docs]) +- Enable sensors based on wan scenario in Fritz!Tools ([@mib1185] - [#66944]) ([fritz docs]) +- Add Radio Browser integration ([@frenck] - [#66950]) ([radio_browser docs]) (new-integration) +- Fix nina warnings in city states ([@DeerMaximum] - [#65914]) ([nina docs]) (breaking-change) +- Rename manual alarm integrations ([@avee87] - [#66979]) ([manual docs]) ([manual_mqtt docs]) +- Support variables in templates with timeout ([@mdegat01] - [#66990]) ([websocket_api docs]) +- Simplify nest placeholder image loading and share across all cameras ([@allenporter] - [#66580]) ([nest docs]) +- Create LED switches for tplink dimmers ([@rytilahti] - [#66839]) ([tplink docs]) +- Add support for auto target fan state in HomeKit fans ([@bdraco] - [#66383]) ([homekit docs]) +- Refactor tests for modem_callerid ([@tkdrob] - [#59691]) ([modem_callerid docs]) +- Restore states for RFLink binary_sensors ([@javicalle] - [#65716]) ([rflink docs]) +- Deprecate "wanted" sensor in radarr ([@tkdrob] - [#63818]) ([radarr docs]) (breaking-change) +- Cast string back to datetime in Sensor Filter ([@dgomes] - [#65396]) ([filter docs]) +- Allow deleting files from media source ([@balloob] - [#66975]) ([media_source docs]) +- Correct switch verify to handle discret_read in Modbus ([@janiversen] - [#66890]) ([modbus docs]) +- Allow multiread in modbus binary_sensor ([@janiversen] - [#59886]) ([modbus docs]) +- Only set require_restart on config entry reload if its not recoverable ([@bdraco] - [#66994]) ([config docs]) +- Fix binary sensor translations for carbon_monoxide ([@iMicknl] - [#66891]) ([binary_sensor docs]) +- Ensure WiZ can still setup with old firmwares ([@bdraco] - [#66968]) ([wiz docs]) +- Extend Plugwise DeviceInfo ([@frenck] - [#66619]) ([plugwise docs]) +- Enable fallback polling for Sonos microphone binary_sensor ([@jjlawren] - [#66299]) ([sonos docs]) +- Remember user and hub after input in ConfigFlow ([@iMicknl] - [#66608]) ([overkiz docs]) +- Add unique_id to the filter component ([@dgomes] - [#65010]) ([filter docs]) +- Add door and lock status to Renault integration ([@epenet] - [#66698]) ([renault docs]) +- add apparent and reactive power DeviceClass ([@farmio] - [#65938]) ([fronius docs]) +- Implement number platform for Sensibo ([@gjohansson-ST] - [#66898]) ([sensibo docs]) +- Update pyoverkiz to 1.3.6 ([@iMicknl] - [#66997]) ([overkiz docs]) +- Fix Shelly event handling ([@thecode] - [#67000]) ([shelly docs]) +- Add Multi factor authentication support for Sense ([@kbickar] - [#66498]) ([sense docs]) ([emulated_kasa docs]) +- Add sensors for next Picnic deliveries ([@corneyl] - [#66474]) ([picnic docs]) (breaking-change) +- Diferentiate between attr_name and entity_id in Modbus tests ([@janiversen] - [#66999]) ([modbus docs]) +- Additional MQTT light command templates ([@rubenverhoef] - [#63361]) ([mqtt docs]) +- Add dlna_dms integration to support DLNA Digital Media Servers ([@chishm] - [#66437]) ([dlna_dms docs]) (new-integration) +- Improve Vallox filter remaining time sensor ([@slovdahl] - [#66763]) ([vallox docs]) +- Use selectors in Open-Meteo configuration flow ([@frenck] - [#67004]) ([open_meteo docs]) +- Fix MQTT lights tests using `STATE_OFF` ([@mdegat01] - [#67011]) ([mqtt docs]) +- Add diagnostics support to flux_led ([@bdraco] - [#67012]) ([flux_led docs]) +- Cleanup_google_travel_time_tests ([@eifinger] - [#66868]) ([google_travel_time docs]) +- Waze travel time sensor tests ([@eifinger] - [#66558]) ([waze_travel_time docs]) +- google_travel_time: always resolve zones ([@eifinger] - [#66165]) ([google_travel_time docs]) +- waze_travel_time: always resolve zones ([@eifinger] - [#66162]) ([waze_travel_time docs]) +- Allow supported brands in manifests ([@balloob] - [#67015]) +- Bump zwave-js-server-python to 0.35.1 ([@raman325] - [#67014]) ([zwave_js docs]) +- Fix radio browser on Sonos ([@balloob] - [#67017]) ([sonos docs]) +- Add Switch entity to SleepIQ ([@kbickar] - [#66966]) ([sleepiq docs]) (new-platform) +- Bump renault-api to 0.1.9 ([@epenet] - [#67016]) ([renault docs]) +- Add configuration_url to lookin ([@bdraco] - [#67021]) ([lookin docs]) +- Add support for climate fan and oscillate mode to HomeKit ([@bdraco] - [#66463]) ([homekit docs]) +- Add Google Cast groups to device registry ([@emontnemery] - [#66805]) ([cast docs]) +- Add log message when Plex library section not found ([@jjlawren] - [#66820]) ([plex docs]) +- Add service info for upcloud entities ([@scop] - [#61740]) ([upcloud docs]) +- Fix nightly builder ([@frenck] - [#67022]) +- Add the ICAO 24-bit address to the OpenSky sensor events ([@Sjoerdfc] - [#66114]) ([opensky docs]) +- Log error when using zwave_js 'refresh_value' on ping button/node status sensor ([@raman325] - [#66847]) ([zwave_js docs]) +- Bump PySwitchbot to 0.13.3 ([@pascalwinters] - [#67025]) ([switchbot docs]) +- Cleanup Renault tests ([@epenet] - [#67030]) ([renault docs]) +- Bump pysensibo to v1.0.7 ([@gjohansson-ST] - [#67032]) ([sensibo docs]) +- Cleanup after setup.py removal ([@cdce8p] - [#67036]) +- Add Dacia as supported brand to Renault ([@epenet] - [#67029]) ([renault docs]) +- Upgrade pwmled to 1.6.10 ([@cdce8p] - [#67034]) ([rpi_gpio_pwm docs]) +- Deprecate the updater integration ([@ludeeus] - [#67038]) ([updater docs]) ([default_config docs]) (breaking-change) +- Improve code quality moon ([@gjohansson-ST] - [#66461]) ([moon docs]) +- Add mac address as connection for Sensibo devices ([@gjohansson-ST] - [#67035]) ([sensibo docs]) +- Bump pyicloud to 1.0.0 ([@MartinHjelmare] - [#67037]) ([icloud docs]) +- Use length_util conversion ([@eifinger] - [#67049]) ([waze_travel_time docs]) (breaking-change) +- Bump pyuptimerobot to 22.2.0 ([@chemelli74] - [#67041]) ([uptimerobot docs]) +- Use aiopyarr for sonarr ([@ctalkington] - [#65349]) ([sonarr docs]) (breaking-change) +- Add low speed Overkiz cover ([@tetienne] - [#66750]) ([overkiz docs]) +- Expose Samsung wrapper as async ([@epenet] - [#67042]) ([samsungtv docs]) +- Improve code quality for Overkiz integration ([@iMicknl] - [#67060]) ([overkiz docs]) +- Bump aioshelly to 1.0.10 ([@thecode] - [#67056]) ([shelly docs]) +- Add newly discovered samsungtv OUI ([@bdraco] - [#67059]) ([samsungtv docs]) +- Re-org device automations ([@balloob] - [#67064]) ([device_automation docs]) +- Add a new validate config WS command ([@balloob] - [#67057]) ([websocket_api docs]) +- Block peer certs on supervisor ([@balloob] - [#66837]) ([http docs]) +- Add source name to radio browser media source ([@balloob] - [#67077]) ([radio_browser docs]) +- Bump frontend to 20220222.0 ([@balloob] - [#67078]) ([frontend docs]) +- Fix naming of device entities created by Fritz!Tools ([@mib1185] - [#67076]) ([fritz docs]) +- Add (basic) diagnostics support for Hue integration ([@marcelveldt] - [#67074]) ([hue docs]) +- Bump PyOverkiz and improve code quality (late review) ([@iMicknl] - [#67075]) ([overkiz docs]) +- Fix missing uptime sensor in some Fritz scenarios ([@chemelli74] - [#67073]) ([fritz docs]) +- Add diagnostics support to lutron_caseta ([@bdraco] - [#67079]) ([lutron_caseta docs]) +- Add Plex scan_clients button, enable autoscan ([@jjlawren] - [#67055]) ([plex docs]) +- Fritz device_trackers for non mesh devices ([@chemelli74] - [#67006]) ([fritz docs]) +- Improved local media ID handling ([@balloob] - [#67083]) ([media_source docs]) +- Fix type issues [litterrobot] ([@cdce8p] - [#67092]) ([litterrobot docs]) +- Fix type issues [firmata] ([@cdce8p] - [#67093]) ([firmata docs]) +- Use RequestError in tradfri ([@MartinHjelmare] - [#67101]) ([tradfri docs]) +- Deprecate manual MQTT configuration available in config flow ([@emontnemery] - [#66247]) ([mqtt docs]) (breaking-change) +- Track hidden items in media source ([@balloob] - [#67096]) ([media_player docs]) ([media_source docs]) +- Fix type issues [geniushub] ([@cdce8p] - [#67095]) ([geniushub docs]) +- Add suggested area to the Z-Wave.Me integration ([@PoltoS] - [#66986]) ([zwave_me docs]) +- Remove unused attribute [litterrobot] ([@cdce8p] - [#67106]) ([litterrobot docs]) +- Fix type issues [fireservicerota] ([@cdce8p] - [#67094]) ([fireservicerota docs]) +- Add tools to octoprint when the printer comes back online ([@rfleming71] - [#59666]) ([octoprint docs]) +- Add number platform to tolo integration ([@MatthiasLohr] - [#66799]) ([tolo docs]) +- Add timer sensors for TOLO ([@MatthiasLohr] - [#66938]) ([tolo docs]) +- Enable strict typing for powerwall ([@bdraco] - [#65577]) ([powerwall docs]) +- Allow multidict 6.0.2+ to fix ZHA, gTTS and other integrations ([@Kisty] - [#67046]) +- Mqtt improve test coverage ([@jbouwh] - [#66279]) ([mqtt docs]) +- Add MQTT publish ACK timeout test ([@jbouwh] - [#67062]) ([mqtt docs]) +- Revert "Block peer certs on supervisor" ([@frenck] - [#67104]) +- Make type checking pass for deCONZ init, gateway and services ([@Kane610] - [#66054]) ([deconz docs]) +- Bump awesomeversion from 22.1.0 to 22.2.0 ([@ludeeus] - [#67107]) +- Bump pyhaversion from 21.11.1 to 22.02.0 ([@ludeeus] - [#67108]) ([version docs]) +- Bump ZHA quirks to 0.0.67 ([@dmulcahey] - [#67109]) ([zha docs]) +- Improve sonos ConfigFlow registration ([@cdce8p] - [#67110]) ([sonos docs]) +- Deprecate yaml config for fritzbox callmonitor ([@tkdrob] - [#61762]) ([fritzbox_callmonitor docs]) (breaking-change) +- Add Phone Modem call reject button ([@tkdrob] - [#66742]) ([modem_callerid docs]) (breaking-change) +- Add Remote Engine Start status to Renault integration ([@epenet] - [#67028]) ([renault docs]) +- Add homeassistant to partial backup service ([@ludeeus] - [#67117]) ([hassio docs]) +- Fix type issues [mobile_app] ([@cdce8p] - [#67091]) ([mobile_app docs]) +- Refactor Sonos media metadata handling ([@jjlawren] - [#66840]) ([sonos docs]) +- Add Humidifier support to zwave_js ([@EiNSTeiN-] - [#65847]) ([humidifier docs]) ([zwave_js docs]) +- Correctly handle missing mpd albumart ([@patagonaa] - [#66771]) ([mpd docs]) +- Remove effects from WiZ wall dimmer switches ([@bdraco] - [#67097]) ([wiz docs]) +- Mobile app: Drop descriptive emoji name support ([@balloob] - [#67120]) ([mobile_app docs]) +- Import tag ([@epenet] - [#64539]) ([mqtt docs]) ([esphome docs]) +- Cleanup Waze_travel_time_sensor_tests ([@eifinger] - [#67047]) ([waze_travel_time docs]) +- Create greeneye_monitor entities when monitor connects ([@jkeljo] - [#66710]) ([greeneye_monitor docs]) +- Add Nanoleaf Swipe Device Trigger ([@milanmeu] - [#66195]) ([nanoleaf docs]) +- Add support for Atlantic Electrical Heater in Overkiz integration ([@iMicknl] - [#67045]) ([overkiz docs]) (new-platform) +- Fix derivative integration showing unexpected spikes ([@sophof] - [#65528]) ([derivative docs]) +- Add telegram message_tag, disable_notification, parse_mode ([@zvldz] - [#63604]) ([telegram docs]) +- Support setting volume in lg_netcast media_player ([@R0nd] - [#58126]) ([lg_netcast docs]) +- Allow sending telegram stickers from sticker packs ([@flabbamann] - [#57482]) ([telegram_bot docs]) +- Fix missing nina start value ([@DeerMaximum] - [#66869]) ([nina docs]) +- Fix RTS device delays in Overkiz integration ([@iMicknl] - [#67124]) ([overkiz docs]) +- Add mysensors remove device support ([@MartinHjelmare] - [#67128]) ([mysensors docs]) +- Use opt in device removal for rfxtrx ([@elupus] - [#58252]) ([rfxtrx docs]) +- Add zwave_js light support for HSM-200 V1 ([@raman325] - [#67089]) ([zwave_js docs]) (breaking-change) +- Improve Tasmota device removal ([@emontnemery] - [#66811]) ([tasmota docs]) +- Tweak UniFi client tracker ([@Kane610] - [#67129]) ([unifi docs]) +- Improve typing [util.decorator] ([@cdce8p] - [#67087]) +- Update frontend to 20220223.0 ([@bramkragten] - [#67130]) ([frontend docs]) +- Don't try to resolve state if native_value is Null ([@soluga] - [#67134]) ([wolflink docs]) (beta fix) +- Media source to verify domain to avoid KeyError ([@balloob] - [#67137]) ([media_source docs]) (beta fix) +- Fix Sonos radio metadata processing with missing data ([@jjlawren] - [#67141]) ([sonos docs]) (beta fix) +- Fix SQL sensor ([@balloob] - [#67144]) ([sql docs]) (beta fix) +- Allow get_states to recover ([@balloob] - [#67146]) ([websocket_api docs]) (beta fix) +- Use compact encoding for JSON websocket messages ([@bdraco] - [#67148]) ([websocket_api docs]) (beta fix) +- Bump aiopyarr to 22.2.2 ([@tkdrob] - [#67149]) ([sonarr docs]) (beta fix) +- Bump pydexcom to 0.2.3 ([@gagebenne] - [#67152]) ([dexcom docs]) (beta fix) +- SleepIQ Dependency update ([@kbickar] - [#67154]) ([sleepiq docs]) (beta fix) +- Fix MQTT config entry deprecation warnings ([@frenck] - [#67174]) ([mqtt docs]) (beta fix) +- Move camera to after deps for HomeKit ([@bdraco] - [#67190]) ([homekit docs]) (beta fix) +- Fix ElkM1 systems that do not use password authentication ([@bdraco] - [#67194]) ([elkm1 docs]) (beta fix) +- Move media_source to after_deps ([@balloob] - [#67195]) ([nest docs]) ([motioneye docs]) ([dlna_dms docs]) (beta fix) +- Bump aiohue to 4.3.0 ([@balloob] - [#67202]) ([hue docs]) (beta fix) +- 20220224.0 ([@zsarnett] - [#67204]) ([frontend docs]) (beta fix) +- Take Abode camera snapshot before fetching latest image ([@kevdliu] - [#67150]) ([abode docs]) (beta fix) +- Fix Twitch component to use new API ([@Doridian] - [#67153]) ([twitch docs]) (breaking-change) (beta fix) +- Fix nanoleaf white flashing when using scenes ([@martijnvanduijneveldt] - [#67168]) ([nanoleaf docs]) (beta fix) +- Adjust Sonos visibility checks ([@jjlawren] - [#67196]) ([sonos docs]) (beta fix) +- Add media source support to Kodi ([@balloob] - [#67203]) ([kodi docs]) (beta fix) +- Bump the Twinkly dependency to fix the excessive debug output ([@Djelibeybi] - [#67207]) ([twinkly docs]) (beta fix) +- Don't add extra entities for zwave_js controller ([@raman325] - [#67209]) ([zwave_js docs]) (breaking-change) (beta fix) +- Add support for 8-gang switches to Tuya ([@frenck] - [#67218]) ([tuya docs]) (beta fix) +- Move Phone Modem reject call deprecation warning ([@frenck] - [#67223]) ([modem_callerid docs]) (beta fix) +- Fix zwave_js migration luminance sensor ([@MartinHjelmare] - [#67234]) ([zwave_js docs]) (beta fix) +- Adjust serializing resolved media ([@balloob] - [#67240]) ([media_source docs]) (beta fix) +- Add diagnostics to Kostal Plenticore ([@stegm] - [#66435]) ([kostal_plenticore docs]) (beta fix) +- Fix powerwall data incompatibility with energy integration ([@bdraco] - [#67245]) ([powerwall docs]) (breaking-change) (beta fix) +- Improve not shown handling ([@balloob] - [#67247]) ([camera docs]) ([media_source docs]) (beta fix) +- Give Sonos media browse folders Sonos logos to distinguish from media… ([@balloob] - [#67248]) ([sonos docs]) (beta fix) +- Prevent the wrong WiZ device from being used when the IP is a different device ([@bdraco] - [#67250]) ([wiz docs]) (beta fix) +- Kodi/Roku: Add brand logos to brand folders at root level ([@balloob] - [#67251]) ([roku docs]) ([kodi docs]) (beta fix) +- Bump hass-nabucasa to 0.54.0 ([@balloob] - [#67252]) ([cloud docs]) (beta fix) +- Fix camera content type while browsing ([@balloob] - [#67256]) ([camera docs]) (beta fix) +- Kodi: Mark MJPEG cameras using PNGs as incompatible ([@balloob] - [#67257]) ([kodi docs]) (beta fix) +- Fix Doorbird warning if registering favorites fail ([@alandtse] - [#67262]) ([doorbird docs]) (beta fix) +- Re-enable apcupsd ([@pailloM] - [#67264]) ([apcupsd docs]) (beta fix) +- Fix dhcp None hostname ([@MartinHjelmare] - [#67289]) ([dhcp docs]) (beta fix) +- Bump frontend to 20220226.0 ([@balloob] - [#67313]) ([frontend docs]) (beta fix) +- Remove redundant type cast ([@cdce8p] - [#67317]) ([frontend docs]) (beta fix) +- Bump pyoverkiz to 1.3.9 in Overkiz integration ([@iMicknl] - [#67339]) ([overkiz docs]) (beta fix) +- Guard for index error in picnic ([@balloob] - [#67345]) ([picnic docs]) (beta fix) +- Guard for non-string inputs in Alexa ([@balloob] - [#67348]) ([alexa docs]) (beta fix) +- Bump plexapi to 4.10.0 ([@jjlawren] - [#67364]) ([plex docs]) (beta fix) +- Fix race when unsubscribing from MQTT topics ([@emontnemery] - [#67376]) ([mqtt docs]) (beta fix) +- Reduce magic in Sonos error handling fixture ([@jjlawren] - [#67401]) ([sonos docs]) (beta fix) +- Bump zeroconf to 0.38.4 ([@bdraco] - [#67406]) ([zeroconf docs]) (beta fix) +- Partially revert powerwall abs change from #67245 ([@bdraco] - [#67300]) ([powerwall docs]) (beta fix) +- Support disconnected Powerwall configuration ([@jumbledbytes] - [#67325]) ([powerwall docs]) (beta fix) +- Add flipr API error detection and catch it correctly. ([@cnico] - [#67405]) ([flipr docs]) (beta fix) +- Add support for detecting hostname based addresses as internal ([@balloob] - [#67407]) (beta fix) +- Restore children media class ([@balloob] - [#67409]) ([media_player docs]) ([cast docs]) ([dlna_dmr docs]) ([motioneye docs]) ([dlna_dms docs]) (beta fix) +- Avoid creating wiring select for Magic Home if its not supported ([@bdraco] - [#67417]) ([flux_led docs]) (beta fix) +- CONF_SLAVE do not have default 0 in a validator ([@janiversen] - [#67418]) ([modbus docs]) (beta fix) +- Correct selector for remote integration line 50 ([@JeroenTuinstra] - [#67432]) ([remote docs]) (beta fix) +- Bump python-songpal to 0.14.1 ([@rytilahti] - [#67435]) ([songpal docs]) (beta fix) +- Fix CO2Signal having unknown data ([@frenck] - [#67453]) ([co2signal docs]) (beta fix) +- Bump frontend to 20220301.0 ([@balloob] - [#67457]) ([frontend docs]) (beta fix) +- Add missing temperature sensor for Shelly Motion2 ([@chemelli74] - [#67458]) ([shelly docs]) (beta fix) +- Improve mobile_app key handling ([@emontnemery] - [#67429]) ([mobile_app docs]) (beta fix) +- Rfxtrx correct overzealous type checking ([@elupus] - [#67437]) ([rfxtrx docs]) (beta fix) +- Improve binary sensor group when member is unknown or unavailable ([@emontnemery] - [#67468]) ([group docs]) (breaking-change) (beta fix) +- Bump to aiohomekit 0.7.15 ([@Jc2k] - [#67470]) ([homekit_controller docs]) (beta fix) +- Remove Ecobee homekit vendor extensions that just don't work ([@Jc2k] - [#67474]) ([homekit_controller docs]) (breaking-change) (beta fix) +- Sort DMS results using only criteria supported by the device ([@chishm] - [#67475]) ([dlna_dms docs]) (beta fix) +- Bump aioshelly to 1.0.11 ([@thecode] - [#67476]) ([shelly docs]) (beta fix) +- Address late review of flipr ([@cnico] - [#67477]) ([flipr docs]) (beta fix) +- Add guard radio browser media source ([@balloob] - [#67486]) ([radio_browser docs]) (beta fix) +- Don't trigger device removal for non rfxtrx devices ([@elupus] - [#67315]) ([rfxtrx docs]) (beta fix) +- Bump docker/login-action from 1.13.0 to 1.14.0 (@dependabot - [#67416]) (beta fix) +- Bump docker/login-action from 1.14.0 to 1.14.1 (@dependabot - [#67462]) (beta fix) +- Split meta image creation ([@ludeeus] - [#67480]) (beta fix) +- Set fail-fast to false for meta container ([@ludeeus] - [#67484]) (beta fix) + + +[#42771]: https://github.com/home-assistant/core/pull/42771 +[#44779]: https://github.com/home-assistant/core/pull/44779 +[#57482]: https://github.com/home-assistant/core/pull/57482 +[#58126]: https://github.com/home-assistant/core/pull/58126 +[#58252]: https://github.com/home-assistant/core/pull/58252 +[#59666]: https://github.com/home-assistant/core/pull/59666 +[#59691]: https://github.com/home-assistant/core/pull/59691 +[#59729]: https://github.com/home-assistant/core/pull/59729 +[#59769]: https://github.com/home-assistant/core/pull/59769 +[#59886]: https://github.com/home-assistant/core/pull/59886 +[#60914]: https://github.com/home-assistant/core/pull/60914 +[#61740]: https://github.com/home-assistant/core/pull/61740 +[#61762]: https://github.com/home-assistant/core/pull/61762 +[#61996]: https://github.com/home-assistant/core/pull/61996 +[#62710]: https://github.com/home-assistant/core/pull/62710 +[#62828]: https://github.com/home-assistant/core/pull/62828 +[#62892]: https://github.com/home-assistant/core/pull/62892 +[#62938]: https://github.com/home-assistant/core/pull/62938 +[#62966]: https://github.com/home-assistant/core/pull/62966 +[#63339]: https://github.com/home-assistant/core/pull/63339 +[#63361]: https://github.com/home-assistant/core/pull/63361 +[#63530]: https://github.com/home-assistant/core/pull/63530 +[#63604]: https://github.com/home-assistant/core/pull/63604 +[#63818]: https://github.com/home-assistant/core/pull/63818 +[#63885]: https://github.com/home-assistant/core/pull/63885 +[#64166]: https://github.com/home-assistant/core/pull/64166 +[#64207]: https://github.com/home-assistant/core/pull/64207 +[#64254]: https://github.com/home-assistant/core/pull/64254 +[#64305]: https://github.com/home-assistant/core/pull/64305 +[#64440]: https://github.com/home-assistant/core/pull/64440 +[#64539]: https://github.com/home-assistant/core/pull/64539 +[#64753]: https://github.com/home-assistant/core/pull/64753 +[#64850]: https://github.com/home-assistant/core/pull/64850 +[#64852]: https://github.com/home-assistant/core/pull/64852 +[#64886]: https://github.com/home-assistant/core/pull/64886 +[#64891]: https://github.com/home-assistant/core/pull/64891 +[#64892]: https://github.com/home-assistant/core/pull/64892 +[#64916]: https://github.com/home-assistant/core/pull/64916 +[#64919]: https://github.com/home-assistant/core/pull/64919 +[#64926]: https://github.com/home-assistant/core/pull/64926 +[#64976]: https://github.com/home-assistant/core/pull/64976 +[#64987]: https://github.com/home-assistant/core/pull/64987 +[#64996]: https://github.com/home-assistant/core/pull/64996 +[#65010]: https://github.com/home-assistant/core/pull/65010 +[#65012]: https://github.com/home-assistant/core/pull/65012 +[#65023]: https://github.com/home-assistant/core/pull/65023 +[#65024]: https://github.com/home-assistant/core/pull/65024 +[#65032]: https://github.com/home-assistant/core/pull/65032 +[#65036]: https://github.com/home-assistant/core/pull/65036 +[#65043]: https://github.com/home-assistant/core/pull/65043 +[#65051]: https://github.com/home-assistant/core/pull/65051 +[#65052]: https://github.com/home-assistant/core/pull/65052 +[#65053]: https://github.com/home-assistant/core/pull/65053 +[#65067]: https://github.com/home-assistant/core/pull/65067 +[#65070]: https://github.com/home-assistant/core/pull/65070 +[#65077]: https://github.com/home-assistant/core/pull/65077 +[#65081]: https://github.com/home-assistant/core/pull/65081 +[#65083]: https://github.com/home-assistant/core/pull/65083 +[#65085]: https://github.com/home-assistant/core/pull/65085 +[#65087]: https://github.com/home-assistant/core/pull/65087 +[#65089]: https://github.com/home-assistant/core/pull/65089 +[#65092]: https://github.com/home-assistant/core/pull/65092 +[#65113]: https://github.com/home-assistant/core/pull/65113 +[#65126]: https://github.com/home-assistant/core/pull/65126 +[#65137]: https://github.com/home-assistant/core/pull/65137 +[#65142]: https://github.com/home-assistant/core/pull/65142 +[#65143]: https://github.com/home-assistant/core/pull/65143 +[#65156]: https://github.com/home-assistant/core/pull/65156 +[#65157]: https://github.com/home-assistant/core/pull/65157 +[#65168]: https://github.com/home-assistant/core/pull/65168 +[#65180]: https://github.com/home-assistant/core/pull/65180 +[#65183]: https://github.com/home-assistant/core/pull/65183 +[#65193]: https://github.com/home-assistant/core/pull/65193 +[#65204]: https://github.com/home-assistant/core/pull/65204 +[#65205]: https://github.com/home-assistant/core/pull/65205 +[#65215]: https://github.com/home-assistant/core/pull/65215 +[#65218]: https://github.com/home-assistant/core/pull/65218 +[#65223]: https://github.com/home-assistant/core/pull/65223 +[#65226]: https://github.com/home-assistant/core/pull/65226 +[#65227]: https://github.com/home-assistant/core/pull/65227 +[#65228]: https://github.com/home-assistant/core/pull/65228 +[#65230]: https://github.com/home-assistant/core/pull/65230 +[#65231]: https://github.com/home-assistant/core/pull/65231 +[#65234]: https://github.com/home-assistant/core/pull/65234 +[#65238]: https://github.com/home-assistant/core/pull/65238 +[#65239]: https://github.com/home-assistant/core/pull/65239 +[#65240]: https://github.com/home-assistant/core/pull/65240 +[#65244]: https://github.com/home-assistant/core/pull/65244 +[#65248]: https://github.com/home-assistant/core/pull/65248 +[#65251]: https://github.com/home-assistant/core/pull/65251 +[#65255]: https://github.com/home-assistant/core/pull/65255 +[#65256]: https://github.com/home-assistant/core/pull/65256 +[#65257]: https://github.com/home-assistant/core/pull/65257 +[#65258]: https://github.com/home-assistant/core/pull/65258 +[#65259]: https://github.com/home-assistant/core/pull/65259 +[#65260]: https://github.com/home-assistant/core/pull/65260 +[#65261]: https://github.com/home-assistant/core/pull/65261 +[#65266]: https://github.com/home-assistant/core/pull/65266 +[#65268]: https://github.com/home-assistant/core/pull/65268 +[#65270]: https://github.com/home-assistant/core/pull/65270 +[#65272]: https://github.com/home-assistant/core/pull/65272 +[#65276]: https://github.com/home-assistant/core/pull/65276 +[#65280]: https://github.com/home-assistant/core/pull/65280 +[#65283]: https://github.com/home-assistant/core/pull/65283 +[#65284]: https://github.com/home-assistant/core/pull/65284 +[#65291]: https://github.com/home-assistant/core/pull/65291 +[#65294]: https://github.com/home-assistant/core/pull/65294 +[#65295]: https://github.com/home-assistant/core/pull/65295 +[#65298]: https://github.com/home-assistant/core/pull/65298 +[#65300]: https://github.com/home-assistant/core/pull/65300 +[#65301]: https://github.com/home-assistant/core/pull/65301 +[#65302]: https://github.com/home-assistant/core/pull/65302 +[#65303]: https://github.com/home-assistant/core/pull/65303 +[#65308]: https://github.com/home-assistant/core/pull/65308 +[#65311]: https://github.com/home-assistant/core/pull/65311 +[#65321]: https://github.com/home-assistant/core/pull/65321 +[#65329]: https://github.com/home-assistant/core/pull/65329 +[#65330]: https://github.com/home-assistant/core/pull/65330 +[#65333]: https://github.com/home-assistant/core/pull/65333 +[#65338]: https://github.com/home-assistant/core/pull/65338 +[#65343]: https://github.com/home-assistant/core/pull/65343 +[#65349]: https://github.com/home-assistant/core/pull/65349 +[#65353]: https://github.com/home-assistant/core/pull/65353 +[#65358]: https://github.com/home-assistant/core/pull/65358 +[#65365]: https://github.com/home-assistant/core/pull/65365 +[#65368]: https://github.com/home-assistant/core/pull/65368 +[#65396]: https://github.com/home-assistant/core/pull/65396 +[#65398]: https://github.com/home-assistant/core/pull/65398 +[#65401]: https://github.com/home-assistant/core/pull/65401 +[#65408]: https://github.com/home-assistant/core/pull/65408 +[#65410]: https://github.com/home-assistant/core/pull/65410 +[#65411]: https://github.com/home-assistant/core/pull/65411 +[#65412]: https://github.com/home-assistant/core/pull/65412 +[#65413]: https://github.com/home-assistant/core/pull/65413 +[#65414]: https://github.com/home-assistant/core/pull/65414 +[#65415]: https://github.com/home-assistant/core/pull/65415 +[#65416]: https://github.com/home-assistant/core/pull/65416 +[#65419]: https://github.com/home-assistant/core/pull/65419 +[#65421]: https://github.com/home-assistant/core/pull/65421 +[#65423]: https://github.com/home-assistant/core/pull/65423 +[#65426]: https://github.com/home-assistant/core/pull/65426 +[#65430]: https://github.com/home-assistant/core/pull/65430 +[#65433]: https://github.com/home-assistant/core/pull/65433 +[#65436]: https://github.com/home-assistant/core/pull/65436 +[#65439]: https://github.com/home-assistant/core/pull/65439 +[#65441]: https://github.com/home-assistant/core/pull/65441 +[#65456]: https://github.com/home-assistant/core/pull/65456 +[#65462]: https://github.com/home-assistant/core/pull/65462 +[#65465]: https://github.com/home-assistant/core/pull/65465 +[#65466]: https://github.com/home-assistant/core/pull/65466 +[#65473]: https://github.com/home-assistant/core/pull/65473 +[#65483]: https://github.com/home-assistant/core/pull/65483 +[#65484]: https://github.com/home-assistant/core/pull/65484 +[#65493]: https://github.com/home-assistant/core/pull/65493 +[#65496]: https://github.com/home-assistant/core/pull/65496 +[#65501]: https://github.com/home-assistant/core/pull/65501 +[#65503]: https://github.com/home-assistant/core/pull/65503 +[#65506]: https://github.com/home-assistant/core/pull/65506 +[#65508]: https://github.com/home-assistant/core/pull/65508 +[#65515]: https://github.com/home-assistant/core/pull/65515 +[#65518]: https://github.com/home-assistant/core/pull/65518 +[#65528]: https://github.com/home-assistant/core/pull/65528 +[#65550]: https://github.com/home-assistant/core/pull/65550 +[#65577]: https://github.com/home-assistant/core/pull/65577 +[#65605]: https://github.com/home-assistant/core/pull/65605 +[#65623]: https://github.com/home-assistant/core/pull/65623 +[#65631]: https://github.com/home-assistant/core/pull/65631 +[#65645]: https://github.com/home-assistant/core/pull/65645 +[#65648]: https://github.com/home-assistant/core/pull/65648 +[#65649]: https://github.com/home-assistant/core/pull/65649 +[#65657]: https://github.com/home-assistant/core/pull/65657 +[#65664]: https://github.com/home-assistant/core/pull/65664 +[#65686]: https://github.com/home-assistant/core/pull/65686 +[#65693]: https://github.com/home-assistant/core/pull/65693 +[#65700]: https://github.com/home-assistant/core/pull/65700 +[#65705]: https://github.com/home-assistant/core/pull/65705 +[#65706]: https://github.com/home-assistant/core/pull/65706 +[#65707]: https://github.com/home-assistant/core/pull/65707 +[#65715]: https://github.com/home-assistant/core/pull/65715 +[#65716]: https://github.com/home-assistant/core/pull/65716 +[#65718]: https://github.com/home-assistant/core/pull/65718 +[#65722]: https://github.com/home-assistant/core/pull/65722 +[#65732]: https://github.com/home-assistant/core/pull/65732 +[#65734]: https://github.com/home-assistant/core/pull/65734 +[#65738]: https://github.com/home-assistant/core/pull/65738 +[#65741]: https://github.com/home-assistant/core/pull/65741 +[#65744]: https://github.com/home-assistant/core/pull/65744 +[#65746]: https://github.com/home-assistant/core/pull/65746 +[#65750]: https://github.com/home-assistant/core/pull/65750 +[#65752]: https://github.com/home-assistant/core/pull/65752 +[#65754]: https://github.com/home-assistant/core/pull/65754 +[#65755]: https://github.com/home-assistant/core/pull/65755 +[#65765]: https://github.com/home-assistant/core/pull/65765 +[#65774]: https://github.com/home-assistant/core/pull/65774 +[#65775]: https://github.com/home-assistant/core/pull/65775 +[#65776]: https://github.com/home-assistant/core/pull/65776 +[#65777]: https://github.com/home-assistant/core/pull/65777 +[#65780]: https://github.com/home-assistant/core/pull/65780 +[#65782]: https://github.com/home-assistant/core/pull/65782 +[#65784]: https://github.com/home-assistant/core/pull/65784 +[#65788]: https://github.com/home-assistant/core/pull/65788 +[#65790]: https://github.com/home-assistant/core/pull/65790 +[#65791]: https://github.com/home-assistant/core/pull/65791 +[#65792]: https://github.com/home-assistant/core/pull/65792 +[#65793]: https://github.com/home-assistant/core/pull/65793 +[#65794]: https://github.com/home-assistant/core/pull/65794 +[#65795]: https://github.com/home-assistant/core/pull/65795 +[#65798]: https://github.com/home-assistant/core/pull/65798 +[#65800]: https://github.com/home-assistant/core/pull/65800 +[#65805]: https://github.com/home-assistant/core/pull/65805 +[#65808]: https://github.com/home-assistant/core/pull/65808 +[#65810]: https://github.com/home-assistant/core/pull/65810 +[#65811]: https://github.com/home-assistant/core/pull/65811 +[#65814]: https://github.com/home-assistant/core/pull/65814 +[#65818]: https://github.com/home-assistant/core/pull/65818 +[#65819]: https://github.com/home-assistant/core/pull/65819 +[#65821]: https://github.com/home-assistant/core/pull/65821 +[#65822]: https://github.com/home-assistant/core/pull/65822 +[#65826]: https://github.com/home-assistant/core/pull/65826 +[#65830]: https://github.com/home-assistant/core/pull/65830 +[#65839]: https://github.com/home-assistant/core/pull/65839 +[#65842]: https://github.com/home-assistant/core/pull/65842 +[#65844]: https://github.com/home-assistant/core/pull/65844 +[#65845]: https://github.com/home-assistant/core/pull/65845 +[#65847]: https://github.com/home-assistant/core/pull/65847 +[#65851]: https://github.com/home-assistant/core/pull/65851 +[#65860]: https://github.com/home-assistant/core/pull/65860 +[#65877]: https://github.com/home-assistant/core/pull/65877 +[#65887]: https://github.com/home-assistant/core/pull/65887 +[#65893]: https://github.com/home-assistant/core/pull/65893 +[#65895]: https://github.com/home-assistant/core/pull/65895 +[#65898]: https://github.com/home-assistant/core/pull/65898 +[#65904]: https://github.com/home-assistant/core/pull/65904 +[#65911]: https://github.com/home-assistant/core/pull/65911 +[#65914]: https://github.com/home-assistant/core/pull/65914 +[#65915]: https://github.com/home-assistant/core/pull/65915 +[#65918]: https://github.com/home-assistant/core/pull/65918 +[#65922]: https://github.com/home-assistant/core/pull/65922 +[#65930]: https://github.com/home-assistant/core/pull/65930 +[#65933]: https://github.com/home-assistant/core/pull/65933 +[#65938]: https://github.com/home-assistant/core/pull/65938 +[#65949]: https://github.com/home-assistant/core/pull/65949 +[#65950]: https://github.com/home-assistant/core/pull/65950 +[#65951]: https://github.com/home-assistant/core/pull/65951 +[#65953]: https://github.com/home-assistant/core/pull/65953 +[#65958]: https://github.com/home-assistant/core/pull/65958 +[#65962]: https://github.com/home-assistant/core/pull/65962 +[#65964]: https://github.com/home-assistant/core/pull/65964 +[#65967]: https://github.com/home-assistant/core/pull/65967 +[#65970]: https://github.com/home-assistant/core/pull/65970 +[#65973]: https://github.com/home-assistant/core/pull/65973 +[#65974]: https://github.com/home-assistant/core/pull/65974 +[#65977]: https://github.com/home-assistant/core/pull/65977 +[#65981]: https://github.com/home-assistant/core/pull/65981 +[#65982]: https://github.com/home-assistant/core/pull/65982 +[#65985]: https://github.com/home-assistant/core/pull/65985 +[#65987]: https://github.com/home-assistant/core/pull/65987 +[#65989]: https://github.com/home-assistant/core/pull/65989 +[#65990]: https://github.com/home-assistant/core/pull/65990 +[#65993]: https://github.com/home-assistant/core/pull/65993 +[#65997]: https://github.com/home-assistant/core/pull/65997 +[#66008]: https://github.com/home-assistant/core/pull/66008 +[#66017]: https://github.com/home-assistant/core/pull/66017 +[#66023]: https://github.com/home-assistant/core/pull/66023 +[#66030]: https://github.com/home-assistant/core/pull/66030 +[#66033]: https://github.com/home-assistant/core/pull/66033 +[#66039]: https://github.com/home-assistant/core/pull/66039 +[#66044]: https://github.com/home-assistant/core/pull/66044 +[#66046]: https://github.com/home-assistant/core/pull/66046 +[#66047]: https://github.com/home-assistant/core/pull/66047 +[#66054]: https://github.com/home-assistant/core/pull/66054 +[#66055]: https://github.com/home-assistant/core/pull/66055 +[#66061]: https://github.com/home-assistant/core/pull/66061 +[#66062]: https://github.com/home-assistant/core/pull/66062 +[#66068]: https://github.com/home-assistant/core/pull/66068 +[#66069]: https://github.com/home-assistant/core/pull/66069 +[#66074]: https://github.com/home-assistant/core/pull/66074 +[#66076]: https://github.com/home-assistant/core/pull/66076 +[#66078]: https://github.com/home-assistant/core/pull/66078 +[#66079]: https://github.com/home-assistant/core/pull/66079 +[#66080]: https://github.com/home-assistant/core/pull/66080 +[#66081]: https://github.com/home-assistant/core/pull/66081 +[#66082]: https://github.com/home-assistant/core/pull/66082 +[#66086]: https://github.com/home-assistant/core/pull/66086 +[#66087]: https://github.com/home-assistant/core/pull/66087 +[#66088]: https://github.com/home-assistant/core/pull/66088 +[#66092]: https://github.com/home-assistant/core/pull/66092 +[#66093]: https://github.com/home-assistant/core/pull/66093 +[#66094]: https://github.com/home-assistant/core/pull/66094 +[#66095]: https://github.com/home-assistant/core/pull/66095 +[#66096]: https://github.com/home-assistant/core/pull/66096 +[#66105]: https://github.com/home-assistant/core/pull/66105 +[#66109]: https://github.com/home-assistant/core/pull/66109 +[#66114]: https://github.com/home-assistant/core/pull/66114 +[#66116]: https://github.com/home-assistant/core/pull/66116 +[#66117]: https://github.com/home-assistant/core/pull/66117 +[#66120]: https://github.com/home-assistant/core/pull/66120 +[#66122]: https://github.com/home-assistant/core/pull/66122 +[#66123]: https://github.com/home-assistant/core/pull/66123 +[#66129]: https://github.com/home-assistant/core/pull/66129 +[#66133]: https://github.com/home-assistant/core/pull/66133 +[#66142]: https://github.com/home-assistant/core/pull/66142 +[#66143]: https://github.com/home-assistant/core/pull/66143 +[#66144]: https://github.com/home-assistant/core/pull/66144 +[#66148]: https://github.com/home-assistant/core/pull/66148 +[#66151]: https://github.com/home-assistant/core/pull/66151 +[#66152]: https://github.com/home-assistant/core/pull/66152 +[#66153]: https://github.com/home-assistant/core/pull/66153 +[#66156]: https://github.com/home-assistant/core/pull/66156 +[#66159]: https://github.com/home-assistant/core/pull/66159 +[#66160]: https://github.com/home-assistant/core/pull/66160 +[#66162]: https://github.com/home-assistant/core/pull/66162 +[#66165]: https://github.com/home-assistant/core/pull/66165 +[#66174]: https://github.com/home-assistant/core/pull/66174 +[#66175]: https://github.com/home-assistant/core/pull/66175 +[#66187]: https://github.com/home-assistant/core/pull/66187 +[#66188]: https://github.com/home-assistant/core/pull/66188 +[#66192]: https://github.com/home-assistant/core/pull/66192 +[#66193]: https://github.com/home-assistant/core/pull/66193 +[#66195]: https://github.com/home-assistant/core/pull/66195 +[#66196]: https://github.com/home-assistant/core/pull/66196 +[#66197]: https://github.com/home-assistant/core/pull/66197 +[#66201]: https://github.com/home-assistant/core/pull/66201 +[#66202]: https://github.com/home-assistant/core/pull/66202 +[#66204]: https://github.com/home-assistant/core/pull/66204 +[#66207]: https://github.com/home-assistant/core/pull/66207 +[#66210]: https://github.com/home-assistant/core/pull/66210 +[#66212]: https://github.com/home-assistant/core/pull/66212 +[#66214]: https://github.com/home-assistant/core/pull/66214 +[#66215]: https://github.com/home-assistant/core/pull/66215 +[#66218]: https://github.com/home-assistant/core/pull/66218 +[#66219]: https://github.com/home-assistant/core/pull/66219 +[#66221]: https://github.com/home-assistant/core/pull/66221 +[#66222]: https://github.com/home-assistant/core/pull/66222 +[#66231]: https://github.com/home-assistant/core/pull/66231 +[#66233]: https://github.com/home-assistant/core/pull/66233 +[#66237]: https://github.com/home-assistant/core/pull/66237 +[#66247]: https://github.com/home-assistant/core/pull/66247 +[#66248]: https://github.com/home-assistant/core/pull/66248 +[#66249]: https://github.com/home-assistant/core/pull/66249 +[#66254]: https://github.com/home-assistant/core/pull/66254 +[#66255]: https://github.com/home-assistant/core/pull/66255 +[#66256]: https://github.com/home-assistant/core/pull/66256 +[#66257]: https://github.com/home-assistant/core/pull/66257 +[#66259]: https://github.com/home-assistant/core/pull/66259 +[#66261]: https://github.com/home-assistant/core/pull/66261 +[#66268]: https://github.com/home-assistant/core/pull/66268 +[#66271]: https://github.com/home-assistant/core/pull/66271 +[#66273]: https://github.com/home-assistant/core/pull/66273 +[#66274]: https://github.com/home-assistant/core/pull/66274 +[#66275]: https://github.com/home-assistant/core/pull/66275 +[#66276]: https://github.com/home-assistant/core/pull/66276 +[#66278]: https://github.com/home-assistant/core/pull/66278 +[#66279]: https://github.com/home-assistant/core/pull/66279 +[#66280]: https://github.com/home-assistant/core/pull/66280 +[#66282]: https://github.com/home-assistant/core/pull/66282 +[#66285]: https://github.com/home-assistant/core/pull/66285 +[#66286]: https://github.com/home-assistant/core/pull/66286 +[#66289]: https://github.com/home-assistant/core/pull/66289 +[#66293]: https://github.com/home-assistant/core/pull/66293 +[#66295]: https://github.com/home-assistant/core/pull/66295 +[#66299]: https://github.com/home-assistant/core/pull/66299 +[#66302]: https://github.com/home-assistant/core/pull/66302 +[#66305]: https://github.com/home-assistant/core/pull/66305 +[#66310]: https://github.com/home-assistant/core/pull/66310 +[#66313]: https://github.com/home-assistant/core/pull/66313 +[#66314]: https://github.com/home-assistant/core/pull/66314 +[#66317]: https://github.com/home-assistant/core/pull/66317 +[#66318]: https://github.com/home-assistant/core/pull/66318 +[#66321]: https://github.com/home-assistant/core/pull/66321 +[#66326]: https://github.com/home-assistant/core/pull/66326 +[#66331]: https://github.com/home-assistant/core/pull/66331 +[#66336]: https://github.com/home-assistant/core/pull/66336 +[#66340]: https://github.com/home-assistant/core/pull/66340 +[#66343]: https://github.com/home-assistant/core/pull/66343 +[#66348]: https://github.com/home-assistant/core/pull/66348 +[#66349]: https://github.com/home-assistant/core/pull/66349 +[#66350]: https://github.com/home-assistant/core/pull/66350 +[#66353]: https://github.com/home-assistant/core/pull/66353 +[#66355]: https://github.com/home-assistant/core/pull/66355 +[#66356]: https://github.com/home-assistant/core/pull/66356 +[#66358]: https://github.com/home-assistant/core/pull/66358 +[#66368]: https://github.com/home-assistant/core/pull/66368 +[#66370]: https://github.com/home-assistant/core/pull/66370 +[#66375]: https://github.com/home-assistant/core/pull/66375 +[#66377]: https://github.com/home-assistant/core/pull/66377 +[#66383]: https://github.com/home-assistant/core/pull/66383 +[#66385]: https://github.com/home-assistant/core/pull/66385 +[#66386]: https://github.com/home-assistant/core/pull/66386 +[#66387]: https://github.com/home-assistant/core/pull/66387 +[#66397]: https://github.com/home-assistant/core/pull/66397 +[#66399]: https://github.com/home-assistant/core/pull/66399 +[#66403]: https://github.com/home-assistant/core/pull/66403 +[#66404]: https://github.com/home-assistant/core/pull/66404 +[#66407]: https://github.com/home-assistant/core/pull/66407 +[#66408]: https://github.com/home-assistant/core/pull/66408 +[#66409]: https://github.com/home-assistant/core/pull/66409 +[#66412]: https://github.com/home-assistant/core/pull/66412 +[#66417]: https://github.com/home-assistant/core/pull/66417 +[#66418]: https://github.com/home-assistant/core/pull/66418 +[#66425]: https://github.com/home-assistant/core/pull/66425 +[#66427]: https://github.com/home-assistant/core/pull/66427 +[#66428]: https://github.com/home-assistant/core/pull/66428 +[#66429]: https://github.com/home-assistant/core/pull/66429 +[#66435]: https://github.com/home-assistant/core/pull/66435 +[#66437]: https://github.com/home-assistant/core/pull/66437 +[#66439]: https://github.com/home-assistant/core/pull/66439 +[#66446]: https://github.com/home-assistant/core/pull/66446 +[#66448]: https://github.com/home-assistant/core/pull/66448 +[#66449]: https://github.com/home-assistant/core/pull/66449 +[#66455]: https://github.com/home-assistant/core/pull/66455 +[#66457]: https://github.com/home-assistant/core/pull/66457 +[#66461]: https://github.com/home-assistant/core/pull/66461 +[#66462]: https://github.com/home-assistant/core/pull/66462 +[#66463]: https://github.com/home-assistant/core/pull/66463 +[#66472]: https://github.com/home-assistant/core/pull/66472 +[#66474]: https://github.com/home-assistant/core/pull/66474 +[#66476]: https://github.com/home-assistant/core/pull/66476 +[#66478]: https://github.com/home-assistant/core/pull/66478 +[#66481]: https://github.com/home-assistant/core/pull/66481 +[#66483]: https://github.com/home-assistant/core/pull/66483 +[#66486]: https://github.com/home-assistant/core/pull/66486 +[#66497]: https://github.com/home-assistant/core/pull/66497 +[#66498]: https://github.com/home-assistant/core/pull/66498 +[#66499]: https://github.com/home-assistant/core/pull/66499 +[#66500]: https://github.com/home-assistant/core/pull/66500 +[#66503]: https://github.com/home-assistant/core/pull/66503 +[#66505]: https://github.com/home-assistant/core/pull/66505 +[#66506]: https://github.com/home-assistant/core/pull/66506 +[#66508]: https://github.com/home-assistant/core/pull/66508 +[#66509]: https://github.com/home-assistant/core/pull/66509 +[#66510]: https://github.com/home-assistant/core/pull/66510 +[#66511]: https://github.com/home-assistant/core/pull/66511 +[#66512]: https://github.com/home-assistant/core/pull/66512 +[#66513]: https://github.com/home-assistant/core/pull/66513 +[#66515]: https://github.com/home-assistant/core/pull/66515 +[#66516]: https://github.com/home-assistant/core/pull/66516 +[#66518]: https://github.com/home-assistant/core/pull/66518 +[#66520]: https://github.com/home-assistant/core/pull/66520 +[#66521]: https://github.com/home-assistant/core/pull/66521 +[#66522]: https://github.com/home-assistant/core/pull/66522 +[#66526]: https://github.com/home-assistant/core/pull/66526 +[#66528]: https://github.com/home-assistant/core/pull/66528 +[#66529]: https://github.com/home-assistant/core/pull/66529 +[#66531]: https://github.com/home-assistant/core/pull/66531 +[#66535]: https://github.com/home-assistant/core/pull/66535 +[#66536]: https://github.com/home-assistant/core/pull/66536 +[#66538]: https://github.com/home-assistant/core/pull/66538 +[#66539]: https://github.com/home-assistant/core/pull/66539 +[#66540]: https://github.com/home-assistant/core/pull/66540 +[#66541]: https://github.com/home-assistant/core/pull/66541 +[#66557]: https://github.com/home-assistant/core/pull/66557 +[#66558]: https://github.com/home-assistant/core/pull/66558 +[#66561]: https://github.com/home-assistant/core/pull/66561 +[#66565]: https://github.com/home-assistant/core/pull/66565 +[#66568]: https://github.com/home-assistant/core/pull/66568 +[#66569]: https://github.com/home-assistant/core/pull/66569 +[#66572]: https://github.com/home-assistant/core/pull/66572 +[#66574]: https://github.com/home-assistant/core/pull/66574 +[#66575]: https://github.com/home-assistant/core/pull/66575 +[#66576]: https://github.com/home-assistant/core/pull/66576 +[#66578]: https://github.com/home-assistant/core/pull/66578 +[#66579]: https://github.com/home-assistant/core/pull/66579 +[#66580]: https://github.com/home-assistant/core/pull/66580 +[#66581]: https://github.com/home-assistant/core/pull/66581 +[#66582]: https://github.com/home-assistant/core/pull/66582 +[#66583]: https://github.com/home-assistant/core/pull/66583 +[#66584]: https://github.com/home-assistant/core/pull/66584 +[#66585]: https://github.com/home-assistant/core/pull/66585 +[#66586]: https://github.com/home-assistant/core/pull/66586 +[#66587]: https://github.com/home-assistant/core/pull/66587 +[#66588]: https://github.com/home-assistant/core/pull/66588 +[#66589]: https://github.com/home-assistant/core/pull/66589 +[#66590]: https://github.com/home-assistant/core/pull/66590 +[#66591]: https://github.com/home-assistant/core/pull/66591 +[#66592]: https://github.com/home-assistant/core/pull/66592 +[#66593]: https://github.com/home-assistant/core/pull/66593 +[#66595]: https://github.com/home-assistant/core/pull/66595 +[#66597]: https://github.com/home-assistant/core/pull/66597 +[#66598]: https://github.com/home-assistant/core/pull/66598 +[#66602]: https://github.com/home-assistant/core/pull/66602 +[#66604]: https://github.com/home-assistant/core/pull/66604 +[#66607]: https://github.com/home-assistant/core/pull/66607 +[#66608]: https://github.com/home-assistant/core/pull/66608 +[#66610]: https://github.com/home-assistant/core/pull/66610 +[#66612]: https://github.com/home-assistant/core/pull/66612 +[#66613]: https://github.com/home-assistant/core/pull/66613 +[#66618]: https://github.com/home-assistant/core/pull/66618 +[#66619]: https://github.com/home-assistant/core/pull/66619 +[#66621]: https://github.com/home-assistant/core/pull/66621 +[#66626]: https://github.com/home-assistant/core/pull/66626 +[#66632]: https://github.com/home-assistant/core/pull/66632 +[#66639]: https://github.com/home-assistant/core/pull/66639 +[#66641]: https://github.com/home-assistant/core/pull/66641 +[#66643]: https://github.com/home-assistant/core/pull/66643 +[#66651]: https://github.com/home-assistant/core/pull/66651 +[#66653]: https://github.com/home-assistant/core/pull/66653 +[#66654]: https://github.com/home-assistant/core/pull/66654 +[#66655]: https://github.com/home-assistant/core/pull/66655 +[#66662]: https://github.com/home-assistant/core/pull/66662 +[#66663]: https://github.com/home-assistant/core/pull/66663 +[#66665]: https://github.com/home-assistant/core/pull/66665 +[#66672]: https://github.com/home-assistant/core/pull/66672 +[#66680]: https://github.com/home-assistant/core/pull/66680 +[#66684]: https://github.com/home-assistant/core/pull/66684 +[#66688]: https://github.com/home-assistant/core/pull/66688 +[#66691]: https://github.com/home-assistant/core/pull/66691 +[#66696]: https://github.com/home-assistant/core/pull/66696 +[#66697]: https://github.com/home-assistant/core/pull/66697 +[#66698]: https://github.com/home-assistant/core/pull/66698 +[#66699]: https://github.com/home-assistant/core/pull/66699 +[#66702]: https://github.com/home-assistant/core/pull/66702 +[#66707]: https://github.com/home-assistant/core/pull/66707 +[#66710]: https://github.com/home-assistant/core/pull/66710 +[#66711]: https://github.com/home-assistant/core/pull/66711 +[#66718]: https://github.com/home-assistant/core/pull/66718 +[#66722]: https://github.com/home-assistant/core/pull/66722 +[#66723]: https://github.com/home-assistant/core/pull/66723 +[#66726]: https://github.com/home-assistant/core/pull/66726 +[#66728]: https://github.com/home-assistant/core/pull/66728 +[#66730]: https://github.com/home-assistant/core/pull/66730 +[#66735]: https://github.com/home-assistant/core/pull/66735 +[#66736]: https://github.com/home-assistant/core/pull/66736 +[#66738]: https://github.com/home-assistant/core/pull/66738 +[#66741]: https://github.com/home-assistant/core/pull/66741 +[#66742]: https://github.com/home-assistant/core/pull/66742 +[#66749]: https://github.com/home-assistant/core/pull/66749 +[#66750]: https://github.com/home-assistant/core/pull/66750 +[#66752]: https://github.com/home-assistant/core/pull/66752 +[#66754]: https://github.com/home-assistant/core/pull/66754 +[#66757]: https://github.com/home-assistant/core/pull/66757 +[#66758]: https://github.com/home-assistant/core/pull/66758 +[#66761]: https://github.com/home-assistant/core/pull/66761 +[#66763]: https://github.com/home-assistant/core/pull/66763 +[#66765]: https://github.com/home-assistant/core/pull/66765 +[#66766]: https://github.com/home-assistant/core/pull/66766 +[#66769]: https://github.com/home-assistant/core/pull/66769 +[#66771]: https://github.com/home-assistant/core/pull/66771 +[#66773]: https://github.com/home-assistant/core/pull/66773 +[#66774]: https://github.com/home-assistant/core/pull/66774 +[#66775]: https://github.com/home-assistant/core/pull/66775 +[#66776]: https://github.com/home-assistant/core/pull/66776 +[#66777]: https://github.com/home-assistant/core/pull/66777 +[#66778]: https://github.com/home-assistant/core/pull/66778 +[#66779]: https://github.com/home-assistant/core/pull/66779 +[#66780]: https://github.com/home-assistant/core/pull/66780 +[#66781]: https://github.com/home-assistant/core/pull/66781 +[#66782]: https://github.com/home-assistant/core/pull/66782 +[#66785]: https://github.com/home-assistant/core/pull/66785 +[#66787]: https://github.com/home-assistant/core/pull/66787 +[#66788]: https://github.com/home-assistant/core/pull/66788 +[#66790]: https://github.com/home-assistant/core/pull/66790 +[#66794]: https://github.com/home-assistant/core/pull/66794 +[#66795]: https://github.com/home-assistant/core/pull/66795 +[#66799]: https://github.com/home-assistant/core/pull/66799 +[#66801]: https://github.com/home-assistant/core/pull/66801 +[#66803]: https://github.com/home-assistant/core/pull/66803 +[#66805]: https://github.com/home-assistant/core/pull/66805 +[#66808]: https://github.com/home-assistant/core/pull/66808 +[#66811]: https://github.com/home-assistant/core/pull/66811 +[#66812]: https://github.com/home-assistant/core/pull/66812 +[#66813]: https://github.com/home-assistant/core/pull/66813 +[#66814]: https://github.com/home-assistant/core/pull/66814 +[#66815]: https://github.com/home-assistant/core/pull/66815 +[#66816]: https://github.com/home-assistant/core/pull/66816 +[#66817]: https://github.com/home-assistant/core/pull/66817 +[#66820]: https://github.com/home-assistant/core/pull/66820 +[#66821]: https://github.com/home-assistant/core/pull/66821 +[#66822]: https://github.com/home-assistant/core/pull/66822 +[#66825]: https://github.com/home-assistant/core/pull/66825 +[#66826]: https://github.com/home-assistant/core/pull/66826 +[#66830]: https://github.com/home-assistant/core/pull/66830 +[#66833]: https://github.com/home-assistant/core/pull/66833 +[#66834]: https://github.com/home-assistant/core/pull/66834 +[#66835]: https://github.com/home-assistant/core/pull/66835 +[#66837]: https://github.com/home-assistant/core/pull/66837 +[#66839]: https://github.com/home-assistant/core/pull/66839 +[#66840]: https://github.com/home-assistant/core/pull/66840 +[#66843]: https://github.com/home-assistant/core/pull/66843 +[#66845]: https://github.com/home-assistant/core/pull/66845 +[#66846]: https://github.com/home-assistant/core/pull/66846 +[#66847]: https://github.com/home-assistant/core/pull/66847 +[#66848]: https://github.com/home-assistant/core/pull/66848 +[#66849]: https://github.com/home-assistant/core/pull/66849 +[#66855]: https://github.com/home-assistant/core/pull/66855 +[#66856]: https://github.com/home-assistant/core/pull/66856 +[#66864]: https://github.com/home-assistant/core/pull/66864 +[#66867]: https://github.com/home-assistant/core/pull/66867 +[#66868]: https://github.com/home-assistant/core/pull/66868 +[#66869]: https://github.com/home-assistant/core/pull/66869 +[#66870]: https://github.com/home-assistant/core/pull/66870 +[#66871]: https://github.com/home-assistant/core/pull/66871 +[#66872]: https://github.com/home-assistant/core/pull/66872 +[#66878]: https://github.com/home-assistant/core/pull/66878 +[#66879]: https://github.com/home-assistant/core/pull/66879 +[#66880]: https://github.com/home-assistant/core/pull/66880 +[#66881]: https://github.com/home-assistant/core/pull/66881 +[#66882]: https://github.com/home-assistant/core/pull/66882 +[#66883]: https://github.com/home-assistant/core/pull/66883 +[#66886]: https://github.com/home-assistant/core/pull/66886 +[#66889]: https://github.com/home-assistant/core/pull/66889 +[#66890]: https://github.com/home-assistant/core/pull/66890 +[#66891]: https://github.com/home-assistant/core/pull/66891 +[#66892]: https://github.com/home-assistant/core/pull/66892 +[#66894]: https://github.com/home-assistant/core/pull/66894 +[#66898]: https://github.com/home-assistant/core/pull/66898 +[#66899]: https://github.com/home-assistant/core/pull/66899 +[#66905]: https://github.com/home-assistant/core/pull/66905 +[#66906]: https://github.com/home-assistant/core/pull/66906 +[#66907]: https://github.com/home-assistant/core/pull/66907 +[#66909]: https://github.com/home-assistant/core/pull/66909 +[#66919]: https://github.com/home-assistant/core/pull/66919 +[#66921]: https://github.com/home-assistant/core/pull/66921 +[#66924]: https://github.com/home-assistant/core/pull/66924 +[#66927]: https://github.com/home-assistant/core/pull/66927 +[#66928]: https://github.com/home-assistant/core/pull/66928 +[#66929]: https://github.com/home-assistant/core/pull/66929 +[#66930]: https://github.com/home-assistant/core/pull/66930 +[#66931]: https://github.com/home-assistant/core/pull/66931 +[#66932]: https://github.com/home-assistant/core/pull/66932 +[#66936]: https://github.com/home-assistant/core/pull/66936 +[#66937]: https://github.com/home-assistant/core/pull/66937 +[#66938]: https://github.com/home-assistant/core/pull/66938 +[#66939]: https://github.com/home-assistant/core/pull/66939 +[#66942]: https://github.com/home-assistant/core/pull/66942 +[#66944]: https://github.com/home-assistant/core/pull/66944 +[#66946]: https://github.com/home-assistant/core/pull/66946 +[#66950]: https://github.com/home-assistant/core/pull/66950 +[#66951]: https://github.com/home-assistant/core/pull/66951 +[#66955]: https://github.com/home-assistant/core/pull/66955 +[#66961]: https://github.com/home-assistant/core/pull/66961 +[#66966]: https://github.com/home-assistant/core/pull/66966 +[#66968]: https://github.com/home-assistant/core/pull/66968 +[#66973]: https://github.com/home-assistant/core/pull/66973 +[#66975]: https://github.com/home-assistant/core/pull/66975 +[#66976]: https://github.com/home-assistant/core/pull/66976 +[#66978]: https://github.com/home-assistant/core/pull/66978 +[#66979]: https://github.com/home-assistant/core/pull/66979 +[#66986]: https://github.com/home-assistant/core/pull/66986 +[#66990]: https://github.com/home-assistant/core/pull/66990 +[#66991]: https://github.com/home-assistant/core/pull/66991 +[#66994]: https://github.com/home-assistant/core/pull/66994 +[#66997]: https://github.com/home-assistant/core/pull/66997 +[#66999]: https://github.com/home-assistant/core/pull/66999 +[#67000]: https://github.com/home-assistant/core/pull/67000 +[#67004]: https://github.com/home-assistant/core/pull/67004 +[#67006]: https://github.com/home-assistant/core/pull/67006 +[#67011]: https://github.com/home-assistant/core/pull/67011 +[#67012]: https://github.com/home-assistant/core/pull/67012 +[#67014]: https://github.com/home-assistant/core/pull/67014 +[#67015]: https://github.com/home-assistant/core/pull/67015 +[#67016]: https://github.com/home-assistant/core/pull/67016 +[#67017]: https://github.com/home-assistant/core/pull/67017 +[#67021]: https://github.com/home-assistant/core/pull/67021 +[#67022]: https://github.com/home-assistant/core/pull/67022 +[#67025]: https://github.com/home-assistant/core/pull/67025 +[#67028]: https://github.com/home-assistant/core/pull/67028 +[#67029]: https://github.com/home-assistant/core/pull/67029 +[#67030]: https://github.com/home-assistant/core/pull/67030 +[#67032]: https://github.com/home-assistant/core/pull/67032 +[#67034]: https://github.com/home-assistant/core/pull/67034 +[#67035]: https://github.com/home-assistant/core/pull/67035 +[#67036]: https://github.com/home-assistant/core/pull/67036 +[#67037]: https://github.com/home-assistant/core/pull/67037 +[#67038]: https://github.com/home-assistant/core/pull/67038 +[#67041]: https://github.com/home-assistant/core/pull/67041 +[#67042]: https://github.com/home-assistant/core/pull/67042 +[#67045]: https://github.com/home-assistant/core/pull/67045 +[#67046]: https://github.com/home-assistant/core/pull/67046 +[#67047]: https://github.com/home-assistant/core/pull/67047 +[#67049]: https://github.com/home-assistant/core/pull/67049 +[#67055]: https://github.com/home-assistant/core/pull/67055 +[#67056]: https://github.com/home-assistant/core/pull/67056 +[#67057]: https://github.com/home-assistant/core/pull/67057 +[#67059]: https://github.com/home-assistant/core/pull/67059 +[#67060]: https://github.com/home-assistant/core/pull/67060 +[#67062]: https://github.com/home-assistant/core/pull/67062 +[#67064]: https://github.com/home-assistant/core/pull/67064 +[#67073]: https://github.com/home-assistant/core/pull/67073 +[#67074]: https://github.com/home-assistant/core/pull/67074 +[#67075]: https://github.com/home-assistant/core/pull/67075 +[#67076]: https://github.com/home-assistant/core/pull/67076 +[#67077]: https://github.com/home-assistant/core/pull/67077 +[#67078]: https://github.com/home-assistant/core/pull/67078 +[#67079]: https://github.com/home-assistant/core/pull/67079 +[#67083]: https://github.com/home-assistant/core/pull/67083 +[#67087]: https://github.com/home-assistant/core/pull/67087 +[#67089]: https://github.com/home-assistant/core/pull/67089 +[#67091]: https://github.com/home-assistant/core/pull/67091 +[#67092]: https://github.com/home-assistant/core/pull/67092 +[#67093]: https://github.com/home-assistant/core/pull/67093 +[#67094]: https://github.com/home-assistant/core/pull/67094 +[#67095]: https://github.com/home-assistant/core/pull/67095 +[#67096]: https://github.com/home-assistant/core/pull/67096 +[#67097]: https://github.com/home-assistant/core/pull/67097 +[#67101]: https://github.com/home-assistant/core/pull/67101 +[#67104]: https://github.com/home-assistant/core/pull/67104 +[#67106]: https://github.com/home-assistant/core/pull/67106 +[#67107]: https://github.com/home-assistant/core/pull/67107 +[#67108]: https://github.com/home-assistant/core/pull/67108 +[#67109]: https://github.com/home-assistant/core/pull/67109 +[#67110]: https://github.com/home-assistant/core/pull/67110 +[#67117]: https://github.com/home-assistant/core/pull/67117 +[#67120]: https://github.com/home-assistant/core/pull/67120 +[#67124]: https://github.com/home-assistant/core/pull/67124 +[#67128]: https://github.com/home-assistant/core/pull/67128 +[#67129]: https://github.com/home-assistant/core/pull/67129 +[#67130]: https://github.com/home-assistant/core/pull/67130 +[#67134]: https://github.com/home-assistant/core/pull/67134 +[#67137]: https://github.com/home-assistant/core/pull/67137 +[#67141]: https://github.com/home-assistant/core/pull/67141 +[#67144]: https://github.com/home-assistant/core/pull/67144 +[#67146]: https://github.com/home-assistant/core/pull/67146 +[#67148]: https://github.com/home-assistant/core/pull/67148 +[#67149]: https://github.com/home-assistant/core/pull/67149 +[#67150]: https://github.com/home-assistant/core/pull/67150 +[#67152]: https://github.com/home-assistant/core/pull/67152 +[#67153]: https://github.com/home-assistant/core/pull/67153 +[#67154]: https://github.com/home-assistant/core/pull/67154 +[#67168]: https://github.com/home-assistant/core/pull/67168 +[#67174]: https://github.com/home-assistant/core/pull/67174 +[#67190]: https://github.com/home-assistant/core/pull/67190 +[#67194]: https://github.com/home-assistant/core/pull/67194 +[#67195]: https://github.com/home-assistant/core/pull/67195 +[#67196]: https://github.com/home-assistant/core/pull/67196 +[#67202]: https://github.com/home-assistant/core/pull/67202 +[#67203]: https://github.com/home-assistant/core/pull/67203 +[#67204]: https://github.com/home-assistant/core/pull/67204 +[#67207]: https://github.com/home-assistant/core/pull/67207 +[#67209]: https://github.com/home-assistant/core/pull/67209 +[#67218]: https://github.com/home-assistant/core/pull/67218 +[#67223]: https://github.com/home-assistant/core/pull/67223 +[#67234]: https://github.com/home-assistant/core/pull/67234 +[#67240]: https://github.com/home-assistant/core/pull/67240 +[#67245]: https://github.com/home-assistant/core/pull/67245 +[#67247]: https://github.com/home-assistant/core/pull/67247 +[#67248]: https://github.com/home-assistant/core/pull/67248 +[#67250]: https://github.com/home-assistant/core/pull/67250 +[#67251]: https://github.com/home-assistant/core/pull/67251 +[#67252]: https://github.com/home-assistant/core/pull/67252 +[#67256]: https://github.com/home-assistant/core/pull/67256 +[#67257]: https://github.com/home-assistant/core/pull/67257 +[#67262]: https://github.com/home-assistant/core/pull/67262 +[#67264]: https://github.com/home-assistant/core/pull/67264 +[#67289]: https://github.com/home-assistant/core/pull/67289 +[#67300]: https://github.com/home-assistant/core/pull/67300 +[#67313]: https://github.com/home-assistant/core/pull/67313 +[#67315]: https://github.com/home-assistant/core/pull/67315 +[#67317]: https://github.com/home-assistant/core/pull/67317 +[#67325]: https://github.com/home-assistant/core/pull/67325 +[#67339]: https://github.com/home-assistant/core/pull/67339 +[#67345]: https://github.com/home-assistant/core/pull/67345 +[#67348]: https://github.com/home-assistant/core/pull/67348 +[#67364]: https://github.com/home-assistant/core/pull/67364 +[#67376]: https://github.com/home-assistant/core/pull/67376 +[#67401]: https://github.com/home-assistant/core/pull/67401 +[#67405]: https://github.com/home-assistant/core/pull/67405 +[#67406]: https://github.com/home-assistant/core/pull/67406 +[#67407]: https://github.com/home-assistant/core/pull/67407 +[#67409]: https://github.com/home-assistant/core/pull/67409 +[#67416]: https://github.com/home-assistant/core/pull/67416 +[#67417]: https://github.com/home-assistant/core/pull/67417 +[#67418]: https://github.com/home-assistant/core/pull/67418 +[#67429]: https://github.com/home-assistant/core/pull/67429 +[#67432]: https://github.com/home-assistant/core/pull/67432 +[#67435]: https://github.com/home-assistant/core/pull/67435 +[#67437]: https://github.com/home-assistant/core/pull/67437 +[#67453]: https://github.com/home-assistant/core/pull/67453 +[#67457]: https://github.com/home-assistant/core/pull/67457 +[#67458]: https://github.com/home-assistant/core/pull/67458 +[#67462]: https://github.com/home-assistant/core/pull/67462 +[#67468]: https://github.com/home-assistant/core/pull/67468 +[#67470]: https://github.com/home-assistant/core/pull/67470 +[#67474]: https://github.com/home-assistant/core/pull/67474 +[#67475]: https://github.com/home-assistant/core/pull/67475 +[#67476]: https://github.com/home-assistant/core/pull/67476 +[#67477]: https://github.com/home-assistant/core/pull/67477 +[#67480]: https://github.com/home-assistant/core/pull/67480 +[#67484]: https://github.com/home-assistant/core/pull/67484 +[#67486]: https://github.com/home-assistant/core/pull/67486 +[@AnilDaoud]: https://github.com/AnilDaoud +[@Bre77]: https://github.com/Bre77 +[@Cereal2nd]: https://github.com/Cereal2nd +[@CoMPaTech]: https://github.com/CoMPaTech +[@DCSBL]: https://github.com/DCSBL +[@Danielhiversen]: https://github.com/Danielhiversen +[@DeerMaximum]: https://github.com/DeerMaximum +[@Djelibeybi]: https://github.com/Djelibeybi +[@Doridian]: https://github.com/Doridian +[@DurgNomis-drol]: https://github.com/DurgNomis-drol +[@EiNSTeiN-]: https://github.com/EiNSTeiN- +[@EtienneMD]: https://github.com/EtienneMD +[@Flameeyes]: https://github.com/Flameeyes +[@G-Two]: https://github.com/G-Two +[@Jc2k]: https://github.com/Jc2k +[@JeroenTuinstra]: https://github.com/JeroenTuinstra +[@Kane610]: https://github.com/Kane610 +[@Kirmas]: https://github.com/Kirmas +[@Kisty]: https://github.com/Kisty +[@LEJOUI]: https://github.com/LEJOUI +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatthiasLohr]: https://github.com/MatthiasLohr +[@PanicRide]: https://github.com/PanicRide +[@PoltoS]: https://github.com/PoltoS +[@R0nd]: https://github.com/R0nd +[@Sander0542]: https://github.com/Sander0542 +[@Sanderhuisman]: https://github.com/Sanderhuisman +[@Sjoerdfc]: https://github.com/Sjoerdfc +[@StephanU]: https://github.com/StephanU +[@Tigger2014]: https://github.com/Tigger2014 +[@agners]: https://github.com/agners +[@ajschmidt8]: https://github.com/ajschmidt8 +[@alandtse]: https://github.com/alandtse +[@alengwenus]: https://github.com/alengwenus +[@alexyao2015]: https://github.com/alexyao2015 +[@alim4r]: https://github.com/alim4r +[@allenporter]: https://github.com/allenporter +[@amelchio]: https://github.com/amelchio +[@amosyuen]: https://github.com/amosyuen +[@andre-richter]: https://github.com/andre-richter +[@austinmroczek]: https://github.com/austinmroczek +[@avee87]: https://github.com/avee87 +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@barche]: https://github.com/barche +[@bdraco]: https://github.com/bdraco +[@bramkragten]: https://github.com/bramkragten +[@bruxy70]: https://github.com/bruxy70 +[@cdce8p]: https://github.com/cdce8p +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@chishm]: https://github.com/chishm +[@cnico]: https://github.com/cnico +[@corneyl]: https://github.com/corneyl +[@ctalkington]: https://github.com/ctalkington +[@davet2001]: https://github.com/davet2001 +[@dewdropawoo]: https://github.com/dewdropawoo +[@dgomes]: https://github.com/dgomes +[@dingusdk]: https://github.com/dingusdk +[@dmcc]: https://github.com/dmcc +[@dmulcahey]: https://github.com/dmulcahey +[@doudz]: https://github.com/doudz +[@dougiteixeira]: https://github.com/dougiteixeira +[@eavanvalkenburg]: https://github.com/eavanvalkenburg +[@eifinger]: https://github.com/eifinger +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@fOmey]: https://github.com/fOmey +[@farmio]: https://github.com/farmio +[@felipecrs]: https://github.com/felipecrs +[@flabbamann]: https://github.com/flabbamann +[@frenck]: https://github.com/frenck +[@gagebenne]: https://github.com/gagebenne +[@ggravlingen]: https://github.com/ggravlingen +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@gregsheremeta]: https://github.com/gregsheremeta +[@iMicknl]: https://github.com/iMicknl +[@j-a-n]: https://github.com/j-a-n +[@janiversen]: https://github.com/janiversen +[@jarodwilson]: https://github.com/jarodwilson +[@javicalle]: https://github.com/javicalle +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jingsno]: https://github.com/jingsno +[@jjlawren]: https://github.com/jjlawren +[@jkeljo]: https://github.com/jkeljo +[@josephnad]: https://github.com/josephnad +[@jsoref]: https://github.com/jsoref +[@jt-nti]: https://github.com/jt-nti +[@julesxxl]: https://github.com/julesxxl +[@jumbledbytes]: https://github.com/jumbledbytes +[@kbickar]: https://github.com/kbickar +[@kevdliu]: https://github.com/kevdliu +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kpine]: https://github.com/kpine +[@ludeeus]: https://github.com/ludeeus +[@madmat777]: https://github.com/madmat777 +[@marcelveldt]: https://github.com/marcelveldt +[@martijnvanduijneveldt]: https://github.com/martijnvanduijneveldt +[@masto]: https://github.com/masto +[@mdegat01]: https://github.com/mdegat01 +[@mfugate1]: https://github.com/mfugate1 +[@mib1185]: https://github.com/mib1185 +[@milanmeu]: https://github.com/milanmeu +[@nbogojevic]: https://github.com/nbogojevic +[@nielsAD]: https://github.com/nielsAD +[@nklebedev]: https://github.com/nklebedev +[@oischinger]: https://github.com/oischinger +[@ollo69]: https://github.com/ollo69 +[@oxan]: https://github.com/oxan +[@pailloM]: https://github.com/pailloM +[@pascalwinters]: https://github.com/pascalwinters +[@patagonaa]: https://github.com/patagonaa +[@pedrolamas]: https://github.com/pedrolamas +[@pinpox]: https://github.com/pinpox +[@pvizeli]: https://github.com/pvizeli +[@raman325]: https://github.com/raman325 +[@rborkow]: https://github.com/rborkow +[@rfleming71]: https://github.com/rfleming71 +[@rhpijnacker]: https://github.com/rhpijnacker +[@rikroe]: https://github.com/rikroe +[@rklomp]: https://github.com/rklomp +[@roysjosh]: https://github.com/roysjosh +[@rubenverhoef]: https://github.com/rubenverhoef +[@rytilahti]: https://github.com/rytilahti +[@sbidy]: https://github.com/sbidy +[@scop]: https://github.com/scop +[@slovdahl]: https://github.com/slovdahl +[@soluga]: https://github.com/soluga +[@sophof]: https://github.com/sophof +[@starkillerOG]: https://github.com/starkillerOG +[@stebet]: https://github.com/stebet +[@stegm]: https://github.com/stegm +[@sti0]: https://github.com/sti0 +[@stuart-c]: https://github.com/stuart-c +[@tetienne]: https://github.com/tetienne +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@trekie86]: https://github.com/trekie86 +[@tschnilo]: https://github.com/tschnilo +[@uvjustin]: https://github.com/uvjustin +[@vlebourl]: https://github.com/vlebourl +[@w35l3y]: https://github.com/w35l3y +[@zsarnett]: https://github.com/zsarnett +[@zvldz]: https://github.com/zvldz +[abode docs]: /integrations/abode/ +[advantage_air docs]: /integrations/advantage_air/ +[aftership docs]: /integrations/aftership/ +[agent_dvr docs]: /integrations/agent_dvr/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[alexa docs]: /integrations/alexa/ +[amcrest docs]: /integrations/amcrest/ +[apcupsd docs]: /integrations/apcupsd/ +[apprise docs]: /integrations/apprise/ +[aseko_pool_live docs]: /integrations/aseko_pool_live/ +[asuswrt docs]: /integrations/asuswrt/ +[august docs]: /integrations/august/ +[aussie_broadband docs]: /integrations/aussie_broadband/ +[automation docs]: /integrations/automation/ +[axis docs]: /integrations/axis/ +[azure_event_hub docs]: /integrations/azure_event_hub/ +[binary_sensor docs]: /integrations/binary_sensor/ +[blink docs]: /integrations/blink/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[braviatv docs]: /integrations/braviatv/ +[broadlink docs]: /integrations/broadlink/ +[brunt docs]: /integrations/brunt/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[cloud docs]: /integrations/cloud/ +[co2signal docs]: /integrations/co2signal/ +[coinbase docs]: /integrations/coinbase/ +[command_line docs]: /integrations/command_line/ +[config docs]: /integrations/config/ +[deconz docs]: /integrations/deconz/ +[decora_wifi docs]: /integrations/decora_wifi/ +[default_config docs]: /integrations/default_config/ +[delijn docs]: /integrations/delijn/ +[demo docs]: /integrations/demo/ +[derivative docs]: /integrations/derivative/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[dexcom docs]: /integrations/dexcom/ +[dhcp docs]: /integrations/dhcp/ +[discord docs]: /integrations/discord/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[dlna_dms docs]: /integrations/dlna_dms/ +[doorbird docs]: /integrations/doorbird/ +[dsmr docs]: /integrations/dsmr/ +[ebusd docs]: /integrations/ebusd/ +[econet docs]: /integrations/econet/ +[edl21 docs]: /integrations/edl21/ +[efergy docs]: /integrations/efergy/ +[elkm1 docs]: /integrations/elkm1/ +[emonitor docs]: /integrations/emonitor/ +[emulated_kasa docs]: /integrations/emulated_kasa/ +[esphome docs]: /integrations/esphome/ +[ezviz docs]: /integrations/ezviz/ +[file docs]: /integrations/file/ +[filesize docs]: /integrations/filesize/ +[filter docs]: /integrations/filter/ +[fireservicerota docs]: /integrations/fireservicerota/ +[firmata docs]: /integrations/firmata/ +[fivem docs]: /integrations/fivem/ +[flipr docs]: /integrations/flipr/ +[flux_led docs]: /integrations/flux_led/ +[freebox docs]: /integrations/freebox/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[fronius docs]: /integrations/fronius/ +[frontend docs]: /integrations/frontend/ +[geniushub docs]: /integrations/geniushub/ +[github docs]: /integrations/github/ +[gntp docs]: /integrations/gntp/ +[goalzero docs]: /integrations/goalzero/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_cloud docs]: /integrations/google_cloud/ +[google_translate docs]: /integrations/google_translate/ +[google_travel_time docs]: /integrations/google_travel_time/ +[greeneye_monitor docs]: /integrations/greeneye_monitor/ +[group docs]: /integrations/group/ +[guardian docs]: /integrations/guardian/ +[hassio docs]: /integrations/hassio/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homewizard docs]: /integrations/homewizard/ +[http docs]: /integrations/http/ +[hue docs]: /integrations/hue/ +[humidifier docs]: /integrations/humidifier/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[icloud docs]: /integrations/icloud/ +[ihc docs]: /integrations/ihc/ +[influxdb docs]: /integrations/influxdb/ +[input_select docs]: /integrations/input_select/ +[intellifire docs]: /integrations/intellifire/ +[intent_script docs]: /integrations/intent_script/ +[iotawatt docs]: /integrations/iotawatt/ +[iss docs]: /integrations/iss/ +[isy994 docs]: /integrations/isy994/ +[kaiterra docs]: /integrations/kaiterra/ +[kmtronic docs]: /integrations/kmtronic/ +[kodi docs]: /integrations/kodi/ +[kostal_plenticore docs]: /integrations/kostal_plenticore/ +[lametric docs]: /integrations/lametric/ +[lg_netcast docs]: /integrations/lg_netcast/ +[lifx docs]: /integrations/lifx/ +[litterrobot docs]: /integrations/litterrobot/ +[lookin docs]: /integrations/lookin/ +[lovelace docs]: /integrations/lovelace/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[manual docs]: /integrations/manual/ +[manual_mqtt docs]: /integrations/manual_mqtt/ +[media_player docs]: /integrations/media_player/ +[media_source docs]: /integrations/media_source/ +[microsoft docs]: /integrations/microsoft/ +[mill docs]: /integrations/mill/ +[mjpeg docs]: /integrations/mjpeg/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[modem_callerid docs]: /integrations/modem_callerid/ +[moehlenhoff_alpha2 docs]: /integrations/moehlenhoff_alpha2/ +[moon docs]: /integrations/moon/ +[motion_blinds docs]: /integrations/motion_blinds/ +[motioneye docs]: /integrations/motioneye/ +[mpd docs]: /integrations/mpd/ +[mqtt docs]: /integrations/mqtt/ +[mysensors docs]: /integrations/mysensors/ +[nanoleaf docs]: /integrations/nanoleaf/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[netgear docs]: /integrations/netgear/ +[nina docs]: /integrations/nina/ +[norway_air docs]: /integrations/norway_air/ +[notify docs]: /integrations/notify/ +[nut docs]: /integrations/nut/ +[octoprint docs]: /integrations/octoprint/ +[open_meteo docs]: /integrations/open_meteo/ +[opengarage docs]: /integrations/opengarage/ +[opensky docs]: /integrations/opensky/ +[overkiz docs]: /integrations/overkiz/ +[ovo_energy docs]: /integrations/ovo_energy/ +[p1_monitor docs]: /integrations/p1_monitor/ +[philips_js docs]: /integrations/philips_js/ +[picnic docs]: /integrations/picnic/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[powerwall docs]: /integrations/powerwall/ +[prometheus docs]: /integrations/prometheus/ +[proximity docs]: /integrations/proximity/ +[pure_energie docs]: /integrations/pure_energie/ +[radarr docs]: /integrations/radarr/ +[radio_browser docs]: /integrations/radio_browser/ +[recorder docs]: /integrations/recorder/ +[remote docs]: /integrations/remote/ +[renault docs]: /integrations/renault/ +[rflink docs]: /integrations/rflink/ +[rfxtrx docs]: /integrations/rfxtrx/ +[roku docs]: /integrations/roku/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ +[rpi_power docs]: /integrations/rpi_power/ +[rss_feed_template docs]: /integrations/rss_feed_template/ +[sabnzbd docs]: /integrations/sabnzbd/ +[samsungtv docs]: /integrations/samsungtv/ +[scrape docs]: /integrations/scrape/ +[screenlogic docs]: /integrations/screenlogic/ +[season docs]: /integrations/season/ +[sense docs]: /integrations/sense/ +[senseme docs]: /integrations/senseme/ +[sensibo docs]: /integrations/sensibo/ +[sensor docs]: /integrations/sensor/ +[sentry docs]: /integrations/sentry/ +[shelly docs]: /integrations/shelly/ +[simplisafe docs]: /integrations/simplisafe/ +[sisyphus docs]: /integrations/sisyphus/ +[sleepiq docs]: /integrations/sleepiq/ +[sma docs]: /integrations/sma/ +[solax docs]: /integrations/solax/ +[sonarr docs]: /integrations/sonarr/ +[songpal docs]: /integrations/songpal/ +[sonos docs]: /integrations/sonos/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[srp_energy docs]: /integrations/srp_energy/ +[ssdp docs]: /integrations/ssdp/ +[steamist docs]: /integrations/steamist/ +[stream docs]: /integrations/stream/ +[subaru docs]: /integrations/subaru/ +[switchbot docs]: /integrations/switchbot/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_bridge docs]: /integrations/system_bridge/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tasmota docs]: /integrations/tasmota/ +[telegram docs]: /integrations/telegram/ +[telegram_bot docs]: /integrations/telegram_bot/ +[telnet docs]: /integrations/telnet/ +[template docs]: /integrations/template/ +[tibber docs]: /integrations/tibber/ +[tolo docs]: /integrations/tolo/ +[totalconnect docs]: /integrations/totalconnect/ +[tplink docs]: /integrations/tplink/ +[tradfri docs]: /integrations/tradfri/ +[tts docs]: /integrations/tts/ +[tuya docs]: /integrations/tuya/ +[twilio docs]: /integrations/twilio/ +[twinkly docs]: /integrations/twinkly/ +[twitch docs]: /integrations/twitch/ +[unifi docs]: /integrations/unifi/ +[unifiprotect docs]: /integrations/unifiprotect/ +[upcloud docs]: /integrations/upcloud/ +[updater docs]: /integrations/updater/ +[upnp docs]: /integrations/upnp/ +[uptimerobot docs]: /integrations/uptimerobot/ +[vallox docs]: /integrations/vallox/ +[velbus docs]: /integrations/velbus/ +[vera docs]: /integrations/vera/ +[version docs]: /integrations/version/ +[vicare docs]: /integrations/vicare/ +[vizio docs]: /integrations/vizio/ +[vlc_telnet docs]: /integrations/vlc_telnet/ +[voicerss docs]: /integrations/voicerss/ +[waze_travel_time docs]: /integrations/waze_travel_time/ +[webhook docs]: /integrations/webhook/ +[webostv docs]: /integrations/webostv/ +[websocket_api docs]: /integrations/websocket_api/ +[withings docs]: /integrations/withings/ +[wiz docs]: /integrations/wiz/ +[wiz_light docs]: /integrations/wiz_light/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yale_smart_alarm docs]: /integrations/yale_smart_alarm/ +[yandextts docs]: /integrations/yandextts/ +[yeelight docs]: /integrations/yeelight/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zoneminder docs]: /integrations/zoneminder/ +[zwave_js docs]: /integrations/zwave_js/ +[zwave_me docs]: /integrations/zwave_me/ diff --git a/source/changelogs/index.markdown b/source/changelogs/index.markdown new file mode 100644 index 00000000000..21b3ebd2446 --- /dev/null +++ b/source/changelogs/index.markdown @@ -0,0 +1,7 @@ +--- +--- +{% assign recent_release_post = site.categories['Core'].first %} + + diff --git a/source/images/blog/2022-03/autocompletion.png b/source/images/blog/2022-03/autocompletion.png new file mode 100644 index 00000000000..13efdbf9470 Binary files /dev/null and b/source/images/blog/2022-03/autocompletion.png differ diff --git a/source/images/blog/2022-03/media-management.png b/source/images/blog/2022-03/media-management.png new file mode 100644 index 00000000000..4127aa76e33 Binary files /dev/null and b/source/images/blog/2022-03/media-management.png differ diff --git a/source/images/blog/2022-03/media-selector.png b/source/images/blog/2022-03/media-selector.png new file mode 100644 index 00000000000..b483d1c1ec7 Binary files /dev/null and b/source/images/blog/2022-03/media-selector.png differ diff --git a/source/images/blog/2022-03/mwc-vs-paper.png b/source/images/blog/2022-03/mwc-vs-paper.png new file mode 100644 index 00000000000..226f609dc26 Binary files /dev/null and b/source/images/blog/2022-03/mwc-vs-paper.png differ diff --git a/source/images/blog/2022-03/pick-tts.png b/source/images/blog/2022-03/pick-tts.png new file mode 100644 index 00000000000..b883403830f Binary files /dev/null and b/source/images/blog/2022-03/pick-tts.png differ diff --git a/source/images/blog/2022-03/radio-browser.png b/source/images/blog/2022-03/radio-browser.png new file mode 100644 index 00000000000..cd97df51d4d Binary files /dev/null and b/source/images/blog/2022-03/radio-browser.png differ diff --git a/source/images/blog/2022-03/run-action.png b/source/images/blog/2022-03/run-action.png new file mode 100644 index 00000000000..ac42ae9b3c3 Binary files /dev/null and b/source/images/blog/2022-03/run-action.png differ diff --git a/source/images/blog/2022-03/social.png b/source/images/blog/2022-03/social.png new file mode 100644 index 00000000000..49e37218938 Binary files /dev/null and b/source/images/blog/2022-03/social.png differ diff --git a/source/images/blog/2022-03/trigger-attributes.png b/source/images/blog/2022-03/trigger-attributes.png new file mode 100644 index 00000000000..734b04374d8 Binary files /dev/null and b/source/images/blog/2022-03/trigger-attributes.png differ diff --git a/source/images/blog/2022-03/triggered.gif b/source/images/blog/2022-03/triggered.gif new file mode 100644 index 00000000000..a1e4716b6e9 Binary files /dev/null and b/source/images/blog/2022-03/triggered.gif differ