From d4a7d5026c34444715bd2dbd328ccef31f6c22db Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 27 Sep 2023 18:46:52 +0200 Subject: [PATCH] 2023.10: Beta release notes --- CODEOWNERS | 43 +- _config.yml | 6 +- source/_integrations/aftership.markdown | 1 + source/_integrations/airthings_ble.markdown | 1 + source/_integrations/airtouch4.markdown | 2 + source/_integrations/aladdin_connect.markdown | 1 + source/_integrations/co2signal.markdown | 4 +- source/_integrations/duotecno.markdown | 2 +- source/_integrations/ecoforest.markdown | 2 + source/_integrations/esphome.markdown | 1 + source/_integrations/fitbit.markdown | 2 + source/_integrations/flux_led.markdown | 2 - .../homeassistant_sky_connect.markdown | 1 + source/_integrations/honeywell.markdown | 1 + source/_integrations/idasen_desk.markdown | 4 +- .../islamic_prayer_times.markdown | 1 - source/_integrations/life360.markdown | 1 + source/_integrations/lifx.markdown | 3 - .../_integrations/london_underground.markdown | 2 + source/_integrations/matrix.markdown | 2 + source/_integrations/medcom_ble.markdown | 2 +- source/_integrations/modbus.markdown | 2 - source/_integrations/myq.markdown | 1 + source/_integrations/nextbus.markdown | 2 +- source/_integrations/renson.markdown | 8 +- source/_integrations/roborock.markdown | 4 +- .../_integrations/ruckus_unleashed.markdown | 3 +- source/_integrations/spotify.markdown | 1 + source/_integrations/switchbot.markdown | 2 +- source/_integrations/system_bridge.markdown | 4 +- source/_integrations/todoist.markdown | 1 + source/_integrations/trend.markdown | 4 +- source/_integrations/twinkly.markdown | 2 + source/_integrations/twitch.markdown | 1 + source/_integrations/venstar.markdown | 1 + source/_integrations/verisure.markdown | 1 - source/_integrations/versasense.markdown | 2 +- .../_integrations/vodafone_station.markdown | 1 - source/_integrations/waqi.markdown | 3 +- source/_integrations/weatherkit.markdown | 4 +- source/_integrations/withings.markdown | 1 + .../_posts/2023-10-04-release-202310.markdown | 389 ++++ source/changelogs/core-2023.10.markdown | 1816 +++++++++++++++++ source/images/blog/2023-10/social.png | Bin 0 -> 34872 bytes 44 files changed, 2290 insertions(+), 47 deletions(-) create mode 100644 source/_posts/2023-10-04-release-202310.markdown create mode 100644 source/changelogs/core-2023.10.markdown create mode 100644 source/images/blog/2023-10/social.png diff --git a/CODEOWNERS b/CODEOWNERS index 10fb240d8bf..e77adf5d0ee 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -22,7 +22,8 @@ source/_integrations/airly.markdown @bieniu source/_integrations/airnow.markdown @asymworks source/_integrations/airq.markdown @Sibgatulin @dl2080 source/_integrations/airthings.markdown @danielhiversen -source/_integrations/airthings_ble.markdown @vincegio +source/_integrations/airthings_ble.markdown @vincegio @LaStrada +source/_integrations/airtouch4.markdown @samsinnamon source/_integrations/airvisual.markdown @bachya source/_integrations/airvisual_pro.markdown @bachya source/_integrations/airzone.markdown @Noltari @@ -120,6 +121,7 @@ source/_integrations/cisco_webex_teams.markdown @fbradyirl source/_integrations/climate.markdown @home-assistant/core source/_integrations/cloud.markdown @home-assistant/cloud source/_integrations/cloudflare.markdown @ludeeus @ctalkington +source/_integrations/co2signal.markdown @jpbede source/_integrations/coinbase.markdown @tombrien source/_integrations/color_extractor.markdown @GenericStudent source/_integrations/comed.markdown @tronikos @@ -180,6 +182,7 @@ source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @an source/_integrations/dynalite.markdown @ziv1234 source/_integrations/easyenergy.markdown @klaasnicolaas source/_integrations/ecobee.markdown @marthoc @marcolivierarsenault +source/_integrations/ecoforest.markdown @pjanuario source/_integrations/econet.markdown @vangorra @w1ll1am23 source/_integrations/ecovacs.markdown @OverloadUT @mib1185 source/_integrations/ecowitt.markdown @pvizeli @@ -201,6 +204,7 @@ source/_integrations/energie_vanons.markdown @klaasnicolaas source/_integrations/energy.markdown @home-assistant/core source/_integrations/energyzero.markdown @klaasnicolaas source/_integrations/enigma2.markdown @fbradyirl +source/_integrations/enmax.markdown @tronikos source/_integrations/enocean.markdown @bdurrer source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek source/_integrations/entur_public_transport.markdown @hfurubotten @@ -212,7 +216,7 @@ source/_integrations/epsonworkforce.markdown @ThaStealth source/_integrations/eq3btsmart.markdown @rytilahti source/_integrations/escea.markdown @lazdavila source/_integrations/esera_onewire.markdown @garbled1 @epenet -source/_integrations/esphome.markdown @OttoWinter @jesserockz @bdraco +source/_integrations/esphome.markdown @OttoWinter @jesserockz @kbx81 @bdraco source/_integrations/eufylife_ble.markdown @bdr99 source/_integrations/event.markdown @home-assistant/core source/_integrations/evergy.markdown @tronikos @@ -230,6 +234,7 @@ source/_integrations/filter.markdown @dgomes source/_integrations/fire_tv.markdown @JeffLIrion @ollo69 source/_integrations/fireservicerota.markdown @cyberjunky source/_integrations/firmata.markdown @DaAwesomeP +source/_integrations/fitbit.markdown @allenporter source/_integrations/fivem.markdown @Sander0542 source/_integrations/fjaraskupan.markdown @elupus source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev @@ -237,7 +242,7 @@ source/_integrations/flick_electric.markdown @ZephireNZ source/_integrations/flipr.markdown @cnico source/_integrations/flo.markdown @dmulcahey source/_integrations/flume.markdown @ChrisMandich @bdraco @jeeftor -source/_integrations/flux_led.markdown @icemanch @bdraco +source/_integrations/flux_led.markdown @icemanch source/_integrations/forecast_solar.markdown @klaasnicolaas @frenck source/_integrations/forked_daapd.markdown @uvjustin source/_integrations/fortios.markdown @kimfrellsen @@ -307,6 +312,7 @@ source/_integrations/home_connect.markdown @DavidMStraub source/_integrations/home_plus_control.markdown @chemaaa source/_integrations/homeassistant.markdown @home-assistant/core source/_integrations/homeassistant_alerts.markdown @home-assistant/core +source/_integrations/homeassistant_green.markdown @home-assistant/core source/_integrations/homeassistant_hardware.markdown @home-assistant/core source/_integrations/homeassistant_sky_connect.markdown @home-assistant/core source/_integrations/homeassistant_yellow.markdown @home-assistant/core @@ -330,6 +336,7 @@ source/_integrations/iammeter.markdown @lewei50 source/_integrations/iaqualink.markdown @flz source/_integrations/ibeacon.markdown @bdraco source/_integrations/icloud.markdown @Quentame @nzapponi +source/_integrations/idasen_desk.markdown @abmantis source/_integrations/ign_sismologia.markdown @exxamalte source/_integrations/image.markdown @home-assistant/core source/_integrations/image_processing.markdown @home-assistant/core @@ -396,7 +403,6 @@ source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave source/_integrations/lg_netcast.markdown @Drafteed source/_integrations/lidarr.markdown @tkdrob source/_integrations/life360.markdown @pnbruckner -source/_integrations/lifx.markdown @bdraco source/_integrations/light.markdown @home-assistant/core source/_integrations/linux_battery.markdown @fabaff source/_integrations/litejet.markdown @joncar @@ -408,6 +414,7 @@ source/_integrations/lock.markdown @home-assistant/core source/_integrations/logbook.markdown @home-assistant/core source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd +source/_integrations/london_underground.markdown @jpbede source/_integrations/lookin.markdown @ANMalko @bdraco source/_integrations/loqed.markdown @mikewoudenberg source/_integrations/luci.markdown @mzdrale @@ -420,9 +427,11 @@ source/_integrations/lyric.markdown @timmo001 source/_integrations/marantz.markdown @ol-iver @starkillerOG source/_integrations/martec.markdown @starkillerOG source/_integrations/mastodon.markdown @fabaff +source/_integrations/matrix.markdown @PaarthShah source/_integrations/matter.markdown @home-assistant/matter source/_integrations/mazda.markdown @bdr99 source/_integrations/meater.markdown @Sotolotl @emontnemery +source/_integrations/medcom_ble.markdown @elafargue source/_integrations/media_extractor.markdown @joostlek source/_integrations/media_player.markdown @home-assistant/core source/_integrations/media_source.markdown @hunterjm @@ -444,7 +453,7 @@ source/_integrations/minecraft_server.markdown @elmurato source/_integrations/minio.markdown @tkislan source/_integrations/moat.markdown @bdraco source/_integrations/mobile_app.markdown @home-assistant/core -source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik +source/_integrations/modbus.markdown @janiversen source/_integrations/modem_callerid.markdown @tkdrob source/_integrations/modern_forms.markdown @wonderslug source/_integrations/moehlenhoff_alpha2.markdown @j-a-n @@ -459,7 +468,7 @@ source/_integrations/msteams.markdown @peroyvind source/_integrations/mullvad.markdown @meichthys source/_integrations/mutesync.markdown @currentoor source/_integrations/my.markdown @home-assistant/core -source/_integrations/myq.markdown @ehendrix23 +source/_integrations/myq.markdown @ehendrix23 @Lash-L source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer source/_integrations/mystrom.markdown @fabaff source/_integrations/nam.markdown @bieniu @@ -550,6 +559,7 @@ source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa source/_integrations/point.markdown @fredrike source/_integrations/poolsense.markdown @haemishkyd source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson +source/_integrations/private_ble_device.markdown @Jc2k source/_integrations/profiler.markdown @bdraco source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/prometheus.markdown @knyar @@ -610,7 +620,7 @@ source/_integrations/roon.markdown @pavoni source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/rss_feed_template.markdown @home-assistant/core source/_integrations/rtsp_to_webrtc.markdown @allenporter -source/_integrations/ruckus_unleashed.markdown @gabe565 @lanrat +source/_integrations/ruckus_unleashed.markdown @lanrat @ms264556 @gabe565 source/_integrations/ruuvi_gateway.markdown @akx source/_integrations/ruuvitag_ble.markdown @akx source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc @@ -657,7 +667,7 @@ source/_integrations/siren.markdown @home-assistant/core @raman325 source/_integrations/sisyphus.markdown @jkeljo source/_integrations/sky_hub.markdown @rogerselwyn source/_integrations/skybell.markdown @tkdrob -source/_integrations/slack.markdown @tkdrob +source/_integrations/slack.markdown @tkdrob @fletcherau source/_integrations/sleepiq.markdown @mfugate1 @kbickar source/_integrations/slide.markdown @ualex73 source/_integrations/slimproto.markdown @marcelveldt @@ -688,7 +698,7 @@ source/_integrations/spaceapi.markdown @fabaff source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87 source/_integrations/spider.markdown @peternijssen source/_integrations/splunk.markdown @Bre77 -source/_integrations/spotify.markdown @frenck +source/_integrations/spotify.markdown @frenck @joostlek source/_integrations/sql.markdown @gjohansson-ST @dougiteixeira source/_integrations/squeezebox.markdown @rajlaud source/_integrations/srp_energy.markdown @briglx @@ -713,6 +723,7 @@ source/_integrations/switch.markdown @home-assistant/core source/_integrations/switch_as_x.markdown @home-assistant/core source/_integrations/switchbee.markdown @jafar-atili source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski +source/_integrations/switchbot_cloud.markdown @SeraphicRav source/_integrations/switcher_kis.markdown @thecode source/_integrations/switchmate.markdown @danielhiversen @qiz-li source/_integrations/symfonisk.markdown @cgtobi @jjlawren @@ -757,10 +768,11 @@ source/_integrations/trafikverket_ferry.markdown @gjohansson-ST source/_integrations/trafikverket_train.markdown @endor-force @gjohansson-ST source/_integrations/trafikverket_weatherstation.markdown @endor-force @gjohansson-ST source/_integrations/transmission.markdown @engrbm87 @JPHutchins +source/_integrations/trend.markdown @jpbede source/_integrations/tts.markdown @home-assistant/core @pvizeli source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck source/_integrations/twentemilieu.markdown @frenck -source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 +source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 @Olen source/_integrations/twitch.markdown @joostlek source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev source/_integrations/ukraine_alarm.markdown @PaulAnnekov @@ -782,10 +794,10 @@ source/_integrations/vacuum.markdown @home-assistant/core source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru- source/_integrations/velbus.markdown @Cereal2nd @brefra source/_integrations/velux.markdown @Julius2342 -source/_integrations/venstar.markdown @garbled1 -source/_integrations/verisure.markdown @frenck @niro1987 +source/_integrations/venstar.markdown @garbled1 @jhollowe +source/_integrations/verisure.markdown @frenck source/_integrations/vermont_castings.markdown @jeeftor -source/_integrations/versasense.markdown @flamm3blemuff1n +source/_integrations/versasense.markdown @imstevenxyz source/_integrations/version.markdown @ludeeus source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey source/_integrations/vilfo.markdown @ManneW @@ -800,12 +812,13 @@ source/_integrations/volvooncall.markdown @molobrakos source/_integrations/vulcan.markdown @Antoni-Czaplicki source/_integrations/wake_on_lan.markdown @ntilley905 source/_integrations/wallbox.markdown @hesselonline -source/_integrations/waqi.markdown @andrey-git +source/_integrations/waqi.markdown @joostlek source/_integrations/water_heater.markdown @home-assistant/core source/_integrations/watson_tts.markdown @rutkai source/_integrations/watttime.markdown @bachya source/_integrations/waze_travel_time.markdown @eifinger source/_integrations/weather.markdown @home-assistant/core +source/_integrations/weatherkit.markdown @tjhorner source/_integrations/webhook.markdown @home-assistant/core source/_integrations/webostv.markdown @thecode source/_integrations/websocket_api.markdown @home-assistant/core @@ -816,7 +829,7 @@ source/_integrations/whois.markdown @frenck source/_integrations/wiffi.markdown @mampfes source/_integrations/wilight.markdown @leofig-rj source/_integrations/wirelesstag.markdown @sergeymaysak -source/_integrations/withings.markdown @vangorra +source/_integrations/withings.markdown @vangorra @joostlek source/_integrations/wiz.markdown @sbidy source/_integrations/wled.markdown @frenck source/_integrations/wolflink.markdown @adamkrol93 diff --git a/_config.yml b/_config.yml index f70093ee624..c2f26720623 100644 --- a/_config.yml +++ b/_config.yml @@ -109,9 +109,9 @@ social: # Home Assistant release details current_major_version: 2023 -current_minor_version: 9 -current_patch_version: 3 -date_released: 2023-09-24 +current_minor_version: 10 +current_patch_version: 0 +date_released: 2023-10-04 # 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/_integrations/aftership.markdown b/source/_integrations/aftership.markdown index 3fb6088debf..daecab16041 100644 --- a/source/_integrations/aftership.markdown +++ b/source/_integrations/aftership.markdown @@ -9,6 +9,7 @@ ha_domain: aftership ha_platforms: - sensor ha_integration_type: integration +ha_config_flow: true --- The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. To use the tracking API functionality, the Essentials plan is required. This plan includes 100 shipments per month. There are various paid-for tiers after that. diff --git a/source/_integrations/airthings_ble.markdown b/source/_integrations/airthings_ble.markdown index 8461db06dc1..a3ab479ed66 100644 --- a/source/_integrations/airthings_ble.markdown +++ b/source/_integrations/airthings_ble.markdown @@ -8,6 +8,7 @@ ha_release: '2022.11' ha_iot_class: Local Polling ha_codeowners: - '@vincegio' + - '@LaStrada' ha_domain: airthings_ble ha_bluetooth: true ha_platforms: diff --git a/source/_integrations/airtouch4.markdown b/source/_integrations/airtouch4.markdown index 2660789f7fe..f11355c9548 100644 --- a/source/_integrations/airtouch4.markdown +++ b/source/_integrations/airtouch4.markdown @@ -10,6 +10,8 @@ ha_domain: airtouch4 ha_platforms: - climate ha_integration_type: integration +ha_codeowners: + - '@samsinnamon' --- The AirTouch 4 integration allows you to control Ducted Air Conditioning Systems that are using the [AirTouch 4](https://www.airtouch.net.au/airtouch/airtouch-4/) Controller. Currently, this integration only supports AirTouch 4 controllers with the Individual Temperature Control (ITC) modules. diff --git a/source/_integrations/aladdin_connect.markdown b/source/_integrations/aladdin_connect.markdown index c220ae879ca..1c2b01eb3ec 100644 --- a/source/_integrations/aladdin_connect.markdown +++ b/source/_integrations/aladdin_connect.markdown @@ -8,6 +8,7 @@ ha_iot_class: Cloud Polling ha_domain: aladdin_connect ha_platforms: - cover + - diagnostics - sensor ha_integration_type: integration ha_codeowners: diff --git a/source/_integrations/co2signal.markdown b/source/_integrations/co2signal.markdown index 3cb1f8adcac..cb805740ad8 100644 --- a/source/_integrations/co2signal.markdown +++ b/source/_integrations/co2signal.markdown @@ -12,7 +12,9 @@ ha_platforms: - diagnostics - sensor ha_config_flow: true -ha_integration_type: integration +ha_integration_type: service +ha_codeowners: + - '@jpbede' --- The `Electricity Maps` sensor platform (formerly known as CO2Signal) queries the [Electricity Maps](https://www.electricitymaps.com/) API for the CO2 intensity of a specific region. Data can be collected for your home by using the latitude/longitude or a country code. This API uses the same data as . Not all countries/regions in the world are supported, so please consult the app to check local availability. diff --git a/source/_integrations/duotecno.markdown b/source/_integrations/duotecno.markdown index b39ddd09e51..861ea3190e7 100644 --- a/source/_integrations/duotecno.markdown +++ b/source/_integrations/duotecno.markdown @@ -13,11 +13,11 @@ ha_codeowners: - '@cereal2nd' ha_domain: duotecno ha_platforms: + - binary_sensor - climate - cover - light - switch - - binary sensor ha_integration_type: integration --- diff --git a/source/_integrations/ecoforest.markdown b/source/_integrations/ecoforest.markdown index 2b82ce4896e..f1253b7371c 100644 --- a/source/_integrations/ecoforest.markdown +++ b/source/_integrations/ecoforest.markdown @@ -10,7 +10,9 @@ ha_codeowners: - '@pjanuario' ha_domain: ecoforest ha_platforms: + - number - sensor + - switch ha_integration_type: integration --- diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown index d495ab855a1..6aaa850d84a 100644 --- a/source/_integrations/esphome.markdown +++ b/source/_integrations/esphome.markdown @@ -12,6 +12,7 @@ ha_config_flow: true ha_codeowners: - '@OttoWinter' - '@jesserockz' + - '@kbx81' - '@bdraco' ha_domain: esphome ha_zeroconf: true diff --git a/source/_integrations/fitbit.markdown b/source/_integrations/fitbit.markdown index 9e37e2afcaa..6995b7c2163 100644 --- a/source/_integrations/fitbit.markdown +++ b/source/_integrations/fitbit.markdown @@ -9,6 +9,8 @@ ha_domain: fitbit ha_platforms: - sensor ha_integration_type: integration +ha_codeowners: + - '@allenporter' --- The Fitbit sensor allows you to expose data from [Fitbit](https://fitbit.com/) to Home Assistant. diff --git a/source/_integrations/flux_led.markdown b/source/_integrations/flux_led.markdown index afb9a83edb5..faa7176ef6a 100644 --- a/source/_integrations/flux_led.markdown +++ b/source/_integrations/flux_led.markdown @@ -21,8 +21,6 @@ ha_platforms: - switch ha_codeowners: - '@icemanch' - - '@bdraco' -ha_quality_scale: platinum ha_config_flow: true ha_dhcp: true ha_integration_type: integration diff --git a/source/_integrations/homeassistant_sky_connect.markdown b/source/_integrations/homeassistant_sky_connect.markdown index ed2dbdcca34..5c9f45a03ec 100644 --- a/source/_integrations/homeassistant_sky_connect.markdown +++ b/source/_integrations/homeassistant_sky_connect.markdown @@ -8,6 +8,7 @@ ha_codeowners: - '@home-assistant/core' ha_domain: homeassistant_sky_connect ha_integration_type: hardware +ha_config_flow: true --- The Home Assistant SkyConnect integration provides hardware information for the hardware configuration page. diff --git a/source/_integrations/honeywell.markdown b/source/_integrations/honeywell.markdown index 643383e652c..7d5d147de2a 100644 --- a/source/_integrations/honeywell.markdown +++ b/source/_integrations/honeywell.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: honeywell ha_platforms: - climate + - diagnostics - sensor ha_integration_type: integration --- diff --git a/source/_integrations/idasen_desk.markdown b/source/_integrations/idasen_desk.markdown index 88251d9e3a2..0aa5a09bd33 100644 --- a/source/_integrations/idasen_desk.markdown +++ b/source/_integrations/idasen_desk.markdown @@ -1,5 +1,5 @@ --- -title: IKEA IDÅSEN Desk +title: IKEA Idasen Desk description: Control and monitor your IKEA Idåsen standing desk. ha_iot_class: Local Push ha_config_flow: true @@ -11,6 +11,8 @@ ha_bluetooth: true ha_platforms: - cover ha_integration_type: integration +ha_codeowners: + - '@abmantis' --- The IKEA IDÅSEN integration allows you to connect your IKEA Idåsen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller. diff --git a/source/_integrations/islamic_prayer_times.markdown b/source/_integrations/islamic_prayer_times.markdown index 223185dae55..a9297517183 100644 --- a/source/_integrations/islamic_prayer_times.markdown +++ b/source/_integrations/islamic_prayer_times.markdown @@ -72,4 +72,3 @@ Default: Standard (mid sunset to sunrise) Default: Shafi Method for adjusting Asr time calcuation, if not specified, it defaults to Shafi. - diff --git a/source/_integrations/life360.markdown b/source/_integrations/life360.markdown index 83adfb63c90..f7f5c29e309 100644 --- a/source/_integrations/life360.markdown +++ b/source/_integrations/life360.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@pnbruckner' ha_domain: life360 ha_platforms: + - button - device_tracker ha_integration_type: integration --- diff --git a/source/_integrations/lifx.markdown b/source/_integrations/lifx.markdown index 5371bc535ce..2f99c8c79f8 100644 --- a/source/_integrations/lifx.markdown +++ b/source/_integrations/lifx.markdown @@ -17,9 +17,6 @@ ha_platforms: - select - sensor ha_integration_type: integration -ha_codeowners: - - '@bdraco' -ha_quality_scale: platinum ha_dhcp: true --- diff --git a/source/_integrations/london_underground.markdown b/source/_integrations/london_underground.markdown index 3d7a6bff502..ffc47e7bb56 100644 --- a/source/_integrations/london_underground.markdown +++ b/source/_integrations/london_underground.markdown @@ -9,6 +9,8 @@ ha_domain: london_underground ha_platforms: - sensor ha_integration_type: integration +ha_codeowners: + - '@jpbede' --- The `london_underground` sensor will display the status of London underground lines, as well as the Overground and DLR. diff --git a/source/_integrations/matrix.markdown b/source/_integrations/matrix.markdown index 5ced1b42f3d..5afc3e2c370 100644 --- a/source/_integrations/matrix.markdown +++ b/source/_integrations/matrix.markdown @@ -10,6 +10,8 @@ ha_domain: matrix ha_platforms: - notify ha_integration_type: integration +ha_codeowners: + - '@PaarthShah' --- This integration allows you to send messages to matrix rooms, as well as to react to messages in matrix rooms. Reacting to commands is accomplished by firing an event when one of the configured commands is triggered. diff --git a/source/_integrations/medcom_ble.markdown b/source/_integrations/medcom_ble.markdown index d2d44bdd26c..668520810ff 100644 --- a/source/_integrations/medcom_ble.markdown +++ b/source/_integrations/medcom_ble.markdown @@ -34,4 +34,4 @@ To limit the load on the Bluetooth radio on the Home Assistant side, the integra ## Sensors -This integration adds a counts-per-minute ("CPM") sensor for each detected Inspector BLE device. See the Inspector BLE manual for how to convert this CPM reading into another unit if desired, which can be done via a custom [template sensor](integrations/template) \ No newline at end of file +This integration adds a counts-per-minute ("CPM") sensor for each detected Inspector BLE device. See the Inspector BLE manual for how to convert this CPM reading into another unit if desired, which can be done via a custom [template sensor](integrations/template) diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 2ff756a62b0..11c3825cc03 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -6,9 +6,7 @@ ha_category: ha_release: pre 0.7 ha_iot_class: Local Polling ha_codeowners: - - '@adamchengtkc' - '@janiversen' - - '@vzahradnik' ha_domain: modbus ha_platforms: - binary_sensor diff --git a/source/_integrations/myq.markdown b/source/_integrations/myq.markdown index 560fc428e26..38eddb81660 100644 --- a/source/_integrations/myq.markdown +++ b/source/_integrations/myq.markdown @@ -10,6 +10,7 @@ ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@ehendrix23' + - '@Lash-L' ha_domain: myq ha_homekit: true ha_platforms: diff --git a/source/_integrations/nextbus.markdown b/source/_integrations/nextbus.markdown index 105671d6b92..4cae5a00aba 100644 --- a/source/_integrations/nextbus.markdown +++ b/source/_integrations/nextbus.markdown @@ -17,4 +17,4 @@ ha_integration_type: integration The `nextbus` sensor will give you the next departure time and associated data from your public transit station/stop. The data comes from [NextBus](https://www.nextbus.com), which provides real time transit data for a number of transit authorities. -{% include integrations/config_flow.md %} \ No newline at end of file +{% include integrations/config_flow.md %} diff --git a/source/_integrations/renson.markdown b/source/_integrations/renson.markdown index 28682559396..02574e6e9a5 100644 --- a/source/_integrations/renson.markdown +++ b/source/_integrations/renson.markdown @@ -4,9 +4,9 @@ description: Instructions on how to integrate Renson Endura Delta sensors into H ha_category: - Binary Sensor - Button - - Sensor - - Number - Fan + - Number + - Sensor ha_release: 2023.7 ha_iot_class: Local Polling ha_config_flow: true @@ -16,9 +16,9 @@ ha_domain: renson ha_platforms: - binary_sensor - button - - sensor - - number - fan + - number + - sensor ha_integration_type: integration --- diff --git a/source/_integrations/roborock.markdown b/source/_integrations/roborock.markdown index b0bcea17830..1b9a13dec44 100644 --- a/source/_integrations/roborock.markdown +++ b/source/_integrations/roborock.markdown @@ -2,9 +2,9 @@ title: Roborock description: Instructions on how to integrate Roborock vacuums into Home Assistant ha_category: + - Binary Sensor - Number - Select - - Binary Sensor - Sensor - Switch - Time @@ -17,9 +17,9 @@ ha_codeowners: - '@Lash-L' ha_domain: roborock ha_platforms: + - binary_sensor - diagnostics - number - - binary_sensor - select - sensor - switch diff --git a/source/_integrations/ruckus_unleashed.markdown b/source/_integrations/ruckus_unleashed.markdown index ba77a7ad606..970bf2232fa 100644 --- a/source/_integrations/ruckus_unleashed.markdown +++ b/source/_integrations/ruckus_unleashed.markdown @@ -7,8 +7,9 @@ ha_release: 0.117 ha_iot_class: Local Polling ha_config_flow: true ha_codeowners: - - '@gabe565' - '@lanrat' + - '@ms264556' + - '@gabe565' ha_domain: ruckus_unleashed ha_platforms: - device_tracker diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index e14caf3600d..ddd213ae8f3 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -9,6 +9,7 @@ ha_config_flow: true ha_quality_scale: silver ha_codeowners: - '@frenck' + - '@joostlek' ha_domain: spotify ha_zeroconf: true ha_platforms: diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 22bfc112342..32b8039342e 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -1,5 +1,5 @@ --- -title: SwitchBot +title: SwitchBot Bluetooth description: Instructions on how to set up SwitchBot Devices. ha_category: - Binary Sensor diff --git a/source/_integrations/system_bridge.markdown b/source/_integrations/system_bridge.markdown index be4fbbbcc12..5a2669680cc 100644 --- a/source/_integrations/system_bridge.markdown +++ b/source/_integrations/system_bridge.markdown @@ -13,10 +13,12 @@ ha_domain: system_bridge ha_quality_scale: silver ha_platforms: - binary_sensor + - notify - sensor ha_zeroconf: true -ha_integration_type: integration +ha_integration_type: device --- + [System Bridge](https://system-bridge.timmo.dev) is an application that runs on your local machine to share system information via its API/WebSocket. You can also send commands to the device such as opening a URL or sending keyboard keypresses. ## Prerequisites ### Version diff --git a/source/_integrations/todoist.markdown b/source/_integrations/todoist.markdown index 6f3d6675d6e..be1bc87f931 100644 --- a/source/_integrations/todoist.markdown +++ b/source/_integrations/todoist.markdown @@ -11,6 +11,7 @@ ha_domain: todoist ha_platforms: - calendar ha_integration_type: integration +ha_config_flow: true --- This platform allows you to connect to your [Todoist Projects](https://todoist.com) as [calendar](/integrations/calendar/) entities. A calendar entity will be `on` if you have a task due in that project or `off` if all the tasks in the project are completed or if the project doesn't have any tasks at all. All tasks get updated roughly every 15 minutes. diff --git a/source/_integrations/trend.markdown b/source/_integrations/trend.markdown index 53bec3d66d1..55372e82287 100644 --- a/source/_integrations/trend.markdown +++ b/source/_integrations/trend.markdown @@ -5,12 +5,14 @@ ha_category: - Binary Sensor - Utility ha_release: 0.28 -ha_iot_class: Local Push +ha_iot_class: Calculated ha_quality_scale: internal ha_domain: trend ha_platforms: - binary_sensor ha_integration_type: integration +ha_codeowners: + - '@jpbede' --- The `trend` platform allows you to create sensors which show the trend of diff --git a/source/_integrations/twinkly.markdown b/source/_integrations/twinkly.markdown index 5ae2074a4c7..9fa2cd95a1b 100644 --- a/source/_integrations/twinkly.markdown +++ b/source/_integrations/twinkly.markdown @@ -10,7 +10,9 @@ ha_iot_class: Local Polling ha_codeowners: - '@dr1rrb' - '@Robbie1221' + - '@Olen' ha_platforms: + - diagnostics - light ha_dhcp: true ha_integration_type: integration diff --git a/source/_integrations/twitch.markdown b/source/_integrations/twitch.markdown index 5c810b4631b..f7be57a6554 100644 --- a/source/_integrations/twitch.markdown +++ b/source/_integrations/twitch.markdown @@ -11,6 +11,7 @@ ha_platforms: ha_integration_type: integration ha_codeowners: - '@joostlek' +ha_config_flow: true --- The Twitch integration will allow you to monitor [Twitch](https://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information. diff --git a/source/_integrations/venstar.markdown b/source/_integrations/venstar.markdown index d42f794c171..5774e108376 100644 --- a/source/_integrations/venstar.markdown +++ b/source/_integrations/venstar.markdown @@ -14,6 +14,7 @@ ha_platforms: - sensor ha_codeowners: - '@garbled1' + - '@jhollowe' ha_config_flow: true ha_integration_type: integration --- diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown index 020021a5a2b..d3fa2ed9664 100644 --- a/source/_integrations/verisure.markdown +++ b/source/_integrations/verisure.markdown @@ -14,7 +14,6 @@ ha_iot_class: Cloud Polling ha_domain: verisure ha_codeowners: - '@frenck' - - '@niro1987' ha_platforms: - alarm_control_panel - binary_sensor diff --git a/source/_integrations/versasense.markdown b/source/_integrations/versasense.markdown index 4e906c65d1d..6703b7cf3a3 100644 --- a/source/_integrations/versasense.markdown +++ b/source/_integrations/versasense.markdown @@ -9,7 +9,7 @@ ha_category: - Switch ha_iot_class: Local Polling ha_codeowners: - - '@flamm3blemuff1n' + - '@imstevenxyz' ha_domain: versasense ha_platforms: - sensor diff --git a/source/_integrations/vodafone_station.markdown b/source/_integrations/vodafone_station.markdown index 54abb726f15..bcd6268da59 100644 --- a/source/_integrations/vodafone_station.markdown +++ b/source/_integrations/vodafone_station.markdown @@ -14,7 +14,6 @@ ha_platforms: - button - device_tracker - sensor -ha_ssdp: false ha_integration_type: integration --- diff --git a/source/_integrations/waqi.markdown b/source/_integrations/waqi.markdown index 421cfbba469..80f4e750057 100644 --- a/source/_integrations/waqi.markdown +++ b/source/_integrations/waqi.markdown @@ -6,11 +6,12 @@ ha_category: ha_release: 0.34 ha_iot_class: Cloud Polling ha_codeowners: - - '@andrey-git' + - '@joostlek' ha_domain: waqi ha_platforms: - sensor ha_integration_type: integration +ha_config_flow: true --- The `waqi` sensor platform will query [World Air Quality Index](https://aqicn.org/city/beijing/) service to check AQI value for a specific set of locations. The resulting indexes will be added to the Home Assistant as sensor outputs. diff --git a/source/_integrations/weatherkit.markdown b/source/_integrations/weatherkit.markdown index f280a8f7235..e727fc57986 100644 --- a/source/_integrations/weatherkit.markdown +++ b/source/_integrations/weatherkit.markdown @@ -3,8 +3,8 @@ title: Apple WeatherKit description: Instructions on how to set up Apple WeatherKit with Home Assistant. ha_category: - Weather -ha_release: "2023.10" -ha_iot_class: "Cloud Polling" +ha_release: '2023.10' +ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@tjhorner' diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown index 5da73dc9799..1ec754681fd 100644 --- a/source/_integrations/withings.markdown +++ b/source/_integrations/withings.markdown @@ -9,6 +9,7 @@ ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@vangorra' + - '@joostlek' ha_domain: withings ha_platforms: - binary_sensor diff --git a/source/_posts/2023-10-04-release-202310.markdown b/source/_posts/2023-10-04-release-202310.markdown new file mode 100644 index 00000000000..cc98551b044 --- /dev/null +++ b/source/_posts/2023-10-04-release-202310.markdown @@ -0,0 +1,389 @@ +--- +layout: post +title: "2023.10: Beta release notes" +description: "The beta release notes for Home Assistant 2023.10" +date: 2023-09-27 00:00:00 +date_formatted: "October 4, 2023" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2023-10/social.png +--- + + + + + +These are the beta release notes for Home Assistant Core 2023.10 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/UI/dashboards:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +version field (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +--- + + + +Home Assistant Core 2023.10! 🎉 + +Thanks for helping out testing the beta! ❤️ + +Enjoy the (beta) release! + + + +- [A beautiful updated logo!](#a-beautiful-updated-logo) +- [New tile features for climate](#new-tile-features-for-climate) +- [Tile card select feature](#tile-card-select-feature) +- [Map entity markers options](#map-entity-markers-options) +- [Password managers and Home Assistant](#password-managers-and-home-assistant) +- [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) +- [All changes](#all-changes) + +Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=-GDonruFfKc) +4 October 2023, at 12:00 PDT / 21:00 CEST! + + + +## A beautiful updated logo! + +In case you've missed it, we have refreshed the Home Assistant logo! 🤩 + +The new Home Assistant logo on a gray background. + +This was done for the [10th anniversary of Home Assistant](/blog/2023/09/17/10-years-home-assistant/), and you can [read all about this iteration in this blog post](/blog/2023/09/17/a-refreshed-logo-for-home-assistant/). + +You will start seeing this logo in many more places in the upcoming weeks, but, it is already included this release! + +## New tile features for climate + +Last release, we added [lots of new features for the Tile card](/blog/2023/09/06/release-20239/#lots-of-new-tile-features), +including features specifically for controlling your climate devices. This release, we are adding even more! + +[@Weissnix4711] contributed a feature that allows you to add buttons for the presets of your climate device to the tile card. + +

+ +Temporary screenshot that needs to be replaced. +

+ +[@piitaya] took it a step further and added the ability to select which presets you want to show, and allow showing them in a dropdown list instead of series of buttons. + +

+ +Temporary screenshot that needs to be replaced. +

+ +[@piitaya]: https://github.com/piitaya +[@Weissnix4711]: https://github.com/Weissnix4711 + +## Tile card select feature + +But there is more goodness for the Tile card this release. [@piitaya] added a select feature to the tile card, allowing you to select an option from a list of options. + +This feature can be used for any `select` entity, but also for your dropdown helpers! (also known as `input_select` entities). + +

+ +Temporary screenshot that needs to be replaced. +

+ +## Map entity markers options + +The [map card](/dashboards/map/), received new options for your entity markers that are shown on the map. + +For example, you can now choose if you want the entity name to be rendered on +the map, or the entity state but you could also override the name all together. +You can now also exclude entities to be not taking into account when centering +the map. + +

+ +Temporary screenshot that needs to be replaced. +

+ +## Password managers and Home Assistant + +There has been a long standing issue with using password managers with the Home Assistant login. +This release addresses this issue: + +

+ +Temporary screenshot that needs to be replaced. +

+ +## Other noteworthy changes + +**Note**: Changes processed up to PR 100967 + +There are many more improvements in this release; here are some of the other +noteworthy changes this release: + +- If you are using [ESPHome], you will notice much smaller Home Assistant + backups when you have [the latest version] installed! +- The [HomeKit Bridge] integration now support media receivers! Thanks, [@bdraco]! +- [@Lash-L] keeps extending the [Roborock] integration. + In this release, water and last clean sensors have been added. Sweet! +- [Withings] received lots of love this release, thanks [@joostlek]! It is now + easier to set up, and now also works with the [Home Assistant Cloud] webhooks + for push updates! +- [@allenporter] added calendar support to the [Rain Bird](/integrations/rainbird) + integration, allowing you to see your irrigation schedule in Home Assistant! + Nice! +- The [System Bridge] integration now supports notifications! Thanks, [@timmo001]! +- [@alexyao2015] added a button to [Life360] to trigger a poll to update the + location information. Cool! + +To process: + +- [Add an image fit mode to hui-image and picture-entity-card](https://github.com/home-assistant/frontend/pull/17959) + +[@alexyao2015]: https://github.com/alexyao2015 +[Life360]: /integrations/life360 +[@timmo001]: https://github.com/timmo001 +[System Bridge]: /integrations/system_bridge +[Home Assistant Cloud]: https://www.nabucasa.com +[@allenporter]: https://github.com/allenporter +[@Lash-L]: https://github.com/Lash-L +[Roborock]: /integrations/roborock +[@bdraco]: https://github.com/bdraco +[@joostlek]: https://github.com/joostlek +[ESPHome]: https://esphome.io +[HomeKit Bridge]: /integrations/homekit +[the latest version]: https://esphome.io/changelog/2023.9.0.html#esphome-2023-9-0-27th-september-2023 +[Withings]: /integrations/withings + +## New integrations + +We welcome the following new integrations in this release: + +- **[Apple WeatherKit]**, added by [@tjhorner]
+ Track the weather using Apple's WeatherKit API. +- **[Ecoforest]**, added by [@pjanuario]
+ Monitor and control your Ecoforest fireplace. +- **[IKEA IDÅSEN Desk]**, added by [@abmantis]
+ Connect and control the height of your IKEA IDÅSEN motorized desk. +- **[Medcom Bluetooth]**, added by [@elafargue]
+ Integrates you Medcom radiation monitors. +- **[Private BLE Device]**, added by [@Jc2k]
+ Track your BLE devices that change their MAC address frequently. +- **[SwitchBot Cloud]**, added by [@SeraphicRav]
+ Control your SwitchBot devices using the SwitchBot Cloud API. +- **[WeatherFlow]**, added by [@jeeftor]
+ Integrate your WeatherFlow Tempest Weather System. + +This release also has a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. The following virtual integration has been added: + +- **[Enmax Energy]** provided by [Opower] + +[@abmantis]: https://github.com/abmantis +[@elafargue]: https://github.com/elafargue +[@Jc2k]: https://github.com/Jc2k +[@jeeftor]: https://github.com/jeeftor +[@pjanuario]: https://github.com/pjanuario +[@SeraphicRav]: https://github.com/SeraphicRav +[@tjhorner]: https://github.com/tjhorner +[Apple WeatherKit]: /integrations/weatherkit +[Ecoforest]: /integrations/ecoforest +[Enmax Energy]: /integrations/enmax +[IKEA IDÅSEN Desk]: /integrations/idasen_desk +[Medcom Bluetooth]: /integrations/medcom_ble +[Opower]: /integrations/opower +[Private BLE Device]: /integrations/private_ble_device +[SwitchBot Cloud]: /integrations/switchbot_cloud +[WeatherFlow]: /integrations/weatherflow + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- **[AfterShip]**, done by [@joostlek] +- **[Color extractor]**, done by [@joostlek] +- **[Hunter Hydrawise]**, done by [@dknowles2] +- **[NextBus]**, done by [@ViViDboarder] +- **[Todoist]**, done by [@allenporter] +- **[Twitch]**, done by [@joostlek] +- **[World Air Quality Index (WAQI)]**, done by [@joostlek] + +[@allenporter]: https://github.com/allenporter +[@dknowles2]: https://github.com/dknowles2 +[@joostlek]: https://github.com/joostlek +[@ViViDboarder]: https://github.com/ViViDboarder +[Aftership]: /integrations/aftership +[Color extractor]: /integrations/color_extractor +[Hunter Hydrawise]: /integrations/hydrawise +[NextBus]: /integrations/nextbus +[Todoist]: /integrations/todoist +[Twitch]: /integrations/twitch +[World Air Quality Index (WAQI)]: /integrations/waqi + +## 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 Building the Open Home Newsletter](/newsletter) +to get the latest news about features, things happening in our community and +other news about building an Open Home; straight into your inbox. + +## Breaking changes + +**Note**: Breaking changes processed up to PR 100959 + +{% details "HomeKit Bridge" %} + +The HomeKit integration now supports media player receivers. HomeKit expects +receivers to be paired in accessory mode. Existing receivers that were paired +in bridge mode should be re-added in [accessory mode](/integrations/homekit/#accessory-mode). + +([@bdraco] - [#100717]) ([documentation](/integrations/homekit)) + +[@bdraco]: https://github.com/bdraco +[#100717]: https://github.com/home-assistant/core/pull/100717 + +{% enddetails %} + +{% details "Modbus" %} + +The `close_comm_on_error` configuration is no optional, sockets will always +be closed on error. Therefore, the `close_comm_on_error` is now deprecated, +and will be removed in Home Assistant 2024.3. + +([@janiversen] - [#99946]) ([documentation](/integrations/modbus)) + +[@janiversen]: https://github.com/janiversen +[#99946]: https://github.com/home-assistant/core/pull/99946 + +{% enddetails %} + +{% details "MQTT" %} + +An MQTT lock with a configured state topic will initialize with state +`unknown` instead of state `unlocked` unless the lock is set to optimistic mode. + +MQTT locks set to optimistic mode will still be initialized with +state `unlocked`. You should check if your automations are affected. + +([@jbouwh] - [#100943]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#100943]: https://github.com/home-assistant/core/pull/100943 + +{% enddetails %} + +{% details "NZBGet" %} + +The option to set a custom scan interval in NZBGet via configuring the entry +is removed. The update interval is now every 5 seconds. + +If you want to restore the custom scan interval behavior, +please checkout [the `homeassistant.update_entity` service](/common-tasks/general/#defining-a-custom-polling-interval). + +([@joostlek] - [#98869]) ([documentation](/integrations/nzbget)) + +[@joostlek]: https://github.com/joostlek +[#98869]: https://github.com/home-assistant/core/pull/98869 + +{% enddetails %} + +{% details "OpenTherm Gateway" %} + +Some of the older binary sensors and sensors from OpenTherm gateway have been +deprecated since January 2021. They have now been removed. Please use +the new binary sensors and sensors that have been created since. + +([@joostlek] - [#99712]) ([documentation](/integrations/opentherm_gw)) + +[@joostlek]: https://github.com/joostlek +[#99712]: https://github.com/home-assistant/core/pull/99712 + +{% enddetails %} + +{% details "Pentair ScreenLogic" %} + +Some entity names have changed. The integration will migrate old entities +to new names/ids. You may have to manually update old entities used +in, for example, your dashboards. + +Invalid entities such as "Saturation Index" are removed +if the required equipment is not configured. + +([@dieselrabbit] - [#92475]) ([documentation](/integrations/screenlogic)) + +[@dieselrabbit]: https://github.com/dieselrabbit +[#92475]: https://github.com/home-assistant/core/pull/92475 + +{% enddetails %} + +{% details "Supervisor" %} + +The default name given to backups created with the `hassio.full_backup` +and `hassio.partial_backup` services is no longer the UTC date and time the +backup was initiated (`%Y-%m-%d %H:%M:%S`) but instead the local date and +time the backup was initiated (`%Y-%m-%d %H:%M:%S`). + +([@jpbede] - [#100959]) ([documentation](/integrations/hassio)) + +[@jpbede]: https://github.com/jpbede +[#100959]: https://github.com/home-assistant/core/pull/100959 + +{% enddetails %} + +{% details "Z-Wave" %} + +Multiple websocket commands have been renamed based on [this change in Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/getting-started/migrating-to-v12?id=renamed-network-heal-to-rebuild-routes). + +With this release, you will need to update your zwave-js-server instance. +You must use zwave-js-server `1.32.0` or greater (schema `32`). + + - If you use the Z-Wave JS add-on, you need at least version `0.1.91`. + - If you use the Z-Wave JS UI add-on, you need at least version `2.0.0`. + - If you use the Z-Wave JS UI Docker container, you need at least version `9.0.0`. + - 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.32.0`. + +([@raman325] - [#100833]) ([documentation](/integrations/zwave_js)) + +[@raman325]: https://github.com/raman325 +[#100833]: https://github.com/home-assistant/core/pull/100833 + +{% enddetails %} + +If you are a custom integration developer and want to learn about breaking +changes and new features available for your integration: Be sure to follow our +[developer blog][devblog]. The following are the most notable for this release: + +- [New way of excluding state attributes from recording](https://developers.home-assistant.io/blog/2023/09/20/excluding-state-attributes-from-recording) +- [The websocket command entity/source has been modified](https://developers.home-assistant.io/blog/2023/09/12/ws-entity-source-simplified/) + +[devblog]: https://developers.home-assistant.io/blog/ + +## 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 2023.10](/changelogs/core-2023.10) \ No newline at end of file diff --git a/source/changelogs/core-2023.10.markdown b/source/changelogs/core-2023.10.markdown new file mode 100644 index 00000000000..cbd7f78a122 --- /dev/null +++ b/source/changelogs/core-2023.10.markdown @@ -0,0 +1,1816 @@ +--- +title: Full changelog for Home Assistant Core 2023.10 +description: Detailed changelog for the Home Assistant Core 2023.10 release +replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$ +--- + +These are all the changes included in the Home Assistant Core 2023.10 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2023/09/27/release-202310/). + +## All changes + +- Bump version to 2023.10.0dev0 ([@joostlek] - [#99349]) +- Add explicit test of template config entry setup ([@emontnemery] - [#99345]) +- Revert "Remove the virtual integration for ultraloq" ([@b-uwe] - [#99302]) +- Minor improvement in tests of hardware integrations ([@emontnemery] - [#99361]) +- Move octoprint coordinator to its own file ([@jpbede] - [#99359]) +- Escape core version [ci] ([@cdce8p] - [#99364]) +- Collapse supported features list in Deconz ([@joostlek] - [#99233]) +- Address late review for bsblan ([@jpbede] - [#99360]) +- Add entity translations to Mill ([@joostlek] - [#96541]) +- Use shorthand attributes in iCloud ([@joostlek] - [#99390]) +- Move tankerkoenig coordinator and base entity to its own file ([@jpbede] - [#99416]) +- Add @kbx81 as esphome codeowner ([@kbx81] - [#99427]) +- Use shorthand attributes in Isy994 ([@joostlek] - [#99395]) +- Update google-nest-sdm to 3.0.2 ([@allenporter] - [#99175]) +- Move airnow coordinator to its own file ([@jpbede] - [#99423]) +- Use shorthand attributes in Insteon ([@joostlek] - [#99392]) +- Use shorthand attributes in iZone ([@joostlek] - [#99397]) +- Discover more power and energy sensors in fibaro integration ([@rappenze] - [#98253]) +- Turn off Mill heaters using local API ([@ricmik] - [#99348]) +- Use snapshot assertion for netatmo diagnostics test ([@jpbede] - [#99159]) +- Avoid linear search of MQTT SUPPORTED_COMPONENTS ([@bdraco] - [#99459]) +- Refactor MQTT discovery to avoid creating closure if hash already in discovery_pending_discovered ([@bdraco] - [#99458]) +- Reduce overhead to process and publish MQTT messages ([@bdraco] - [#99457]) +- Freeze time for MQTT sensor expire tests ([@jbouwh] - [#99496]) +- Use shorthand attributes in Hunterdouglas powerview ([@joostlek] - [#99386]) +- Change matrix component to use matrix-nio instead of matrix_client ([@PaarthShah] - [#72797]) +- Support tracking private bluetooth devices ([@Jc2k] - [#99465]) +- Use shorthand attributes in hlk_sw16 ([@joostlek] - [#99383]) +- Don't compile missing statistics when running tests ([@emontnemery] - [#99446]) +- Switch mqtt to use async_call_later where possible ([@bdraco] - [#99486]) +- Speed up calls to the all states api ([@bdraco] - [#99462]) +- Switch isy994 to use async_call_later ([@bdraco] - [#99487]) +- Rework on mqtt certificate tests ([@jbouwh] - [#99503]) +- Code cleanup for nest device info ([@allenporter] - [#99511]) +- Improve lingering timer checks ([@bdraco] - [#99472]) +- Motion blinds duplication reduction using entity baseclass ([@starkillerOG] - [#99444]) +- Motion blinds add translations ([@starkillerOG] - [#99078]) +- Add long-term statistics to BMW sensors ([@rikroe] - [#99506]) +- Reduce overhead to retry config entry setup ([@bdraco] - [#99471]) +- Add sensors to private_ble_device ([@Jc2k] - [#99515]) +- Fix zha test RuntimeWarning ([@cdce8p] - [#99519]) +- Update pytest warning filter ([@cdce8p] - [#99521]) +- Add suggest_display_precision to private_ble_device ([@Jc2k] - [#99529]) +- Refactor async_call_at and async_call_later event helpers to avoid creating closures ([@bdraco] - [#99469]) +- Handle gracefully when unloading apcupsd config entries ([@yuxincs] - [#99513]) +- Reduce Bluetooth coordinator/processor overhead ([@bdraco] - [#99526]) +- Change calculation methods to a fixed list ([@engrbm87] - [#99535]) +- Speed up fetching states by domain ([@bdraco] - [#99467]) +- Rename nest test_sensor_sdm.py to test_sensor.py ([@allenporter] - [#99512]) +- Allow glances entries with same IP but different ports ([@engrbm87] - [#99536]) +- Make bond BPUP callback a HassJob ([@bdraco] - [#99470]) +- Make validator for modbus table controlled ([@janiversen] - [#99092]) +- Remove nest legacy service descriptions and translations ([@allenporter] - [#99510]) +- Fix tolo test warning ([@cdce8p] - [#99555]) +- Fix sql test warning ([@cdce8p] - [#99556]) +- Use shorthand attributes for Heos ([@joostlek] - [#99344]) +- Add strict typing to glances ([@engrbm87] - [#99537]) +- Move static shorthand devolo attributes outside of constructor ([@joostlek] - [#99234]) +- Remove unused attributes from Econet ([@joostlek] - [#99242]) +- Use shorthand attributes in Home connect ([@joostlek] - [#99385]) +- Use shorthand attributes for DLNA dmr ([@joostlek] - [#99236]) +- Move london underground coordinator to its own file ([@jpbede] - [#99550]) +- Use shorthand attributes in Laundrify ([@joostlek] - [#99586]) +- Use shorthand attributes in LCN ([@joostlek] - [#99587]) +- Use shorthand attributes in Juicenet ([@joostlek] - [#99575]) +- Use shorthand attributes in Kulersky ([@joostlek] - [#99583]) +- Use shorthand attributes in Keenetic ([@joostlek] - [#99577]) +- Add loader.async_get_loaded_integration ([@emontnemery] - [#99440]) +- Use `CONF_SALT` correctly in config_flow validation ([@engrbm87] - [#99597]) +- Use shorthand attributes in Lyric ([@joostlek] - [#99593]) +- Use shorthand attributes in Motion eye ([@joostlek] - [#99596]) +- Use shorthand attributes in Nanoleaf ([@joostlek] - [#99601]) +- Use shorthand attributes in Mutesync ([@joostlek] - [#99600]) +- Bumb python-homewizard-energy to 2.1.0 ([@DCSBL] - [#99598]) +- Bump simplepush api to 2.2.3 ([@engrbm87] - [#99599]) +- Remove default state from Nibe ([@joostlek] - [#99611]) +- Use shorthand attributes in Nest ([@joostlek] - [#99606]) +- Use shorthand attributes in Octoprint ([@joostlek] - [#99623]) +- Remove slugify from tomorrowio unique id ([@joostlek] - [#99006]) +- Move variables out of constructor in Nobo hub ([@joostlek] - [#99617]) +- Move variables out of constructor in nightscout ([@joostlek] - [#99612]) +- Speed up responding to states being polled via API ([@bdraco] - [#99621]) +- Move non legacy stt models out from legacy module ([@MartinHjelmare] - [#99582]) +- Fix Bluetooth passive update processor dispatching updates to unchanged entities ([@bdraco] - [#99527]) +- Improve performance of google assistant supported checks ([@bdraco] - [#99454]) +- Use shorthand attributes for Picnic ([@joostlek] - [#99633]) +- Bump actions/checkout from 3.6.0 to 4.0.0 (@dependabot - [#99651]) +- Use shorthand attributes in Nuheat ([@joostlek] - [#99618]) +- Use shorthand attributes in Openhome ([@joostlek] - [#99629]) +- Use shorthand attributes in Kodi ([@joostlek] - [#99578]) +- Use shorthand attributes in Konnected ([@joostlek] - [#99580]) +- Use shorthand attributes in Kostal Plenticore ([@joostlek] - [#99581]) +- Use shorthand attributes in Logi circle ([@joostlek] - [#99592]) +- Use shorthand attributes in NZBGet ([@joostlek] - [#99622]) +- Use shorthand attributes in Omnilogic ([@joostlek] - [#99626]) +- Use shorthand attributes in Ondilo ico ([@joostlek] - [#99627]) +- Use shorthand attributes in Neato ([@joostlek] - [#99605]) +- Replace lambda with attrgetter in hassfest ([@bdraco] - [#99662]) +- Replace lambda with attrgetter in device_tracker device_trigger ([@bdraco] - [#99663]) +- Replace lambda with itemgetter in script/gen_requirements_all.py ([@bdraco] - [#99661]) +- Replace lambda with attrgetter in homekit_controller ([@bdraco] - [#99666]) +- Use shorthand attributes for Plaato ([@joostlek] - [#99634]) +- Remove imap_email_content integration ([@jbouwh] - [#99484]) +- Replace lambda in script/gen_requirements_all.py with str.lower ([@bdraco] - [#99665]) +- Switch lambda to attrgetter in zha ([@bdraco] - [#99660]) +- Refactor dispatcher to reduce run time and memory overhead ([@bdraco] - [#99676]) +- Switch homekit config flow sorted to use itemgetter ([@bdraco] - [#99658]) +- Add codeowner for Withings ([@joostlek] - [#99681]) +- Show OTA update progress for Shelly gen2 devices ([@bieniu] - [#99534]) +- Display channel number in Bravia TV if title is not available ([@engrbm87] - [#99567]) +- Add a comment why state_class=total ([@tronikos] - [#99703]) +- Move template coordinator to its own file ([@jpbede] - [#99419]) +- Use shorthand attributes in Trend ([@jpbede] - [#99695]) +- Yellow LED controls: rename LEDs ([@c0ffeeca7] - [#99710]) +- Use loop time to set context ([@bdraco] - [#99701]) +- Fix pylint plugin test DeprecationWarning ([@cdce8p] - [#99711]) +- Revert "Remove imap_email_content integration" ([@jbouwh] - [#99713]) +- Postpone Imap_email_content removal ([@jbouwh] - [#99721]) +- Add binary_sensor to Schlage ([@dknowles2] - [#99637]) +- Fix asyncio.wait typing ([@cdce8p] - [#99726]) +- Update pre-commit to 3.4.0 ([@cdce8p] - [#99737]) +- Improve blink config_flow typing ([@cdce8p] - [#99579]) +- Update pytest-aiohttp to 1.0.5 ([@cdce8p] - [#99744]) +- Enable strict typing for Climate component ([@loopj] - [#99301]) +- Raise error on open/close failure in Aladdin Connect ([@mkmer] - [#99746]) +- Add additional fields for 3-phase UPS to nut ([@Vantomas] - [#98625]) +- Improve typing of trend component ([@jpbede] - [#99719]) +- Remove deprecated entities from OpenTherm Gateway ([@joostlek] - [#99712]) +- Use shorthand attributes in Progetti ([@joostlek] - [#99772]) +- Use shorthand attributes in Plum ([@joostlek] - [#99770]) +- Add energy meter sensors for Shelly Pro EM ([@bieniu] - [#99747]) +- Add my self as codeowner for airthings_ble ([@LaStrada] - [#99799]) +- Bump ProgettiHWSW to 0.1.3 ([@ArdaSeremet] - [#92668]) +- Add strict typing to islamic prayer times ([@engrbm87] - [#99585]) +- Use config entry ID as unique ID and remove dependency to getmac in Minecraft Server ([@elmurato] - [#97837]) +- Fix typo in TrackTemplateResultInfo ([@emontnemery] - [#99809]) +- Use shorthand attributes in Hisense ([@joostlek] - [#99355]) +- Use shorthand attributes in Plex ([@joostlek] - [#99769]) +- Update coverage to 7.3.1 ([@cdce8p] - [#99805]) +- Change AVM FRITZ!Box Call monitor sensor into an enum ([@jrieger] - [#99762]) +- Remove unused variable from rainbird ([@joostlek] - [#99824]) +- Use shorthand attributes in Sense ([@joostlek] - [#99833]) +- Use shorthand attributes in Roomba ([@joostlek] - [#99831]) +- Use shorthand attributes in SharkIQ ([@joostlek] - [#99836]) +- Use shorthand attributes in Rachio ([@joostlek] - [#99823]) +- Use shorthand attributes in Snapcast ([@joostlek] - [#99840]) +- Move shorthand attributes out of constructor in Sensibo ([@joostlek] - [#99834]) +- Move unit of temperature to descriptions in Sensibo ([@joostlek] - [#99835]) +- Use shorthand attributes in Opentherm gateway ([@joostlek] - [#99630]) +- Use shorthand attributes in Sonarr ([@joostlek] - [#99844]) +- Move shorthand attributes out of Snooz constructor ([@joostlek] - [#99842]) +- Use shorthand attributes in Ring ([@joostlek] - [#99829]) +- Use shorthand attributes in Rainforest eagle ([@joostlek] - [#99825]) +- Use str instead of string placeholders in solaredge ([@joostlek] - [#99843]) +- Bump zeroconf to 0.99.0 ([@bdraco] - [#99853]) +- Add device class and UoM in Sensibo Number entities ([@gjohansson-ST] - [#99861]) +- Renson fan ([@jimmyd-be] - [#94495]) +- Modbus scale parameter cuts decimals ([@janiversen] - [#99758]) +- Add Diagnostic platform to Aladdin Connect ([@mkmer] - [#99682]) +- Bump zeroconf to 0.102.0 ([@bdraco] - [#99875]) +- Use shorthand attributes in Telldus live ([@joostlek] - [#99887]) +- Use shorthand attributes in Tp-link Omada ([@joostlek] - [#99889]) +- Use shorthand attributes in Tradfri ([@joostlek] - [#99890]) +- Use shorthand attributes in Tado ([@joostlek] - [#99886]) +- Use shorthand attributes in Syncthru ([@joostlek] - [#99884]) +- Use shorthand attributes in Syncthing ([@joostlek] - [#99883]) +- Use shorthand attributes in Starline ([@joostlek] - [#99882]) +- Use shorthand attributes in SRP Energy ([@joostlek] - [#99881]) +- Allow exporting of `update` domain to Prometheus ([@samcrang] - [#99400]) +- Use shorthand attributes in UPB ([@joostlek] - [#99892]) +- Use shorthand attributes in Tp-link ([@joostlek] - [#99888]) +- Add more options to Islamic Prayer Times ([@alyyousuf7] - [#95156]) +- Bump actions/cache from 3.3.1 to 3.3.2 (@dependabot - [#99903]) +- Use aliases when listing pipeline languages ([@synesthesiam] - [#99672]) +- Use shorthand attributes in Wilight ([@joostlek] - [#99920]) +- Use shorthand attributes in Wolflink ([@joostlek] - [#99921]) +- Use shorthand attributes in Zerproc ([@joostlek] - [#99926]) +- Use shorthand attributes in Volumio ([@joostlek] - [#99918]) +- Refactor entity service calls to reduce complexity ([@bdraco] - [#99783]) +- Migrate elkm1 to use a dataclass for integration data ([@bdraco] - [#99830]) +- Avoid many hass.is_stopping calls in the discovery helper ([@bdraco] - [#99929]) +- Switch a few ssdp calls to use get_lower ([@bdraco] - [#99931]) +- Bump orjson to 3.9.7 ([@bdraco] - [#99938]) +- Add tests for Minecraft Server entry migration from v1 to v2 ([@elmurato] - [#99954]) +- Use device class translations for Devolo Update entity ([@joostlek] - [#99235]) +- Bump dbus-fast to 2.0.1 ([@bdraco] - [#99894]) +- Add UniFi device uptime and temperature sensors ([@Kane610] - [#99307]) +- Update black to 23.9.0 ([@cdce8p] - [#99965]) +- Add black caching [ci] ([@cdce8p] - [#99967]) +- Add zdb5100 light to zwave_js ([@Roagert] - [#97586]) +- Bump pytrafikverket to 0.3.6 ([@gjohansson-ST] - [#99869]) +- Change SSDP discovery scan interval to 10 minutes ([@bdraco] - [#99975]) +- Add config flow to WAQI ([@joostlek] - [#98220]) +- Add binary sensors to Roborock ([@Lash-L] - [#99990]) +- Deprecate CLOSE_COMM_ON_ERROR ([@janiversen] - [#99946]) +- Add entity translations to withings ([@joostlek] - [#99194]) +- Decouple Withings sensor tests from yaml ([@joostlek] - [#99691]) +- Fix late review findings in Minecraft Server ([@elmurato] - [#99865]) +- Use shorthand attributes in Vicare ([@joostlek] - [#99915]) +- Restore airtouch4 codeowner ([@joostlek] - [#99984]) +- Switch ESPHome Bluetooth to use loop.create_future() ([@bdraco] - [#100010]) +- Switch config_entries to use loop.create_future() ([@bdraco] - [#100011]) +- Use snapshot assertion in Plugwise diagnostic test ([@joostlek] - [#100008]) +- Move static attributes outside of ws66i constructor ([@joostlek] - [#99922]) +- Fix renamed code owner for Versasense ([@joostlek] - [#99976]) +- Bump screenlogicpy to v0.9.0 ([@dieselrabbit] - [#92475]) +- Add new sensors to Roborock ([@Lash-L] - [#99983]) +- Bump zeroconf to 0.103.0 ([@bdraco] - [#100012]) +- Bump aiodiscover to 1.5.1 ([@bdraco] - [#100020]) +- Add sensor entity descriptions in Minecraft Server ([@elmurato] - [#99971]) +- Add Plugwise temperature_offset number ([@bouwew] - [#100029]) +- Enable strict typing in Plugwise ([@bouwew] - [#100033]) +- Add debug message to doods ([@fender4645] - [#100002]) +- Speed up serializing event messages ([@bdraco] - [#100017]) +- Avoid json_decoder_fallback in /api/states ([@bdraco] - [#100018]) +- Update bthome-ble to 3.1.1 ([@cdce8p] - [#100042]) +- Add diagnostic platform to Honeywell ([@mkmer] - [#100046]) +- Raise HomeAssistantError/ValueError for service calls in Honeywell ([@mkmer] - [#100041]) +- Make homekit RTP/RTCP source ports more deterministic ([@vfreex] - [#99989]) +- Improve Withings config flow tests ([@joostlek] - [#99697]) +- Add device to OpenUV ([@joostlek] - [#100027]) +- Uer hass.loop.create_future() for MQTT client ([@jbouwh] - [#100053]) +- Use hass.loop.create_future() for bluetooth ([@jbouwh] - [#100054]) +- Add System Bridge notifications ([@timmo001] - [#82318]) +- Create recorder futures with loop.create_future() ([@bdraco] - [#100049]) +- Use hass.loop.create_future() in envisalink ([@jbouwh] - [#100057]) +- Remove unnecessary argument from discovergy coordinator ([@jpbede] - [#100058]) +- Address ruckus_unleashed late review ([@ms264556] - [#99411]) +- Bump aiohomekit to 3.0.3 ([@bdraco] - [#100047]) +- Add water heater support to Airzone ([@Noltari] - [#98401]) +- Add __slots__ to translation cache ([@bdraco] - [#100069]) +- Bump zeroconf to 0.104.0 ([@bdraco] - [#100068]) +- Bump flux_led to 1.0.4 ([@bdraco] - [#100050]) +- Bump tibdex/github-app-token from 1.8.0 to 1.8.2 (@dependabot - [#99434]) +- Bump dbus-fast to 2.2.0 ([@bdraco] - [#100076]) +- Add yolink siren battery entity ([@matrixd2] - [#99310]) +- Add sensors to Trafikverket Camera ([@gjohansson-ST] - [#100078]) +- Fix missed name to translation key in Sensibo ([@gjohansson-ST] - [#100080]) +- Add binary sensors to Trafikverket Camera ([@gjohansson-ST] - [#100082]) +- Fix incorrect docstring in TV Camera sensor test ([@gjohansson-ST] - [#100083]) +- Renson number entity ([@jimmyd-be] - [#99358]) +- Add unit tests for sensors Electric Kiwi ([@mikey0000] - [#97723]) +- Use shorthand attributes in ZAMG ([@joostlek] - [#99925]) +- Move smtp constants to const.py ([@engrbm87] - [#99542]) +- Add TYPE_CHECKING condition on type assertions for mqtt ([@jbouwh] - [#100107]) +- Also handle DiscovergyClientError as UpdateFailed ([@jpbede] - [#100038]) +- Update black to 23.9.1 ([@cdce8p] - [#100108]) +- Use json to store Withings test data fixtures ([@joostlek] - [#99998]) +- Decouple Withings binary sensor test from YAML ([@joostlek] - [#100120]) +- Bump pyunifiprotect to 4.20.0 ([@bdraco] - [#100092]) +- Bump zeroconf to 0.105.0 ([@bdraco] - [#100084]) +- Cleanup isinstance checks in zeroconf ([@bdraco] - [#100090]) +- UniFi streamline loading platforms ([@Kane610] - [#100071]) +- Remove AEMET daily precipitation sensor test ([@Noltari] - [#100118]) +- Fix ScrapeSensor.async_added_to_hass ([@emontnemery] - [#100125]) +- Fix inverse naming of function in Reolink ([@starkillerOG] - [#100113]) +- Guard expensive debug logging with isEnabledFor in alexa ([@bdraco] - [#100137]) +- Add Apple WeatherKit integration ([@tjhorner] - [#99895]) +- Migrate mobile_app to use json helper ([@bdraco] - [#100136]) +- Bump zeroconf to 0.107.0 ([@bdraco] - [#100134]) +- Remove code owner Verisure ([@niro1987] - [#100145]) +- Decouple Withings webhook tests from YAML ([@joostlek] - [#100143]) +- Migrate internal ZHA data to a dataclasses ([@puddly] - [#100127]) +- Bump zeroconf to 0.108.0 ([@bdraco] - [#100148]) +- Refactor discovergy config flow test to use parametrize ([@jpbede] - [#100115]) +- Split Withings common file out to their own file ([@joostlek] - [#100150]) +- Use library for condition/wind direction conversions ([@Noltari] - [#100117]) +- Let the discovergy config flow test end with create entry ([@jpbede] - [#100153]) +- Bump dbus-fast to 2.4.0 ([@bdraco] - [#100158]) +- Move airly coordinator to its own file ([@jpbede] - [#99545]) +- Add configuration flow to Todoist integration ([@allenporter] - [#100094]) +- Bump dbus-fast to 2.6.0 ([@bdraco] - [#100163]) +- Add missing AEMET wind gust speed ([@Noltari] - [#100157]) +- Add Life360 Location Update Button ([@alexyao2015] - [#99559]) +- Use shorthand attributes in Smart meter texas ([@joostlek] - [#99838]) +- Bump tibdex/github-app-token from 1.8.2 to 2.0.0 (@dependabot - [#100099]) +- Bring modbus naming in sync with standard ([@janiversen] - [#99285]) +- Remove unnecessary block use of pylint disable in components a-o ([@emontnemery] - [#100190]) +- Remove default from deprecated close_comm_on_error ([@janiversen] - [#100188]) +- Use shorthand attributes in Wiffi ([@joostlek] - [#99919]) +- Use shorthand attributes in Songpal ([@joostlek] - [#99849]) +- Use shorthand attributes in Squeezebox ([@joostlek] - [#99863]) +- Use shorthand attributes in Twinkly ([@joostlek] - [#99891]) +- Use shorthand attributes in Smarttub ([@joostlek] - [#99839]) +- Use shorthand attributes in Vera ([@joostlek] - [#99893]) +- Simplify WS command entity/source ([@emontnemery] - [#99439]) +- Remove unnecessary block use of pylint disable in onvif ([@emontnemery] - [#100194]) +- Use shorthand attribute in Bloomsky ([@joostlek] - [#100203]) +- Use shorthand attributes in geniushub sensor ([@bdraco] - [#100208]) +- Use shorthand attributes in buienradar camera ([@bdraco] - [#100205]) +- Use shorthand attributes in garadget cover ([@bdraco] - [#100207]) +- Enable asyncio debug mode in tests ([@emontnemery] - [#100197]) +- Use shorthand attributes in Isy994 ([@joostlek] - [#100209]) +- Use shorthand attributes in Point ([@joostlek] - [#100214]) +- Improve type annotations in websocket_api tests ([@emontnemery] - [#100198]) +- Use shorthand attributes in Universal ([@joostlek] - [#100219]) +- Use shorthand attributes in Yamaha Musiccast ([@joostlek] - [#100220]) +- Use shorthand attributes in SPC ([@joostlek] - [#100217]) +- Add Entity Descriptions to SMA integration ([@rklomp] - [#58707]) +- Add intial property to imap_content event data ([@jbouwh] - [#100171]) +- Use shorthand attributes in Smartthings ([@joostlek] - [#100215]) +- Remove unnecessary pylint disable in tado ([@emontnemery] - [#100196]) +- Bump homematicip_cloud to 1.0.15 ([@hahn-th] - [#99387]) +- Set TriggerBaseEntity device_class in init ([@bdraco] - [#100216]) +- Update Stream logging on EVENT_LOGGING_CHANGED ([@uvjustin] - [#99256]) +- Use more common translations ([@jrieger] - [#100135]) +- Use more shorthand attributes in huawei_lte binary_sensor ([@bdraco] - [#100211]) +- Use more shorthand properties in homematicip_cloud ([@bdraco] - [#100210]) +- Set roku media player device class in constructor ([@bdraco] - [#100225]) +- Use shorthand attributes in NWS ([@joostlek] - [#99620]) +- Update Deprecated Selector Syntax ([@SirGoodenough] - [#99308]) +- Bump sigstore/cosign-installer from 3.1.1 to 3.1.2 (@dependabot - [#99563]) +- Use short hand entity_registry_enabled_default in nws ([@bdraco] - [#100227]) +- Add entity translations to WLED ([@joostlek] - [#99056]) +- Clean up device registry for climate devices that no longer exist in Honeywell ([@mkmer] - [#100072]) +- Use short handle attributes for device class in netatmo cover ([@bdraco] - [#100228]) +- Improve typing of entity.entity_sources ([@emontnemery] - [#99407]) +- Use shorthanded attributes for MQTT cover ([@jbouwh] - [#100230]) +- Remove unnecessary block use of pylint disable in components p-z ([@emontnemery] - [#100192]) +- Introduce base class for Trafikverket camera ([@joostlek] - [#100114]) +- Set dynalite cover device class in constructor ([@bdraco] - [#100232]) +- Clean up variables in Soundtouch ([@joostlek] - [#99859]) +- Improve Entity._suggest_report_issue ([@emontnemery] - [#100204]) +- Remove the uniqueid from todoist ([@allenporter] - [#100206]) +- Add meteoclimatic sensor statistics ([@Noltari] - [#100186]) +- Support for Insteon 4 button KeypadLink device ([@teharris1] - [#100132]) +- Remove restore functionality in Speedtest.net ([@joostlek] - [#96950]) +- User shorthand attr for mqtt alarm_control_panel ([@jbouwh] - [#100234]) +- Use shorthand attr for mqtt assumed_state ([@jbouwh] - [#100241]) +- Add strict typing to GPSD ([@jrieger] - [#100030]) +- Upgrade ruff to 0.0.289 ([@scop] - [#100238]) +- Update ecobee zeroconf/homekit discovery ([@bdraco] - [#100091]) +- Use shorthand attributes in VLC telnet ([@joostlek] - [#99916]) +- Bump async-upnp-client to 0.35.1 ([@bdraco] - [#100248]) +- Disable always responding to all SSDP M-SEARCH requests with the root device ([@bdraco] - [#100224]) +- SamsungTV: Add unique_id for when missing (legacy models) ([@chemelli74] - [#96829]) +- Update jsonpath to 0.82.2 ([@cdce8p] - [#100252]) +- Fix pylint config warning ([@cdce8p] - [#100251]) +- Update apple_weatherkit to 1.0.2 ([@tjhorner] - [#100254]) +- Correct Venstar firmware version to use device's FW version instead of API version ([@jhollowe] - [#98493]) +- Address weatherkit late review comments ([@tjhorner] - [#100265]) +- Bump docker/login-action from 2.2.0 to 3.0.0 (@dependabot - [#100264]) +- Tweak entity/source WS command handler ([@emontnemery] - [#100272]) +- Test speedtest.net config entry lifecycle ([@joostlek] - [#100280]) +- Improve type hint in entity_registry ([@emontnemery] - [#100278]) +- Add diagnostics to Twinkly ([@Olen] - [#100146]) +- Use shorthanded attrs for yamaha_musiccast select ([@jbouwh] - [#100273]) +- Move sms coordinators to their own file ([@jpbede] - [#100276]) +- Limit waze_travel_time to 1 call every 0.5s ([@eifinger] - [#100191]) +- Use hass.loop.create_future() in zha ([@jbouwh] - [#100056]) +- Use shorthanded attrs for vera sensor ([@jbouwh] - [#100269]) +- Remove NZBGet configurable scan interval ([@joostlek] - [#98869]) +- Update syrupy to 4.5.0 ([@frenck] - [#100283]) +- Update mutagen to 1.47.0 ([@frenck] - [#100284]) +- Use shorthand attrs for xbox base_sensor ([@jbouwh] - [#100290]) +- Remove profile from Withings config flow ([@joostlek] - [#100202]) +- Use shorthand attrs in iaqualink ([@jbouwh] - [#100281]) +- Use shorthand attrs for velux ([@jbouwh] - [#100294]) +- Fix missing super async_added_to_hass in lookin ([@bdraco] - [#100296]) +- Replace StateMachine._domain_index with a UserDict ([@emontnemery] - [#100270]) +- Add options flow to Withings ([@joostlek] - [#100300]) +- Allow setting the elevation in `set_location` ([@jrieger] - [#99978]) +- Improve UserDict in device and entity registries ([@emontnemery] - [#100307]) +- Update debugpy to 1.8.0 ([@frenck] - [#100311]) +- Use shorthand attrs in template integration ([@jbouwh] - [#100301]) +- Update Roborock entity categories ([@balloob] - [#100316]) +- Remove legacy UniFi PoE client clean up ([@Kane610] - [#100318]) +- Use short hand attributes in onvif camera ([@bdraco] - [#100319]) +- Add some tests to Freebox ([@Quentame] - [#99755]) +- Bump dbus-fast to 2.7.0 ([@bdraco] - [#100321]) +- Use cached_property in entity_registry ([@bdraco] - [#100302]) +- Use snapshot assertion for nexia diagnostics test ([@jpbede] - [#100328]) +- Bump python-amcrest to 1.9.8 ([@bdraco] - [#100324]) +- Add missing sms coordinator to .coveragerc ([@jpbede] - [#100327]) +- Use cached_property in device registry ([@bdraco] - [#100309]) +- Update sentry-sdk to 1.31.0 ([@frenck] - [#100293]) +- Use shorthand atts for met_eireann ([@jbouwh] - [#100335]) +- Shorthanded attrs for met integration ([@jbouwh] - [#100334]) +- Use shorthand attributes for supla cover device class ([@bdraco] - [#100337]) +- Bump protobuf to 4.24.3 ([@bdraco] - [#100329]) +- Use shorthand attributes in saj ([@bdraco] - [#100317]) +- Bump grpcio to 1.58.0 ([@bdraco] - [#100314]) +- Make core States use cached_property ([@bdraco] - [#100312]) +- Late review for honeywell ([@mkmer] - [#100299]) +- Bump zeroconf to 0.111.0 ([@bdraco] - [#100340]) +- Use more shorthand attributes in threshold binary_sensor ([@bdraco] - [#100343]) +- Add missing __init__.py file in yardian test folder ([@h3l1o5] - [#100345]) +- Use shorthand attributes in Smappee ([@joostlek] - [#99837]) +- Add icon to GPSD ([@jrieger] - [#100347]) +- Use f-string instead of concatenation in Velux ([@joostlek] - [#100353]) +- Update awesomeversion to 23.8.0 ([@frenck] - [#100349]) +- Drop useless passing of update_method to DataUpdateCoordinator ([@emontnemery] - [#100355]) +- Update apprise to 1.5.0 ([@frenck] - [#100351]) +- Netgear cleanup ([@starkillerOG] - [#99505]) +- Change service `set_location` to use number input selectors ([@jrieger] - [#100360]) +- Remove useless timeout guards in devolo_home_network ([@Shutgun] - [#100364]) +- Extract Withings API specifics in own class ([@joostlek] - [#100363]) +- Add Netgear entity translations ([@starkillerOG] - [#100367]) +- Solve racing problem in modbus test ([@janiversen] - [#100287]) +- Use shorthand device_type attr for plaato sensors ([@jbouwh] - [#100385]) +- Short handed device class for overkiz cover ([@jbouwh] - [#100394]) +- Use shorthand attrs for tasmota ([@jbouwh] - [#100390]) +- Bump zeroconf to 0.112.0 ([@bdraco] - [#100386]) +- Remove hard coded Icon from Unifi device scanner ([@Kane610] - [#100401]) +- Remove obsolete strings from Withings ([@joostlek] - [#100396]) +- Move solarlog coordinator to own file ([@jpbede] - [#100402]) +- Reload on Withings options flow update ([@joostlek] - [#100397]) +- Avoid multiline ternary use ([@jbouwh] - [#100381]) +- Bump bleak-retry-connector to 3.2.1 ([@bdraco] - [#100377]) +- Cache entity properties that are never expected to change in the base class ([@bdraco] - [#95315]) +- Improve performance of mqtt_room ([@bdraco] - [#100408]) +- Use more shorthand attributes in hyperion ([@bdraco] - [#100213]) +- Move awair coordinators to their own file ([@jpbede] - [#100411]) +- Tweak datetime service schema ([@emontnemery] - [#100380]) +- Bump apple_weatherkit to 1.0.3 ([@tjhorner] - [#100416]) +- Move airtouch4 coordinator to its own file ([@jpbede] - [#100424]) +- Revert "Cache entity properties that are never expected to change in the base class" ([@emontnemery] - [#100422]) +- Generate withings webhook ID in config flow ([@joostlek] - [#100395]) +- Add device_address to modbus configuration ([@janiversen] - [#100399]) +- Add virtual_count == slave_count in modbus configuration ([@janiversen] - [#100398]) +- Remove state class from RainMachine TIMESTAMP sensors ([@WillCodeForCats] - [#100400]) +- Test VIRTUAL_COUNT parameter ([@janiversen] - [#100434]) +- Add test for modbus CONF_DEVICE_ADDR ([@janiversen] - [#100435]) +- Bump sense-energy to 0.12.2 ([@bdraco] - [#100459]) +- Make codespell ignore snapshots ([@joostlek] - [#100463]) +- Harden modbus against lib errors ([@janiversen] - [#100469]) +- Use shorthand attrs for device_class zwave_js sensor ([@jbouwh] - [#100414]) +- Move co2signal exceptions to their own file ([@jpbede] - [#100473]) +- Move cert_expiry coordinator to its own file ([@jpbede] - [#100472]) +- Move flipr coordinator to its own file ([@jpbede] - [#100467]) +- Move co2signal models to their own file ([@jpbede] - [#100478]) +- Move flipr base entity to its own file ([@jpbede] - [#100481]) +- Use central logger in Withings ([@joostlek] - [#100406]) +- Simplify code, due to better error catching in modbus. ([@janiversen] - [#100483]) +- Modbus 100% test coverage (again) ([@janiversen] - [#100482]) +- Add switchbot cloud integration ([@SeraphicRav] - [#99607]) +- Pass function correctly to Withings API ([@joostlek] - [#100391]) +- Avoid writing unifiprotect state when nothing has changed ([@bdraco] - [#100439]) +- Bump python-androidtv to 0.0.72 ([@kevin-kraus] - [#100441]) +- Add fan modes in Lyric integration ([@jerry0317] - [#100420]) +- Deprecate modbus parameter retry_on_empty ([@janiversen] - [#100292]) +- Added device class to speedtestdotnet sensor entities. ([@dirrgang] - [#100500]) +- Update numpy to 1.26.0 ([@cdce8p] - [#100512]) +- Bump opower to 0.0.34 ([@tronikos] - [#100501]) +- Fix huawei_lte current month up/download sensor error on delete ([@scop] - [#100506]) +- Fix full black run condition [ci] ([@cdce8p] - [#100532]) +- Add `event` platform for Shelly gen2 devices ([@bieniu] - [#99659]) +- Bump elkm1-lib to 2.2.6 ([@gwww] - [#100537]) +- Remove duplicate mobile_app client fixture ([@cdce8p] - [#100530]) +- Fix google invalid token expiry test init for UTC offsets > 0 ([@scop] - [#100533]) +- Add missing conversation service translation ([@steffenrapp] - [#100308]) +- Move co2signal coordinator to its own file ([@jpbede] - [#100541]) +- Update typing-extensions to 4.8.0 ([@cdce8p] - [#100545]) +- Update pytest warnings filter ([@cdce8p] - [#100546]) +- Adjust codeowners in modbus ([@janiversen] - [#100474]) +- Clean up lyric sensor platform ([@joostlek] - [#100495]) +- Set co2signal integration type to service ([@jpbede] - [#100543]) +- Drop codeowner for Magic Home/flux_led ([@bdraco] - [#100557]) +- Drop codeowner for LIFX ([@bdraco] - [#100556]) +- Fibaro streamline hass.data entry ([@rappenze] - [#100547]) +- Add pylint plugin to check for calls to base implementation ([@cdce8p] - [#100432]) +- Add Vodafone Station sensor platform ([@chemelli74] - [#99948]) +- Move uptimerobot coordinator to its own file ([@jpbede] - [#100558]) +- Fix lyric feedback ([@joostlek] - [#100586]) +- Change Hue zigbee connectivity sensor into an enum ([@joostlek] - [#98632]) +- Remove platform const in co2signal coordinator ([@jpbede] - [#100592]) +- Add DataUpdateCoordinator to Minecraft Server ([@elmurato] - [#100075]) +- Add Spotify code owner ([@joostlek] - [#100597]) +- Add config-flow to NextBus ([@ViViDboarder] - [#92149]) +- Call async added to hass super in Livisi ([@joostlek] - [#100446]) +- Update zeroconf discovery to use IPAddress objects to avoid conversions ([@bdraco] - [#100567]) +- Add missing translations for Shelly event type states ([@bieniu] - [#100608]) +- Clean-up Minecraft Server tests ([@elmurato] - [#100615]) +- Use is for UNDEFINED check in async_update_entry ([@bdraco] - [#100599]) +- Switch config flows use newer zeroconf methods to check IP Addresses ([@bdraco] - [#100568]) +- Add integration for IKEA Idasen Desk ([@abmantis] - [#99173]) +- Move renson coordinator to its own file ([@jpbede] - [#100610]) +- Move faa_delays coordinator to its own file ([@jpbede] - [#100548]) +- Update enphase_envoy zeroconf checks to use stdlib ipaddress methods ([@bdraco] - [#100624]) +- Update dhcp to use stdlib ipaddress methods ([@bdraco] - [#100625]) +- Avoid double lookups with data_entry_flow indices ([@bdraco] - [#100627]) +- Bump dbus-fast to 2.9.0 ([@bdraco] - [#100638]) +- Bump SQLAlchemy to 2.0.21 ([@bdraco] - [#99745]) +- Add second test device for Roborock ([@Lash-L] - [#100565]) +- Fix hkid matching in homekit_controller when zeroconf value is not upper case ([@bdraco] - [#100641]) +- Move attributes to be excluded from recording to entity classes ([@emontnemery] - [#100239]) +- Update doorbird zeroconf checks to use stdlib ipaddress methods ([@bdraco] - [#100623]) +- Avoid ConfigEntry lookups in hass.config_entries.async_entries for domain index ([@bdraco] - [#100598]) +- Bump ismartgate to 5.0.1 ([@unDemian] - [#100636]) +- Bump tibdex/github-app-token from 2.0.0 to 2.1.0 (@dependabot - [#100632]) +- Add Enmax virtual integration to Opower ([@aman207] - [#100503]) +- Clean-up Minecraft Server constants ([@elmurato] - [#100666]) +- Avoid calling extract_stack in system_log since it does blocking I/O ([@bdraco] - [#100455]) +- Add test to london underground ([@jpbede] - [#100562]) +- Add support for Levoit Vital200s purifier ([@mike391] - [#100613]) +- Fix missspelled package names ([@edenhaus] - [#100670]) +- Add Slack thread/reply support ([@FletcherAU] - [#93384]) +- Avoid redundant calls to `async_ha_write_state` in MQTT (binary) sensor ([@jbouwh] - [#100438]) +- Move definition of attributes excluded from history to entity classes ([@emontnemery] - [#100430]) +- Add ecoforest integration ([@pjanuario] - [#100647]) +- Move coolmaster coordinator to its own file ([@jpbede] - [#100425]) +- Add water shortage binary sensor ([@Lash-L] - [#100662]) +- Add last clean sensors to Roborock ([@Lash-L] - [#100661]) +- ZHA multiprotocol detected - fix typo ([@c0ffeeca7] - [#100683]) +- Remove async_process_integration_platform_for_component ([@emontnemery] - [#100680]) +- Add Renson button entity ([@jimmyd-be] - [#99494]) +- Update plugwise to v0.33.0 ([@bouwew] - [#100689]) +- ZHA multiprotocol detected message: add info ([@c0ffeeca7] - [#100686]) +- Add missing step-differentiation for the Plugwise temperature_offset ([@bouwew] - [#100654]) +- Add number platform to ecoforest ([@pjanuario] - [#100694]) +- Add additional sensors to ecoforest integration ([@pjanuario] - [#100681]) +- Avoid polling in sun sensor entities ([@bdraco] - [#100693]) +- Avoid redundant calls to `async_write_ha_state` in MQTT mqtt alarm_control_panel ([@jbouwh] - [#100691]) +- Avoid redundant calls to `async_write_ha_state` in MQTT climate & water_heater ([@jbouwh] - [#100696]) +- Assign color_mode for mqtt light as ColorMode ([@jbouwh] - [#100709]) +- Add switch platform to ecoforest integration ([@pjanuario] - [#100708]) +- Move samsung tv device class outside of constructor ([@joostlek] - [#100712]) +- Avoid redundant calls to `async_write_ha_state` in MQTT light ([@jbouwh] - [#100690]) +- Add device class to denonavr ([@DanielWeeber] - [#100711]) +- Use shorthand attrs for MQTT cover ([@jbouwh] - [#100710]) +- Reolink remove unneeded str() ([@starkillerOG] - [#100718]) +- Add more august actions ([@Olen] - [#100667]) +- Remove obsolete methods in HVV departures ([@joostlek] - [#100451]) +- Bump aiovodafone to 0.3.0 ([@chemelli74] - [#100729]) +- Only get state once for all August sensor-tests ([@Olen] - [#100721]) +- Avoid redundant calls to async_write_ha_state in mqtt cover ([@jbouwh] - [#100720]) +- Remove unneeded instance check ([@rappenze] - [#100736]) +- Improve Idasen Desk "no devices found" message ([@abmantis] - [#100742]) +- Bump screenlogicpy to v0.9.1 ([@dieselrabbit] - [#100744]) +- Fix Shelly Gen2 event get input name method ([@thecode] - [#100733]) +- Add `event` platform for Shelly gen1 devices ([@bieniu] - [#100655]) +- Correct some typo's in MQTT issue string ([@jbouwh] - [#100759]) +- Fibaro finish separation of scenes ([@rappenze] - [#100734]) +- Add myself as a fitbit codeowner ([@allenporter] - [#100766]) +- Add media extractor tests ([@joostlek] - [#100462]) +- Add tests for fitbit integration ([@allenporter] - [#100765]) +- Call async added to hass super in Flo ([@joostlek] - [#100453]) +- Fix fitbit test code owner ([@joostlek] - [#100772]) +- Bump pysensibo 1.0.35 ([@gjohansson-ST] - [#100245]) +- Refactor Sensibo tests to use snapshot ([@gjohansson-ST] - [#100775]) +- Add config flow to Hydrawise ([@dknowles2] - [#95589]) +- Bump faadelays to 2023.8.0 ([@ntilley905] - [#100700]) +- Add more test coverage for fitbit sensors ([@allenporter] - [#100776]) +- Clean up FAA Delays constants ([@ntilley905] - [#100788]) +- Update powerwall password description ([@AtomBrake] - [#100389]) +- Expose bluetooth availability tracking interval controls to integrations ([@Jc2k] - [#100774]) +- Avoid redundant calls to async_write_ha_state in mqtt device_tracker ([@jbouwh] - [#100767]) +- Remove support for excluding attributes in recorder platforms ([@emontnemery] - [#100679]) +- Allow workday sensor to be configured without a country ([@scolby33] - [#93048]) +- Preserve private ble device broadcast interval when MAC address rotates ([@Jc2k] - [#100796]) +- Bump bluetooth-data-tools to 0.12.0 ([@bdraco] - [#100794]) +- Update AEMET-OpenData to v0.4.5 ([@Noltari] - [#100818]) +- Rewrite fitbit sensor API response value parsing ([@allenporter] - [#100782]) +- Add Mysensors battery sensor ([@trnila] - [#100749]) +- Change duration for timer.start service to only change running duration ([@gjohansson-ST] - [#99628]) +- Create repairs in Workday if country or province is wrong ([@gjohansson-ST] - [#98753]) +- Bump actions/checkout from 4.0.0 to 4.1.0 (@dependabot - [#100836]) +- Add duotecno climate ([@Cereal2nd] - [#99333]) +- Address late review on Life360 button ([@alexyao2015] - [#100740]) +- Explicitly define ScreenLogic entity descriptions ([@dieselrabbit] - [#100173]) +- Add binary sensors for duotecno ([@Cereal2nd] - [#100844]) +- Allow passing a wake word ID to detect wake word ([@balloob] - [#100832]) +- Add a select entity for homekit temperature display units ([@Jc2k] - [#100853]) +- Store wakeword settings in assist pipelines ([@emontnemery] - [#100847]) +- Update pylint to 2.17.6 ([@cdce8p] - [#100849]) +- Add valve position sensor for Eve Thermo ([@Jc2k] - [#100856]) +- Provide a better model for HomeKit service entries ([@bdraco] - [#100848]) +- Add support for receivers to HomeKit ([@bdraco] - [#100717]) +- Add duration and sensitivity configuration for Eve Motion ([@Jc2k] - [#100861]) +- Rename wake_word.async_default_engine to wake_word.async_default_entity ([@emontnemery] - [#100855]) +- Simplify Minecraft Server SRV handling ([@elmurato] - [#100726]) +- Avoid redundant calls to async_write_ha_state for mqtt fan ([@jbouwh] - [#100777]) +- Avoid redundant calls to async_write_ha_state in mqtt humidifier ([@jbouwh] - [#100781]) +- Rework and added tests for mqtt event ([@jbouwh] - [#100769]) +- Fix missing device class on Velux Windows ([@Jc2k] - [#100863]) +- Avoid redundant calls to async_write_ha_state in mqtt lawn_mower ([@jbouwh] - [#100795]) +- Avoid redundant calls to async_write_ha_state in mqtt lock ([@jbouwh] - [#100802]) +- Avoid redundant calls to async_write_ha_state in mqtt number ([@jbouwh] - [#100808]) +- Avoid redundant calls to async_write_ha_state in mqtt select ([@jbouwh] - [#100809]) +- Avoid redundant calls to async_ha_write_state in mqtt switch ([@jbouwh] - [#100815]) +- Avoid redundant calls to async_ha_write_state in mqtt text ([@jbouwh] - [#100816]) +- Avoid redundant calls to async_ha_write_state mqtt update platform ([@jbouwh] - [#100819]) +- Update types packages ([@cdce8p] - [#100850]) +- Use wake word settings in assist pipeline runs ([@emontnemery] - [#100864]) +- Rework and fix mqtt siren writing state and attributes ([@jbouwh] - [#100871]) +- Handle json decode exception in co2signal ([@jpbede] - [#100857]) +- Bump led-ble to 1.0.1 ([@bdraco] - [#100873]) +- Avoid redundant calls to async_write_ha_state in mqtt vacuum ([@jbouwh] - [#100799]) +- Add tests for mqtt image ([@jbouwh] - [#100793]) +- Parametrize more co2signal config flow tests ([@jpbede] - [#100882]) +- Avoid redundant calls to async_write_ha_state in mqtt siren ([@jbouwh] - [#100813]) +- Add type hints for intent_script integration ([@jbouwh] - [#99393]) +- Bump yt-dlp to 2023.9.24 ([@joostlek] - [#100884]) +- Bump dbus-fast to 2.10.0 ([@bdraco] - [#100879]) +- Bump zeroconf to 0.114.0 ([@bdraco] - [#100880]) +- Bump async-upnp-client to 0.36.0 ([@bdraco] - [#100881]) +- Add doorbell event to google_assistant ([@jbouwh] - [#97123]) +- Simplify homekit_controller tests with snapshots ([@Jc2k] - [#100885]) +- Bump aiohomekit to 3.0.5 ([@Jc2k] - [#100886]) +- Make sure time is changed in mqtt event test ([@jbouwh] - [#100889]) +- Use webrtc-noise-gain for audio enhancement in Assist pipelines ([@synesthesiam] - [#100698]) +- Simplify fitbit unit system and conversions ([@allenporter] - [#100825]) +- Add Rain Bird irrigation calendar ([@allenporter] - [#87604]) +- Allow fetching wake word entity info ([@balloob] - [#100893]) +- Enable strict typing in london underground ([@jpbede] - [#100563]) +- Add date range to Workday ([@gjohansson-ST] - [#96255]) +- Add device info to Hydrawise ([@dknowles2] - [#100828]) +- Add coordinator to Withings ([@joostlek] - [#100378]) +- Bump pyduotecno to 2023.9.0 ([@Cereal2nd] - [#100900]) +- Rename Withings coordinator file ([@joostlek] - [#100899]) +- Rename PipelineData.pipeline_runs to pipeline_debug ([@emontnemery] - [#100907]) +- Add entity translations to Wallbox ([@joostlek] - [#99021]) +- Mark Bluetooth scanner as not scanning when watchdog timeout is reached ([@bdraco] - [#100738]) +- Add state classes to Tomorrowio sensors ([@dirrgang] - [#100692]) +- Remove duplicated call to `PipelineRun.end` from `PipelineInput.execute` ([@emontnemery] - [#100909]) +- Remove async-timeout as core dependency ([@cdce8p] - [#100912]) +- Cleanup Withings const import ([@joostlek] - [#100914]) +- Add missing input_button service translation ([@steffenrapp] - [#100387]) +- Bump aioairzone-cloud to 0.2.2 ([@Noltari] - [#100915]) +- Make Hydrawise compliant with new naming standards ([@dknowles2] - [#100921]) +- Add entity translations to SRP Energy ([@joostlek] - [#99011]) +- Handle authorization error in glances config flow ([@engrbm87] - [#100866]) +- Tweak pipeline.multiply_volume ([@emontnemery] - [#100905]) +- Update fitbit client to use asyncio ([@allenporter] - [#100933]) +- Small cleanup to isy994 extra_state_attributes ([@bdraco] - [#100935]) +- Cache the latest short term stat id for each metadata_id on each run ([@bdraco] - [#100535]) +- Bump zeroconf to 0.115.0 ([@bdraco] - [#100931]) +- Tweak test wake_word.test_init.test_detected_entity ([@emontnemery] - [#100910]) +- Add re-auth flow to glances integration ([@engrbm87] - [#100929]) +- Add body_exists to MockRequest in aiohttp util ([@joostlek] - [#100932]) +- Update frontend manifest for new icons ([@bramkragten] - [#100936]) +- Add support to remove orphan devices in AVM FRITZ!SmartHome ([@mib1185] - [#100739]) +- Add config flow to AfterShip ([@joostlek] - [#100872]) +- Rename WakeWord.ww_id to WakeWord.id ([@emontnemery] - [#100903]) +- Intialize mqtt lock in an unknown state in pessimistic mode ([@jbouwh] - [#100943]) +- Remove setting name in AnthemAV config flow ([@joostlek] - [#99148]) +- Use automatic title during config flow setup in Aurora ([@joostlek] - [#99199]) +- Call async added to hass super in Smart Meter Texas ([@joostlek] - [#100445]) +- Call async added to hass super in Risco ([@joostlek] - [#100444]) +- Use snapshot assertion for wiz diagnostics test ([@jpbede] - [#99154]) +- Call async added to hass super in Airvisual ([@joostlek] - [#100449]) +- Move fetching of sw_version for Twinkly ([@Olen] - [#100286]) +- Remove redundant initial assigment for mqtt siren ([@jbouwh] - [#100945]) +- Remove unused attribute for MQTT lawn_mower ([@jbouwh] - [#100946]) +- Abort wake word detection when assist pipeline is modified ([@emontnemery] - [#100918]) +- Bump aiovodafone to 0.3.1 ([@chemelli74] - [#100944]) +- Add Medcom Bluetooth integration ([@elafargue] - [#100289]) +- Simplify wake_word/info + improve test coverage ([@emontnemery] - [#100902]) +- Update MyQ to use python-myq 3.1.9 ([@Lash-L] - [#100949]) +- Support cloudhooks in Withings ([@joostlek] - [#100916]) +- Allow discovery config update mqtt update entities ([@jbouwh] - [#100957]) +- Move motion blinds coordinator to its own file ([@jpbede] - [#100952]) +- Cleanup redundant mqtt entity constructors ([@jbouwh] - [#100939]) +- Bump zwave-js-server-python to 0.52.0 ([@raman325] - [#100833]) +- KNX: Provide project data and parser version via websocket ([@mueli] - [#100676]) +- Add audio_settings for pipeline from ESPHome device ([@jesserockz] - [#100894]) +- Move poolsense coordinator to its own file ([@jpbede] - [#100964]) +- Bump async-upnp-client to 0.36.1 ([@StevenLooman] - [#100961]) +- Add button platform to Vodafone Station ([@chemelli74] - [#100941]) +- Bump to webrtc-noise-gain 1.2.1 for 32-bit builds ([@synesthesiam] - [#100942]) +- Add endpoint to `zwave_js_notification` event ([@raman325] - [#100951]) +- Update frontend to 20230926.0 ([@bramkragten] - [#100969]) +- Send Wyoming Detect message during wake word detection ([@synesthesiam] - [#100968]) +- Bump zha-quirks to 0.0.104 ([@TheJulianJES] - [#100975]) +- Bump ZHA dependencies ([@puddly] - [#100979]) +- Move poolsense base entity to its own file ([@jpbede] - [#100981]) +- Move EVENT_LOGGING_CHANGED to constants ([@raman325] - [#100974]) +- Automatically enable/disable zwave_js server logging in lib ([@raman325] - [#100837]) +- Deprecate Withings YAML ([@joostlek] - [#100967]) +- Add cover support to Comelit ([@chemelli74] - [#100904]) +- Add "start_irrigation" service for Yardian ([@h3l1o5] - [#100257]) +- Set device name as entity name for Comelit lights ([@joostlek] - [#100986]) +- Allow to reset an mqtt lock to an unknown state ([@jbouwh] - [#100985]) +- Add config flow to color extractor ([@joostlek] - [#100862]) +- Add trigger weather template ([@gjohansson-ST] - [#100824]) +- Add typing to poolsense ([@jpbede] - [#100984]) +- Rework UniFi websocket ([@Kane610] - [#100614]) +- Use local time instead of UTC time as default backup filenames ([@jpbede] - [#100959]) +- Use async_at_started in Withings ([@joostlek] - [#100994]) +- Exclude manifest files from youtube media extraction ([@joostlek] - [#100771]) +- Increase MyQ update interval ([@Lash-L] - [#100977]) +- Skip timestamp check of the SIA events ([@amitfin] - [#100660]) +- Add config flow to Twitch ([@joostlek] - [#93451]) +- Add test helper for cloud status updates ([@joostlek] - [#100993]) +- Add Freebox Home binary sensors ([@nachonam] - [#92196]) +- Fix additional test cases for Python 3.12 ([@cdce8p] - [#101006]) +- Implement Airzone Cloud Zone climate support ([@Noltari] - [#100792]) +- Bump dbus-fast to 2.11.0 ([@bdraco] - [#101005]) +- Add WeatherFlow integration ([@jeeftor] - [#75530]) +- Address Comelit cover late review ([@chemelli74] - [#101008]) +- Add "UV Index" to IPMA ([@tokenize47] - [#100383]) + +[#100002]: https://github.com/home-assistant/core/pull/100002 +[#100008]: https://github.com/home-assistant/core/pull/100008 +[#100010]: https://github.com/home-assistant/core/pull/100010 +[#100011]: https://github.com/home-assistant/core/pull/100011 +[#100012]: https://github.com/home-assistant/core/pull/100012 +[#100017]: https://github.com/home-assistant/core/pull/100017 +[#100018]: https://github.com/home-assistant/core/pull/100018 +[#100020]: https://github.com/home-assistant/core/pull/100020 +[#100027]: https://github.com/home-assistant/core/pull/100027 +[#100029]: https://github.com/home-assistant/core/pull/100029 +[#100030]: https://github.com/home-assistant/core/pull/100030 +[#100033]: https://github.com/home-assistant/core/pull/100033 +[#100038]: https://github.com/home-assistant/core/pull/100038 +[#100041]: https://github.com/home-assistant/core/pull/100041 +[#100042]: https://github.com/home-assistant/core/pull/100042 +[#100046]: https://github.com/home-assistant/core/pull/100046 +[#100047]: https://github.com/home-assistant/core/pull/100047 +[#100049]: https://github.com/home-assistant/core/pull/100049 +[#100050]: https://github.com/home-assistant/core/pull/100050 +[#100053]: https://github.com/home-assistant/core/pull/100053 +[#100054]: https://github.com/home-assistant/core/pull/100054 +[#100056]: https://github.com/home-assistant/core/pull/100056 +[#100057]: https://github.com/home-assistant/core/pull/100057 +[#100058]: https://github.com/home-assistant/core/pull/100058 +[#100068]: https://github.com/home-assistant/core/pull/100068 +[#100069]: https://github.com/home-assistant/core/pull/100069 +[#100071]: https://github.com/home-assistant/core/pull/100071 +[#100072]: https://github.com/home-assistant/core/pull/100072 +[#100075]: https://github.com/home-assistant/core/pull/100075 +[#100076]: https://github.com/home-assistant/core/pull/100076 +[#100078]: https://github.com/home-assistant/core/pull/100078 +[#100080]: https://github.com/home-assistant/core/pull/100080 +[#100082]: https://github.com/home-assistant/core/pull/100082 +[#100083]: https://github.com/home-assistant/core/pull/100083 +[#100084]: https://github.com/home-assistant/core/pull/100084 +[#100090]: https://github.com/home-assistant/core/pull/100090 +[#100091]: https://github.com/home-assistant/core/pull/100091 +[#100092]: https://github.com/home-assistant/core/pull/100092 +[#100094]: https://github.com/home-assistant/core/pull/100094 +[#100099]: https://github.com/home-assistant/core/pull/100099 +[#100107]: https://github.com/home-assistant/core/pull/100107 +[#100108]: https://github.com/home-assistant/core/pull/100108 +[#100113]: https://github.com/home-assistant/core/pull/100113 +[#100114]: https://github.com/home-assistant/core/pull/100114 +[#100115]: https://github.com/home-assistant/core/pull/100115 +[#100117]: https://github.com/home-assistant/core/pull/100117 +[#100118]: https://github.com/home-assistant/core/pull/100118 +[#100120]: https://github.com/home-assistant/core/pull/100120 +[#100125]: https://github.com/home-assistant/core/pull/100125 +[#100127]: https://github.com/home-assistant/core/pull/100127 +[#100132]: https://github.com/home-assistant/core/pull/100132 +[#100134]: https://github.com/home-assistant/core/pull/100134 +[#100135]: https://github.com/home-assistant/core/pull/100135 +[#100136]: https://github.com/home-assistant/core/pull/100136 +[#100137]: https://github.com/home-assistant/core/pull/100137 +[#100143]: https://github.com/home-assistant/core/pull/100143 +[#100145]: https://github.com/home-assistant/core/pull/100145 +[#100146]: https://github.com/home-assistant/core/pull/100146 +[#100148]: https://github.com/home-assistant/core/pull/100148 +[#100150]: https://github.com/home-assistant/core/pull/100150 +[#100153]: https://github.com/home-assistant/core/pull/100153 +[#100157]: https://github.com/home-assistant/core/pull/100157 +[#100158]: https://github.com/home-assistant/core/pull/100158 +[#100163]: https://github.com/home-assistant/core/pull/100163 +[#100171]: https://github.com/home-assistant/core/pull/100171 +[#100173]: https://github.com/home-assistant/core/pull/100173 +[#100186]: https://github.com/home-assistant/core/pull/100186 +[#100188]: https://github.com/home-assistant/core/pull/100188 +[#100190]: https://github.com/home-assistant/core/pull/100190 +[#100191]: https://github.com/home-assistant/core/pull/100191 +[#100192]: https://github.com/home-assistant/core/pull/100192 +[#100194]: https://github.com/home-assistant/core/pull/100194 +[#100196]: https://github.com/home-assistant/core/pull/100196 +[#100197]: https://github.com/home-assistant/core/pull/100197 +[#100198]: https://github.com/home-assistant/core/pull/100198 +[#100202]: https://github.com/home-assistant/core/pull/100202 +[#100203]: https://github.com/home-assistant/core/pull/100203 +[#100204]: https://github.com/home-assistant/core/pull/100204 +[#100205]: https://github.com/home-assistant/core/pull/100205 +[#100206]: https://github.com/home-assistant/core/pull/100206 +[#100207]: https://github.com/home-assistant/core/pull/100207 +[#100208]: https://github.com/home-assistant/core/pull/100208 +[#100209]: https://github.com/home-assistant/core/pull/100209 +[#100210]: https://github.com/home-assistant/core/pull/100210 +[#100211]: https://github.com/home-assistant/core/pull/100211 +[#100213]: https://github.com/home-assistant/core/pull/100213 +[#100214]: https://github.com/home-assistant/core/pull/100214 +[#100215]: https://github.com/home-assistant/core/pull/100215 +[#100216]: https://github.com/home-assistant/core/pull/100216 +[#100217]: https://github.com/home-assistant/core/pull/100217 +[#100219]: https://github.com/home-assistant/core/pull/100219 +[#100220]: https://github.com/home-assistant/core/pull/100220 +[#100224]: https://github.com/home-assistant/core/pull/100224 +[#100225]: https://github.com/home-assistant/core/pull/100225 +[#100227]: https://github.com/home-assistant/core/pull/100227 +[#100228]: https://github.com/home-assistant/core/pull/100228 +[#100230]: https://github.com/home-assistant/core/pull/100230 +[#100232]: https://github.com/home-assistant/core/pull/100232 +[#100234]: https://github.com/home-assistant/core/pull/100234 +[#100238]: https://github.com/home-assistant/core/pull/100238 +[#100239]: https://github.com/home-assistant/core/pull/100239 +[#100241]: https://github.com/home-assistant/core/pull/100241 +[#100245]: https://github.com/home-assistant/core/pull/100245 +[#100248]: https://github.com/home-assistant/core/pull/100248 +[#100251]: https://github.com/home-assistant/core/pull/100251 +[#100252]: https://github.com/home-assistant/core/pull/100252 +[#100254]: https://github.com/home-assistant/core/pull/100254 +[#100257]: https://github.com/home-assistant/core/pull/100257 +[#100264]: https://github.com/home-assistant/core/pull/100264 +[#100265]: https://github.com/home-assistant/core/pull/100265 +[#100269]: https://github.com/home-assistant/core/pull/100269 +[#100270]: https://github.com/home-assistant/core/pull/100270 +[#100272]: https://github.com/home-assistant/core/pull/100272 +[#100273]: https://github.com/home-assistant/core/pull/100273 +[#100276]: https://github.com/home-assistant/core/pull/100276 +[#100278]: https://github.com/home-assistant/core/pull/100278 +[#100280]: https://github.com/home-assistant/core/pull/100280 +[#100281]: https://github.com/home-assistant/core/pull/100281 +[#100283]: https://github.com/home-assistant/core/pull/100283 +[#100284]: https://github.com/home-assistant/core/pull/100284 +[#100286]: https://github.com/home-assistant/core/pull/100286 +[#100287]: https://github.com/home-assistant/core/pull/100287 +[#100289]: https://github.com/home-assistant/core/pull/100289 +[#100290]: https://github.com/home-assistant/core/pull/100290 +[#100292]: https://github.com/home-assistant/core/pull/100292 +[#100293]: https://github.com/home-assistant/core/pull/100293 +[#100294]: https://github.com/home-assistant/core/pull/100294 +[#100296]: https://github.com/home-assistant/core/pull/100296 +[#100299]: https://github.com/home-assistant/core/pull/100299 +[#100300]: https://github.com/home-assistant/core/pull/100300 +[#100301]: https://github.com/home-assistant/core/pull/100301 +[#100302]: https://github.com/home-assistant/core/pull/100302 +[#100307]: https://github.com/home-assistant/core/pull/100307 +[#100308]: https://github.com/home-assistant/core/pull/100308 +[#100309]: https://github.com/home-assistant/core/pull/100309 +[#100311]: https://github.com/home-assistant/core/pull/100311 +[#100312]: https://github.com/home-assistant/core/pull/100312 +[#100314]: https://github.com/home-assistant/core/pull/100314 +[#100316]: https://github.com/home-assistant/core/pull/100316 +[#100317]: https://github.com/home-assistant/core/pull/100317 +[#100318]: https://github.com/home-assistant/core/pull/100318 +[#100319]: https://github.com/home-assistant/core/pull/100319 +[#100321]: https://github.com/home-assistant/core/pull/100321 +[#100324]: https://github.com/home-assistant/core/pull/100324 +[#100327]: https://github.com/home-assistant/core/pull/100327 +[#100328]: https://github.com/home-assistant/core/pull/100328 +[#100329]: https://github.com/home-assistant/core/pull/100329 +[#100334]: https://github.com/home-assistant/core/pull/100334 +[#100335]: https://github.com/home-assistant/core/pull/100335 +[#100337]: https://github.com/home-assistant/core/pull/100337 +[#100340]: https://github.com/home-assistant/core/pull/100340 +[#100343]: https://github.com/home-assistant/core/pull/100343 +[#100345]: https://github.com/home-assistant/core/pull/100345 +[#100347]: https://github.com/home-assistant/core/pull/100347 +[#100349]: https://github.com/home-assistant/core/pull/100349 +[#100351]: https://github.com/home-assistant/core/pull/100351 +[#100353]: https://github.com/home-assistant/core/pull/100353 +[#100355]: https://github.com/home-assistant/core/pull/100355 +[#100360]: https://github.com/home-assistant/core/pull/100360 +[#100363]: https://github.com/home-assistant/core/pull/100363 +[#100364]: https://github.com/home-assistant/core/pull/100364 +[#100367]: https://github.com/home-assistant/core/pull/100367 +[#100377]: https://github.com/home-assistant/core/pull/100377 +[#100378]: https://github.com/home-assistant/core/pull/100378 +[#100380]: https://github.com/home-assistant/core/pull/100380 +[#100381]: https://github.com/home-assistant/core/pull/100381 +[#100383]: https://github.com/home-assistant/core/pull/100383 +[#100385]: https://github.com/home-assistant/core/pull/100385 +[#100386]: https://github.com/home-assistant/core/pull/100386 +[#100387]: https://github.com/home-assistant/core/pull/100387 +[#100389]: https://github.com/home-assistant/core/pull/100389 +[#100390]: https://github.com/home-assistant/core/pull/100390 +[#100391]: https://github.com/home-assistant/core/pull/100391 +[#100394]: https://github.com/home-assistant/core/pull/100394 +[#100395]: https://github.com/home-assistant/core/pull/100395 +[#100396]: https://github.com/home-assistant/core/pull/100396 +[#100397]: https://github.com/home-assistant/core/pull/100397 +[#100398]: https://github.com/home-assistant/core/pull/100398 +[#100399]: https://github.com/home-assistant/core/pull/100399 +[#100400]: https://github.com/home-assistant/core/pull/100400 +[#100401]: https://github.com/home-assistant/core/pull/100401 +[#100402]: https://github.com/home-assistant/core/pull/100402 +[#100406]: https://github.com/home-assistant/core/pull/100406 +[#100408]: https://github.com/home-assistant/core/pull/100408 +[#100411]: https://github.com/home-assistant/core/pull/100411 +[#100414]: https://github.com/home-assistant/core/pull/100414 +[#100416]: https://github.com/home-assistant/core/pull/100416 +[#100420]: https://github.com/home-assistant/core/pull/100420 +[#100422]: https://github.com/home-assistant/core/pull/100422 +[#100424]: https://github.com/home-assistant/core/pull/100424 +[#100425]: https://github.com/home-assistant/core/pull/100425 +[#100430]: https://github.com/home-assistant/core/pull/100430 +[#100432]: https://github.com/home-assistant/core/pull/100432 +[#100434]: https://github.com/home-assistant/core/pull/100434 +[#100435]: https://github.com/home-assistant/core/pull/100435 +[#100438]: https://github.com/home-assistant/core/pull/100438 +[#100439]: https://github.com/home-assistant/core/pull/100439 +[#100441]: https://github.com/home-assistant/core/pull/100441 +[#100444]: https://github.com/home-assistant/core/pull/100444 +[#100445]: https://github.com/home-assistant/core/pull/100445 +[#100446]: https://github.com/home-assistant/core/pull/100446 +[#100449]: https://github.com/home-assistant/core/pull/100449 +[#100451]: https://github.com/home-assistant/core/pull/100451 +[#100453]: https://github.com/home-assistant/core/pull/100453 +[#100455]: https://github.com/home-assistant/core/pull/100455 +[#100459]: https://github.com/home-assistant/core/pull/100459 +[#100462]: https://github.com/home-assistant/core/pull/100462 +[#100463]: https://github.com/home-assistant/core/pull/100463 +[#100467]: https://github.com/home-assistant/core/pull/100467 +[#100469]: https://github.com/home-assistant/core/pull/100469 +[#100472]: https://github.com/home-assistant/core/pull/100472 +[#100473]: https://github.com/home-assistant/core/pull/100473 +[#100474]: https://github.com/home-assistant/core/pull/100474 +[#100478]: https://github.com/home-assistant/core/pull/100478 +[#100481]: https://github.com/home-assistant/core/pull/100481 +[#100482]: https://github.com/home-assistant/core/pull/100482 +[#100483]: https://github.com/home-assistant/core/pull/100483 +[#100495]: https://github.com/home-assistant/core/pull/100495 +[#100500]: https://github.com/home-assistant/core/pull/100500 +[#100501]: https://github.com/home-assistant/core/pull/100501 +[#100503]: https://github.com/home-assistant/core/pull/100503 +[#100506]: https://github.com/home-assistant/core/pull/100506 +[#100512]: https://github.com/home-assistant/core/pull/100512 +[#100530]: https://github.com/home-assistant/core/pull/100530 +[#100532]: https://github.com/home-assistant/core/pull/100532 +[#100533]: https://github.com/home-assistant/core/pull/100533 +[#100535]: https://github.com/home-assistant/core/pull/100535 +[#100537]: https://github.com/home-assistant/core/pull/100537 +[#100541]: https://github.com/home-assistant/core/pull/100541 +[#100543]: https://github.com/home-assistant/core/pull/100543 +[#100545]: https://github.com/home-assistant/core/pull/100545 +[#100546]: https://github.com/home-assistant/core/pull/100546 +[#100547]: https://github.com/home-assistant/core/pull/100547 +[#100548]: https://github.com/home-assistant/core/pull/100548 +[#100556]: https://github.com/home-assistant/core/pull/100556 +[#100557]: https://github.com/home-assistant/core/pull/100557 +[#100558]: https://github.com/home-assistant/core/pull/100558 +[#100562]: https://github.com/home-assistant/core/pull/100562 +[#100563]: https://github.com/home-assistant/core/pull/100563 +[#100565]: https://github.com/home-assistant/core/pull/100565 +[#100567]: https://github.com/home-assistant/core/pull/100567 +[#100568]: https://github.com/home-assistant/core/pull/100568 +[#100586]: https://github.com/home-assistant/core/pull/100586 +[#100592]: https://github.com/home-assistant/core/pull/100592 +[#100597]: https://github.com/home-assistant/core/pull/100597 +[#100598]: https://github.com/home-assistant/core/pull/100598 +[#100599]: https://github.com/home-assistant/core/pull/100599 +[#100608]: https://github.com/home-assistant/core/pull/100608 +[#100610]: https://github.com/home-assistant/core/pull/100610 +[#100613]: https://github.com/home-assistant/core/pull/100613 +[#100614]: https://github.com/home-assistant/core/pull/100614 +[#100615]: https://github.com/home-assistant/core/pull/100615 +[#100623]: https://github.com/home-assistant/core/pull/100623 +[#100624]: https://github.com/home-assistant/core/pull/100624 +[#100625]: https://github.com/home-assistant/core/pull/100625 +[#100627]: https://github.com/home-assistant/core/pull/100627 +[#100632]: https://github.com/home-assistant/core/pull/100632 +[#100636]: https://github.com/home-assistant/core/pull/100636 +[#100638]: https://github.com/home-assistant/core/pull/100638 +[#100641]: https://github.com/home-assistant/core/pull/100641 +[#100647]: https://github.com/home-assistant/core/pull/100647 +[#100654]: https://github.com/home-assistant/core/pull/100654 +[#100655]: https://github.com/home-assistant/core/pull/100655 +[#100660]: https://github.com/home-assistant/core/pull/100660 +[#100661]: https://github.com/home-assistant/core/pull/100661 +[#100662]: https://github.com/home-assistant/core/pull/100662 +[#100666]: https://github.com/home-assistant/core/pull/100666 +[#100667]: https://github.com/home-assistant/core/pull/100667 +[#100670]: https://github.com/home-assistant/core/pull/100670 +[#100676]: https://github.com/home-assistant/core/pull/100676 +[#100679]: https://github.com/home-assistant/core/pull/100679 +[#100680]: https://github.com/home-assistant/core/pull/100680 +[#100681]: https://github.com/home-assistant/core/pull/100681 +[#100683]: https://github.com/home-assistant/core/pull/100683 +[#100686]: https://github.com/home-assistant/core/pull/100686 +[#100689]: https://github.com/home-assistant/core/pull/100689 +[#100690]: https://github.com/home-assistant/core/pull/100690 +[#100691]: https://github.com/home-assistant/core/pull/100691 +[#100692]: https://github.com/home-assistant/core/pull/100692 +[#100693]: https://github.com/home-assistant/core/pull/100693 +[#100694]: https://github.com/home-assistant/core/pull/100694 +[#100696]: https://github.com/home-assistant/core/pull/100696 +[#100698]: https://github.com/home-assistant/core/pull/100698 +[#100700]: https://github.com/home-assistant/core/pull/100700 +[#100708]: https://github.com/home-assistant/core/pull/100708 +[#100709]: https://github.com/home-assistant/core/pull/100709 +[#100710]: https://github.com/home-assistant/core/pull/100710 +[#100711]: https://github.com/home-assistant/core/pull/100711 +[#100712]: https://github.com/home-assistant/core/pull/100712 +[#100717]: https://github.com/home-assistant/core/pull/100717 +[#100718]: https://github.com/home-assistant/core/pull/100718 +[#100720]: https://github.com/home-assistant/core/pull/100720 +[#100721]: https://github.com/home-assistant/core/pull/100721 +[#100726]: https://github.com/home-assistant/core/pull/100726 +[#100729]: https://github.com/home-assistant/core/pull/100729 +[#100733]: https://github.com/home-assistant/core/pull/100733 +[#100734]: https://github.com/home-assistant/core/pull/100734 +[#100736]: https://github.com/home-assistant/core/pull/100736 +[#100738]: https://github.com/home-assistant/core/pull/100738 +[#100739]: https://github.com/home-assistant/core/pull/100739 +[#100740]: https://github.com/home-assistant/core/pull/100740 +[#100742]: https://github.com/home-assistant/core/pull/100742 +[#100744]: https://github.com/home-assistant/core/pull/100744 +[#100749]: https://github.com/home-assistant/core/pull/100749 +[#100759]: https://github.com/home-assistant/core/pull/100759 +[#100765]: https://github.com/home-assistant/core/pull/100765 +[#100766]: https://github.com/home-assistant/core/pull/100766 +[#100767]: https://github.com/home-assistant/core/pull/100767 +[#100769]: https://github.com/home-assistant/core/pull/100769 +[#100771]: https://github.com/home-assistant/core/pull/100771 +[#100772]: https://github.com/home-assistant/core/pull/100772 +[#100774]: https://github.com/home-assistant/core/pull/100774 +[#100775]: https://github.com/home-assistant/core/pull/100775 +[#100776]: https://github.com/home-assistant/core/pull/100776 +[#100777]: https://github.com/home-assistant/core/pull/100777 +[#100781]: https://github.com/home-assistant/core/pull/100781 +[#100782]: https://github.com/home-assistant/core/pull/100782 +[#100788]: https://github.com/home-assistant/core/pull/100788 +[#100792]: https://github.com/home-assistant/core/pull/100792 +[#100793]: https://github.com/home-assistant/core/pull/100793 +[#100794]: https://github.com/home-assistant/core/pull/100794 +[#100795]: https://github.com/home-assistant/core/pull/100795 +[#100796]: https://github.com/home-assistant/core/pull/100796 +[#100799]: https://github.com/home-assistant/core/pull/100799 +[#100802]: https://github.com/home-assistant/core/pull/100802 +[#100808]: https://github.com/home-assistant/core/pull/100808 +[#100809]: https://github.com/home-assistant/core/pull/100809 +[#100813]: https://github.com/home-assistant/core/pull/100813 +[#100815]: https://github.com/home-assistant/core/pull/100815 +[#100816]: https://github.com/home-assistant/core/pull/100816 +[#100818]: https://github.com/home-assistant/core/pull/100818 +[#100819]: https://github.com/home-assistant/core/pull/100819 +[#100824]: https://github.com/home-assistant/core/pull/100824 +[#100825]: https://github.com/home-assistant/core/pull/100825 +[#100828]: https://github.com/home-assistant/core/pull/100828 +[#100832]: https://github.com/home-assistant/core/pull/100832 +[#100833]: https://github.com/home-assistant/core/pull/100833 +[#100836]: https://github.com/home-assistant/core/pull/100836 +[#100837]: https://github.com/home-assistant/core/pull/100837 +[#100844]: https://github.com/home-assistant/core/pull/100844 +[#100847]: https://github.com/home-assistant/core/pull/100847 +[#100848]: https://github.com/home-assistant/core/pull/100848 +[#100849]: https://github.com/home-assistant/core/pull/100849 +[#100850]: https://github.com/home-assistant/core/pull/100850 +[#100853]: https://github.com/home-assistant/core/pull/100853 +[#100855]: https://github.com/home-assistant/core/pull/100855 +[#100856]: https://github.com/home-assistant/core/pull/100856 +[#100857]: https://github.com/home-assistant/core/pull/100857 +[#100861]: https://github.com/home-assistant/core/pull/100861 +[#100862]: https://github.com/home-assistant/core/pull/100862 +[#100863]: https://github.com/home-assistant/core/pull/100863 +[#100864]: https://github.com/home-assistant/core/pull/100864 +[#100866]: https://github.com/home-assistant/core/pull/100866 +[#100871]: https://github.com/home-assistant/core/pull/100871 +[#100872]: https://github.com/home-assistant/core/pull/100872 +[#100873]: https://github.com/home-assistant/core/pull/100873 +[#100879]: https://github.com/home-assistant/core/pull/100879 +[#100880]: https://github.com/home-assistant/core/pull/100880 +[#100881]: https://github.com/home-assistant/core/pull/100881 +[#100882]: https://github.com/home-assistant/core/pull/100882 +[#100884]: https://github.com/home-assistant/core/pull/100884 +[#100885]: https://github.com/home-assistant/core/pull/100885 +[#100886]: https://github.com/home-assistant/core/pull/100886 +[#100889]: https://github.com/home-assistant/core/pull/100889 +[#100893]: https://github.com/home-assistant/core/pull/100893 +[#100894]: https://github.com/home-assistant/core/pull/100894 +[#100899]: https://github.com/home-assistant/core/pull/100899 +[#100900]: https://github.com/home-assistant/core/pull/100900 +[#100902]: https://github.com/home-assistant/core/pull/100902 +[#100903]: https://github.com/home-assistant/core/pull/100903 +[#100904]: https://github.com/home-assistant/core/pull/100904 +[#100905]: https://github.com/home-assistant/core/pull/100905 +[#100907]: https://github.com/home-assistant/core/pull/100907 +[#100909]: https://github.com/home-assistant/core/pull/100909 +[#100910]: https://github.com/home-assistant/core/pull/100910 +[#100912]: https://github.com/home-assistant/core/pull/100912 +[#100914]: https://github.com/home-assistant/core/pull/100914 +[#100915]: https://github.com/home-assistant/core/pull/100915 +[#100916]: https://github.com/home-assistant/core/pull/100916 +[#100918]: https://github.com/home-assistant/core/pull/100918 +[#100921]: https://github.com/home-assistant/core/pull/100921 +[#100929]: https://github.com/home-assistant/core/pull/100929 +[#100931]: https://github.com/home-assistant/core/pull/100931 +[#100932]: https://github.com/home-assistant/core/pull/100932 +[#100933]: https://github.com/home-assistant/core/pull/100933 +[#100935]: https://github.com/home-assistant/core/pull/100935 +[#100936]: https://github.com/home-assistant/core/pull/100936 +[#100939]: https://github.com/home-assistant/core/pull/100939 +[#100941]: https://github.com/home-assistant/core/pull/100941 +[#100942]: https://github.com/home-assistant/core/pull/100942 +[#100943]: https://github.com/home-assistant/core/pull/100943 +[#100944]: https://github.com/home-assistant/core/pull/100944 +[#100945]: https://github.com/home-assistant/core/pull/100945 +[#100946]: https://github.com/home-assistant/core/pull/100946 +[#100949]: https://github.com/home-assistant/core/pull/100949 +[#100951]: https://github.com/home-assistant/core/pull/100951 +[#100952]: https://github.com/home-assistant/core/pull/100952 +[#100957]: https://github.com/home-assistant/core/pull/100957 +[#100959]: https://github.com/home-assistant/core/pull/100959 +[#100961]: https://github.com/home-assistant/core/pull/100961 +[#100964]: https://github.com/home-assistant/core/pull/100964 +[#100967]: https://github.com/home-assistant/core/pull/100967 +[#100968]: https://github.com/home-assistant/core/pull/100968 +[#100969]: https://github.com/home-assistant/core/pull/100969 +[#100974]: https://github.com/home-assistant/core/pull/100974 +[#100975]: https://github.com/home-assistant/core/pull/100975 +[#100977]: https://github.com/home-assistant/core/pull/100977 +[#100979]: https://github.com/home-assistant/core/pull/100979 +[#100981]: https://github.com/home-assistant/core/pull/100981 +[#100984]: https://github.com/home-assistant/core/pull/100984 +[#100985]: https://github.com/home-assistant/core/pull/100985 +[#100986]: https://github.com/home-assistant/core/pull/100986 +[#100993]: https://github.com/home-assistant/core/pull/100993 +[#100994]: https://github.com/home-assistant/core/pull/100994 +[#101005]: https://github.com/home-assistant/core/pull/101005 +[#101006]: https://github.com/home-assistant/core/pull/101006 +[#101008]: https://github.com/home-assistant/core/pull/101008 +[#58707]: https://github.com/home-assistant/core/pull/58707 +[#72797]: https://github.com/home-assistant/core/pull/72797 +[#75530]: https://github.com/home-assistant/core/pull/75530 +[#82318]: https://github.com/home-assistant/core/pull/82318 +[#87604]: https://github.com/home-assistant/core/pull/87604 +[#92149]: https://github.com/home-assistant/core/pull/92149 +[#92196]: https://github.com/home-assistant/core/pull/92196 +[#92475]: https://github.com/home-assistant/core/pull/92475 +[#92668]: https://github.com/home-assistant/core/pull/92668 +[#93048]: https://github.com/home-assistant/core/pull/93048 +[#93384]: https://github.com/home-assistant/core/pull/93384 +[#93451]: https://github.com/home-assistant/core/pull/93451 +[#94495]: https://github.com/home-assistant/core/pull/94495 +[#95156]: https://github.com/home-assistant/core/pull/95156 +[#95315]: https://github.com/home-assistant/core/pull/95315 +[#95589]: https://github.com/home-assistant/core/pull/95589 +[#96255]: https://github.com/home-assistant/core/pull/96255 +[#96541]: https://github.com/home-assistant/core/pull/96541 +[#96829]: https://github.com/home-assistant/core/pull/96829 +[#96950]: https://github.com/home-assistant/core/pull/96950 +[#97123]: https://github.com/home-assistant/core/pull/97123 +[#97586]: https://github.com/home-assistant/core/pull/97586 +[#97723]: https://github.com/home-assistant/core/pull/97723 +[#97837]: https://github.com/home-assistant/core/pull/97837 +[#98220]: https://github.com/home-assistant/core/pull/98220 +[#98253]: https://github.com/home-assistant/core/pull/98253 +[#98401]: https://github.com/home-assistant/core/pull/98401 +[#98493]: https://github.com/home-assistant/core/pull/98493 +[#98625]: https://github.com/home-assistant/core/pull/98625 +[#98632]: https://github.com/home-assistant/core/pull/98632 +[#98753]: https://github.com/home-assistant/core/pull/98753 +[#98869]: https://github.com/home-assistant/core/pull/98869 +[#99006]: https://github.com/home-assistant/core/pull/99006 +[#99011]: https://github.com/home-assistant/core/pull/99011 +[#99021]: https://github.com/home-assistant/core/pull/99021 +[#99056]: https://github.com/home-assistant/core/pull/99056 +[#99078]: https://github.com/home-assistant/core/pull/99078 +[#99092]: https://github.com/home-assistant/core/pull/99092 +[#99148]: https://github.com/home-assistant/core/pull/99148 +[#99154]: https://github.com/home-assistant/core/pull/99154 +[#99159]: https://github.com/home-assistant/core/pull/99159 +[#99173]: https://github.com/home-assistant/core/pull/99173 +[#99175]: https://github.com/home-assistant/core/pull/99175 +[#99194]: https://github.com/home-assistant/core/pull/99194 +[#99199]: https://github.com/home-assistant/core/pull/99199 +[#99233]: https://github.com/home-assistant/core/pull/99233 +[#99234]: https://github.com/home-assistant/core/pull/99234 +[#99235]: https://github.com/home-assistant/core/pull/99235 +[#99236]: https://github.com/home-assistant/core/pull/99236 +[#99242]: https://github.com/home-assistant/core/pull/99242 +[#99256]: https://github.com/home-assistant/core/pull/99256 +[#99285]: https://github.com/home-assistant/core/pull/99285 +[#99301]: https://github.com/home-assistant/core/pull/99301 +[#99302]: https://github.com/home-assistant/core/pull/99302 +[#99307]: https://github.com/home-assistant/core/pull/99307 +[#99308]: https://github.com/home-assistant/core/pull/99308 +[#99310]: https://github.com/home-assistant/core/pull/99310 +[#99333]: https://github.com/home-assistant/core/pull/99333 +[#99344]: https://github.com/home-assistant/core/pull/99344 +[#99345]: https://github.com/home-assistant/core/pull/99345 +[#99348]: https://github.com/home-assistant/core/pull/99348 +[#99349]: https://github.com/home-assistant/core/pull/99349 +[#99355]: https://github.com/home-assistant/core/pull/99355 +[#99358]: https://github.com/home-assistant/core/pull/99358 +[#99359]: https://github.com/home-assistant/core/pull/99359 +[#99360]: https://github.com/home-assistant/core/pull/99360 +[#99361]: https://github.com/home-assistant/core/pull/99361 +[#99364]: https://github.com/home-assistant/core/pull/99364 +[#99383]: https://github.com/home-assistant/core/pull/99383 +[#99385]: https://github.com/home-assistant/core/pull/99385 +[#99386]: https://github.com/home-assistant/core/pull/99386 +[#99387]: https://github.com/home-assistant/core/pull/99387 +[#99390]: https://github.com/home-assistant/core/pull/99390 +[#99392]: https://github.com/home-assistant/core/pull/99392 +[#99393]: https://github.com/home-assistant/core/pull/99393 +[#99395]: https://github.com/home-assistant/core/pull/99395 +[#99397]: https://github.com/home-assistant/core/pull/99397 +[#99400]: https://github.com/home-assistant/core/pull/99400 +[#99407]: https://github.com/home-assistant/core/pull/99407 +[#99411]: https://github.com/home-assistant/core/pull/99411 +[#99416]: https://github.com/home-assistant/core/pull/99416 +[#99419]: https://github.com/home-assistant/core/pull/99419 +[#99423]: https://github.com/home-assistant/core/pull/99423 +[#99427]: https://github.com/home-assistant/core/pull/99427 +[#99434]: https://github.com/home-assistant/core/pull/99434 +[#99439]: https://github.com/home-assistant/core/pull/99439 +[#99440]: https://github.com/home-assistant/core/pull/99440 +[#99444]: https://github.com/home-assistant/core/pull/99444 +[#99446]: https://github.com/home-assistant/core/pull/99446 +[#99454]: https://github.com/home-assistant/core/pull/99454 +[#99457]: https://github.com/home-assistant/core/pull/99457 +[#99458]: https://github.com/home-assistant/core/pull/99458 +[#99459]: https://github.com/home-assistant/core/pull/99459 +[#99462]: https://github.com/home-assistant/core/pull/99462 +[#99465]: https://github.com/home-assistant/core/pull/99465 +[#99467]: https://github.com/home-assistant/core/pull/99467 +[#99469]: https://github.com/home-assistant/core/pull/99469 +[#99470]: https://github.com/home-assistant/core/pull/99470 +[#99471]: https://github.com/home-assistant/core/pull/99471 +[#99472]: https://github.com/home-assistant/core/pull/99472 +[#99484]: https://github.com/home-assistant/core/pull/99484 +[#99486]: https://github.com/home-assistant/core/pull/99486 +[#99487]: https://github.com/home-assistant/core/pull/99487 +[#99494]: https://github.com/home-assistant/core/pull/99494 +[#99496]: https://github.com/home-assistant/core/pull/99496 +[#99503]: https://github.com/home-assistant/core/pull/99503 +[#99505]: https://github.com/home-assistant/core/pull/99505 +[#99506]: https://github.com/home-assistant/core/pull/99506 +[#99510]: https://github.com/home-assistant/core/pull/99510 +[#99511]: https://github.com/home-assistant/core/pull/99511 +[#99512]: https://github.com/home-assistant/core/pull/99512 +[#99513]: https://github.com/home-assistant/core/pull/99513 +[#99515]: https://github.com/home-assistant/core/pull/99515 +[#99519]: https://github.com/home-assistant/core/pull/99519 +[#99521]: https://github.com/home-assistant/core/pull/99521 +[#99526]: https://github.com/home-assistant/core/pull/99526 +[#99527]: https://github.com/home-assistant/core/pull/99527 +[#99529]: https://github.com/home-assistant/core/pull/99529 +[#99534]: https://github.com/home-assistant/core/pull/99534 +[#99535]: https://github.com/home-assistant/core/pull/99535 +[#99536]: https://github.com/home-assistant/core/pull/99536 +[#99537]: https://github.com/home-assistant/core/pull/99537 +[#99542]: https://github.com/home-assistant/core/pull/99542 +[#99545]: https://github.com/home-assistant/core/pull/99545 +[#99550]: https://github.com/home-assistant/core/pull/99550 +[#99555]: https://github.com/home-assistant/core/pull/99555 +[#99556]: https://github.com/home-assistant/core/pull/99556 +[#99559]: https://github.com/home-assistant/core/pull/99559 +[#99563]: https://github.com/home-assistant/core/pull/99563 +[#99567]: https://github.com/home-assistant/core/pull/99567 +[#99575]: https://github.com/home-assistant/core/pull/99575 +[#99577]: https://github.com/home-assistant/core/pull/99577 +[#99578]: https://github.com/home-assistant/core/pull/99578 +[#99579]: https://github.com/home-assistant/core/pull/99579 +[#99580]: https://github.com/home-assistant/core/pull/99580 +[#99581]: https://github.com/home-assistant/core/pull/99581 +[#99582]: https://github.com/home-assistant/core/pull/99582 +[#99583]: https://github.com/home-assistant/core/pull/99583 +[#99585]: https://github.com/home-assistant/core/pull/99585 +[#99586]: https://github.com/home-assistant/core/pull/99586 +[#99587]: https://github.com/home-assistant/core/pull/99587 +[#99592]: https://github.com/home-assistant/core/pull/99592 +[#99593]: https://github.com/home-assistant/core/pull/99593 +[#99596]: https://github.com/home-assistant/core/pull/99596 +[#99597]: https://github.com/home-assistant/core/pull/99597 +[#99598]: https://github.com/home-assistant/core/pull/99598 +[#99599]: https://github.com/home-assistant/core/pull/99599 +[#99600]: https://github.com/home-assistant/core/pull/99600 +[#99601]: https://github.com/home-assistant/core/pull/99601 +[#99605]: https://github.com/home-assistant/core/pull/99605 +[#99606]: https://github.com/home-assistant/core/pull/99606 +[#99607]: https://github.com/home-assistant/core/pull/99607 +[#99611]: https://github.com/home-assistant/core/pull/99611 +[#99612]: https://github.com/home-assistant/core/pull/99612 +[#99617]: https://github.com/home-assistant/core/pull/99617 +[#99618]: https://github.com/home-assistant/core/pull/99618 +[#99620]: https://github.com/home-assistant/core/pull/99620 +[#99621]: https://github.com/home-assistant/core/pull/99621 +[#99622]: https://github.com/home-assistant/core/pull/99622 +[#99623]: https://github.com/home-assistant/core/pull/99623 +[#99626]: https://github.com/home-assistant/core/pull/99626 +[#99627]: https://github.com/home-assistant/core/pull/99627 +[#99628]: https://github.com/home-assistant/core/pull/99628 +[#99629]: https://github.com/home-assistant/core/pull/99629 +[#99630]: https://github.com/home-assistant/core/pull/99630 +[#99633]: https://github.com/home-assistant/core/pull/99633 +[#99634]: https://github.com/home-assistant/core/pull/99634 +[#99637]: https://github.com/home-assistant/core/pull/99637 +[#99651]: https://github.com/home-assistant/core/pull/99651 +[#99658]: https://github.com/home-assistant/core/pull/99658 +[#99659]: https://github.com/home-assistant/core/pull/99659 +[#99660]: https://github.com/home-assistant/core/pull/99660 +[#99661]: https://github.com/home-assistant/core/pull/99661 +[#99662]: https://github.com/home-assistant/core/pull/99662 +[#99663]: https://github.com/home-assistant/core/pull/99663 +[#99665]: https://github.com/home-assistant/core/pull/99665 +[#99666]: https://github.com/home-assistant/core/pull/99666 +[#99672]: https://github.com/home-assistant/core/pull/99672 +[#99676]: https://github.com/home-assistant/core/pull/99676 +[#99681]: https://github.com/home-assistant/core/pull/99681 +[#99682]: https://github.com/home-assistant/core/pull/99682 +[#99691]: https://github.com/home-assistant/core/pull/99691 +[#99695]: https://github.com/home-assistant/core/pull/99695 +[#99697]: https://github.com/home-assistant/core/pull/99697 +[#99701]: https://github.com/home-assistant/core/pull/99701 +[#99703]: https://github.com/home-assistant/core/pull/99703 +[#99710]: https://github.com/home-assistant/core/pull/99710 +[#99711]: https://github.com/home-assistant/core/pull/99711 +[#99712]: https://github.com/home-assistant/core/pull/99712 +[#99713]: https://github.com/home-assistant/core/pull/99713 +[#99719]: https://github.com/home-assistant/core/pull/99719 +[#99721]: https://github.com/home-assistant/core/pull/99721 +[#99726]: https://github.com/home-assistant/core/pull/99726 +[#99737]: https://github.com/home-assistant/core/pull/99737 +[#99744]: https://github.com/home-assistant/core/pull/99744 +[#99745]: https://github.com/home-assistant/core/pull/99745 +[#99746]: https://github.com/home-assistant/core/pull/99746 +[#99747]: https://github.com/home-assistant/core/pull/99747 +[#99755]: https://github.com/home-assistant/core/pull/99755 +[#99758]: https://github.com/home-assistant/core/pull/99758 +[#99762]: https://github.com/home-assistant/core/pull/99762 +[#99769]: https://github.com/home-assistant/core/pull/99769 +[#99770]: https://github.com/home-assistant/core/pull/99770 +[#99772]: https://github.com/home-assistant/core/pull/99772 +[#99783]: https://github.com/home-assistant/core/pull/99783 +[#99799]: https://github.com/home-assistant/core/pull/99799 +[#99805]: https://github.com/home-assistant/core/pull/99805 +[#99809]: https://github.com/home-assistant/core/pull/99809 +[#99823]: https://github.com/home-assistant/core/pull/99823 +[#99824]: https://github.com/home-assistant/core/pull/99824 +[#99825]: https://github.com/home-assistant/core/pull/99825 +[#99829]: https://github.com/home-assistant/core/pull/99829 +[#99830]: https://github.com/home-assistant/core/pull/99830 +[#99831]: https://github.com/home-assistant/core/pull/99831 +[#99833]: https://github.com/home-assistant/core/pull/99833 +[#99834]: https://github.com/home-assistant/core/pull/99834 +[#99835]: https://github.com/home-assistant/core/pull/99835 +[#99836]: https://github.com/home-assistant/core/pull/99836 +[#99837]: https://github.com/home-assistant/core/pull/99837 +[#99838]: https://github.com/home-assistant/core/pull/99838 +[#99839]: https://github.com/home-assistant/core/pull/99839 +[#99840]: https://github.com/home-assistant/core/pull/99840 +[#99842]: https://github.com/home-assistant/core/pull/99842 +[#99843]: https://github.com/home-assistant/core/pull/99843 +[#99844]: https://github.com/home-assistant/core/pull/99844 +[#99849]: https://github.com/home-assistant/core/pull/99849 +[#99853]: https://github.com/home-assistant/core/pull/99853 +[#99859]: https://github.com/home-assistant/core/pull/99859 +[#99861]: https://github.com/home-assistant/core/pull/99861 +[#99863]: https://github.com/home-assistant/core/pull/99863 +[#99865]: https://github.com/home-assistant/core/pull/99865 +[#99869]: https://github.com/home-assistant/core/pull/99869 +[#99875]: https://github.com/home-assistant/core/pull/99875 +[#99881]: https://github.com/home-assistant/core/pull/99881 +[#99882]: https://github.com/home-assistant/core/pull/99882 +[#99883]: https://github.com/home-assistant/core/pull/99883 +[#99884]: https://github.com/home-assistant/core/pull/99884 +[#99886]: https://github.com/home-assistant/core/pull/99886 +[#99887]: https://github.com/home-assistant/core/pull/99887 +[#99888]: https://github.com/home-assistant/core/pull/99888 +[#99889]: https://github.com/home-assistant/core/pull/99889 +[#99890]: https://github.com/home-assistant/core/pull/99890 +[#99891]: https://github.com/home-assistant/core/pull/99891 +[#99892]: https://github.com/home-assistant/core/pull/99892 +[#99893]: https://github.com/home-assistant/core/pull/99893 +[#99894]: https://github.com/home-assistant/core/pull/99894 +[#99895]: https://github.com/home-assistant/core/pull/99895 +[#99903]: https://github.com/home-assistant/core/pull/99903 +[#99915]: https://github.com/home-assistant/core/pull/99915 +[#99916]: https://github.com/home-assistant/core/pull/99916 +[#99918]: https://github.com/home-assistant/core/pull/99918 +[#99919]: https://github.com/home-assistant/core/pull/99919 +[#99920]: https://github.com/home-assistant/core/pull/99920 +[#99921]: https://github.com/home-assistant/core/pull/99921 +[#99922]: https://github.com/home-assistant/core/pull/99922 +[#99925]: https://github.com/home-assistant/core/pull/99925 +[#99926]: https://github.com/home-assistant/core/pull/99926 +[#99929]: https://github.com/home-assistant/core/pull/99929 +[#99931]: https://github.com/home-assistant/core/pull/99931 +[#99938]: https://github.com/home-assistant/core/pull/99938 +[#99946]: https://github.com/home-assistant/core/pull/99946 +[#99948]: https://github.com/home-assistant/core/pull/99948 +[#99954]: https://github.com/home-assistant/core/pull/99954 +[#99965]: https://github.com/home-assistant/core/pull/99965 +[#99967]: https://github.com/home-assistant/core/pull/99967 +[#99971]: https://github.com/home-assistant/core/pull/99971 +[#99975]: https://github.com/home-assistant/core/pull/99975 +[#99976]: https://github.com/home-assistant/core/pull/99976 +[#99978]: https://github.com/home-assistant/core/pull/99978 +[#99983]: https://github.com/home-assistant/core/pull/99983 +[#99984]: https://github.com/home-assistant/core/pull/99984 +[#99989]: https://github.com/home-assistant/core/pull/99989 +[#99990]: https://github.com/home-assistant/core/pull/99990 +[#99998]: https://github.com/home-assistant/core/pull/99998 +[@ArdaSeremet]: https://github.com/ArdaSeremet +[@AtomBrake]: https://github.com/AtomBrake +[@Cereal2nd]: https://github.com/Cereal2nd +[@DCSBL]: https://github.com/DCSBL +[@DanielWeeber]: https://github.com/DanielWeeber +[@FletcherAU]: https://github.com/FletcherAU +[@Jc2k]: https://github.com/Jc2k +[@Kane610]: https://github.com/Kane610 +[@LaStrada]: https://github.com/LaStrada +[@Lash-L]: https://github.com/Lash-L +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Noltari]: https://github.com/Noltari +[@Olen]: https://github.com/Olen +[@PaarthShah]: https://github.com/PaarthShah +[@Quentame]: https://github.com/Quentame +[@Roagert]: https://github.com/Roagert +[@SeraphicRav]: https://github.com/SeraphicRav +[@Shutgun]: https://github.com/Shutgun +[@SirGoodenough]: https://github.com/SirGoodenough +[@StevenLooman]: https://github.com/StevenLooman +[@TheJulianJES]: https://github.com/TheJulianJES +[@Vantomas]: https://github.com/Vantomas +[@ViViDboarder]: https://github.com/ViViDboarder +[@WillCodeForCats]: https://github.com/WillCodeForCats +[@abmantis]: https://github.com/abmantis +[@alexyao2015]: https://github.com/alexyao2015 +[@allenporter]: https://github.com/allenporter +[@alyyousuf7]: https://github.com/alyyousuf7 +[@aman207]: https://github.com/aman207 +[@amitfin]: https://github.com/amitfin +[@b-uwe]: https://github.com/b-uwe +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bouwew]: https://github.com/bouwew +[@bramkragten]: https://github.com/bramkragten +[@c0ffeeca7]: https://github.com/c0ffeeca7 +[@cdce8p]: https://github.com/cdce8p +[@chemelli74]: https://github.com/chemelli74 +[@dieselrabbit]: https://github.com/dieselrabbit +[@dirrgang]: https://github.com/dirrgang +[@dknowles2]: https://github.com/dknowles2 +[@edenhaus]: https://github.com/edenhaus +[@eifinger]: https://github.com/eifinger +[@elafargue]: https://github.com/elafargue +[@elmurato]: https://github.com/elmurato +[@emontnemery]: https://github.com/emontnemery +[@engrbm87]: https://github.com/engrbm87 +[@fender4645]: https://github.com/fender4645 +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@gwww]: https://github.com/gwww +[@h3l1o5]: https://github.com/h3l1o5 +[@hahn-th]: https://github.com/hahn-th +[@janiversen]: https://github.com/janiversen +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jerry0317]: https://github.com/jerry0317 +[@jesserockz]: https://github.com/jesserockz +[@jhollowe]: https://github.com/jhollowe +[@jimmyd-be]: https://github.com/jimmyd-be +[@joostlek]: https://github.com/joostlek +[@jpbede]: https://github.com/jpbede +[@jrieger]: https://github.com/jrieger +[@kbx81]: https://github.com/kbx81 +[@kevin-kraus]: https://github.com/kevin-kraus +[@loopj]: https://github.com/loopj +[@matrixd2]: https://github.com/matrixd2 +[@mib1185]: https://github.com/mib1185 +[@mike391]: https://github.com/mike391 +[@mikey0000]: https://github.com/mikey0000 +[@mkmer]: https://github.com/mkmer +[@ms264556]: https://github.com/ms264556 +[@mueli]: https://github.com/mueli +[@nachonam]: https://github.com/nachonam +[@niro1987]: https://github.com/niro1987 +[@ntilley905]: https://github.com/ntilley905 +[@pjanuario]: https://github.com/pjanuario +[@puddly]: https://github.com/puddly +[@raman325]: https://github.com/raman325 +[@rappenze]: https://github.com/rappenze +[@ricmik]: https://github.com/ricmik +[@rikroe]: https://github.com/rikroe +[@rklomp]: https://github.com/rklomp +[@samcrang]: https://github.com/samcrang +[@scolby33]: https://github.com/scolby33 +[@scop]: https://github.com/scop +[@starkillerOG]: https://github.com/starkillerOG +[@steffenrapp]: https://github.com/steffenrapp +[@synesthesiam]: https://github.com/synesthesiam +[@teharris1]: https://github.com/teharris1 +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tjhorner]: https://github.com/tjhorner +[@tokenize47]: https://github.com/tokenize47 +[@trnila]: https://github.com/trnila +[@tronikos]: https://github.com/tronikos +[@unDemian]: https://github.com/unDemian +[@uvjustin]: https://github.com/uvjustin +[@vfreex]: https://github.com/vfreex +[@yuxincs]: https://github.com/yuxincs +[aemet docs]: /integrations/aemet/ +[aftership docs]: /integrations/aftership/ +[airly docs]: /integrations/airly/ +[airnow docs]: /integrations/airnow/ +[airthings_ble docs]: /integrations/airthings_ble/ +[airtouch4 docs]: /integrations/airtouch4/ +[airvisual docs]: /integrations/airvisual/ +[airzone docs]: /integrations/airzone/ +[airzone_cloud docs]: /integrations/airzone_cloud/ +[aladdin_connect docs]: /integrations/aladdin_connect/ +[alexa docs]: /integrations/alexa/ +[amcrest docs]: /integrations/amcrest/ +[androidtv docs]: /integrations/androidtv/ +[anthemav docs]: /integrations/anthemav/ +[apcupsd docs]: /integrations/apcupsd/ +[api docs]: /integrations/api/ +[apple_tv docs]: /integrations/apple_tv/ +[apprise docs]: /integrations/apprise/ +[assist_pipeline docs]: /integrations/assist_pipeline/ +[august docs]: /integrations/august/ +[aurora docs]: /integrations/aurora/ +[automation docs]: /integrations/automation/ +[awair docs]: /integrations/awair/ +[baf docs]: /integrations/baf/ +[blink docs]: /integrations/blink/ +[bloomsky docs]: /integrations/bloomsky/ +[bluetooth docs]: /integrations/bluetooth/ +[bluetooth_tracker docs]: /integrations/bluetooth_tracker/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[bond docs]: /integrations/bond/ +[braviatv docs]: /integrations/braviatv/ +[bsblan docs]: /integrations/bsblan/ +[bthome docs]: /integrations/bthome/ +[buienradar docs]: /integrations/buienradar/ +[cast docs]: /integrations/cast/ +[cert_expiry docs]: /integrations/cert_expiry/ +[climate docs]: /integrations/climate/ +[co2signal docs]: /integrations/co2signal/ +[color_extractor docs]: /integrations/color_extractor/ +[comelit docs]: /integrations/comelit/ +[conversation docs]: /integrations/conversation/ +[coolmaster docs]: /integrations/coolmaster/ +[datetime docs]: /integrations/datetime/ +[debugpy docs]: /integrations/debugpy/ +[deconz docs]: /integrations/deconz/ +[denonavr docs]: /integrations/denonavr/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[devolo_home_network docs]: /integrations/devolo_home_network/ +[dhcp docs]: /integrations/dhcp/ +[discovergy docs]: /integrations/discovergy/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[dlna_dms docs]: /integrations/dlna_dms/ +[doods docs]: /integrations/doods/ +[doorbird docs]: /integrations/doorbird/ +[duotecno docs]: /integrations/duotecno/ +[dynalite docs]: /integrations/dynalite/ +[ecobee docs]: /integrations/ecobee/ +[ecoforest docs]: /integrations/ecoforest/ +[econet docs]: /integrations/econet/ +[electric_kiwi docs]: /integrations/electric_kiwi/ +[elkm1 docs]: /integrations/elkm1/ +[emulated_kasa docs]: /integrations/emulated_kasa/ +[enmax docs]: /integrations/enmax/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[envisalink docs]: /integrations/envisalink/ +[esphome docs]: /integrations/esphome/ +[faa_delays docs]: /integrations/faa_delays/ +[fibaro docs]: /integrations/fibaro/ +[fitbit docs]: /integrations/fitbit/ +[flipr docs]: /integrations/flipr/ +[flo docs]: /integrations/flo/ +[flux_led docs]: /integrations/flux_led/ +[freebox docs]: /integrations/freebox/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[frontend docs]: /integrations/frontend/ +[garadget docs]: /integrations/garadget/ +[geniushub docs]: /integrations/geniushub/ +[glances docs]: /integrations/glances/ +[gogogate2 docs]: /integrations/gogogate2/ +[goodwe docs]: /integrations/goodwe/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[gpsd docs]: /integrations/gpsd/ +[hardkernel docs]: /integrations/hardkernel/ +[hassio docs]: /integrations/hassio/ +[hdmi_cec docs]: /integrations/hdmi_cec/ +[heos docs]: /integrations/heos/ +[hisense_aehw4a1 docs]: /integrations/hisense_aehw4a1/ +[hlk_sw16 docs]: /integrations/hlk_sw16/ +[home_connect docs]: /integrations/home_connect/ +[homeassistant docs]: /integrations/homeassistant/ +[homeassistant_green docs]: /integrations/homeassistant_green/ +[homeassistant_hardware docs]: /integrations/homeassistant_hardware/ +[homeassistant_yellow docs]: /integrations/homeassistant_yellow/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[homewizard docs]: /integrations/homewizard/ +[honeywell docs]: /integrations/honeywell/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[hvv_departures docs]: /integrations/hvv_departures/ +[hydrawise docs]: /integrations/hydrawise/ +[hyperion docs]: /integrations/hyperion/ +[iaqualink docs]: /integrations/iaqualink/ +[icloud docs]: /integrations/icloud/ +[idasen_desk docs]: /integrations/idasen_desk/ +[imap docs]: /integrations/imap/ +[imap_email_content docs]: /integrations/imap_email_content/ +[input_button docs]: /integrations/input_button/ +[insteon docs]: /integrations/insteon/ +[intent_script docs]: /integrations/intent_script/ +[ios docs]: /integrations/ios/ +[ipma docs]: /integrations/ipma/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[isy994 docs]: /integrations/isy994/ +[izone docs]: /integrations/izone/ +[juicenet docs]: /integrations/juicenet/ +[keenetic_ndms2 docs]: /integrations/keenetic_ndms2/ +[knx docs]: /integrations/knx/ +[kodi docs]: /integrations/kodi/ +[konnected docs]: /integrations/konnected/ +[kostal_plenticore docs]: /integrations/kostal_plenticore/ +[kulersky docs]: /integrations/kulersky/ +[laundrify docs]: /integrations/laundrify/ +[lcn docs]: /integrations/lcn/ +[ld2410_ble docs]: /integrations/ld2410_ble/ +[led_ble docs]: /integrations/led_ble/ +[life360 docs]: /integrations/life360/ +[lifx docs]: /integrations/lifx/ +[limitlessled docs]: /integrations/limitlessled/ +[livisi docs]: /integrations/livisi/ +[logger docs]: /integrations/logger/ +[logi_circle docs]: /integrations/logi_circle/ +[london_underground docs]: /integrations/london_underground/ +[lookin docs]: /integrations/lookin/ +[lyric docs]: /integrations/lyric/ +[matrix docs]: /integrations/matrix/ +[medcom_ble docs]: /integrations/medcom_ble/ +[media_extractor docs]: /integrations/media_extractor/ +[met docs]: /integrations/met/ +[met_eireann docs]: /integrations/met_eireann/ +[meteoclimatic docs]: /integrations/meteoclimatic/ +[mill docs]: /integrations/mill/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[motion_blinds docs]: /integrations/motion_blinds/ +[motioneye docs]: /integrations/motioneye/ +[mqtt docs]: /integrations/mqtt/ +[mqtt_room docs]: /integrations/mqtt_room/ +[mutesync docs]: /integrations/mutesync/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[nanoleaf docs]: /integrations/nanoleaf/ +[neato docs]: /integrations/neato/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[netgear docs]: /integrations/netgear/ +[nexia docs]: /integrations/nexia/ +[nextbus docs]: /integrations/nextbus/ +[nibe_heatpump docs]: /integrations/nibe_heatpump/ +[nightscout docs]: /integrations/nightscout/ +[nobo_hub docs]: /integrations/nobo_hub/ +[nuheat docs]: /integrations/nuheat/ +[nut docs]: /integrations/nut/ +[nws docs]: /integrations/nws/ +[nx584 docs]: /integrations/nx584/ +[nzbget docs]: /integrations/nzbget/ +[octoprint docs]: /integrations/octoprint/ +[omnilogic docs]: /integrations/omnilogic/ +[ondilo_ico docs]: /integrations/ondilo_ico/ +[onvif docs]: /integrations/onvif/ +[openhome docs]: /integrations/openhome/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[openuv docs]: /integrations/openuv/ +[opower docs]: /integrations/opower/ +[overkiz docs]: /integrations/overkiz/ +[picnic docs]: /integrations/picnic/ +[plaato docs]: /integrations/plaato/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[plum_lightpad docs]: /integrations/plum_lightpad/ +[point docs]: /integrations/point/ +[poolsense docs]: /integrations/poolsense/ +[powerwall docs]: /integrations/powerwall/ +[private_ble_device docs]: /integrations/private_ble_device/ +[progettihwsw docs]: /integrations/progettihwsw/ +[prometheus docs]: /integrations/prometheus/ +[rachio docs]: /integrations/rachio/ +[rainbird docs]: /integrations/rainbird/ +[rainforest_eagle docs]: /integrations/rainforest_eagle/ +[rainmachine docs]: /integrations/rainmachine/ +[raspberry_pi docs]: /integrations/raspberry_pi/ +[recorder docs]: /integrations/recorder/ +[renson docs]: /integrations/renson/ +[reolink docs]: /integrations/reolink/ +[rest docs]: /integrations/rest/ +[ring docs]: /integrations/ring/ +[risco docs]: /integrations/risco/ +[roborock docs]: /integrations/roborock/ +[roku docs]: /integrations/roku/ +[roomba docs]: /integrations/roomba/ +[ruckus_unleashed docs]: /integrations/ruckus_unleashed/ +[saj docs]: /integrations/saj/ +[samsungtv docs]: /integrations/samsungtv/ +[schlage docs]: /integrations/schlage/ +[scrape docs]: /integrations/scrape/ +[screenlogic docs]: /integrations/screenlogic/ +[script docs]: /integrations/script/ +[search docs]: /integrations/search/ +[sense docs]: /integrations/sense/ +[sensibo docs]: /integrations/sensibo/ +[sensor docs]: /integrations/sensor/ +[sentry docs]: /integrations/sentry/ +[sharkiq docs]: /integrations/sharkiq/ +[shelly docs]: /integrations/shelly/ +[sia docs]: /integrations/sia/ +[simplepush docs]: /integrations/simplepush/ +[slack docs]: /integrations/slack/ +[sma docs]: /integrations/sma/ +[smappee docs]: /integrations/smappee/ +[smart_meter_texas docs]: /integrations/smart_meter_texas/ +[smartthings docs]: /integrations/smartthings/ +[smarttub docs]: /integrations/smarttub/ +[sms docs]: /integrations/sms/ +[smtp docs]: /integrations/smtp/ +[snapcast docs]: /integrations/snapcast/ +[snooz docs]: /integrations/snooz/ +[solaredge docs]: /integrations/solaredge/ +[solarlog docs]: /integrations/solarlog/ +[sonarr docs]: /integrations/sonarr/ +[songpal docs]: /integrations/songpal/ +[soundtouch docs]: /integrations/soundtouch/ +[spc docs]: /integrations/spc/ +[speedtestdotnet docs]: /integrations/speedtestdotnet/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[srp_energy docs]: /integrations/srp_energy/ +[ssdp docs]: /integrations/ssdp/ +[starline docs]: /integrations/starline/ +[stream docs]: /integrations/stream/ +[stt docs]: /integrations/stt/ +[sun docs]: /integrations/sun/ +[supla docs]: /integrations/supla/ +[switchbot_cloud docs]: /integrations/switchbot_cloud/ +[syncthing docs]: /integrations/syncthing/ +[syncthru docs]: /integrations/syncthru/ +[system_bridge docs]: /integrations/system_bridge/ +[system_log docs]: /integrations/system_log/ +[tado docs]: /integrations/tado/ +[tankerkoenig docs]: /integrations/tankerkoenig/ +[tasmota docs]: /integrations/tasmota/ +[tellduslive docs]: /integrations/tellduslive/ +[template docs]: /integrations/template/ +[threshold docs]: /integrations/threshold/ +[timer docs]: /integrations/timer/ +[todoist docs]: /integrations/todoist/ +[tolo docs]: /integrations/tolo/ +[tomorrowio docs]: /integrations/tomorrowio/ +[tplink docs]: /integrations/tplink/ +[tplink_omada docs]: /integrations/tplink_omada/ +[tradfri docs]: /integrations/tradfri/ +[trafikverket_camera docs]: /integrations/trafikverket_camera/ +[trafikverket_ferry docs]: /integrations/trafikverket_ferry/ +[trafikverket_train docs]: /integrations/trafikverket_train/ +[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/ +[trend docs]: /integrations/trend/ +[tts docs]: /integrations/tts/ +[twinkly docs]: /integrations/twinkly/ +[twitch docs]: /integrations/twitch/ +[ultraloq docs]: /integrations/ultraloq/ +[unifi docs]: /integrations/unifi/ +[unifiprotect docs]: /integrations/unifiprotect/ +[universal docs]: /integrations/universal/ +[upb docs]: /integrations/upb/ +[upnp docs]: /integrations/upnp/ +[uptimerobot docs]: /integrations/uptimerobot/ +[velux docs]: /integrations/velux/ +[venstar docs]: /integrations/venstar/ +[vera docs]: /integrations/vera/ +[versasense docs]: /integrations/versasense/ +[vesync docs]: /integrations/vesync/ +[vicare docs]: /integrations/vicare/ +[vizio docs]: /integrations/vizio/ +[vlc_telnet docs]: /integrations/vlc_telnet/ +[vodafone_station docs]: /integrations/vodafone_station/ +[volumio docs]: /integrations/volumio/ +[wake_word docs]: /integrations/wake_word/ +[wallbox docs]: /integrations/wallbox/ +[waqi docs]: /integrations/waqi/ +[waze_travel_time docs]: /integrations/waze_travel_time/ +[weatherflow docs]: /integrations/weatherflow/ +[weatherkit docs]: /integrations/weatherkit/ +[websocket_api docs]: /integrations/websocket_api/ +[wiffi docs]: /integrations/wiffi/ +[wilight docs]: /integrations/wilight/ +[withings docs]: /integrations/withings/ +[wiz docs]: /integrations/wiz/ +[wled docs]: /integrations/wled/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[ws66i docs]: /integrations/ws66i/ +[wyoming docs]: /integrations/wyoming/ +[xbox docs]: /integrations/xbox/ +[yamaha_musiccast docs]: /integrations/yamaha_musiccast/ +[yardian docs]: /integrations/yardian/ +[yeelight docs]: /integrations/yeelight/ +[yolink docs]: /integrations/yolink/ +[zamg docs]: /integrations/zamg/ +[zeroconf docs]: /integrations/zeroconf/ +[zerproc docs]: /integrations/zerproc/ +[zha docs]: /integrations/zha/ +[zwave_js docs]: /integrations/zwave_js/ diff --git a/source/images/blog/2023-10/social.png b/source/images/blog/2023-10/social.png new file mode 100644 index 0000000000000000000000000000000000000000..09c5552626a84610ff44648fba585c36d6062379 GIT binary patch literal 34872 zcmce+Wl&sS@GUw78+;NRf=q(DThJl6yF-8=!GpUF5Zn?765Jg^a3{Ds!3i#b;12ij z%l+SaRqxCF@aj?2)XbT)_g=laclYXjCQMmT3JaYC9Rvbl$w7;@;y2;-*w)^nhoz=WX-7UQP9yfh zjhD|rbK)RMFaoeV6j(SA0=$TUK_GuhBoIgx0)YANO9&je4u%0Q|DWCV|Kn0m!2NNe z{_jlsf7v_R7Uo03@kE5nYDbQiQhJ-m$FuKuP`@Q#Vt}7OWh`=GAsN)x*Q{2ZEdY_g z1uI}dQAlyeA6|e|O7L_h4ZtQ+7ReMqqd%p3(1QKH8^javN2R*=lzx%873Im7lQ75f^nVN`vPjbuD(j1RX`#vMTg zeI*(SyV6d6Z$hiUUAyvgV)tykvQ%VfnG|)I9KMg^BZR~azQrj4%uIoR-l<}hM<#G- zD6Y8GuW%HcO)p&pT%xYQi^h?RAD^alP{n-)igh|XRqS=D(pNm3w6w=V@JHbN`v}(i$Ms4Od}ws3t5fuyh_fKnbceWW{Y041>Ux)L46%{K-(G9Q&t za{OfSa^q)S1pXv>kQ;;^IUYw}M0B=2)!Km)JlMP=3b~-r6e~nQ1(@*HZ~F0o{i*_JhhszZT}+R9P8A?Hy4c%1R`oKlQ#5VMT=`o zcT3ipK^XaZS`?M!c1UqGHc5Fx6U03Sfn$ZbtOM5AdtaV3*A2&TK|$@!p~R&rBY&j{4Vhfas*8%!iGT^D=#ZL(kX5DN>edm+(c$}m3=6Gtfde@NNeqS)A;_$nkkLX zc$mjU{(j-s&iFM(0lyD*Nd+c9jgWI?zj^=&%S^MfDB92|DL>a`Q{g!uYE6{CDfV04 zx2iPbvGIVolFeYDWRXM$NmV2sP^UH=(Sbx0j^%duzIY|yrU-2(k6979i(~O1tr1|C zP}&rB9G_>qOcw&)wp8}YU$$|&-y1-nFZ8VYx)s3swScUmBbsvY0SHNEZXzS^HahV4 zt)48F0ALQmJDo5ZYW5!ErrV^x^Qc9 zNG5%8GtV196N75pvSeuuvAY926+*&fC&Jh29`lPbHTVgBb&9Y9bmu^wufB!JVVPS#0QaLMdINjM{N8zGhZ8{Ahudyt5z1i zDO<3Ff&7?^S1t#zdc_{r>TgZEaPHs^=0*AX*j;2zxyW=L!0OCI{^2=!T%k(iZ- z0w7Rd!-G5Cxll%?&+6&n`vgKER~Y1QWVkDbYO*$njbo_M4FuxWj-Wfa(Kgq=J$Z-9 zo)8NV(kvdUbrV#%3$TZB>Fe2oBlgueeTfwW;vb}l$!^^FxJ9M(?WZ--6_?AjrPqI3 zw4T%h<(}QM9S>Dz7i_-c0 zoff1q9`LzgT_O)rboLEW@GrOA(vR_aA4gugKdRgQ&&=Yygtp+$&{0LZB@th*?_? zu{taK+%+;tpL?*2kURpF*ehSy$zCvgujSRYpaRRT25Xfyg}XxiALRcMYhdLvrujxb zA5dmj?<@{C-wLWYn;j)2$7oe>?Z3Q&!%KFjDd1WgKspn<`c;>-h(<#S)JcCirNhyv z?8_=lZhK+VYol*c18+u&+>gE_Bp2E=6b)$r8AlmnF0m7@@}3hA3YG7R3#dA3&@zsB zE7UB`ZBtRxb9Elm&&&3vJ->;~`2sbDviW}1y`Qc+8K}S74vHd`clMQ5CYxn%tVhf` zi&;(%NZe_D^laDf?M*hiSBrp~fE|Sg=f#OhjC_@f*7*#yx@d7YEFC>$UFMf2-txDC zNB**X-@R9jv)e^r$P>ZX4^j(cSvoKdIkPTDij*?A6CL!|J>3wNbB+FzgyBnm$-L;j))(gVjc_{_%|$cF1^Lr(1933u@3IvetD?^{FI}_yW__3$ z-8KnIx*+MY3JEJItB#<~tTqkyHmdO@kR}4zM&l}CC`zk`flLahB2l69iqXaW#sCH3 zi99tuw8)$OeKVIO#EQ!`raX1Mk{OlzZh;{I9G$u}3LukeK+rpNgRJvWk)eP>m}M+@ z!1$fT#6481t4d{muKAEcXidr7##3RsYIafj-WcVJlCNv-wKdrX<{D2lqb~zXW)L3o z8Q;K4VR~V=^C2JoSAN>p`d44L-M2rMb&LR9L*U%xJ<~2>3WynkbMY1!l3XG{UEZI5 z1TuKJD1pK(Xj)9$sj(! zF!%j4U#e>r5>w8Y`}%jea;MeK=F3@Gr7tzb>hC=Kf7wuhw`VgcOMz`8#@A|CGhmJ= zRu2?JU=~2ANv6Y&t-Wk~uv}3Az2;AygOQG|?Pulz6pyFRltZTEiOmaTx4r8^n%0#< z|EXo;_xw9IG-(DwSWj}fQVA!Y!oD+(#O6PdET)~}uqn9a@IMoj&f;!uvD0@ge%RWl zFx(s+Om%2RS@^fOW`Ad}!kk`EU?m_Xk=CM9D(g^?jgbLe*h$81eE*@SBLpA`@aANy z!yTgYe+VgG+IM38!}ikV|GfLq83hCrfEW1o;olf$g*jY64S)jwu6<9)r?CNdVqPTO z0}FvWfx4+GOQrynbz++fzywOLU)(!uo6hRva$&@$St1v3qMK%-56$x|QLc>1N&YYU zfz=ycRy%TXpX2*+KrP2vy)L^ute7JNI*-+}sZ*{y!|Ea+ps=UP( zX@)$MM))=q2XIp(%_~RjMqd(#%?)G4Kqr&N(C-AXtR^qa_X`lT6v?*+Db+3kFmpNA z?auF#F%Jqbe`RR=+HL0`o?|j-Jmx?`g8J`%dONGJ-!5SB)yd2v&&E;lVRgLS`(0Ps z+DvN-0&oL;$HnAWz&@svW@B;=@agyw+sA0Qz7KL$83YkUCl}QH&QWG0a1k^D%UvxV zbiVC}0bQ4L2hJ-DG4z3__hYGn)sWHH9T_nlFo3!)YPU_(;o(QH9e>xCZ^=jhK3oqJ zMU!Rnf)N(mD~(mNRSsj0SU%~~H@K*+40(4s`^@|l*a2*DpqclRMQ@GX)fLN<>Wg+ zdLhJ0Nz&$0Sc`|zFi-RFw>gxzKDr|WLfRR)Q^NiKiaP3i2!yg&PXAA-Yo$r;X&o;Ow8=5HIF>nVJ%T~^=p+Fo>u%oBUB_tA;d9ArjRGV$)JpZYni z`CGC-4D6_kJum5QjK)LvcE|fn5zjX&$As$M(;$fgyQZoouNv%Qy?RjYm?G=3UAJV+hiXVoT>M>~TYMk;>=`A{ zjYnCL#&|6h_O#ltaF&dfmBnY0y!kSDC%>kaC*4MfS+U%V^)!>RKJ>ds*#phZjKlOz zvk0rim)*3PvGx-uCUw-Gk9d0s5Fm%4GvsnVN;kl>a=`C>gn$23C(JQv4iEOVe)Y|@ z-8qXK1i+_LXn!CEdr{7Dm zsaT~TQ&W@}cM*wb7PrkqK9>nbbEy%__25Tr-2Y6N6QgLiJ#T;GBt-G2#7;ga!BnwS zCb3DTl`r{*@3+~ZLB2xbC#*2c9+=2ybnf#cYn&&;VQMUBTV+99(Sc<_0_>KRZ1pA= zxJm?8&uP_GLQm_G**Ck<){WX2wP^3ROQ=a~44m6KFrQV7qWAb)ce5~=4y zUNloQR&2TF#5Xb%HcR-At%d5FtKp1Lr`~w46&5uqk!DUU+D-95DB(bx|O0bIzOYeSIVP zU4rL7Tdw_70U^Oas~aycm4g%I;?|oCUy^X~DV*)>;bmx)7B?pedd(tqiQKJh(;?L! zo*D!)37yw)xyZsRlu9X5vcH5a-(wd`59WaZmr?TUwIrNm;&T~uxEcm5#vQX@k?3>Q zTki^0e6}q7dTA4vZ@ne#`G(?YeW4+!_m9}t-5 z1ZRH@f3&~*A)xxTT9dw@+xc(b<*+%-ZUFS;q)oAK_-b_IH9dzG@r%=iYi420tT3&5 z2}KLALPKrxh)uKw1FlsB3a=UH3Cszl1k6FICjkq0@7lX}j3mr1s8u@cN9giiQ!##Y znWC}P;f_%gT|GVGQ%rwGrGF9lhNC!@_yg{rHwWuYPHxVx(t7&q{YIyqD7;FX4O-T6 zkaZQ({-(sq7mCLVAC_+CV}bzJN6yK4uod=11+HbwN)@LzC>x)1aRtq=3Lk^?hGNrU~JN5zv=ey~Jw+b~e7vq6m z-`Hy2wPU_Pdy1|~@B&9)?JL1gtRjUVv$gS#vWO$UviFD*xB-K zqrh_lvc~Po2jB0kNXY1P%c+Y(?v7!pt7mdi9JMH&`gY43i{-P!BP5%RPb;@`MTlgt zhDSl0uwP8r%qio@o&n{=4L8lVL`Qem+H4FNrlM|MiwnvD5^ zoHX;)(N1;p=tm$A1SnNKlFFbh0EO~5?W(mYfA%cnpPbRpI}?L(<9b6H?vi`|Kf7zlj~RO%J)nP zhB(HxdbkNyivLHO zJ-YD`vVlfJ3LVk(O>n~hV~TID9OKH(7u?&mOE|5@iBRJuT&##S1S6ny-NAA z)D*yvjkA15ty7*>ZJo^UqFP8z0V-(2@ToD_wbC+exEwq+MkD89aE43rjTjE24Mh;$ zeR1z@a!qka7=#tdWA_q&2(+xRh+f&kE0}!w;7U-iP|-u5&p#4ucKOj4!|j_A>v!k+CS4#{d@~zE1LNg}R zD3|=GUV}JH1`_>8RsKbg^X9X+siDjVWok(cdx@=%q~gOPI-N#Qqk_lYRBt4-c>E`? z*mDwwial@Bz)%T{?~aNhP=R0P`U?Yp8gM%!*!5NXHqF{fA024Q`jQ()_k|pOv66lg z!0^)A_?9RWVRJe&$^I*|N`j(V%*GfNrgEhD89J|UBz}SKn*aF-4Bf1lh`(WZ58F|5 zF{6aXApRFeJN$9ZN!~+MA4SMYUcs4uZl|9A81Spj&%!HLI!CMwlqH~dEb2c^ zF-4(-FyP_P1NCWU(S``@j9UY)oazOwsaWm~rM2XKsIHXJrOw?{2A54HI&r_5&^b8N z?`Ozn4j%q^=N(N0c^`ITPuheJ>s?-VMo!7B7z=O1>-uo_3mr}T4~tHQBfYF%O}2G- zQI#={!8L(*AM%H|Ft>Uf>yz!*Rl#Vf?x)fz9%T&GQ^u04)fIyUgI6h#3nTTvuuneC z|2zt#%iWdL%E?s_lh={}qv60~4O4WHL?AnNl0uKRmZxUsBL#lV0e5K6R)hcy!GW$GT_5~|hQ4sx6+~9@g`>D+ zOqODdT@J}>zz;3!o$HRaCvA>4^%}vpFOG2tWJ0bBC%*Z^5pA5TuNSxG;02eal>+V} zdY0`pc5T?Wpf>^Ont0bQaMz;6D=hOcpV85S8U3PSXC^F3>fHg2x<7o9z2xG=ZSEn& zkWLY2AC0)Y5ze6gR+cn|?Kd!Kd^<~-pd@EHOXyo;S`a1Bko(`uMPtOp$CoW;1wtBo zl`6v?so`*+E`-@dIkjFWKOyWk{~qV3lC!1_1ik2a*i zzvQAKK_BFu@J~WlxL?kGxR)vv8E4io_sOFpQCMRU#!-}d4VLSV0 zs`K7-4S5v9+e(ITNcK>L5}NVsFQNX{kr3~VH!$~ObsgP_Pn)(-fD15iW`S1&(bYVl zoL*Bh$~QeaguVwuw?D9b|16gy3Z)jJg-L&%KTA^jTt$KTkr943%~uw(G{yQ_TAGEn z17)*RCB%Vx3n9m_HYzYY#JnS015a(D>~!Yi0iLVou`Ja>>uWd&HpeUuRw93#a)bZX z?+dNT{aB(41G3Olya0~j8r4@=hE4NnEQ;?`K{(D3$T-O4)s}0|l|vvm4bNe(xM0RX z@13(1oEhOg`C`tmQ-(|;(Z3Q5Y?Gv3ytfFe#q;Ur;j-Kl62qH7Vqem3$*I+*KAaR7 zqTQSfRwMLz3r2uf-lmCGS7i9!O#m3?swymH)Mj}CfJFTi5vyd--1@|D`kdcKJ5Loe2 zXJfk>ebR!~GLK}7NsNzJq}NFDUwO~plRu66l^zKFsD!$=-pg2Zey2Z{h1YLi)oA0l={-jieG;;!DtJ=hq(^- z-q{7m8XHu0oWC94=raUMU{o-xBx9W%{MLceEW5Tag=N%AdmNUa{I*q0fw%?je^O?<8YN;TGPzEt-yf#LzXf8)~Cx$WZJ#MwVKM;I*mgA2f`|>o;|11qAEOF zqAwM293`zhg9^HF&-*;c3r(?0W2|edlk(echT~B2oji-bNv36~*c(XDtrTmk!YC|BxggmW_Em0XJ9+N2u^x@D zzeG(g87S3+rdg~z`$z~)56RgI|7?_MnBnCw;v+%Q+)Yf15-+!4 zUfNe(CPLvf>~f6c$MO>PwGAk}Px;B$PC*_FYG;ndO)4xy?nWWA zDEIVy4mMu1*u|PAnJh@2?L4D|Hvq?iPs1)(+~Hj1Z_N@X=_-}=YC+>edLhHPUyF-A z#9lQ)jgBOasRg@YxN>nJol?5sHxjvcTT*!cZF5mD+F&7nDGlxAN9H&;b52}kld{_P z`16v|Q3pB+K49Yx5LEuhx4>QeW(ZHqGbq#I{~i{m_YxP@DPUon=;Uu%LpqO>ty~OL z57I@Zw3RZ+&>%DbDCBJIa#;aL4qAglop#HVa4Kk__g2Q53%BQaq zAhIWF zG90%5(vo|ml`dcOw>7SZQVc=(t8qoSvxeeL zpKni3fcKq3MFsk<)s8}pEqr-NbdFX4{~z-9buh5@VBJR&8L-YxVU>%>8i5wwVCaeQ z$3zvU22A{oK3`g<7bfMmeJ9w9;*BH%N`kSeWPI}CX zeoC|bkJU`{KJ9h!kwHZ|m6|}?#aA4KuX3|cbLlr14Gp21$+5y4JJg;goD%QpcrRdIJb!0ujk~+Wu(%kvz4_fV& zwzl|mXBt7%aL>)HO}AGgiGmNO+j^H8X;tMPFZlzerJ}}>SgwtlnEBi6|E7E=U!V+D ziu;cBA8G!fE@q!U?MA;YaHg2f1w++ntbSSm1z}8&!WbWKGI$})XV^|W=846}i4_D93p4EB>R zr?i7*D;h3;bU_I>GpnSvc8@YQv51f(n1Q8?*0xilS>7_#r7o*hxEYTh3!Obf<7$ zZseJS$I_NHX41!+p)yq^JxXl{A6vN2mb0gPYee_2+uFeQC~NW9fgesbQmL>YOEVHL zoNuyre`=nz2nzUZ(6T=F!71ZoBgb^|@QWIQ*y63fN!cxJj&Es|wR+UlpLe=>GG$aY zb{`qr#~0uW`caEqpDGz~C3Ag^RENSDW(g$-mH+LhK9-Y4r!Y5N8rDrNc`&hWyxEsR z8)8nSPfcr#sfa&lZd=zwG<}LJLJ~FQnvZ$~XOs&V{aEBH3*23TKPghm9tBTuphLZj zPUm$%-S7K>N@_xlb zUcUA9{9E)f{I{56LlI$hFGarPRTqYY2-S2m3RP0+ZuI^bdcFO(fMqhixx(X<;yco; zOWDCbn0E1O;Lh0Za#;d4Pv_+2Q{t|~AErU;nzf%%8Dn0`z5c9uW4Nl?gX*(w*|n0{ zF{5_dGHyGa`dD}J=a5lfr{T3|tM6dZJ^m5O$e;2#t9mp0yzMt-fRO&<$N?Tl{FmbR zoy7(Czm{9QQCuHgvR4qRM2sd&py1gt*88sasexvhJGS|`2Lp;JK0UHJpWBzT$tkDO zRxzCG!!*gp*XKAJT*Mf3s$!3}ru)qlb7;grH%sfXU(3u}#1uiFj#kZ}qmcQTeWWVd!^0WzL-}_=AV58nF zch4|1&dQirbvcHk9`hMKM!NYPl8ySW!;;)VV4uZW3Q?0n=YLly%Gi|6)uCimm)a_$ zWSWX_u_Qw8P~W=v`rewHqic+>Z;VR%(kDTFCC3k~+hFH6l19_6a3DiYIKgtA84ekE zJW3gvPMo6-Cf#)2IhsgyK2Qd+@??P~d^X}q=lg2niG#6L7gSI>XXtc&kwWUGm34?` z^Xx}y-vkl8#rfJ7=XCso0Eocklzk|!g9?+n66L=TPqp9H!@^&tU!LK|4*43`vp0a! zN8b1RpxtF5>m)CdDfVFXVOfM&0p+Brn{mI@DiepqcA-+~lOn;eV1y_E_RZS@g6duz zZ^D82#FpBGSa{{cr(-Gua&T5)mfXT5+~yU$hE_TK@9=7o&EKMnRI3=WwfWzHdjoWu zj=SnQFJKi%GU)(gY)Zf6x!Xn!y27RRqbyZ>8>eH_Ho?UJ(Un&(8~ACPLv=|DHx zU?G0a(PT1}{^(C{I~Cy}3#0lT{--J@P0?3+Tt<{T`pY_Bv;F!AC1wh>0^wBf?jS-H z;c37NqkMF^T6Z+vloNQ4deIzW58S2P1U~Zr!SQvfFzZ zaLcS0Bxv!k88`<)H9z=0HCh zA(?aOUvdoMvRF7p=?cJkk3qg|7&bEv>uc%<9bGiEEJ81w7hy9nU88^5)89X0*}er- z>4Ek`vPIP(1Py8nWZ{Bp7RxVu^361()(zL7tVvI z7)tE5NbH!gFTc+z` z2dl{cad;&>AUg=6*nndjNn%_+3QK%yrDTj|2#!_ZvOKQWV8&&&M4v;P#LW-}s!)Cc zs!E4ycf2&XrP?KS{7hCB>WBTWZ^|U&Xe|=YR6}Zw>_ia?Riy*^cn*s5R8E@@O|eG8 z)Ea{#I8#!sjUM)SnrgRg6J`pDgYRHFU&?}h;^PkV|EpMBeHSlQ%MmxhRssm^$lbzAOeX?8H5eW#v1@Y_z;5I&oxrJZJ zJnC@wM%sw9T()nXG0_Y&`-*0ZjdGc^4(VpZa%S@3|1!8`k{u@-H*7%hDzYJNqF zoIl!Az0&ZaAsAlSj^3ZSfW%-wsfBUVHQ4%L4140BEur!Q(zh>N2PRLsS^7q*Z%>*~IE2r7F~R!qV#^V_0J~!&ylk@jj2npM*vV%Xbm%mJAuyuy20=|s?JX8F z4E(p9!;w^)^PtXrr%}ZL#?yxuvrNC&KzQE%QCJhxMvdov2pr-**E+_+Lep<_@+~K% zaD}e}?bj-8o5b^_`Bf5T;hx@|!-P~}w%t9ekS@HKv7bPL>|AxwY7pG!eec#0J9o;W zsEt8t(@t{#1)bG8BIaXSSLUAo1=2HqhrRqE6Uj4(Vg(?16$(jI?Hf^UIbSNzT^gx-_*-PSB$#&OG{ zzD9Eh3>;AWDo3#Wh)>WJKMupIXwmPjEIKu=%L8On1yexpIsqQ#F1#0 z&(8mv!p$dZ^SYH~{%5AXj&lvvv)dVsrod5S# z<1#e_CQ7czwgyEP$Fos3kfpI3i_EgV+Fb3^}GF!y%9r45qY`Z8+q+ zZjG_|M;HuTDF$Xuqul_mq+qap=Yv9#<|qYK`p~*NfGfz`Jwv)PNrN|yRXzKj_YHz9o4e(fO*Z^ME&fdd;5{TiP6 zHJ}DG;=r3o+PL59?UU9o-yQJK8+FI3}^R%FG;R@WzXx86QUy2?rf~L)O>R zS-xBeICk;SpILIFxJ(|X_bPb3FQB{Q+T5xJrVnmx8deNWRMwBEm8Msw!*h#=z& zE3kB}Sr@@1R%XvlWnr}ldFIyxum=0pHxKcv*hwcuOg92pCTqMG!B%lGTKs=bLJtLNCO@Jcb!(PHz5Dk3VL zkOMyo&D4ZWPlAYG6Mw3JCf7sgaYR@gR;;$1A|J|q|IImRnWo;Ps7lS@O*eg9&d#F9 zz|JdzeLHvV>zlfX2RrNCmfa+7<`8sL2`s6u5Ntju9O9qsQd%?_x~e@Xz}Eb#WNik2 zH`i8dm321Pp3!!nS0^Z~;5gwfc^_^mg#H9a9_3k~VOF#9z@N`l`Lm>o>GH3RBc^}$ z4-gh)QK0=PL{h|qz2f9dWv5~Ppl}$I<6?&>pG*lK&+&tev3}~4=;vh`y;C$_mrQli zj;A_N`i`t{1RMs!(;+Xd=?r=Ov~*S%V=@$ON^lAFP(qI7SuD4=#%2OQd{7(6)NUM2 zxOd(Mjj^@Q2d-Wk)4^S#(LLSW)+S3GqB__0v2+*b=bSXpe?^hXT)&5Ih*o^WZD3lL zJJM*G%4L0pMNNpM%a}sVoz=P^4tT*tQe%77&xY|8I|lz$A&sT(Ckw|jKT0_I8ek`+ zxOTMfvv_N~1^&w@blL5ZFBJw&(F}OATKi1M)|+ zsm8538A2>^9>D~RXP*T~HrS*eumCfw-F&%WN54aiz&+Z$99lz87)pQ8Z|u0r(u`-1Z# z(Pg=rX*i~bZMSLkhaV?YDNH>5m-3=#>+s*x_37t}uH1gO2^w=IV9iMjyig=sb?}qB z)iFbK-a*2sI<7l2FS0farg*k?#zoZB$NmK9Ht>zP?VLNh|J@5EG#%QlZvFBwn^vkq zE-*mTvMD{ys2Lh2@8V8XNt}D;OOk`+lnU0O=!`de?2fN0nNND)kmbYjeV(CCrn%*GcWwnw?= zEbzg7wejk$uX-#6d2XhOoYNo`G?%gH;@nd8P5PC>O~NOc&ES&nZE7nSahd~r@=PI`-zwn&e!*(OwSW$-!7=GtvuSW9{Ws34NhRIJCAkVEN7wOBsv+& zs2!=XoTHTWl0BP(zT`v(Sn2Q#imKl-$MhU|j%;Zs#m*}ePuK4>TP~C`CnIF~nL6Ud z?FAW;eUO&OomoW#y{ub8_}^7`X8qD88Lhg3O>zV2;OI30VhrHSEnY$omFe@^b$h@m zD&w1duOZV8-tZIdGt7zsyXFr?zcE!+Wl6YLk4{6?xWi{!9f~ClrGI5*7=G*UpjLRx z_0_hc@$q*N8#)FMvmLPtMTy_*i^dM;=?H%kGKb7K=3~TT&CJZ$&ev$Tyo)6weLFrr z&Of7QekVb(sk|9+c#R8x1&t)4pv~3&$xMxdjafGl!c_$c%K-wnlU1jt!H@6MQA7ms zyW7~!kse+_yziT;cQ&EHjs%6Hg1+^g8-~&ubK;B2Ye}R-w~}mBHrV}%H9&2^7DI8sACQo77QWwqUB0@UHu&|VxTjM zl*x}UyWE(h91r@YZ%Y-G1pt zqY!j3bcLDt7!SHkww=u2e@OBg7HfU{tu1Ok{Q>>^r=N2jDZW^=m=y1V(jSi?hR?k` zW8p|Df>~RHSONw)_oj+z(vC`mRNfk5iszIPBn9}eOP9*uv$$~Of*zEdrSAtT^7q~< z`@S-c#(HRR;JYQIai5T~`-WhX4lKPK23az$T$2*nNItQ0%9#};}C<;Qd`g8ose6;;952sZ3mvHX?~a*czM z%FD@7?7!l~k0Q;Rq!}0(xu$|2T3h!cI#OqWoRPZGL=2b8Oy#qm2ZLY0z!n6csOB@t z)6U>g&l)k4!#}4ep^{hY=&wJI(k`mZ)39n8$X`Xdc&uAL=f$gYFua?-(!Yfb*BQ0gO3)eE+d`IsydP(uLoc8U zZ>h$VAmq7QjJfYUJg#4osw3FuP4~n^Mqa&wpJ@E@c$JdMQT$5r%6!l0BDq3ZKD#yN zKa}X8wT^V*E?gx+iQm0zvT|?y5=Ki$)EVF+%kHidG(JHydP$6_wpZq!_g7?^xx9{s z@{@mym>B}$#>QbBCn_#4oPU3Q)ckSVfo2?3Db`9I?GvGJk3!Y+K=9$TQ_MYW}3CWzd&rMB#>+0zhd~e%jKufS%No?u_N8w7^ zFf>Xz8ku7R!Xcf?hz_Sw5fR%Znet9@sD2r3hB=bp({fCCVjIgg7m3Dfh1LYVERm>j zn_E-`p6&BDgY)Bdcn}BJ+&gK1tY=(=n>F~{sl$48heR4;SiC%i&7KZN%ZOC()P!PF zMFu=WNV4PY&$Hs$U~Ar;`${v-)G{muYOq)cj7S#b$m!{M?qrv-9|0kW?7Azn{GEXg z)lbn8aVe=&Wo29{X!dcq!^Zy;l$M_pca&SZkDPJz(J~0P^FQYOZ?iJ;f+DLpEhe~L zsVj4;fK5%f3=9ksCM0~q2snB!H152^A?RQtNopgbC8rQ!B<`;r;#OeeK2ZJj;ZoBI zA*uI8^7hrOvISwZ|HnZvh7cy&4!LUMC~hbtO@?#K>_@}LIcP^%P6^A}gV!)3EgY*8 z1%dL}37JKe0I_LQl)`+yyO9*O72aDg4u!D5IEv37MsYdJ#OPTy5jmZlaqnKW8DE+} z9{q$;2yT`=>uBvJ2vmY|7f1r`1Zx#I&chgIm`|;z4 zi?{}LNmVO0toljs(ev>>^BX0zESZNJ1 ztP@ZkFVY34-U#m4J>a)Y_*foxPraRKi`sNa`c+fS6t*PS_QwOFwI33?dvWKzPBtFN1Lsqv2ExJO6 z4Q>C1^=5Ek>9p9L{|sQ5hG{PdZ9q|7#_~-{2ExkBKK(x(oJc>r}XP zub1pJ&3RuPVLSNaqF~Qa+CV6cKBpA1^`t3o=PT&F$H&9api0C``l$N$i~0*$(uku^ zTU;?JQ7pfeH!Fxt^Gww@&W#6*oNc6KYJ?~o_xSv4ttZ>W2|KVEI=HeR=w5=KN&jk5 zoz#2vAyjvv(R(p~q|V#MEJXw+jUXBGreONAXwFtoW?`zVwU#G_f@&(&#+?$CuN^HI zkra;gESG6q)U~?w;emYtmY~{_ih#{N|$vR8`f94Hgbz$662nv;m4euiL?fRLL`|KRyf9;rY5a^D|$YEgO@24QVK}#;H zAIH9g5KqH$iZRX}Z#A)%mbgt``+`yx3iB6|bT@kQoW}<*d#G;c%p<ok2CI!N97We&E*6BTRXv&JCEGf{B~i>qXF zHJOqOo~xoS#FMtZd4AeU=^E*cQ_b`>GD8wFUt zf+dY6PERi_CRTFt?Md460kGi=-8xOQIZt`ai*FpVP$|bwwI3zPRQzcyXN?%8fC_yE z3;M{%dt~G7{d?d`$!@F1?~UEW85aE8yYr@GU-Y&6+fk)DkDPh%T2;hSy6)83iI$J4 zL3&}G+cdQ=@e{Q`GB!p5o#inK8r9_Fyf%*tp})o-4 z5f_W!{2IZzkoew3WWRMvqh8Z;_N!TSGGc=?Oe}zEpwsTc0l~K;;&t%x@tY>!cyI>* z8YM;B*2^ojG%%o^D8bTcDbI`n<;BVCaISOTIF@SD%5dSnPt#$g)PR`$jU!I;-L^k| zw*Q{bX0bjvcRXn+9yo*}?EJ0S<$SAE^3CnBDVHQ>o&D8{%qD9t-75|*f6yvi|6LF$ zGo*VrzOQuI@9|3eJd@6{?%Nx;TjQWsmMOjY9G5!z1rf;tfz-2`yRG3!c1QE~%wfQf zA;(lg?BYy+_qxH1T)mjf(y16knI*&2HJrdoqP2RhN3J`iC@{b>Cay6eQ&)@45{iyY};RZlZ{a+5YFf93QT`o zPY@3nBsrmm00l}{)z!P80ezJbVeTEQY;AJ?kdTE1j(62K$Nf~0TB=c$r&W)0YsuAS;C6sC{d!aNK|spAQ{Oy^A7j@ zp8xY)=UnH*;mguHv%jvYuCA`GuBl2Nax#R0vJyLnl@cPR- zo``WSoEFW=4X$z{-kNwGxW><(seV#;kH6d3IlvJT8cGW$LQLs|Ff^2<2t8WO&Sk-9 zN_*e3a)BG)vwdI%N3y5Ng30Kx@$h#&cW6WKl(s8_k&eqljR6)U=RU8hZ+WhP>P%CdXl+GLK3+Hsp^7Os7gBigoWp6 zC$wLiIqBFH4cEI(m2WvKFoyGjyRlV9uOn785&&)H-1BAxA$81a-s5Lzv>pv(&0U$b z@moVnK1UQ>tYG_s6=WmCRkU>IuQ*Z_xm{d4nZ? zC(m=c{rwTHh*$6Y&03zItlQ7s3S^LM;&HN$LnzekQnv1>yVu~>0B7fJKz>zF} z3RU6IRE}u%>db8&S(81LH!?Dsjg^@dQPoGV+OmwxAi)g4(k{33(R;FG454mVpHAU zCKZDIu%X7LrLk7SqJnWwPIFQjZtTNYL4yZ6VrBk<3GX9&H!BL;&&MtPSiDOVnM*Ib z)HHdZ9?O}FVgf@(K(B9)~s9=u7?iZ1kr z1a7FzQZGF<>Ap%2TQL?_4-ZA{Tmg1Iv> z=~rWy=em{BsN*`eo=9WWk;8mey?_Tj5LK?>w_Kk=@8IPy$z0sME-*^(2+vv!WCdal ziC-Te6iK5E-5uY-6msEeYN%tKH_K34CQmT@4RWWf*7IlU{4)4~eAOXn>CVZBx(@Z@ zb53sq)=oTLlP74ioRP}+p!>pk!#j(lMl**P9Km&3?9vilFeR#I?Xh_M(e&99o0yaH zYUMtm2)@|LqpphYR2oW;QE#DOACM-Ldz*LMolJ1n9@L(c`xWm_4TGNLNnO^^FFejc z=W~A{>rYSJzlwjYCv@1Ts3=PST_AwcHJZubji)btovG|uvSx;S zNSu)E*Ea{A)XS4xPdTrx2BTCM2Z!BuZH;mJp}cJrPyXS}iFfszhkoKu&S|i_Z+f~t z&W4>0M||yEIRMxXVmz^;H1Y({e!i}Oy>WAE``PXcC64R(jIUDdCc+%xBAxvRs#iYe z{c$t9qsYwVU9f}p@b||bs8L)R*9J`La3yvP*pAboKPmImOh0Kgo8FVi>*4fEuL_{_ zOiFiQkVr3*t`lqiJI-V64CXznGJI<$5=;vq1Ens&aH9<7`2>IH^a0S)!cM&>ulM7Y zzmyfm<=Za1l`y=BgZKEoLUC6Lr&~t=j0Bu*2q4_hpimXM)o>(rQ~Ku)sp0b~i3`KH z5tV1A28RQLC0=L0Gsc>`70SC37Nc2;e~c1?L)L4G>gW8x1x|4os$dAt1a5z;~$DSp7Skg`o50byzdpr2c8C_xKyv%Ydo_n6hpE_WK()j`?+j}WaXt2 z@|-1xo-eewX!#fF)@m71;S}c~@{SzR2 z5{!O`smT@MDe>o9N+0Cwd73002duwbfleox{i}YLgmkI;RAd z%2b(iPU=s08?~oW=laj6J#_x_Q$D>Gvne)04k`&seOTafMqX*Kw8;SUuB>o&@E2^3D!$Xsy03PrFN8qC?O0#btoY;F0=YyVk_1IjY@|fo2h?@hFb} z@dNL%F^_!ED^Sr(k9##_Ak3W#ThUK*9ZLvyJkdF)$6nB~unJ!dg^@Pi@3Dr18x|4F z_D^;GT(Jf+p~qlGgNq1zYocnxXLWI}nD)+2cV|~>}o>qLtpRme11-p z)(HeP2ol_lJ!us%G9o#EmYP3>VQzPeahi@Cx+an301H1w?t5 z4liZ=T(b=$zJAK?qWOEfPLmZ`Z>Q9`Yzakfy!tAJ1j?U7aYTk6Xh7>c3AIS)>P7d6 zLIe2(*8l$9J>TMzd&sNh_VGPaKf>td58{?L%q)J%;FiaqpKh1ARoCxI<~KaD7CM)w z*`aKL8J0?ek?WmJKR(mfMlpQlIO23#7_gxfW~Boyb+TvD?<&#i9_e@`*NTeeYj07)@n{ALS~-3^ zH#hfEi{kW%QiDmr$}@89)|+&{-O2(;`$1~aRv^4AK!ZfiY6 znZlh7XUkUU{FQsLzM>)V;s#h?J4l=XG-HDf=^`G_eTG*iJwlrN-Jss0HN$Gi`}Q|K z+3m5I6&WU^CnSXXlkXhE3BkY?0>brb=WR3cy&x?eT}RY%o(Wn!6$T#A8IT2q^C@-O zDZ3C6dpKg1QeT4(OBKVD#VGz2C*g@;n1A{LX>sl9%DOf;@TmWeK?a3khik*-C?Zm9 zK?_2DV{C*IO{OOr^VIW|={4tP{<`%y7hf40O|aaG+_LI&JWne1TCIl z=)4woikJ4x4J@ZqoBwCG4S78fe*d0YiHF_v0Qw};);+y(R=>w2Wh(ifF3T5BzXJq{X0rsqAbEnL{FUfY7ON0LVu?77( z`e{>KHn_&AtPeT=?S?~b+o6`NRoBxqL}6b4;ANrEomCocVhuG0j=~Sysr!B(eR{0L zlPsoG46>izjQpagi3j>zVUd9k1(Nl}&ndA4q;!O*us2`wH7j9<%_4hoZtxJrO zt!U`4B!;`6_CWqs1HGruCWx9jO=tEbytZ%a4EC=##m7Ix7|YPDz-}=$eEBk7-EkzL zO{Jg=7okizvZr$H$Iej_S?S`k1K{)BN3(boC-cCV=n0Nws5Z*n=8_j66$=_Ay)2aO zNG4d1>eKf3>bQuai>BIJTLr!9gxA4DNJdEn`u?V2=CcCVsoF=rICEjtO22)=o?e-* z8MPGi2Zv?eelyS?!J{l~dn<6fW4+`!xGv?!Lw%s3IV^I{NCr$*c&S!?OyuM^?hY#8 zX5FS>GOia@(FVU!&QC&ngZFkCX(@1{-t){zb3e!W{F$FmgJk{8uR{g6kQF92*o@}` z`aL*XMC6c=aJ2(~P95ryhTZ?+8sfx0*O4roLrSF(Z8gV9R3sU}7dpVcy}=&YmQYLt zP6DFF;9SPPFAwW~M#k7a3K;L}FXR=k?TM3G%F zzxEDp=su;bid`&^(BrQ^hXWX0II^cFN2W*q?E|v^^C7P+3Jm*eX`xUnUp-4pOW*Qw zpa&Aqb}!-TfgMuchUvSbhgH%ZNk5m&t!o@YgYiXAxb$1_fe0id%jZwZH4NFlERBLEzGub%6l?x2=LzHjRpp`7X>QYe+tI=XdbyZ%!exsz6 zC)4@s9-HMLN)*{7`&UMGZ?3#c5x=ZpJ%Q)$n^mGLeSABqF?^h9It z61QE&`y$_|q*S>_!VLS;!&Mu79Xmr;RusP@i9azTBO;ze6>fCBj2LSXq>npMlG2C= zGbEZhza{=2&PjVQn?o&CzOC1wez}hejf{xyvTU@}8)svx_fktTZqIg_#aOb5=e!hJ z4#yP;4ki1;Ly#-Ah(!-=)kTUzWX>aO?D8{ZIr>I6U2 zwwLcH?vdI%_iu{uR`+lGi6mNVgdnUxme!e5f%d*gzuFh|2`wj05<-tO^+wXXdvL39 zRyy^8_$w;G5n|bJad7n7;p{6RPc@b~)ud`NjOfO z`@I0GP7Efj#A1#U7vd`d1F>OYnY%myW{z}jD1+Ge=jR2c6haclSgq(}nMUx;IAbIi z!u8E<`MmDj4RnxeN^*3ho1^`ge-)&8|G9H&Loam^(P7ivMgO9pI$V|dV{}{EQqu7{ zAw=R!Ht6B-)lK=nyh3&XKQf+q1L)mexsSy3s2=f05#(%xQ;9?0()g5o%D5D6f!QSd zO^?*IUMNH@NJmSYTR1;$`z>+R$9dTQtE4@Bc~W%pGI!2zk6<>S-&ogZ<*XFXKXlNF zTG3W$qBSz*&SNeqqmO77B#nk}Zg`A%_~rwzXK6OF9iK63fuO(TPdyEWvx7yDU7y>3 zcc!R^elOmZTs}1ZAa4aS%Ho>|Bniz~Hy(#=SNhuep|l$ML}Sq5jiFUv5lR zd4XC%Wcr|B=pg+(5zZz97YjZFsIR<{lZa-e($&-~=u=LVm}7}NhGKL-YZiNPUffh3 z2A#`aEx0>`#kF7V-eUz_prr^#!chAAx?G*aTi@o3EA|Uvm62bypBZ@Tslrm*t)EUa zz^l5_Qh0v+Ox|e$W_87PYjI$Nv`>1gwP)WEPd#bxPUC(T$&S>zd4pLlQwFN%55x$0 zZ~R_fJKJS^_2DOwK;HSX{w@G}i752+Jc~G*bWZ2u{8$$qA0J1wQ8Cg#USoYUUAI*~ zGS9hJo_-PdJi??(P-ZJMiK0;rN2X{uk@~gya&0P_X%>zWvIWqb8Fn!lK45rtf!5~^ zQ$sPiKC?wK_~_uvRs!O%!)_3&HgsPJp~j=Di$Qczl|+s#5|oS;rC$FUIdxuR!c)lYLI z!6%Mjn2?ec-1*`Y2lw?2aV|#@zE!;GA;IVP%5GXOnGhqKd~zFyD75ebkHgcZUqvS{O{R`|dHY!clKw3S3%0 z)sZjKPF$NG6OopZ-I4$oI4BiKcJ<7+?NxK7+(3vRZkEiN#Mr~jW7!4g2K8tlT2xMJ#3?EILiW=f2{cqD zw}1#9;Bt_RYQ&z~qtx%)*p#N$=Lh_A`v7>71ljzajl9S1@!?tU9WW>75vdmh*K^

<@%1@5gw#hu~?MK0YZ% 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 DXt7)< literal 0 HcmV?d00001