diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0e94eee4c6b..e677d37f2f8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v4.1.1 - name: Setting up Node.js - uses: actions/setup-node@v4.0.1 + uses: actions/setup-node@v4.0.2 with: node-version: 20 cache: "npm" @@ -27,7 +27,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@v4.1.1 - name: Setting up Node.js - uses: actions/setup-node@v4.0.1 + uses: actions/setup-node@v4.0.2 with: node-version: 20 cache: "npm" diff --git a/CODEOWNERS b/CODEOWNERS index 377ff667766..2213f8935e1 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -23,7 +23,7 @@ source/_integrations/air_quality.markdown @home-assistant/core source/_integrations/airly.markdown @bieniu source/_integrations/airnow.markdown @asymworks source/_integrations/airq.markdown @Sibgatulin @dl2080 -source/_integrations/airthings.markdown @danielhiversen +source/_integrations/airthings.markdown @danielhiversen @LaStrada source/_integrations/airthings_ble.markdown @vincegio @LaStrada source/_integrations/airtouch4.markdown @samsinnamon source/_integrations/airtouch5.markdown @danzel @@ -42,6 +42,7 @@ source/_integrations/ambient_station.markdown @bachya source/_integrations/amcrest.markdown @flacjacket source/_integrations/amp_motorization.markdown @starkillerOG source/_integrations/analytics.markdown @home-assistant/core @ludeeus +source/_integrations/analytics_insights.markdown @joostlek source/_integrations/android_ip_webcam.markdown @engrbm87 source/_integrations/androidtv.markdown @JeffLIrion @ollo69 source/_integrations/androidtv_remote.markdown @tronikos @Drafteed @@ -83,6 +84,7 @@ source/_integrations/azure_service_bus.markdown @hfurubotten source/_integrations/backup.markdown @home-assistant/core source/_integrations/baf.markdown @bdraco @jfroy source/_integrations/balboa.markdown @garbled1 @natekspencer +source/_integrations/bang_olufsen.markdown @mj23000 source/_integrations/bayesian.markdown @HarvsG source/_integrations/beewi_smartclim.markdown @alemuro source/_integrations/bge.markdown @tronikos @@ -104,6 +106,7 @@ source/_integrations/bosch_shc.markdown @tschamm source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev source/_integrations/braviatv.markdown @bieniu @Drafteed source/_integrations/brel_home.markdown @starkillerOG +source/_integrations/bring.markdown @miaucl @tr4nt0r source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am @eifinger source/_integrations/brother.markdown @bieniu source/_integrations/brottsplatskartan.markdown @gjohansson-ST @@ -129,6 +132,7 @@ 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 @VIKTORVAV99 +source/_integrations/coautilities.markdown @tronikos source/_integrations/coinbase.markdown @tombrien source/_integrations/color_extractor.markdown @GenericStudent source/_integrations/comed.markdown @tronikos @@ -194,7 +198,7 @@ source/_integrations/eastron.markdown @DCSBL source/_integrations/easyenergy.markdown @klaasnicolaas source/_integrations/ecoforest.markdown @pjanuario source/_integrations/econet.markdown @w1ll1am23 -source/_integrations/ecovacs.markdown @OverloadUT @mib1185 +source/_integrations/ecovacs.markdown @OverloadUT @mib1185 @edenhaus source/_integrations/ecowitt.markdown @pvizeli source/_integrations/efergy.markdown @tkdrob source/_integrations/egardia.markdown @jeroenterheerdt @@ -204,6 +208,7 @@ source/_integrations/elgato.markdown @frenck source/_integrations/elkm1.markdown @gwww @bdraco source/_integrations/elmax.markdown @albertogeniola source/_integrations/elv.markdown @majuss +source/_integrations/elvia.markdown @ludeeus source/_integrations/emby.markdown @mezz64 source/_integrations/emoncms.markdown @borpin source/_integrations/emonitor.markdown @bdraco @@ -219,6 +224,7 @@ source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek source/_integrations/entur_public_transport.markdown @hfurubotten source/_integrations/environment_canada.markdown @gwww @michaeldavie source/_integrations/ephember.markdown @ttroy50 +source/_integrations/epion.markdown @lhgravendeel source/_integrations/epson.markdown @pszafer source/_integrations/epsonworkforce.markdown @ThaStealth source/_integrations/escea.markdown @lazdavila @@ -294,7 +300,8 @@ source/_integrations/google_sheets.markdown @tkdrob source/_integrations/google_tasks.markdown @allenporter source/_integrations/google_travel_time.markdown @eifinger source/_integrations/govee_ble.markdown @bdraco @PierreAronnax -source/_integrations/gpsd.markdown @fabaff +source/_integrations/govee_light_local.markdown @Galorhallen +source/_integrations/gpsd.markdown @fabaff @jrieger source/_integrations/gree.markdown @cmroche source/_integrations/greeneye_monitor.markdown @jkeljo source/_integrations/group.markdown @home-assistant/core @@ -316,10 +323,11 @@ source/_integrations/hikvisioncam.markdown @fbradyirl source/_integrations/hisense_aehw4a1.markdown @bannhead source/_integrations/history.markdown @home-assistant/core source/_integrations/hive.markdown @Rendili @KJonline +source/_integrations/hko.markdown @MisterCommand source/_integrations/hlk_sw16.markdown @jameshilliard -source/_integrations/holiday.markdown @jrieger +source/_integrations/holiday.markdown @jrieger @gjohansson-ST source/_integrations/home_connect.markdown @DavidMStraub -source/_integrations/home_plus_control.markdown @chemaaa +source/_integrations/home_plus_control.markdown @cgtobi source/_integrations/homeassistant.markdown @home-assistant/core source/_integrations/homeassistant_alerts.markdown @home-assistant/core source/_integrations/homeassistant_green.markdown @home-assistant/core @@ -403,6 +411,7 @@ source/_integrations/kostal_plenticore.markdown @stegm source/_integrations/kraken.markdown @eifinger source/_integrations/kulersky.markdown @emlove source/_integrations/lacrosse_view.markdown @IceBotYT +source/_integrations/lamarzocco.markdown @zweckj source/_integrations/lametric.markdown @robbiet480 @frenck @bachya source/_integrations/landisgyr_heat_meter.markdown @vpathuis source/_integrations/lastfm.markdown @joostlek @@ -411,6 +420,7 @@ source/_integrations/laundrify.markdown @xLarry source/_integrations/lawn_mower.markdown @home-assistant/core source/_integrations/lcn.markdown @alengwenus source/_integrations/ld2410_ble.markdown @930913 +source/_integrations/leaone.markdown @bdraco source/_integrations/led_ble.markdown @bdraco source/_integrations/legrand.markdown @cgtobi source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave @@ -434,8 +444,8 @@ source/_integrations/lookin.markdown @ANMalko @bdraco source/_integrations/loqed.markdown @mikewoudenberg source/_integrations/luci.markdown @mzdrale source/_integrations/luftdaten.markdown @fabaff @frenck -source/_integrations/lupusec.markdown @majuss -source/_integrations/lutron.markdown @cdheiser +source/_integrations/lupusec.markdown @majuss @suaveolent +source/_integrations/lutron.markdown @cdheiser @wilburCForce source/_integrations/lutron_caseta.markdown @swails @bdraco @danaues source/_integrations/luxaflex.markdown @bdraco @kingy444 @trullock source/_integrations/lyric.markdown @timmo001 @@ -482,9 +492,9 @@ source/_integrations/msteams.markdown @peroyvind source/_integrations/mullvad.markdown @meichthys source/_integrations/mutesync.markdown @currentoor source/_integrations/my.markdown @home-assistant/core -source/_integrations/mypermobil.markdown @IsakNyberg source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer source/_integrations/mystrom.markdown @fabaff +source/_integrations/myuplink.markdown @pajzo source/_integrations/nam.markdown @bieniu source/_integrations/nanoleaf.markdown @milanmeu source/_integrations/neato.markdown @dshokouhi @Santobert @@ -561,6 +571,7 @@ source/_integrations/peco.markdown @IceBotYT source/_integrations/peco_opower.markdown @tronikos source/_integrations/pegel_online.markdown @mib1185 source/_integrations/pepco.markdown @tronikos +source/_integrations/permobil.markdown @IsakNyberg source/_integrations/persistent_notification.markdown @home-assistant/core source/_integrations/pge.markdown @tronikos source/_integrations/philips_js.markdown @elupus @@ -604,13 +615,15 @@ source/_integrations/quadrafire.markdown @jeeftor source/_integrations/quantum_gateway.markdown @cisasteelersfan source/_integrations/qvr_pro.markdown @oblogic7 source/_integrations/qwikswitch.markdown @kellerza -source/_integrations/rachio.markdown @bdraco +source/_integrations/rabbitair.markdown @rabbit-air +source/_integrations/rachio.markdown @bdraco @rfverbruggen source/_integrations/radarr.markdown @tkdrob source/_integrations/radio_browser.markdown @frenck source/_integrations/radiotherm.markdown @vinnyfuria source/_integrations/rainbird.markdown @konikvranik @allenporter source/_integrations/raincloud.markdown @vanstinator source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin +source/_integrations/rainforest_raven.markdown @cottsay source/_integrations/rainmachine.markdown @bachya source/_integrations/random.markdown @fabaff source/_integrations/rapt_ble.markdown @sairon @@ -639,6 +652,7 @@ source/_integrations/rituals_perfume_genie.markdown @milanmeu @frenck source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/roborock.markdown @humbertogontijo @Lash-L source/_integrations/roku.markdown @ctalkington +source/_integrations/romy.markdown @xeniter source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Xitee1 source/_integrations/roon.markdown @pavoni source/_integrations/rpi_power.markdown @shenxn @swetoast @@ -759,24 +773,27 @@ source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185 source/_integrations/synology_srm.markdown @aerialls source/_integrations/system_bridge.markdown @timmo001 source/_integrations/systemmonitor.markdown @gjohansson-ST -source/_integrations/tado.markdown @michaelarnauts @chiefdragon @erwindouna +source/_integrations/tado.markdown @chiefdragon @erwindouna source/_integrations/tag.markdown @balloob @dmulcahey source/_integrations/tailscale.markdown @frenck source/_integrations/tailwind.markdown @frenck source/_integrations/tami4.markdown @Guy293 -source/_integrations/tankerkoenig.markdown @guillempages @mib1185 +source/_integrations/tankerkoenig.markdown @guillempages @mib1185 @jpbede source/_integrations/tapsaff.markdown @bazwilliams source/_integrations/tasmota.markdown @emontnemery source/_integrations/tautulli.markdown @ludeeus @tkdrob +source/_integrations/technove.markdown @Moustachauve +source/_integrations/tedee.markdown @patrickhilker @zweckj source/_integrations/tellduslive.markdown @fredrike source/_integrations/template.markdown @PhracturedBlue @tetienne @home-assistant/core source/_integrations/tesla_wall_connector.markdown @einarhauks +source/_integrations/teslemetry.markdown @Bre77 source/_integrations/tessie.markdown @Bre77 source/_integrations/text.markdown @home-assistant/core source/_integrations/tfiac.markdown @fredrike @mellado source/_integrations/thermobeacon.markdown @bdraco source/_integrations/thermoplus.markdown @bdraco -source/_integrations/thermopro.markdown @bdraco +source/_integrations/thermopro.markdown @bdraco @h3ss source/_integrations/thethingsnetwork.markdown @fabaff source/_integrations/thread.markdown @home-assistant/core source/_integrations/tibber.markdown @danielhiversen @@ -790,9 +807,10 @@ source/_integrations/todoist.markdown @boralyl source/_integrations/tolo.markdown @MatthiasLohr source/_integrations/tomorrowio.markdown @raman325 @lymanepp source/_integrations/totalconnect.markdown @austinmroczek -source/_integrations/tplink.markdown @rytilahti @thegardenmonkey @bdraco +source/_integrations/tplink.markdown @rytilahti @thegardenmonkey @bdraco @sdb9696 source/_integrations/tplink_omada.markdown @MarkGodwin source/_integrations/traccar.markdown @ludeeus +source/_integrations/traccar_server.markdown @ludeeus source/_integrations/tractive.markdown @Danielhiversen @zhulik @bieniu source/_integrations/trafikverket_camera.markdown @gjohansson-ST source/_integrations/trafikverket_ferry.markdown @gjohansson-ST @@ -899,6 +917,6 @@ source/_integrations/zeversolar.markdown @kvanzuijlen source/_integrations/zha.markdown @dmulcahey @adminiuga @puddly @TheJulianJES source/_integrations/zodiac.markdown @JulienTant source/_integrations/zone.markdown @home-assistant/core -source/_integrations/zoneminder.markdown @rohankapoorcom +source/_integrations/zoneminder.markdown @rohankapoorcom @nabbi source/_integrations/zwave_js.markdown @home-assistant/z-wave source/_integrations/zwave_me.markdown @lawfulchaos @Z-Wave-Me @PoltoS diff --git a/Gemfile b/Gemfile index 01c2e56d940..7ca72d0e83d 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ group :development do # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' gem 'rubocop', '1.60.2' - gem 'ruby-lsp', '0.13.4' + gem 'ruby-lsp', '0.14.1' gem 'rackup', '2.1.0' end @@ -23,7 +23,7 @@ group :jekyll_plugins do end gem 'sinatra', '4.0.0' -gem 'nokogiri', '1.16.0' +gem 'nokogiri', '1.16.2' # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem # and associated library diff --git a/Gemfile.lock b/Gemfile.lock index 98d3ed859b0..393d8bfbea9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,7 +27,7 @@ GEM eventmachine (1.2.7) ffi (1.16.3) forwardable-extended (2.6.0) - google-protobuf (3.25.2-x86_64-linux) + google-protobuf (3.25.3-x86_64-linux) http_parser.rb (0.8.0) i18n (1.14.1) concurrent-ruby (~> 1.0) @@ -73,7 +73,7 @@ GEM multi_json (1.15.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - nokogiri (1.16.0-x86_64-linux) + nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) parallel (1.24.0) parser (3.3.0.5) @@ -81,10 +81,10 @@ GEM racc pathutil (0.16.2) forwardable-extended (~> 2.6) - prism (0.19.0) + prism (0.24.0) public_suffix (5.0.4) racc (1.7.3) - rack (3.0.8) + rack (3.0.9) rack-protection (4.0.0) base64 (>= 0.1.0) rack (>= 3.0.0, < 4) @@ -114,15 +114,15 @@ GEM unicode-display_width (>= 2.4.0, < 3.0) rubocop-ast (1.30.0) parser (>= 3.2.1.0) - ruby-lsp (0.13.4) + ruby-lsp (0.14.1) language_server-protocol (~> 3.17.0) - prism (>= 0.19.0, < 0.20) + prism (>= 0.22.0, < 0.25) sorbet-runtime (>= 0.5.10782) ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.70.0-x86_64-linux-gnu) + sass-embedded (1.71.0-x86_64-linux-gnu) google-protobuf (~> 3.25) sass-globbing (1.1.5) sass (>= 3.1) @@ -134,14 +134,14 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11222) + sorbet-runtime (0.5.11262) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) tilt (2.3.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2023.4) + tzinfo-data (1.2024.1) tzinfo (>= 1.0.0) unicode-display_width (2.5.0) webrick (1.8.1) @@ -156,11 +156,11 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.18.0) - nokogiri (= 1.16.0) + nokogiri (= 1.16.2) rackup (= 2.1.0) rake (= 13.1.0) rubocop (= 1.60.2) - ruby-lsp (= 0.13.4) + ruby-lsp (= 0.14.1) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) diff --git a/_config.yml b/_config.yml index b9d69844e40..6e40c6dcb54 100644 --- a/_config.yml +++ b/_config.yml @@ -109,9 +109,9 @@ social: # Home Assistant release details current_major_version: 2024 -current_minor_version: 1 -current_patch_version: 6 -date_released: 2024-01-30 +current_minor_version: 2 +current_patch_version: 2 +date_released: 2024-02-16 # 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/package-lock.json b/package-lock.json index 8c47c032407..0cd7452cf09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "remark-lint-prohibited-strings": "^3.1.0", "remark-lint-unordered-list-marker-style": "^3.1.2", "remark-stringify": "^11.0.0", - "textlint": "^13.4.1", + "textlint": "^14.0.3", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^4.0.1" @@ -416,57 +416,68 @@ "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.4.1.tgz", - "integrity": "sha512-YSHUR1qDgMPGF5+nvrquEhif6zRJ667xUnfP/9rTNtThIhoTQINvczr5/7xa43F1PDWplL6Curw+2jrE1qHwGQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.3.tgz", + "integrity": "sha512-TNArbA0a/9nxJadZDsnfV6I4kB6C+Vb6BmFbDxBglS/NWtFqI9SYPV2tRhGBnTHFyTl5bgyzrAyb2FNSxbrSuQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1", + "@textlint/ast-node-types": "^14.0.3", "debug": "^4.3.4" } }, + "node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/ast-traverse": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.4.1.tgz", - "integrity": "sha512-uucuC7+NHWkXx2TX5vuyreuHeb+GFiA83V65I+FnYP5EC4dAMOQ86rTSPrZmCwLz+qIWgfDgihGzPccpj3EZGg==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.3.tgz", + "integrity": "sha512-rZ0PwLWuLlAOkDp/9wGsHa1jZMjNdJ3CpZMPTNnqEppaxb3o4OKFbjt2Hh87E215B84Cz8KaeKFT/QEn+YiRjA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1" + "@textlint/ast-node-types": "^14.0.3" } }, + "node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/config-loader": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.4.1.tgz", - "integrity": "sha512-ggh6her5PdgcEsvgm3FfCY2+r7IhoQoBTGYxM+IbfkwyVoSoQ2CrXbCVlQkpLPFzhHVbIwgNxkiMr1o2npwfJQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.3.tgz", + "integrity": "sha512-uUDVKEkIcq7VDljM6RWIpz76TvHQfOjXh+CFgZ/oVScSsPuvqR3TeBRLm8tgyho4MKmdTtHrhmuZj5DQrTOxig==", "dev": true, "dependencies": { - "@textlint/kernel": "^13.4.1", - "@textlint/module-interop": "^13.4.1", - "@textlint/types": "^13.4.1", - "@textlint/utils": "^13.4.1", + "@textlint/kernel": "^14.0.3", + "@textlint/module-interop": "^14.0.3", + "@textlint/types": "^14.0.3", + "@textlint/utils": "^14.0.3", "debug": "^4.3.4", "rc-config-loader": "^4.1.3", "try-resolve": "^1.0.1" } }, "node_modules/@textlint/feature-flag": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.4.1.tgz", - "integrity": "sha512-qY8gKUf30XtzWMTkwYeKytCo6KPx6milpz8YZhuRsEPjT/5iNdakJp5USWDQWDrwbQf7RbRncQdU+LX5JbM9YA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.3.tgz", + "integrity": "sha512-qDQr8qA3glb6WF0cgmhG2OST5zTY5ft6OJ/J6smDoKse/1cnPlFwbvDLvrlxwnmWDyujvqb3p9Kw7GDToTIxYg==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.4.1.tgz", - "integrity": "sha512-P195Soyxmzv7S5QyCJIjuDXl5t3EyOhYwxR4ukKBZ7bw5hp/P1+e4GEhzqrXWx3z7h0nZZ0TuTjepNxOMo6cAQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.3.tgz", + "integrity": "sha512-Uk8CYLRye7KglYa1y8kW1BikA7kJ6bn9xK6FX93iwcL5yz9vOUUHYz9IINcOdg1NYfST4KaDbnBNKGfeQqr52Q==", "dev": true, "dependencies": { - "@textlint/module-interop": "^13.4.1", - "@textlint/types": "^13.4.1", + "@textlint/module-interop": "^14.0.3", + "@textlint/types": "^14.0.3", "chalk": "^4.1.2", "debug": "^4.3.4", - "diff": "^4.0.2", - "is-file": "^1.0.0", + "diff": "^5.1.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0", @@ -474,33 +485,39 @@ } }, "node_modules/@textlint/kernel": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.4.1.tgz", - "integrity": "sha512-r2sUhjPysFjl2Ax37x9AfWkJM8jgKN0bL4SX3xRzOukdcj69Dst5On5qBZtULaVMX1LDkwkdxA6ZEADmq27qQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.3.tgz", + "integrity": "sha512-RRyY7oL6CD5JwD3cgl8KvSd80rbnJKSUXTsn2ZAtLAjqJR+io0tVZLkQwij7diXaMjCnoJQfmnbIJf8C29/G5Q==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1", - "@textlint/ast-tester": "^13.4.1", - "@textlint/ast-traverse": "^13.4.1", - "@textlint/feature-flag": "^13.4.1", - "@textlint/source-code-fixer": "^13.4.1", - "@textlint/types": "^13.4.1", - "@textlint/utils": "^13.4.1", + "@textlint/ast-node-types": "^14.0.3", + "@textlint/ast-tester": "^14.0.3", + "@textlint/ast-traverse": "^14.0.3", + "@textlint/feature-flag": "^14.0.3", + "@textlint/source-code-fixer": "^14.0.3", + "@textlint/types": "^14.0.3", + "@textlint/utils": "^14.0.3", "debug": "^4.3.4", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, + "node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/linter-formatter": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.4.1.tgz", - "integrity": "sha512-VDLnyHRO9hf6CGxMJLM5oi7NH9s0mqiWxtgi95nuXmJZWbQLZVfcxkD1Cp16pwk8zTvlbyMZFqamFCYZyD9Sww==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.3.tgz", + "integrity": "sha512-CSwrE7LH/0KeQPP6/Nar5sakI+c1ToaYc14MwjWKCljK9RqkZCBFZqEWdy7LhXeIL5Pwf2BhsdGOImx14NpyHw==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^13.4.1", - "@textlint/types": "^13.4.1", + "@textlint/module-interop": "^14.0.3", + "@textlint/types": "^14.0.3", "chalk": "^4.1.2", "debug": "^4.3.4", "js-yaml": "^3.14.1", @@ -514,22 +531,28 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.4.1.tgz", - "integrity": "sha512-jUa5bTNmxjEgfCXW4xfn7eSJqzUXyNKiIDWLKtI4MUKRNhT3adEaa/NuQl0Mii3Hu3HraZR7hYhRHLh+eeM43w==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.3.tgz", + "integrity": "sha512-+CkWt9a9pd1+Rl37dqiiEGQ2f2faLX/vd7qiV+OTfkKUyHQ0HkOLK7sfbPpTx5ee5+5fKVMTStTTHrFZz5mlBw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1", + "@textlint/ast-node-types": "^14.0.3", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", "remark-parse": "^9.0.0", - "traverse": "^0.6.7", + "traverse": "^0.6.8", "unified": "^9.2.2" } }, + "node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/markdown-to-ast/node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -757,61 +780,73 @@ } }, "node_modules/@textlint/module-interop": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.4.1.tgz", - "integrity": "sha512-keM5zHwyifijEDqEvAFhhXHC5UbmZjfGytRJzPPJaW3C3UsGbIzDCnfOSE9jUVTWZcngHuSJ7aKGv42Rhy9nEg==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.3.tgz", + "integrity": "sha512-76K6y4wNCZH3+BGziJm6iGPbKsBtb214332EgdXDMNsYah51LPT9YrXuOI1ROyxvfVoztJMH0MDZdtdY/t7cig==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.4.1.tgz", - "integrity": "sha512-Sl29f3Tpimp0uVE3ysyJBjxaFTVYLOXiJX14eWCQ/kC5ZhIXGosEbStzkP1n8Urso1rs1W4p/2UemVAm3NH2ng==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.3.tgz", + "integrity": "sha512-/htnQzs+8qMIiZWQEpFF4+PgxDhi6flP+qIdoL8l5Q/jbIIZbGgOz9pdEFwnwOur/ddqFfuOKy5GtwZDoF+gOg==", "dev": true, "dependencies": { - "@textlint/types": "^13.4.1", + "@textlint/types": "^14.0.3", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.4.1.tgz", - "integrity": "sha512-vCA7uMmbjRv06sEHPbwxTV5iS8OQedC5s7qwmXnWAn2LLWxg4Yp98mONPS1o4D5cPomzYyKNCSfbLwu6yJBUQA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.3.tgz", + "integrity": "sha512-NrlZQ5RO3O6aSqDMzLzGWhKP5Rx2UlbGulVgO2sQ+59837+32cHjzrV+J1nBVVcsfsv+GOFperfo5C/Rn+F7SA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1" + "@textlint/ast-node-types": "^14.0.3" } }, + "node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.4.1.tgz", - "integrity": "sha512-OcLkFKYmbYeGJ0kj2487qcicCYTiE2vJLwfPcUDJrNoMYak5JtvHJfWffck8gON2mEM00DPkHH0UdxZpFjDfeg==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.3.tgz", + "integrity": "sha512-1zwiwmayFRIElGdeCUXCJjlP+mpZDCCtcsNqB+07i/xi3UlSFM3NGRUzJ5CYQbjJ7Nrb3kmA5FKxB7xTMdZH4w==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^13.4.1" + "@textlint/markdown-to-ast": "^14.0.3" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.4.1.tgz", - "integrity": "sha512-z0p5B8WUfTCIRmhjVHFfJv719oIElDDKWOIZei4CyYkfMGo0kq8fkrYBkUR6VZ6gofHwc+mwmIABdUf1rDHzYA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.3.tgz", + "integrity": "sha512-dDRkNAoOH/HHxpC5Ghn89L90Ax5GQ4CIwCiV91qmjYUaCH710wkqRppBCEIHnS+1E/5wq1ukhTbGJjvxe7rP4w==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^13.4.1" + "@textlint/text-to-ast": "^14.0.3" } }, "node_modules/@textlint/types": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.4.1.tgz", - "integrity": "sha512-1ApwQa31sFmiJeJ5yTNFqjbb2D1ICZvIDW0tFSM0OtmQCSDFNcKD3YrrwDBgSokZ6gWQq/FpNjlhi6iETUWt0Q==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.3.tgz", + "integrity": "sha512-Ft08kK3BNxbuRYb0BOEjSr9CkJyHIYBiUfWvaNcqhXESQLhplb5EfynkXw0uAerzhx9CxkdC2FcOFU+HIcuYRg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1" + "@textlint/ast-node-types": "^14.0.3" } }, + "node_modules/@textlint/types/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/@textlint/utils": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.4.1.tgz", - "integrity": "sha512-wX8RT1ejHAPTDmqlzngf0zI5kYoe3QvGDcj+skoTxSv+m/wOs/NyEr92d+ahCP32YqFYzXlqU7aDx2FkULKT+g==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.3.tgz", + "integrity": "sha512-Rt7KFrqPpLmpTz3ftTbA8A4kUABwW8CuvgbAAOL/XYpejnQeGPmVfVF3b3AvDtD5jYjp4rPkXHGHDPJTj+lYwA==", "dev": true }, "node_modules/@types/concat-stream": { @@ -1284,9 +1319,9 @@ } }, "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" @@ -1685,12 +1720,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-file/-/is-file-1.0.0.tgz", - "integrity": "sha512-ZGMuc+xA8mRnrXtmtf2l/EkIW2zaD2LSBWlaOVEF6yH4RTndHob65V4SwWWdtGKVthQfXPVKsXqw4TDUjbVxVQ==", - "dev": true - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -5925,23 +5954,23 @@ "dev": true }, "node_modules/textlint": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.4.1.tgz", - "integrity": "sha512-ev6XkQEUMWcW90hTHJKlvt23ca1AtmmK2iw4mazqKnSVz8PTSMg45NB68ht3ev92lIPD+8Wt4D6JxCInZkh4GQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.0.3.tgz", + "integrity": "sha512-AqEG9OcGBSw4KHss55ZrBv75uWeruqTHfix3koQHwqnazRw3eAkFQwQ+NLpzMut+rIBWUUikUzuBN/SOG+obEw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.4.1", - "@textlint/ast-traverse": "^13.4.1", - "@textlint/config-loader": "^13.4.1", - "@textlint/feature-flag": "^13.4.1", - "@textlint/fixer-formatter": "^13.4.1", - "@textlint/kernel": "^13.4.1", - "@textlint/linter-formatter": "^13.4.1", - "@textlint/module-interop": "^13.4.1", - "@textlint/textlint-plugin-markdown": "^13.4.1", - "@textlint/textlint-plugin-text": "^13.4.1", - "@textlint/types": "^13.4.1", - "@textlint/utils": "^13.4.1", + "@textlint/ast-node-types": "^14.0.3", + "@textlint/ast-traverse": "^14.0.3", + "@textlint/config-loader": "^14.0.3", + "@textlint/feature-flag": "^14.0.3", + "@textlint/fixer-formatter": "^14.0.3", + "@textlint/kernel": "^14.0.3", + "@textlint/linter-formatter": "^14.0.3", + "@textlint/module-interop": "^14.0.3", + "@textlint/textlint-plugin-markdown": "^14.0.3", + "@textlint/textlint-plugin-text": "^14.0.3", + "@textlint/types": "^14.0.3", + "@textlint/utils": "^14.0.3", "debug": "^4.3.4", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", @@ -5961,7 +5990,7 @@ "textlint": "bin/textlint.js" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.14.0" } }, "node_modules/textlint-filter-rule-comments": { @@ -6066,6 +6095,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/textlint/node_modules/@textlint/ast-node-types": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz", + "integrity": "sha512-umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==", + "dev": true + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6079,10 +6114,13 @@ } }, "node_modules/traverse": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", - "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6604,15 +6642,6 @@ "node": ">=8" } }, - "node_modules/uvu/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 145bb77e016..6b818913c85 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "remark-lint-prohibited-strings": "^3.1.0", "remark-lint-unordered-list-marker-style": "^3.1.2", "remark-stringify": "^11.0.0", - "textlint": "^13.4.1", + "textlint": "^14.0.3", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^4.0.1" diff --git a/plugins/configuration.rb b/plugins/configuration.rb index a516c106346..8d403b8c446 100644 --- a/plugins/configuration.rb +++ b/plugins/configuration.rb @@ -72,12 +72,12 @@ module Jekyll if attr['type'].kind_of? Array attr['type'].each do |type| raise ArgumentError, "Configuration type '#{type}' for key '#{key}' is not a valid type in the documentation."\ - " See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \ + " See: https://developers.home-assistant.io/docs/documenting/create-page#configuration" unless \ TYPES.include? type end else raise ArgumentError, "Configuration type '#{attr['type']}' for key '#{key}' is not a valid type in the documentation."\ - " See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \ + " See: https://developers.home-assistant.io/docs/documenting/create-page#configuration" unless \ TYPES.include? attr['type'] end diff --git a/sass/custom/_terminology_tooltip.scss b/sass/custom/_terminology_tooltip.scss index fea762f43c5..9794b3f8e40 100644 --- a/sass/custom/_terminology_tooltip.scss +++ b/sass/custom/_terminology_tooltip.scss @@ -9,6 +9,8 @@ } .terminology-tooltip { + --horizontal-move: 0px; + visibility: hidden; width: 250px; background-color: $primary-color; @@ -24,7 +26,7 @@ z-index: 1; bottom: 100%; - left: 50%; + left: calc(50% + var(--horizontal-move)); margin-left: -125px; a { @@ -32,15 +34,36 @@ font-weight: 500; } - &:after { + @mixin arrow { content: " "; position: absolute; - top: 100%; - left: 50%; + left: calc(50% - var(--horizontal-move)); margin-left: -5px; border-width: 5px; border-style: solid; + } + + &:after { + @include arrow; + + top: 100%; border-color: $primary-color transparent transparent transparent; } + + &.below { + bottom: auto; + top: 1lh; + + &:before { + @include arrow; + + top: -10px; + border-color: transparent transparent $primary-color transparent; + } + + &:after { + display: none; + } + } } } diff --git a/source/_dashboards/grid.markdown b/source/_dashboards/grid.markdown index bb0fee77676..4a981860ce5 100644 --- a/source/_dashboards/grid.markdown +++ b/source/_dashboards/grid.markdown @@ -70,7 +70,7 @@ square: false cards: - type: picture-entity entity: group.all_lights - image: /local/house.png + image: /local/house.png - type: horizontal-stack cards: - type: picture-entity diff --git a/source/_dashboards/statistics-graph.markdown b/source/_dashboards/statistics-graph.markdown index 76a0a1226b2..9b5b31c0ce9 100644 --- a/source/_dashboards/statistics-graph.markdown +++ b/source/_dashboards/statistics-graph.markdown @@ -17,7 +17,7 @@ Screenshot of the statistics graph card with none metered entities and `chart_ty Screenshot of the statistics graph card with a metered entity and `chart_type` `bar`.

-Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max`, and `mean` of a sensor's value for a specific hour or the `sum` for a metered entity. +Statistics are gathered every 5 minutes and also hourly for sensors that support it. The 5-minute statistics will be retained for the duration set in the [recorder configuration](/integrations/recorder/#purge_keep_days), and hourly statistics will be retained indefinitely. It will either keep the `min`, `max`, and `mean` of a sensor's value for a specific hour or the `sum` for a metered entity. If your sensor doesn't work with statistics, check [this](/more-info/statistics/). diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index 3d12783c2d3..6f6b6b63eaa 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -42,7 +42,7 @@ You can:
-Unused refresh tokens will be automatically removed. A refresh token is considered unused if it has not been used for a login within 90 days. If you need a permanent token, then we recommend using [Long Lived Access Tokens](/docs/auth_api/#long-lived-access-token). +Unused refresh tokens will be automatically removed. A refresh token is considered unused if it has not been used for a login within 90 days. If you need a permanent token, then we recommend using [Long Lived Access Tokens](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token).
@@ -106,7 +106,3 @@ This will allow you to open Home Assistant at `http://homeassistant.home:8123/` ### Stuck on loading data Some ad blocking software, such as Wipr, also blocks WebSockets. If you're stuck on the Loading data screen, try disabling your ad blocker. - -### Migrating from pre 0.77 - -If you were using the authentication system before 0.77, you'd likely have `auth:` and `auth_providers:` defined. You'll need to remove these and let Home Assistant [handle it automatically](/docs/authentication/providers/#configuring-auth-providers). diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown index cc70e88028b..4a9c030b790 100644 --- a/source/_docs/blueprint/selectors.markdown +++ b/source/_docs/blueprint/selectors.markdown @@ -43,6 +43,7 @@ The following selectors are currently available: - [Number selector](#number-selector) - [Example number selectors](#example-number-selectors) - [Object selector](#object-selector) +- [QR code selector](#qr-code-selector) - [RGB color selector](#rgb-color-selector) - [Select selector](#select-selector) - [State selector](#state-selector) @@ -417,20 +418,6 @@ language: The output of this selector is the ID of the conversation agent. -## Date selector - -The date selector shows a date input that allows the user to specify a date. - -![Screenshot of the Date selector](/images/blueprints/selector-date.png) - -This selector does not have any other options; therefore, it only has its key. - -```yaml -date: -``` - -The output of this selector will contain the date in Year-Month-Day -(`YYYY-MM-DD`) format, for example, `2022-02-22`. ## Country selector @@ -458,6 +445,21 @@ no_sort: The output of this selector is an ISO 3166 country code. +## Date selector + +The date selector shows a date input that allows the user to specify a date. + +![Screenshot of the Date selector](/images/blueprints/selector-date.png) + +This selector does not have any other options; therefore, it only has its key. + +```yaml +date: +``` + +The output of this selector will contain the date in Year-Month-Day +(`YYYY-MM-DD`) format, for example, `2022-02-22`. + ## Date & time selector The date selector shows a date and time input that allows the user to specify a @@ -948,6 +950,39 @@ object: The output of this selector is a YAML object. +## QR code selector + +The QR code selector shows a QR code. It has no return value. + +![Screenshot of a QR code selector](/images/blueprints/selector-qr-code.png) + +The QR code's data must be configured, and optionally, the scale, and error correction level can be set. +The scale makes the QR code bigger or smaller. + +{% configuration qr_code %} +data: + description: The data that should be represented in the QR code. + type: any + required: true +scale: + description: The scale factor to use, this will make the QR code bigger or smaller. + type: integer + required: false + default: 4 +error_correction_level: + description: The error correction level of the QR code, with a higher error correction level the QR code can be scanned even when some pieces are missing. Can be "low", "medium", "quartile" or "high". + type: string + required: false + default: medium +{% endconfiguration %} + +```yaml +qr_code: + data: "https://home-assistant.io" + scale: 5 + error_correction_level: quartile +``` + ## RGB color selector The RGB color selector allows the user to select an color from a color picker @@ -1324,4 +1359,4 @@ The output of this selector is a list of triggers. For example: - platform: numeric_state entity_id: "sensor.outside_temperature" below: 20 -``` +``` \ No newline at end of file diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown index 0b33f6bf7cb..346d98224aa 100644 --- a/source/_docs/configuration/state_object.markdown +++ b/source/_docs/configuration/state_object.markdown @@ -41,8 +41,8 @@ When an attribute contains spaces, you can retrieve it like this: `state_attr('s Context is used to tie {% term events %} and {% term states %} together in Home Assistant. Whenever an {% term automation %} or user interaction causes states to change, a new context is assigned. This context will be attached to all events and states that happen as result of the change. -| Field | Description | -| ----- | ------------------------------------------------------------------- | -| context_id | Unique identifier for the context. | -| user_id | Unique identifier of the user that started the change. Will be `None` if action was not started by a user (ie. started by an automation) | -| parent_id | Unique identifier of the parent context that started the change, if available. For example, if an automation is triggered, the context of the trigger will be set as parent. | +| Field | Description | +| ------------ | ------------------------------------------------------------------- | +| `context_id` | Unique identifier for the context. | +| `user_id` | Unique identifier of the user that started the change. Will be `None` if the action was not started by a user (for example, started by an automation). | +| `parent_id` | Unique identifier of the parent context that started the change, if available. For example, if an automation is triggered, the context of the trigger will be set as parent. | diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 880fb040f0b..b41064061be 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -13,7 +13,7 @@
  • {% active_link /installation Installation %}
  • {% active_link /common-tasks/os/ Common tasks %}
  • - {% active_link /docs/troubleshooting/ Troubleshooting + {% active_link /docs/troubleshooting/ Troubleshooting installation %}
  • @@ -30,8 +30,7 @@ entities %}
  • - {% active_link /docs/configuration/troubleshooting/ Troubleshooting - %} + {% active_link /docs/configuration/troubleshooting/ Troubleshooting configuration %}
  • {% active_link /docs/configuration/securing/ Security check points @@ -77,6 +76,9 @@ {% active_link /docs/authentication/multi-factor-auth/ Multi factor auth %}
  • +
  • + {% active_link /docs/locked_out/ I'm locked out %} +
  • @@ -102,7 +104,7 @@
  • {% active_link /docs/automation/templating/ Templates %}
  • {% active_link /docs/automation/yaml/ YAML %}
  • - {% active_link /docs/automation/troubleshooting/ Troubleshooting %} + {% active_link /docs/automation/troubleshooting/ Troubleshooting automation %}
  • diff --git a/source/_includes/asides/voice_navigation.html b/source/_includes/asides/voice_navigation.html index 67175c067c4..8df0b85b414 100644 --- a/source/_includes/asides/voice_navigation.html +++ b/source/_includes/asides/voice_navigation.html @@ -20,6 +20,7 @@
  • {% active_link /voice_control/about_wake_word/ About wake words %}
  • {% active_link /voice_control/builtin_sentences/ Built-in sentences %}
  • {% active_link /voice_control/custom_sentences/ Custom sentences %}
  • +
  • {% active_link /voice_control/aliases/ Using aliases %}
  • {% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}
  • {% active_link /voice_control/assist_create_open_ai_personality/ Creating a personality with OpenAI %}
  • @@ -28,10 +29,10 @@

    Projects

    diff --git a/source/_includes/common-tasks/data_disk.md b/source/_includes/common-tasks/data_disk.md index 33cd7dddd03..92712bf5143 100644 --- a/source/_includes/common-tasks/data_disk.md +++ b/source/_includes/common-tasks/data_disk.md @@ -1,6 +1,6 @@ -## Using external Data Disk +## Using external data disk -Home Assistant Operating System supports storing most data on an external storage medium (e.g. USB attached SSD or HDD). This data disk contains not only user data but also most of the Home Assistant software as well (Core, Supervisor etc.). This means a fast data disk will make the system overall much faster. +Home Assistant Operating System supports storing most data on an external storage medium, such as an USB attached SSD or HDD. This data disk contains not only user data but also most of the Home Assistant software as well (Core, Supervisor, etc.). This means a fast data disk will make the system overall much faster. ![Graphics showing the architecture of the data disk feature](/images/haos/usb-data-disk.png) @@ -28,7 +28,7 @@ The data disk feature can be used on an existing installation without losing dat 1. Connect the data disk to your system. 2. Go to **{% my storage title="Settings > System > Storage" %}** in the UI. -3. Select the "Move data disk" button. +3. Select **Move data disk**. 4. Select the data disk from the list of available devices. 5. Select **Move**. diff --git a/source/_includes/common-tasks/define_custom_polling.md b/source/_includes/common-tasks/define_custom_polling.md index bfa61648392..13b3e15f2d6 100644 --- a/source/_includes/common-tasks/define_custom_polling.md +++ b/source/_includes/common-tasks/define_custom_polling.md @@ -1,6 +1,8 @@ -If you want to define a specific interval at which your device is being polled for data, you can disable the default polling interval and create your own polling service. +If you want to define a specific interval at which your device is being polled for data, you can disable the default polling interval and create your own polling automation. + +To add the automation: 1. Go to {% my integrations title="**Settings** > **Devices & Services**" %}, and select your integration. 2. On the integration entry, select the three dots. diff --git a/source/_includes/javascripts/scripts.html b/source/_includes/javascripts/scripts.html index aa54f12cd05..f2b630cf0a1 100644 --- a/source/_includes/javascripts/scripts.html +++ b/source/_includes/javascripts/scripts.html @@ -1,5 +1,7 @@ + + diff --git a/source/_posts/2024-02-07-release-20242.markdown b/source/_posts/2024-02-07-release-20242.markdown new file mode 100644 index 00000000000..55f5f4840b7 --- /dev/null +++ b/source/_posts/2024-02-07-release-20242.markdown @@ -0,0 +1,1169 @@ +--- +layout: post +title: "2024.2: More voice, more icons, more integrations, more... everything!" +description: "Improved drag 'n drop in automations, proximity, custom Assist responses, export your data, ZHA firmware updates, Matter diagnostics and actions, icons everywhere, and more!" +date: 2024-02-07 00:00:00 +date_formatted: "February 7, 2024" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2024-02/social.png +--- + + + +Home Assistant Core 2024.2! πŸ₯° + +Undoubtedly, you've heard about last year's ["The Year of the Voice"](/blog/2022/12/20/year-of-voice/). +2023 might be over, but we are definitely not done with voice yet! This release +contains some very cool new features for voice. + +Not just that, we've also launched a [voice assistant contest](/blog/2024/01/17/voice-assistant-contest/) +that you could join, and I'm happy to inform you that we will have another voice-related +live stream on 21 February 2024, at 12:00 PST / 21:00 CET: [Chapter 6](https://www.youtube.com/watch?v=NQIv3nsu7dE)! + +But there is more in this release besides voice! There's drag 'n drop magic for +our automation editor, and you can now update Zigbee devices directly +from Home Assistant. We also have icons in more places 🀩, and quite a lot of +new functionalities for Matter devices. + +In general, contributions to our open-source project have been amazing this +month. I've never seen so many contributed bug fixes, improvements, and new +features in a single release. Like... 21 new integrations! This is, +without a doubt, the largest release we've ever put out. +A big shout-out to everyone who helped! ❀️ + +Enjoy the release! + +../Frenck + +_Oh! And don't forget Valentine's Day is coming up!_ 😘 + + + +- [Better drag \& drop support for automations](#better-drag--drop-support-for-automations) +- [Export data from the history dashboard](#export-data-from-the-history-dashboard) +- [Improved error responses when using Assist](#improved-error-responses-when-using-assist) +- [Custom Assist responses in automations using the sentence trigger](#custom-assist-responses-in-automations-using-the-sentence-trigger) +- [All known Assist devices](#all-known-assist-devices) +- [Updating your Zigbee devices](#updating-your-zigbee-devices) +- [Matter diagnostics and actions](#matter-diagnostics-and-actions) +- [Icons everywhere](#icons-everywhere) +- [Integrations with authentication issues are now shown in the repairs dashboards](#integrations-with-authentication-issues-are-now-shown-in-the-repairs-dashboards) +- [Revamped Proximity integration](#revamped-proximity-integration) +- [Shipping on a new Python version](#shipping-on-a-new-python-version) +- [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) +- [Release 2024.2.1 - February 9](#release-202421---february-9) +- [Release 2024.2.2 - February 16](#release-202422---february-16) +- [Need help? Join the community!](#need-help-join-the-community) +- [Backward-incompatible changes](#backward-incompatible-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=8-YwXkgD3CY) +7 February 2024, at 12:00 PST / 21:00 CET! + + + +## Better drag & drop support for automations + +Let's start with some old-fashioned drag 'n drop magic! πŸͺ„ + +As of this release, dragging and dropping triggers, conditions, and actions in +the automation editor are _always_ enabled. Previously, you had to explicitly +enable re-ordering in the automation editor settings, but now, it is just +always active. + +But even more exciting is that you can now drag and drop elements into other +nested elements! For example, you can now drag a condition into +the condition of an if-then or choose action. 🀯 + +Screen recording showing you can now also drag and drop into nested elements in the automation editor. + +## Export data from the history dashboard + +The following feature might be small, but it is a big deal for many. Home +Assistant stores your data privately and locally; it is **your data**. To make +this data more accessible, we've added a new feature to the history dashboard. + +You can now download the data you are viewing in the history dashboard. This +allows you to further analyze the data in, for example, Excel or to visualize +it in other ways. + +The button will export and download the data you currently view in the history +dashboard as a [CSV file](https://en.wikipedia.org/wiki/Comma-separated_values). + +Screenshot showing the new export button in the top right of the history dashboard. + +Thanks for this one [@balloob]! + +[@balloob]: https://github.com/balloob + +## Improved error responses when using Assist + +If you use [Assist](/voice_control/), our private voice assistant, you may have +noticed that its responses were not meaningful when something was not understood. + +Some of the errors encountered while using Assist can easily be fixed on your +side by adding aliases to entities or areas, exposing entities to Assist, +or assigning entities and devices to the correct areas. + +So we are taking the first step to help you fix these errors: as of this release, +Assist provides much better errors in case your intention is understood, +but something else is missing (An unknown name, area, device class, or domain). + +Screenshot showing the new errors Assist will return in case the intention is understood, but something else is missing. + +## Custom Assist responses in automations using the sentence trigger + +Like almost every other component and feature of Home Assistant, Assist can be +customized and extended to understand more sentences. + +A few releases ago, we introduced a very simple way to extend what Assist +understands: The [sentence trigger](/docs/automation/trigger/#sentence-trigger) +in our automation engine. + +Up until now, using a sentence trigger always led to the same Assist response: +β€œDone”. In fact, the only way to define a custom response was to write complex +custom sentences in YAML. + +This release introduces a new action to set a custom response in your +sentence-triggered automations directly inside the automation editor. + +Screenshot showing how to build a custom response in our automation editor. + +The response field accepts templates, so it can be used to build complex +responses, for example, listing all your room temperatures. + +Screenshot showing a custom response in Assist. + +A very cool feature that might come in handy if you build an automation +blueprint to submit as an entry for our [voice assistant contest](/blog/2024/01/voice-assistant-contest/)! + +## All known Assist devices + +Last addition for voice, we've added a small additional page to give you an +overview of all the Assist devices you have active in your Home. You can find +this on the {% my voice_assistants title="Assist configuration dashboard" %} +by selecting the new "Assist devices" button. + +Screenshot showing a custom response in Assist. + +Or, use this My Home Assistant button below to navigate to the voice assistants +configuration dashboard: + +{% my voice_assistants badge %} + +## Updating your Zigbee devices + +[ZHA](/integrations/zha) (Zigbee Home Automation, our built-in Zigbee integration) +now provides update entities to Home Assistant! + +This means you can get notified when a device has a firmware update available, +and you can trigger the update from Home Assistant! + +Screenshot showing an Zigbee device connected via ZHA being updated. + +Noticed the weird version numbers? Unfortunately, that is how version numbers +in the Zigbee standard work and look. We haven't figured out a way to translate +them to something more human-readable format that matches what the manufacturer +communicates. + +Currently, it supports updating Inovelli, OSRAM/Ledvance, Sonoff, and +ThirdReality devices, and we are looking at adding support for more brands +in the future. Be aware, Zigbee is a slow protocol, and firmware updates can +take a long time (sometimes hours). + +## Matter diagnostics and actions + +Home Assistant works actively to provide the best support for [Matter](/integrations/matter) +devices out of the box. To help with that, we have added more information and +controls for your Matter devices in the UI. + +On the device page of the Matter device in Home Assistant, we will now show +additional diagnostic information about the device. This information can be +used to troubleshoot issues with the device or when reporting issues. Some +examples include the network type the device uses, its addresses, and IDs, +device types and its connected [fabrics](/integrations/matter#multi-fabric-join-to-multiple-controllers). + +Screenshots showing a matter device in the UI with additional diagnostic information. The other screenshots shows the overflow menu on the device, that provides more actions. + +Besides more information, you can also take new actions on the device. +For example, ping the device to check if it is available, force a full +device interview to sync all its information, remove it from another controller, +and even a new button to share your Matter device from Home Assistant with +another Matter controller. + +Screenshots the result of pinging a Matter device and sharing a Matter device with another controller. + +## Icons everywhere + +We completely changed how Home Assistant handles icons under the hood. +A big effort from many people, with almost... no change! That is +right, _almost_ everything looks just the same as before. 😁 + +We did make some improvements! For example, integrations can now +provide icons for things like fan speeds or thermostat presets. Also, +service call actions can now have their own icon as well: + +Screenshots showing that each media player service, now has its own icons matching the action. + +Areas now have icons too! You can set them in the area configuration. They show +up in the area selectors and in the area dashboard itself +(in case you didn't upload a picture). + +Screenshots the areas dashboard, with new icons used on each area. + +## Integrations with authentication issues are now shown in the repairs dashboards + +When one of your integrations has authentication issues, Home Assistant +will now report this in the {% my repairs title="repairs dashboard" %}. + +Previously, this was only visible on the integration dashboard, but now it shows +up in the repairs dashboard, as this is the place where Home Assistant reports +all issues with your system. + +Screenshots showing a repair issue being raised for an integration that needs re-authentication. + +## Revamped Proximity integration + +For this release, [@mib1185] completely revamped our [Proximity] integration. +In case you are unfamiliar with it, it allows you to monitor the proximity of +persons to a particular [zone]. It provides information on how close one is +to a zone and if they are traveling towards or away from it. + +It is an extremely powerful tool for automations. It allows you to create +automations based on the proximity of people. For example, if you are within +a certain range from your home and traveling towards it, you could use +Home Assistant to turn on the lights, open the garage door, turn up the heating, +and start your favorite playlist in the living room. Welcome home! πŸ€— + +The best part? This integration is now available to set up from the UI! +Not just that, but it now uses normal sensor entities that we are all already +familiar with. This will make automating and displaying the data a breeze! + +Screenshots of a set up proximity integration, and the proximity of a person moving towards the home zone. + +Thanks [@mib1185]! You did an outstanding job on this one! + +If you are already using this integration, this change will come with the +deprecation of the old entities. See our [backwards-incompatible changes](#backwards-incompatible-changes) +for more information. + +[@mib1185]: https://github.com/mib1185 +[Proximity]: /integrations/proximity +[zone]: /integrations/zone + +## Shipping on a new Python version + +This release ships running on Python 3.12! In case you are wondering, what is +that? Well, Python is the programming language Home Assistant is written in. + +Why it matters? It provides many improvements to the foundation we are building +Home Assistant on, most notably: It is faster! πŸš€ + +Don't worry! If you run the Home Assistant Operating System or are using the +Home Assistant Container installation type: You won’t have to do anything, as we +handle the upgrade to Python 3.12 for you. Just upgrade Home Assistant as +you normally would, and you are good to go! 😎 + +## Other noteworthy changes + +There are many more improvements in this release; here are some of the other +noteworthy changes this release: + +- [@edenhaus] improved how we handle errors in our form fields. We no longer + show the technical coding gibberish that often showed up in the past. Nice! +- When you [change the type of a switch entity] to, for example, a garage door + entity, you will now have the option to invert its behavior. + Thanks, [@emontnemery]! +- The [Ecovacs] integration received lots of love from [@edenhaus] and now + has support for many Deebot vacuum models with tons of entities to automate + with. Nice job! +- [@mib1185] added automatic cleanups of old/unused refresh tokens 🧹. This + means you will be logged out on a device that hasn't used Home Assistant for + 90 days. Clean and tidy! +- The [Tuya] integration can now be set up directly using the Tuya Smart + or Smart Life app. No more need for developer accounts or complicated + procedures! +- Using the [utility meter] integration on, for example, your solar inverter, + which turns off at night? You can now set the sensor to always be available, + even when the source entity is unavailable. Thanks, [@dougiteixeira]! +- The [TP-Link Smart Home] integration now supports newer devices, + including [Tapo-branded] devices! Awesome job [@sdb9696], [@bdraco], + and [@rytilahti]! +- [@AngellusMortis] added new sound event sensors introduced in + UniFi Protect version 2.11 to the [UniFi Protect] integration. Nice! +- Are you a Jinja templating Ninja? [@TNTLarsn] added a new `bitwise_xor` + filter for you to use. Awesome! +- The [Google Generative AI Conversation] allows using the [new Gemini Pro models](https://blog.google/products/bard/google-bard-gemini-pro-image-generation/), + including support for the Vision models. This allows you to use images in your + prompts too! See an example in the screenshot down below. Super impressive, + thanks [@tronikos]! + +

    +Screenshot showing Google Generative AI with the Gemini models describing what it sees in the image that was taken from the doorbell. In this case, a package that is being delivered. +The Google Generative AI Conversation integration using the new Gemini Pro Vision models to describe what is seen on the doorbell camera. +

    + +[Google Generative AI Conversation]: /integrations/google_generative_ai_conversation +[@tronikos]: https://github.com/tronikos +[@AngellusMortis]: https://github.com/AngellusMortis +[@bdraco]: https://github.com/bdraco +[@dougiteixeira]: https://github.com/dougiteixeira +[@edenhaus]: https://github.com/edenhaus +[@emontnemery]: https://github.com/emontnemery +[@mib1185]: https://github.com/mib1185 +[@rytilahti]: https://github.com/rytilahti +[@sdb9696]: https://github.com/sdb9696 +[@TNTLarsn]: https://github.com/TNTLarsn +[change the type of a switch entity]: /integrations/switch_as_x +[Ecovacs]: /integrations/ecovacs +[Tapo-branded]: /integrations/tplink_tapo +[TP-Link Smart Home]: /integrations/tplink +[Tuya]: /integrations/tuya +[UniFi Protect]: /integrations/unifiprotect +[utility meter]: /integrations/utility_meter + +## New integrations + +We welcome the following new integrations in this release: + +- **[AirTouch 5]**, added by [@danzel]
    + Control your AirTouch 5 ducted air conditioning systems. +- **[Bang & Olufsen]**, added by [@mj23000]
    + Control your Bang & Olufsen Beolab and Beosound devices. +- **[Bring]**, added by [@miaucl]
    + Use Bring to create shopping lists and share them with your family. +- **[Elvia]**, added by [@ludeeus]
    + Import your historic energy usage from an Elvia-operated grid. +- **[Epion]**, added by [@lhgravendeel]
    + Monitor your Epion air quality sensors. +- **[Govee lights local]**, added by [@Galorhallen]
    + Control your Govee lights locally. +- **[Home Assistant Analytics Insights]**, added by [@joostlek]
    + This integration allows you to monitor information from the public and open [Home Assistant Analytics](https://analytics.home-assistant.io/). +- **[Hong Kong Observatory]**, added by [@MisterCommand]
    + Get weather information from the Hong Kong Observatory. +- **[Huum]**, added by [@frwickst]
    + Control your Huum smart sauna heaters. +- **[La Marzocco]**, added by [@zweckj]
    + Control your La Marzocco espresso machines. +- **[LeaOne]**, added by [@bdraco]
    + Monitor your LeaOne health device under the Xiaogui and BAGAIL brands. +- **[myUplink]**, added by [@pajzo]
    + Monitor myUplink-supported devices in Home Assistant. +- **[Rabbit Air]**, added by [@al-s]
    + Locally control and monitor your Rabbit Air air purifiers. +- **[Rainforest RAVEn]**, added by [@cottsay]
    + Pull in energy data from your Rainforest RAVEn energy monitor. +- **[Romy]**, added by [@xeniter]
    + Control your Romy vacuum cleaners. +- **[Tedee]**, added by [@zweckj]
    + Use your Tedee smart locks in Home Assistant. +- **[Teslemetry]**, added by [@Bre77]
    + Pull in live telemetry data from your Tesla vehicle via the Tesla Fleet API. +- **[TechnoVE]**, added by [@Moustachauve]
    + Control of TechnoVE Smart Charging Station using a local API. +- **[Traccar server]**, added by [@ludeeus]
    + Track your GPS devices by pulling data from a Traccar server. + +[@al-s]: https://github.com/al-s +[@bdraco]: https://github.com/bdraco +[@Bre77]: https://github.com/Bre77 +[@cottsay]: https://github.com/cottsay +[@danzel]: https://github.com/danzel +[@frwickst]: https://github.com/frwickst +[@Galorhallen]: https://github.com/Galorhallen +[@joostlek]: https://github.com/joostlek +[@lhgravendeel]: https://github.com/lhgravendeel +[@ludeeus]: https://github.com/ludeeus +[@miaucl]: https://github.com/miaucl +[@MisterCommand]: https://github.com/MisterCommand +[@mj23000]: https://github.com/mj23000 +[@Moustachauve]: https://github.com/Moustachauve +[@pajzo]: https://github.com/pajzo +[@xeniter]: https://github.com/xeniter +[@zweckj]: https://github.com/zweckj +[AirTouch 5]: /integrations/airtouch5 +[Bang & Olufsen]: /integrations/bang_olufsen +[Bring]: /integrations/bring +[Elvia]: /integrations/elvia +[Epion]: /integrations/epion +[Govee lights local]: /integrations/govee_light_local +[Home Assistant Analytics Insights]: /integrations/analytics_insights +[Hong Kong Observatory]: /integrations/hko +[Huum]: /integrations/huum +[La Marzocco]: /integrations/lamarzocco +[LeaOne]: /integrations/leaone +[myUplink]: /integrations/myuplink +[Rabbit Air]: /integrations/rabbitair +[Rainforest RAVEn]: /integrations/rainforest_raven +[Romy]: /integrations/romy +[TechnoVE]: /integrations/technove +[Tedee]: /integrations/tedee +[Teslemetry]: /integrations/teslemetry +[Traccar server]: /integrations/traccar_server + +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 integrations have been added: + +- **[City of Austin Utilities]**, provided by [Opower] +- **[Tapo]**, provided by [TP-Link Smart Home] + +[City of Austin Utilities]: /integrations/coautilities +[Opower]: /integrations/opower +[Tapo]: /integrations/tplink_tapo +[TP-Link Smart Home]: /integrations/tplink + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- **[Ecovacs]**, done by [@edenhaus] +- **[GPSD]**, done by [@jrieger] +- **[Lupus Electronics LUPUSEC]**, done by [@suaveolent] +- **[Lutron]**, done by [@wilburCforce] +- **[Proximity]**, done by [@mib1185] +- **[Time & Date]**, done by [@gjohansson-ST] + +[@edenhaus]: https://github.com/edenhaus +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@jrieger]: https://github.com/jrieger +[@mib1185]: https://github.com/mib1185 +[@suaveolent]: https://github.com/suaveolent +[@wilburCforce]: https://github.com/wilburCforce +[Ecovacs]: /integrations/ecovacs +[GPSD]: /integrations/gpsd +[Lupus Electronics LUPUSEC]: /integrations/lupusec +[Lutron]: /integrations/lutron +[Proximity]: /integrations/proximity +[Time & Date]: /integrations/time_date + +## Release 2024.2.1 - February 9 + +- Catch APIRateLimit in Honeywell ([@mkmer] - [#107806]) +- Allow disabling home assistant watchdog ([@mdegat01] - [#109818]) +- Assist fixes ([@synesthesiam] - [#109889]) +- Bump Python matter server to 5.5.0 ([@marcelveldt] - [#109894]) +- Bump aioelectricitymaps to 0.4.0 ([@jpbede] - [#109895]) +- Skip polling of unavailable Matter nodes ([@marcelveldt] - [#109917]) +- Bump aio-geojson-geonetnz-volcano to 0.9 ([@exxamalte] - [#109940]) +- Handle Matter nodes that become available after startup is done ([@marcelveldt] - [#109956]) +- Allow modbus "scale" to be negative. ([@janiversen] - [#109965]) +- Don't blow up if config entries have unhashable unique IDs ([@emontnemery] - [#109966]) +- Bump pyMicrobot to 0.0.12 ([@spycle] - [#109970]) +- Allow modbus min/max temperature to be negative. ([@janiversen] - [#109977]) +- Bump deebot-client to 5.1.1 ([@edenhaus] - [#109994]) +- Allow modbus negative min/max value. ([@janiversen] - [#109995]) +- Bump aioecowitt to 2024.2.1 ([@edenhaus] - [#109999]) +- Avoid key_error in modbus climate with non-defined fan_mode. ([@janiversen] - [#110017]) +- Update frontend to 20240207.1 ([@bramkragten] - [#110039]) +- Matching duplicate named entities is now an error in Assist ([@synesthesiam] - [#110050]) +- Log error and continue on parsing issues of translated strings ([@mib1185] - [#110046]) +- Bump evohome-async to 0.4.18 ([@zxdavb] - [#110056]) +- Bump py-aosmith to 1.0.8 ([@bdr99] - [#110061]) + +[#107806]: https://github.com/home-assistant/core/pull/107806 +[#109818]: https://github.com/home-assistant/core/pull/109818 +[#109883]: https://github.com/home-assistant/core/pull/109883 +[#109889]: https://github.com/home-assistant/core/pull/109889 +[#109894]: https://github.com/home-assistant/core/pull/109894 +[#109895]: https://github.com/home-assistant/core/pull/109895 +[#109917]: https://github.com/home-assistant/core/pull/109917 +[#109940]: https://github.com/home-assistant/core/pull/109940 +[#109956]: https://github.com/home-assistant/core/pull/109956 +[#109965]: https://github.com/home-assistant/core/pull/109965 +[#109966]: https://github.com/home-assistant/core/pull/109966 +[#109970]: https://github.com/home-assistant/core/pull/109970 +[#109977]: https://github.com/home-assistant/core/pull/109977 +[#109994]: https://github.com/home-assistant/core/pull/109994 +[#109995]: https://github.com/home-assistant/core/pull/109995 +[#109999]: https://github.com/home-assistant/core/pull/109999 +[#110017]: https://github.com/home-assistant/core/pull/110017 +[#110039]: https://github.com/home-assistant/core/pull/110039 +[#110046]: https://github.com/home-assistant/core/pull/110046 +[#110050]: https://github.com/home-assistant/core/pull/110050 +[#110056]: https://github.com/home-assistant/core/pull/110056 +[#110061]: https://github.com/home-assistant/core/pull/110061 +[@bdr99]: https://github.com/bdr99 +[@bramkragten]: https://github.com/bramkragten +[@edenhaus]: https://github.com/edenhaus +[@emontnemery]: https://github.com/emontnemery +[@exxamalte]: https://github.com/exxamalte +[@frenck]: https://github.com/frenck +[@janiversen]: https://github.com/janiversen +[@jpbede]: https://github.com/jpbede +[@marcelveldt]: https://github.com/marcelveldt +[@mdegat01]: https://github.com/mdegat01 +[@mib1185]: https://github.com/mib1185 +[@mkmer]: https://github.com/mkmer +[@spycle]: https://github.com/spycle +[@synesthesiam]: https://github.com/synesthesiam +[@zxdavb]: https://github.com/zxdavb + +## Release 2024.2.2 - February 16 + +- Better teardown and setup of Roborock connections ([@Lash-L] - [#106092]) +- Fix freebox pairing in bridge mode ([@agrenott] - [#106131]) +- Update pytechnove to 1.2.2 ([@Moustachauve] - [#110074]) +- Bump aio-geojson-usgs-earthquakes to 0.3 ([@exxamalte] - [#110084]) +- Bump yalexs to 1.11.1, fixing camera snapshots from Yale Home ([@abjorck] - [#110089]) +- Fix typo in sensor icons configuration ([@bieniu] - [#110133]) +- Only schedule august activity update when a new activity is seen ([@bdraco] - [#110141]) +- Bump yalexs to 1.11.2 ([@bdraco] - [#110144]) +- Properly report cover positions to prometheus ([@agoode] - [#110157]) +- Fix device class repairs issues placeholders in Group ([@silamon] - [#110181]) +- Bump datapoint to 0.9.9 + re-enable Met Office Integration ([@DustyArmstrong] - [#110206]) +- Bump evohome-async to 0.4.19 ([@zxdavb] - [#110225]) +- Fix state classes issue translation in Group ([@silamon] - [#110238]) +- Handle no data error in Electricity Maps config flow ([@jpbede] - [#110259]) +- Fix cpu percentage in System Monitor ([@gjohansson-ST] - [#110268]) +- Bump aiopegelonline to 0.0.8 ([@mib1185] - [#110274]) +- Bump PySwitchbot to 0.45.0 ([@bdraco] - [#110275]) +- Update xknxproject to 3.6.0 ([@farmio] - [#110282]) +- Fix TDBU naming in Motionblinds ([@starkillerOG] - [#110283]) +- Bump linear-garage-door to 0.2.9 ([@IceBotYT] - [#110298]) +- Fix Starline GPS count sensor ([@Anonym-tsk] - [#110348]) +- Fix zone radius calculation when radius is not 0 ([@bdraco] - [#110354]) +- Bump py-sucks to 0.9.9 ([@mib1185] - [#110397]) +- Bump async-upnp-client to 0.38.2 ([@StevenLooman] - [#110411]) +- Mitigate session closed error in Netgear LTE ([@tkdrob] - [#110412]) +- Update pylutron to 0.2.11 ([@wilburCforce] - [#109853]) +- Update pylutron to 0.2.12 ([@wilburCforce] - [#110414]) +- Fix Raspberry Pi utilities installation on Alpine 3.19 ([@agners] - [#110463]) +- Coerce to float in Sensibo climate react custom service ([@gjohansson-ST] - [#110508]) +- Bump orjson to 3.9.14 ([@bdraco] - [#110552]) +- Fix tplink not updating IP from DHCP discovery and discovering twice ([@bdraco] - [#110557]) +- Modbus, allow received int to be a float. ([@janiversen] - [#110648]) +- Fix elkm1 service calls running in the executor ([@bdraco] - [#110655]) +- Bump aiounifi to v71 ([@Kane610] - [#110658]) +- Bump deebot-client to 5.2.1 ([@edenhaus] - [#110683]) + +[#106092]: https://github.com/home-assistant/core/pull/106092 +[#106131]: https://github.com/home-assistant/core/pull/106131 +[#109853]: https://github.com/home-assistant/core/pull/109853 +[#109883]: https://github.com/home-assistant/core/pull/109883 +[#110074]: https://github.com/home-assistant/core/pull/110074 +[#110078]: https://github.com/home-assistant/core/pull/110078 +[#110084]: https://github.com/home-assistant/core/pull/110084 +[#110089]: https://github.com/home-assistant/core/pull/110089 +[#110133]: https://github.com/home-assistant/core/pull/110133 +[#110141]: https://github.com/home-assistant/core/pull/110141 +[#110144]: https://github.com/home-assistant/core/pull/110144 +[#110157]: https://github.com/home-assistant/core/pull/110157 +[#110181]: https://github.com/home-assistant/core/pull/110181 +[#110206]: https://github.com/home-assistant/core/pull/110206 +[#110225]: https://github.com/home-assistant/core/pull/110225 +[#110238]: https://github.com/home-assistant/core/pull/110238 +[#110259]: https://github.com/home-assistant/core/pull/110259 +[#110268]: https://github.com/home-assistant/core/pull/110268 +[#110274]: https://github.com/home-assistant/core/pull/110274 +[#110275]: https://github.com/home-assistant/core/pull/110275 +[#110282]: https://github.com/home-assistant/core/pull/110282 +[#110283]: https://github.com/home-assistant/core/pull/110283 +[#110298]: https://github.com/home-assistant/core/pull/110298 +[#110348]: https://github.com/home-assistant/core/pull/110348 +[#110354]: https://github.com/home-assistant/core/pull/110354 +[#110397]: https://github.com/home-assistant/core/pull/110397 +[#110411]: https://github.com/home-assistant/core/pull/110411 +[#110412]: https://github.com/home-assistant/core/pull/110412 +[#110414]: https://github.com/home-assistant/core/pull/110414 +[#110463]: https://github.com/home-assistant/core/pull/110463 +[#110508]: https://github.com/home-assistant/core/pull/110508 +[#110552]: https://github.com/home-assistant/core/pull/110552 +[#110557]: https://github.com/home-assistant/core/pull/110557 +[#110648]: https://github.com/home-assistant/core/pull/110648 +[#110655]: https://github.com/home-assistant/core/pull/110655 +[#110658]: https://github.com/home-assistant/core/pull/110658 +[#110683]: https://github.com/home-assistant/core/pull/110683 +[@Anonym-tsk]: https://github.com/Anonym-tsk +[@DustyArmstrong]: https://github.com/DustyArmstrong +[@IceBotYT]: https://github.com/IceBotYT +[@Kane610]: https://github.com/Kane610 +[@Lash-L]: https://github.com/Lash-L +[@Moustachauve]: https://github.com/Moustachauve +[@StevenLooman]: https://github.com/StevenLooman +[@abjorck]: https://github.com/abjorck +[@agners]: https://github.com/agners +[@agoode]: https://github.com/agoode +[@agrenott]: https://github.com/agrenott +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@edenhaus]: https://github.com/edenhaus +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@janiversen]: https://github.com/janiversen +[@jpbede]: https://github.com/jpbede +[@mib1185]: https://github.com/mib1185 +[@silamon]: https://github.com/silamon +[@starkillerOG]: https://github.com/starkillerOG +[@tkdrob]: https://github.com/tkdrob +[@wilburCforce]: https://github.com/wilburCforce +[@zxdavb]: https://github.com/zxdavb + +## 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. + +## Backward-incompatible changes + +{% details "Authentication" %} + +We changed the way refresh tokens are handled. Refresh tokens are part of what +keeps you logged in to Home Assistant. + +Refresh tokens will be automatically deleted when unused. A refresh token +is considered unused if it has not been used for a login within 90 days. + +If your logged-in session hasn’t been used for 90 days, you will be logged out. +You will need to log in again. + +We recommend using [Long-lived access tokens](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token) +if you need a permanent token. + +([@mib1185] - [#108428]) ([documentation](/docs/authentication/)) + +[@mib1185]: https://github.com/mib1185 +[#108428]: https://github.com/home-assistant/core/pull/108428 + +{% enddetails %} + +{% details "Blink" %} + +The options flow that gave the option to set a custom scan interval has been +removed. + +Adjustable scan interval is no longer allowed, but the option has +had no effect on the integration since 2023.11. + +You can use an automation as an alternative to create a custom polling rate +([documentation](/common-tasks/general/#defining-a-custom-polling-interval)). +Updating one entity in a blink configuration will update all entities in each +blink configuration. + +([@mkmer] - [#106735]) ([documentation](/integrations/blink)) + +[@mkmer]: https://github.com/mkmer +[#106735]: https://github.com/home-assistant/core/pull/106735 + +--- + +Update Wi-Fi diagnostic to match new API units - previously Blink reported RSSI +dBm, now they report generic 0-5 for signal strength. + +([@mkmer] - [#107539]) ([documentation](/integrations/blink)) + +[@mkmer]: https://github.com/mkmer +[#107539]: https://github.com/home-assistant/core/pull/107539 + +{% enddetails %} + +{% details "Cisco Webex Teams" %} + +This integration has been disabled. The upstream libraries used by +Home Assistant are not compatible with Python 3.12. + +This compatibility issue has been [reported upstream](https://github.com/WebexCommunity/WebexPythonSDK/issues/139). + +([@frenck] - [#108163]) ([documentation](/integrations/cisco_webex_teams)) + +[@frenck]: https://github.com/frenck +[#108163]: https://github.com/home-assistant/core/pull/108163 + +{% enddetails %} + +{% details "EZVIZ" %} + +The services `ezviz.ptz`, `ezviz.sound_alarm`, and `alarm_sound` have been moved +to button and select entities in release 2023.8. Support for the deprecated +services has now been completely removed. + +If you are using these services in automations or scripts, you will need to +update them to match this change. + +([@jpbede] - [#107582]) ([documentation](/integrations/ezviz)) + +[@jpbede]: https://github.com/jpbede +[#107582]: https://github.com/home-assistant/core/pull/107582 + +{% enddetails %} + +{% details "Google Generative AI Conversation" %} + +Any previous integration setups might have to be recreated or reconfigured with +the new `models/gemini-pro` instead of the legacy `models/chat-bison-001`. + +([@tronikos] - [#105789]) ([documentation](/integrations/google_generative_ai_conversation)) + +[@tronikos]: https://github.com/tronikos +[#105789]: https://github.com/home-assistant/core/pull/105789 + +{% enddetails %} + +{% details "HomeWizard Energy" %} + +The Gas meter ID sensor is removed and the meter ID is now shown as a serial +number in the device info panel instead. + +([@DCSBL] - [#100684]) ([documentation](/integrations/homewizard)) + +[@DCSBL]: https://github.com/DCSBL +[#100684]: https://github.com/home-assistant/core/pull/100684 + +{% enddetails %} + +{% details "Honeywell Total Connect Comfort (US)" %} + +The preset mode was returning "unknown" rather than "none". +Any references to `preset_mode` may need to be updated. + +([@mkmer] - [#108599]) ([documentation](/integrations/honeywell)) + +[@mkmer]: https://github.com/mkmer +[#108599]: https://github.com/home-assistant/core/pull/108599 + +{% enddetails %} + +{% details "Huawei LTE" %} + +The services `huawei_lte.clear_traffic_statistics` and `huawei_lte.reboot` have +been moved to button entities in release 2023.8. Support for the deprecated +services has now been completely removed. + +If you are using these services in automations or scripts, you will need to +update them to match this change. + +([@jpbede] - [#107578]) ([documentation](/integrations/huawei_lte)) + +[@jpbede]: https://github.com/jpbede +[#107578]: https://github.com/home-assistant/core/pull/107578 + +{% enddetails %} + +{% details "JustNimbus" %} + +The following sensors have been removed from the JustNimbus integration +since they're no longer available through JustNimbus' API: + +- Pump starts +- Pump hours +- Error code +- Total replenished +- Pump flow +- Drink flow + +The following sensors have been renamed: + +- Total saved (`total_saved`) -> Total saved (`water_saved`) +- Total use (`totver`) -> Total use (`water_used`) +- Maximum reservoir content (`reservoir_content_max`) -> Reservoir capacity (`reservoir_capacity`) + +Automations or scripts using any of the removed or renamed entities should be +updated. Once updated, the old entities can be safely removed. + +([@kvanzuijlen] - [#99212]) ([documentation](/integrations/justnimbus)) + +[@kvanzuijlen]: https://github.com/kvanzuijlen +[#99212]: https://github.com/home-assistant/core/pull/99212 + +{% enddetails %} + +{% details "Litter-Robot" %} + +The services `vacuum.turn_on` and `vacuum.turn_off` were deprecated in 2023.11. +Support for the deprecated services has now been completely removed. + +If you are still using them, please adjust your automations and scripts and +use `vacuum.start` and `vacuum.stop` instead. + +([@jpbede] - [#107882]) ([documentation](/integrations/litterrobot)) + +[@jpbede]: https://github.com/jpbede +[#107882]: https://github.com/home-assistant/core/pull/107882 + +{% enddetails %} + +{% details "Lutron" %} + +The Lutron integration previously created fans as light entities. This has been +changed to create actual fan entities instead. + +If you have automations, scripts, scenes, or dashboards that used these light +entities, you will need to update them to use the new fan entities. + +([@wilburCforce] - [#107402]) ([documentation](/integrations/lutron)) + +[@wilburCforce]: https://github.com/wilburCforce +[#107402]: https://github.com/home-assistant/core/pull/107402 + +{% enddetails %} + +{% details "MELCloud" %} + +The daily energy sensors have been removed to prevent being throttled by the +external API. This mostly affects ATW devices. + +For ATA devices, this sensor is also removed. However, the total energy consumed +(if your device supports that) remains available. The latter supports long-term +statistics, providing insights into daily energy usage via the energy dashboard +or statistic card. + +([@vilppuvuorinen] - [#109832]) ([documentation](/integrations/melcloud)) + +[@vilppuvuorinen]: https://github.com/vilppuvuorinen +[#109832]: https://github.com/home-assistant/core/pull/109832 + +{% enddetails %} + +{% details "Met Office" %} + +This integration has been disabled. The upstream libraries used by +Home Assistant are not compatible with Python 3.12. + +This compatibility issue has been [reported upstream](https://github.com/EJEP/datapoint-python/issues/183). + +([@frenck] - [#108163]) ([documentation](/integrations/metoffice)) + +[@frenck]: https://github.com/frenck +[#108163]: https://github.com/home-assistant/core/pull/108163 + +{% enddetails %} + +{% details "MQTT" %} + +MQTT `sensor` or `binary_sensor` configuration with an `entity_category` +explicitly set to `config` will fail to set up. Maintainers should set the +`entity_category` attribute to `diagnostic` or omit the config attribute. + +[Related developer blogpost](https://developers.home-assistant.io/blog/2021/10/26/config-entity/) + +([@jbouwh] - [#107199]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#107199]: https://github.com/home-assistant/core/pull/107199 + +--- + +When an MQTT entity has a device name equal to the entity name or starts with +the device name, this will no longer be corrected. + +When entities like these are created, they will have device and entity names in +the friendly name. Suppose the device name is omitted because it is the same +as the entity name. In that case, the entity name attribute should be null +in the JSON payload or YAML configuration. + +[Related developer blogpost](https://developers.home-assistant.io/blog/2023/07/21/change-naming-mqtt-entities) + +([@jbouwh] - [#107188]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#107188]: https://github.com/home-assistant/core/pull/107188 + +--- + +The support for MQTT vacuum entities with a `legacy` schema is removed after 6 +months of deprecation. Users can use the `state` schema instead, +which is now the default. + +([@jbouwh] - [#107274]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#107274]: https://github.com/home-assistant/core/pull/107274 + +{% enddetails %} + +{% details "Proximity" %} + +The proximity entity (`proximity.*`) is deprecated and will be removed in 2024.8. +It is superseded by sensor entities. + +For each tracked person or device, one sensor for the distance and the +direction of travel to/from the monitored zone is created. Further, for each +Proximity configuration, one sensor that shows the nearest device or person +and its distance and direction of travel to the monitored zone is created. + +([@mib1185] - [#108730]) ([documentation](/integrations/proximity)) + +[@mib1185]: https://github.com/mib1185 +[#108730]: https://github.com/home-assistant/core/pull/108730 + +{% enddetails %} + +{% details "Renson" %} + +The start time of day and start time of night sensors have been replaced by +time entities. If you used these sensors in automations or scripts, you will +need to update them to use the new time entities. + +([@jimmyd-be] - [#105031]) ([documentation](/integrations/renson)) + +[@jimmyd-be]: https://github.com/jimmyd-be +[#105031]: https://github.com/home-assistant/core/pull/105031 + +{% enddetails %} + +{% details "RESTful Command" %} + +Call to RESTful command services will no longer silently fail and will raise an +exception on, for example, timeout or decoding errors. + +You could consider using [`continue_on_error`](/docs/scripts/#continuing-on-error) +for scripts and automations that use RESTful commands that are allowed to fail +occasionally. + +([@RoboMagus] - [#97208]) ([documentation](/integrations/rest_command)) + +[@RoboMagus]: https://github.com/RoboMagus +[#97208]: https://github.com/home-assistant/core/pull/97208 + +{% enddetails %} + +{% details "Roborock" %} + +The service `vacuum.start_pause` was deprecated in 2023.8. Support for the +deprecated service has now been completely removed. + +If you are still using this service, please adjust your automations and scripts, +to use `vacuum.pause` or `vacuum.start` instead. + +([@jpbede] - [#107895]) ([documentation](/integrations/roborock)) + +[@jpbede]: https://github.com/jpbede +[#107895]: https://github.com/home-assistant/core/pull/107895 + +{% enddetails %} + +{% details "Sensors" %} + +Setting `last_reset` for entities with a `state_class` other than `total` is +no longer supported. Please update your configuration if `state_class` +is manually configured (for example, in templates or when using customize to +override this attribute). + +([@jpbede] - [#108391]) ([documentation](/integrations/sensor)) + +[@jpbede]: https://github.com/jpbede +[#108391]: https://github.com/home-assistant/core/pull/108391 + +{% enddetails %} + +{% details "Swiss public transport" %} + +The state value of the sensor is now a standardized timestamp. +Further, all `timestamps` and `durations` in the additional fields are now also +proper datetime/durations. + +([@miaucl] - [#12341064855]) ([documentation](/integrations/swiss_public_transport)) + +[@miaucl]: https://github.com/miaucl +[#106485]: https://github.com/home-assistant/core/pull/106485 + +{% enddetails %} + +{% details "TP-Link Smart Home" %} + +To prevent overloading the power strips, the energy data is now polled every +60 seconds. If you need to poll the data faster, please use an automation that +calls the `homeassistant.update_entity` service. + +([@bdraco] - [#104208]) ([documentation](/integrations/tplink)) + +[@bdraco]: https://github.com/bdraco +[#104208]: https://github.com/home-assistant/core/pull/104208 + +{% enddetails %} + +{% details "Traccar" %} + +The YAML configuration for the Traccar integration has been deprecated +and will be removed in Home Assistant 2024.8.0. Your YAML configuration will +be automatically imported to the new [Traccar Server](/integrations/traccar_server) +integration. + +If you previously used the `scan_interval` option, this is not being imported. +If you are in need of a custom polling interval, you can use an automation +to define your own custom polling behavior. +[Learn more about that here.](/common-tasks/general/#defining-a-custom-polling-interval) + +([@ludeeus] - [#109226]) ([documentation](/integrations/traccar_server)) + +[@ludeeus]: https://github.com/ludeeus +[#109226]: https://github.com/home-assistant/core/pull/109226 + +{% enddetails %} + +{% details "Tuya" %} + +Tuya has provided an easier and improved login method for Home Assistant users. + +Having a developer account with Tuya is no longer required; instead, you can +scan a QR code with your Tuya Smart or Smart Life app to authenticate it +with Home Assistant. + +After updating to this release, Home Assistant will ask you to re-authenticate +your Tuya Smart or Smart Life account using this new method. + +([@frenck] - [#109155]) ([documentation](/integrations/tuya)) + +[@frenck]: https://github.com/frenck +[#109155]: https://github.com/home-assistant/core/pull/109155 + +--- + +The services `vacuum.turn_on` and `vacuum.turn_off` were deprecated in 2023.8. +Support for the deprecated services has now been completely removed. + +If still use them, please adjust your automations and scripts and +use `vacuum.start` and `vacuum.stop` instead. + +([@jpbede] - [#107896]) ([documentation](/integrations/tuya)) + +[@jpbede]: https://github.com/jpbede +[#107896]: https://github.com/home-assistant/core/pull/107896 + +--- + +Previously, Tuya would fall back to using the metric system if the temperature +unit was not reported by a climate device. This behavior has been changed to +use the default unit configured on your system instead. + +([@DellanX] - [#108050]) ([documentation](/integrations/tuya)) + +[@DellanX]: https://github.com/DellanX +[#108050]: https://github.com/home-assistant/core/pull/108050 + +{% enddetails %} + +{% details "Webhooks" %} + +Since version 2023.7 you have been informed that the "local only" option of +webhooks will become the default. With this release this change is now put +into effect. Please, if needed, adjust your automation triggers. + +([@jpbede] - [#107670]) ([documentation](/integrations/webhook)) + +[@jpbede]: https://github.com/jpbede +[#107670]: https://github.com/home-assistant/core/pull/107670 + +{% enddetails %} + +{% details "Withings" %} + +In withings, the unit of measurement of all duration-related sensors +(for example, sleep, goal, and active time today) has been changed from +measuring in seconds to measuring in either hours or minutes. + +If you want to measure in a different unit, please change the +preferred unit of measurement in the entity settings. + +([@joostlek]) ([documentation](/integrations/withings)) + +[@joostlek]: https://github.com/joostlek + +{% enddetails %} + +{% details "Z-Wave" %} + +The default rounding of numeric sensors to two decimals has been removed. + +We now let the device and driver decide what precision should be reported. This +allows devices with greater precision to report accurately. + +You can change the display precision in the UI for the sensor or use a template +sensor if you want to change the precision. + +([@MartinHjelmare] - [#107100]) ([documentation](/integrations/zwave_js)) + +[@MartinHjelmare]: https://github.com/MartinHjelmare +[#107100]: https://github.com/home-assistant/core/pull/107100 + +--- + +Set suggested precision to 0 decimals for voltage sensors with a native unit in V. +This will uniform the display precision of voltage sensors where there otherwise +seems to be a variety of precision reported from different devices. + +If you want to change the precision, you can do that in the sensor options in the +UI or with a template sensor. + +([@MartinHjelmare] - [#107116]) ([documentation](/integrations/zwave_js)) + +[@MartinHjelmare]: https://github.com/MartinHjelmare +[#107116]: https://github.com/home-assistant/core/pull/107116 + +--- + +The Fan and Dry climate Preset modes have been removed after a period of +deprecation. If you haven't done so, you should update your automations or +scripts to use the corresponding Dry and Fan **HVAC modes** instead. + +([@jbouwh] - [#108124]) ([documentation](/integrations/zwave_js)) + +[@jbouwh]: https://github.com/jbouwh +[#108124]: https://github.com/home-assistant/core/pull/108124 + +{% 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: + +- [Changes to FlowManager.async_show_progress](https://developers.home-assistant.io/blog/2024/01/11/async-show-progress-changes) +- [Changes to light color mode when lights display an effect](https://developers.home-assistant.io/blog/2024/01/23/light-color-mode-changes/) +- [Deprecate invalid use of sensor unit of measurement and state class](https://developers.home-assistant.io/blog/2024/01/17/deprecate-invalid-sensor-uom-state-class-use) +- [Enumerating services](https://developers.home-assistant.io/blog/2024/01/22/async_services_for_domain) +- [Icon translations](https://developers.home-assistant.io/blog/2024/01/19/icon-translations) +- [Introducing entity translation placeholders](https://developers.home-assistant.io/blog/2024/01/19/entity-translations-placeholders) +- [New entity features in Climate entity](https://developers.home-assistant.io/blog/2024/01/24/climate-climateentityfeatures-expanded) +- [Properties changes for ha-state-icon](https://developers.home-assistant.io/blog/2024/01/30/ha-state-icon-properties-changes) + +[devblog]: https://developers.home-assistant.io/blog/ + +## Farewell to the following + +The following integrations are also no longer available as of this release: + +- **Facebox** has been removed. It is no longer possible to get API keys, + and thus, it is no longer possible to use this integration. + ([@reedy] - [#107005]) +- **Legrand Home+ Control** has been removed as their API shut down in December. + Use [the Netatmo integration](/integrations/netatmo/) as an alternative to + integrate your Legrand Home+ Control devices. + ([@jpbede] - [#107587]) +- **Life360** has been removed. They are now actively blocking third-party + access, including Home Assistant. The [Home Assistant Companion app](https://companion.home-assistant.io/) + is a good and (above all) privacy-friendly alternative. + ([@pnbruckner] - [#107805]) + +[@jpbede]: https://github.com/jpbede +[@pnbruckner]: https://github.com/pnbruckner +[@reedy]: https://github.com/reedy +[#107005]: https://github.com/home-assistant/core/pull/107005 +[#107587]: https://github.com/home-assistant/core/pull/107587 +[#107805]: https://github.com/home-assistant/core/pull/107805 + +## 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 2024.2](/changelogs/core-2024.2) diff --git a/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown b/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown new file mode 100644 index 00000000000..5b673f737d4 --- /dev/null +++ b/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown @@ -0,0 +1,37 @@ +--- +layout: post +title: "Nabu Casa joins the Z-Wave Alliance" +description: "We have joined the Z-Wave Alliance, thanks to revenue from Home Assistant Cloud subscribers, and will start the certification process for Z-Wave JS." +date: 2024-02-15 00:00:01 +date_formatted: "February 15, 2024" +author: Paulus Schoutsen +comments: true +categories: Z-Wave +og_image: /images/blog/2024-02-zwave/nabucasa-zwa.png +--- + +TL;DR: We have joined the Z-Wave Alliance, thanks to revenue from Home Assistant Cloud subscribers, and will start the certification process for Z-Wave JS. + +

    + +Z-Wave is a local smart home standard that has been around since 1999. Thanks to operating on sub-Ghz frequencies, it is able to create a reliable mesh network that can span your whole house. Its reliability also made it popular to power brands like Yale locks and Amazon Ring. The Z-Wave standard is developed by a consortium of companies under the [Z-Wave Alliance](https://z-wavealliance.org/). + +With Home Assistant, we have integrated Z-Wave since our early days. We first relied on OpenZWave until we transitioned in 2021 to using [Z-Wave JS](https://github.com/zwave-js) created by Dominic Griesel. Z-Wave JS is a fully open-source implementation of the Z-Wave protocol. Combined with Home Assistant and a Z-Wave USB stick, it gives our users the best possible Z-Wave experience. Dominic is employed by Nabu Casa and can work full-time on Z-Wave JS thanks to the revenue generated from [Home Assistant Cloud](https://www.nabucasa.com/) subscribers (thank you!). + + + +We have thoroughly tested Z-Wave JS with the Home Assistant community. Our community is from all over the world and has access to a wide variety of Z-Wave devices from all generations. This has ensured that Z-Wave JS is able to deal with devices and their quirks all the way back to the original Z-Wave release. + +However, our ambitions for Z-Wave JS are bigger than just making sure we have a rock-solid Z-Wave implementation for you. We want to make it easier for companies to develop Z-Wave controllers and grow the Z-Wave ecosystem. A bigger ecosystem is more appealing for manufacturers to make Z-Wave devices, which results in more choices for our users. And as Z-Wave works locally, it is a local choice. + +Today, we are proud to announce that we have joined the Z-Wave Alliance to get Z-Wave JS officially certified. Certification shows other companies that Z-Wave JS is a full and correct implementation of the Z-Wave standard. It will allow other companies to feel confident that they can adopt Z-Wave JS to integrate Z-Wave into their products. HomeSeer, for example, [has announced](https://forums.homeseer.com/forum/hs4-products/hs4-plugins/lighting-primary-technology-plug-ins-aa/z-wave-plus-homeseer/1634034-new-z-wave-plus-plugin-under-development#post1634634%0A) that it is migrating its platform to Z-Wave JS. We hope this will open up new opportunities as more companies follow our lead in the future. + +## The Open Home + +With Home Assistant, we have a vision for the smart home that we call [the Open Home](/blog/2021/12/23/the-open-home/). It revolves around three core values: privacy, choice, and sustainability. Anything that lives up to those values is worthy of being adopted by our community. It’s why we have previously [joined the Connectivity Standards Alliance (CSA)](/blog/2023/12/04/nabu-casa-at-the-matter-member-meeting/) to take part in the development of Matter and Zigbee, and have now joined the Z-Wave Alliance. + +Z-Wave aligns with these three values: your data remains local, you can combine Z-Wave devices from any manufacturer, and devices will continue to operate even if the company behind them is no longer around. It is an important standard for the Open Home. + +This is why, even though Z-Wave, Zigbee, and Matter are competing standards, we have joined both the Z-Wave Alliance and the CSA and will keep supporting each standard. Not every smart home is the same. Users need to have choice and be able to pick the standard that works best for their home. And competing standards push each other to improve and innovate, ultimately leading to all standards becoming better for users. + +As part of the Z-Wave Alliance, we plan on bringing our unique insights as an open source community to the table. We want to make sure that the future direction of the Z-Wave standard continues to remain true to our Open Home values. Just like we do for Zigbee and Matter within the CSA. diff --git a/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown b/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown new file mode 100644 index 00000000000..e49ffe57f7c --- /dev/null +++ b/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown @@ -0,0 +1,19 @@ +--- +layout: post +title: "Voice - Chapter 6 Livestream" +description: "Our Year of the Voice has ended, but that does not mean development has stopped! In our Chapter 6 livestream we're excited to show you what we've been working on since last year." +date: 2024-02-16 00:00:01 +date_formatted: "February 16, 2024" +author: Michael Hansen +comments: true +categories: Assist +og_image: /images/blog/2024-02-voice-chapter-6/banner.png +--- + +Even though our Year of the Voice has ended, that does not mean the development of our voice assistant has stopped! We're excited to show you what we've been working on since [Chapter 5](https://www.youtube.com/live/djEkgoS5dDQ) last year during our Chapter 6 livestream on Wednesday, February 21st, at 21:00 CET / 3:00 PM ET / 12:00 PM PT. + +Want to get a sneak peek of what you can expect from this chapter? Well, remember the hype around chapter 4? Get ready for more of that! + + + +If you can’t wait to get more hands-on with our voice assistants, join the [Voice Assistant contest](https://www.home-assistant.io/blog/2024/01/17/voice-assistant-contest/)! You can win Home Assistant Green, Home Assistant SkyConnect, and a chance to be on a livestream with us to talk about your work. Watch our [contest livestream](https://www.youtube.com/live/99lGuB4J-4o), where we explain how each component of our voice technology works and guide you through building your own voice assistant, and take a look at the [current entries](https://community.home-assistant.io/c/voice-assistant-contest/60)! diff --git a/source/changelogs/core-2024.2.markdown b/source/changelogs/core-2024.2.markdown new file mode 100644 index 00000000000..868ddde6b23 --- /dev/null +++ b/source/changelogs/core-2024.2.markdown @@ -0,0 +1,2965 @@ +--- +title: Full changelog for Home Assistant Core 2024.2 +description: Detailed changelog for the Home Assistant Core 2024.2 release +replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$ +--- + +These are all the changes included in the Home Assistant Core 2024.2 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2024/02/07/release-20242/). + +## All changes + +- Bump dawidd6/action-download-artifact from 2 to 3.0.0 (@dependabot - [#105712]) +- Use converter factory in sensor platform ([@bdraco] - [#106508]) +- Bump version to 2024.2.0dev0 ([@frenck] - [#106504]) +- Improve trace helper typing ([@cdce8p] - [#105964]) +- Add myself as codeowner for holiday ([@gjohansson-ST] - [#106560]) +- Update aioairzone-cloud to v0.3.7 ([@Noltari] - [#106544]) +- Add device info to Netgear LTE ([@tkdrob] - [#106568]) +- Add Record distance sensor to MyPermobil ([@IsakNyberg] - [#106519]) +- Refactor screenlogic numbers to use subclasses ([@dieselrabbit] - [#106574]) +- Small speed up to compressed state diff ([@bdraco] - [#106624]) +- Use built-in set methods for light supported checks ([@bdraco] - [#106625]) +- Add GPS satellites count to Starline sensor ([@Anonym-tsk] - [#105740]) +- Minor improvements to Tessie device entries ([@Bre77] - [#106623]) +- Add entity name and translations to Netgear LTE ([@tkdrob] - [#106599]) +- Improve tests of inheriting entity descriptions ([@emontnemery] - [#106647]) +- Add tedee integration ([@zweckj] - [#102846]) +- Add roomba total cleaned area sensor ([@Xitee1] - [#106640]) +- Bump SQLAlchemy to 2.0.24 ([@bdraco] - [#106672]) +- Avoid recreating ReadOnly dicts when attributes do not change ([@bdraco] - [#106687]) +- Use volume up/down from enigma2 API ([@autinerd] - [#106674]) +- DNS IP implement retry ([@gjohansson-ST] - [#105675]) +- Add ffmpeg to dev-container ([@mib1185] - [#106710]) +- Upper case tedee device name ([@zweckj] - [#106685]) +- Add reauth to Blue Current integration ([@Floris272] - [#106658]) +- Use call_soon_threadsafe in render_will_timeout of template helper ([@jpbede] - [#106514]) +- Mark date entity component as strictly typed ([@frenck] - [#106716]) +- Mark todo entity component as strictly typed ([@frenck] - [#106718]) +- Add support for cookie file to media_extractor ([@RickeyWard] - [#104973]) +- Mark datetime entity component as strictly typed ([@frenck] - [#106717]) +- Mark wake_word entity component as strictly typed ([@frenck] - [#106724]) +- Mark siren entity component as strictly typed ([@frenck] - [#106719]) +- Use more shorthand attrs in bond fan ([@bdraco] - [#106740]) +- Mark time entity component as strictly typed ([@frenck] - [#106720]) +- Update aioairzone-cloud to v0.3.8 ([@Noltari] - [#106736]) +- Add sensor platform for tedee integration ([@zweckj] - [#106722]) +- Add binary sensors for tedee ([@zweckj] - [#106773]) +- Add Tami4 integration boil water button ([@Guy293] - [#103400]) +- Update pytest to 7.4.4 ([@cdce8p] - [#106802]) +- Use shorthand attrs for tplink color temp min/max ([@bdraco] - [#106796]) +- Use walrus operator for roomba total cleaned area sensor value ([@Xitee1] - [#106772]) +- Enable strict typing for aprs ([@cdce8p] - [#106824]) +- Enable strict typing for anel_pwrctrl ([@cdce8p] - [#106821]) +- Enable strict typing for androidtv ([@cdce8p] - [#106820]) +- Enable strict typing for alpha_vantage ([@cdce8p] - [#106816]) +- Enable strict typing for aquostv ([@cdce8p] - [#106836]) +- Enable strict typing for aruba ([@cdce8p] - [#106839]) +- Enable strict typing for airq ([@cdce8p] - [#106813]) +- Enable strict typing for amberelectric ([@cdce8p] - [#106817]) +- Enable strict typing for asterisk_cdr + asterisk_mbox ([@cdce8p] - [#106841]) +- Enable strict typing for arris_tg2492lg ([@cdce8p] - [#106838]) +- Enable strict typing for arcam_fmj ([@cdce8p] - [#106837]) +- Improve acmeda typing ([@cdce8p] - [#106812]) +- Enable strict typing for ambiclimate ([@cdce8p] - [#106819]) +- Reduce duplicate code in json_loads ([@bdraco] - [#106859]) +- Set entity category and device class for Netgear LTE entities ([@tkdrob] - [#106661]) +- Add diagnostics for tedee ([@zweckj] - [#106662]) +- Bump bleak-esphome to 0.4.1 ([@bdraco] - [#106832]) +- Enable strict typing for airthings ([@cdce8p] - [#106814]) +- Use identity checks for HassJobType ([@bdraco] - [#106860]) +- Xiaomi MIIO: fix typo in error log ([@angristan] - [#106852]) +- Refactor restore state saving to avoid a dict lookup of ATTR_RESTORED ([@bdraco] - [#106854]) +- Use shorthand attr for screenlogic climate preset modes ([@bdraco] - [#106858]) +- Refactor light platform to avoid duplicate property calls ([@bdraco] - [#106857]) +- Migrate vizio tests to use freezegun ([@jpbede] - [#105417]) +- Migrate geo_rss_events test to use freezegun ([@jpbede] - [#105895]) +- Enable strict typing for arwn ([@cdce8p] - [#106840]) +- Improve entity descriptions in Tami4 ([@joostlek] - [#106776]) +- Add reauthentication for tedee integration ([@zweckj] - [#106667]) +- Avoid unnecessary domain dataclass in Discovergy ([@jpbede] - [#106869]) +- Mark humidifier entity component as strictly typed ([@frenck] - [#106721]) +- Enable strict typing for apache_kafka ([@cdce8p] - [#106823]) +- Add translatable title to logbook ([@steffenrapp] - [#106810]) +- Enable strict typing of date_time ([@emontnemery] - [#106868]) +- Deprecate 'beat' display option in Time & Date ([@emontnemery] - [#106871]) +- Index entities by domain for entity services ([@bdraco] - [#106759]) +- Add Reolink image settings ([@starkillerOG] - [#105415]) +- Improve time_date tests ([@emontnemery] - [#106878]) +- Fix state update in time_date sensor ([@emontnemery] - [#106879]) +- Handle time zone change in time_date ([@emontnemery] - [#106880]) +- Disable polling in time_date sensor ([@emontnemery] - [#106881]) +- Mark stt entity component as strictly typed ([@frenck] - [#106723]) +- Remove deprecated Life360 yaml configuration ([@pnbruckner] - [#106286]) +- Replace intersection with isdisjoint in apple_tv config flow ([@bdraco] - [#106633]) +- Add strict typing to command_line ([@cdce8p] - [#106889]) +- Enable strict typing for co2signal ([@cdce8p] - [#106888]) +- Avoid tuple construction to check HKC available ([@bdraco] - [#106902]) +- Enable strict typing for blueprint ([@cdce8p] - [#106887]) +- Bump aiohttp-zlib-ng to 0.2.0 ([@bdraco] - [#106691]) +- Enable strict typing for axis ([@cdce8p] - [#106844]) +- Remove assert for unique_id ([@cdce8p] - [#106910]) +- Add tedee bridge as via_device for tedee integration ([@zweckj] - [#106914]) +- Add translatable title to holiday ([@steffenrapp] - [#106825]) +- Bump aioelectricitymaps to v0.1.6 ([@jpbede] - [#106932]) +- Enable strict typing for counter ([@cdce8p] - [#106906]) +- Bump SQLAlchemy to 2.0.25 ([@bdraco] - [#106931]) +- Speed up getting the mean of statistics ([@bdraco] - [#106930]) +- Removed double assignment of _attr_target_temperature_step in __init__ ([@crug80] - [#106611]) +- Add support for placeholders in entity name translations ([@mib1185] - [#104453]) +- Bump rachiopy to 1.1.0 ([@rfverbruggen] - [#106975]) +- Fix ESPHome service removal when the device name contains a dash ([@bdraco] - [#107015]) +- Bump pyinsteon ([@teharris1] - [#107010]) +- Small cleanups to ESPHome light platform ([@bdraco] - [#107003]) +- Add missing coverage for esphome_state_property decorator ([@bdraco] - [#106998]) +- Fix first ESPHome device update entity not offering install feature ([@bdraco] - [#106993]) +- Use call_soon_threadsafe in token updater of Ring ([@jpbede] - [#106984]) +- Ring: Add partial back ([@balloob] - [#107040]) +- Issue warning if glances server version is 2 ([@engrbm87] - [#105887]) +- Re-architect Guardian to use better entity descriptions and properties ([@bachya] - [#107028]) +- Add button platform to Opengarage ([@jkrall] - [#103569]) +- Small cleanups to denonavr ([@bdraco] - [#107050]) +- Update pydrawise to 2024.1.0 ([@thomaskistler] - [#107032]) +- Add test coverage for ESPHome service calls ([@bdraco] - [#107042]) +- Remove dead code in fibaro light ([@rappenze] - [#106890]) +- Add sensor tests to Streamlabs water ([@joostlek] - [#107065]) +- Update home-assistant/builder to 2024.01.0 ([@frenck] - [#107069]) +- Refactor drop sensor tests ([@jbouwh] - [#106965]) +- Add entity descriptions to Streamlabs water ([@joostlek] - [#107071]) +- Refactor drop tests for binary_sensor ([@jbouwh] - [#107090]) +- Remove zwave_js numeric sensor rounding ([@MartinHjelmare] - [#107100]) +- Revert "Bump aiohttp-zlib-ng to 0.2.0 (#106691)" ([@bdraco] - [#107109]) +- Rework drop_connect switch, select and coordinator tests and cleanup fixtures ([@jbouwh] - [#107119]) +- Move group helpers into their own module ([@bdraco] - [#106924]) +- Reorganize drop_connect tests ([@jbouwh] - [#107148]) +- Migrate Emonitor to has entity name ([@joostlek] - [#107153]) +- Migrate AVM FRITZ!Box Call monitor to has entity name ([@jrieger] - [#99752]) +- Cache homekit_controller supported features ([@bdraco] - [#106702]) +- Use snapshots in Glances sensor tests ([@joostlek] - [#107159]) +- Pass down language to hassil ([@Luap99] - [#106490]) +- Remove precision in streamlabs water ([@joostlek] - [#107096]) +- Update Home Assistant base image to 2024.01.0 - Python 3.12 ([@frenck] - [#107175]) +- Pass aiohttp clientsession to tedee integration ([@zweckj] - [#107089]) +- Add conversation_id parameter to conversation.process service ([@Shulyaka] - [#106078]) +- Clean up outdated entity replacement logic in Guardian ([@bachya] - [#107160]) +- Introduce base entity in streamlabs water ([@joostlek] - [#107095]) +- Update sensorpush-ble library to 1.6.1 ([@ashleigh-hopkins] - [#107168]) +- Fix tplink overloading power strips ([@bdraco] - [#104208]) +- Report missing entities/areas instead of failing to match in Assist ([@synesthesiam] - [#107151]) +- Fix conversation snapshots ([@joostlek] - [#107196]) +- Bump bluetooth-adapters to 0.17.0 ([@bdraco] - [#107195]) +- Set zwave_js voltage sensor suggested precision ([@MartinHjelmare] - [#107116]) +- Change default python version to 3.12 for image builds ([@bdraco] - [#107209]) +- Attempt to fix 32bit docker builds ([@bdraco] - [#107210]) +- Remove work-a-round for mqtt sensors with an entity_category set to `config` ([@jbouwh] - [#107199]) +- Remove unneeded preset_mode checks for mqtt climate ([@jbouwh] - [#107190]) +- Remove naming warnings and work-a-rounds for incorrectly configured MQTT entities ([@jbouwh] - [#107188]) +- Add color temp support for older HomeKit devices ([@bdraco] - [#107206]) +- Finish Efergy entity translations ([@joostlek] - [#107152]) +- Use identity checks for unifiprotect enums ([@bdraco] - [#106795]) +- Add Tyua Product Category "dsd" for Filament Light ([@ThePapaG] - [#106709]) +- Bump velbus-aio to 2023.12.0 ([@Cereal2nd] - [#107066]) +- Add test coverage for ESPHome device info ([@bdraco] - [#107034]) +- Add Rainforest RAVEn integration ([@cottsay] - [#80061]) +- Add support for service response to RESTful command ([@RoboMagus] - [#97208]) +- Bump aiohttp-zlib-ng to 0.3.0 ([@bdraco] - [#107184]) +- Add python_script response ([@rikroe] - [#97937]) +- Add Hong Kong Observatory integration ([@MisterCommand] - [#98703]) +- Make exceptions in rest_command services translatable ([@jpbede] - [#107252]) +- Add new Rabbit Air integration ([@al-s] - [#66130]) +- Update Home Assistant Wheels action to 2024.01.0 ([@frenck] - [#107240]) +- Add Lutron config flow ([@wilburCforce] - [#98489]) +- Allow selecting of counter entities in derivative/integration config flow ([@SLaks] - [#105321]) +- Sort Lutron platforms ([@joostlek] - [#107257]) +- Remove duplicate assignment of `median` and `statistical_mode` jinja2 filter ([@jpbede] - [#106953]) +- Improve denonavr typing ([@cdce8p] - [#106907]) +- Enable strict typing for downloader ([@cdce8p] - [#107263]) +- Migrate Suez Water to has entity name ([@joostlek] - [#107251]) +- Enable strict typing for minecraft_server ([@cdce8p] - [#107262]) +- Enable strict typing for duotecno ([@cdce8p] - [#107261]) +- Improve conversation typing ([@cdce8p] - [#106905]) +- Cleanup and migrate rest_command tests to be async ([@jpbede] - [#107264]) +- Convert cert_expiry to use asyncio ([@bdraco] - [#106919]) +- Expose all areas to Assist and ignore empty aliases ([@synesthesiam] - [#107267]) +- Use call_soon_threadsafe in mqtt client unsubscribe callback ([@jpbede] - [#107266]) +- Add test coverage for ESPHome state subscription ([@bdraco] - [#107045]) +- Add code owner for Lutron ([@wilburCforce] - [#107280]) +- Extract LutronDevice into separate file ([@joostlek] - [#107285]) +- Fix typo in recorder strings.json ([@rsiv] - [#107278]) +- Move Lutron entry data to typed class ([@joostlek] - [#107256]) +- Fix duplicate unique_ids in emonitor ([@joostlek] - [#107320]) +- Fix lutron test AttributeError ([@cdce8p] - [#107323]) +- Fix lutron test AttributeError (2) ([@cdce8p] - [#107324]) +- Disable thermobeacon voltage sensors by default ([@bdraco] - [#107326]) +- Add API to fetch Assist devices ([@balloob] - [#107333]) +- Add time entity to Renson ([@jimmyd-be] - [#105031]) +- Use faster identity checks for SupportsResponse Enum ([@bdraco] - [#107351]) +- Small cleanup to zeroconf properties matcher ([@bdraco] - [#107342]) +- Avoid fetching logger in check_if_deprecated_constant if there is nothing to log ([@bdraco] - [#107341]) +- Enable strict typing for easyenergy ([@cdce8p] - [#107299]) +- Enable strict typing for energyzero ([@cdce8p] - [#107300]) +- Enable strict typing for p1_monitor ([@cdce8p] - [#107301]) +- Fix rainforest_raven typing ([@cdce8p] - [#107309]) +- Fix name of 64bit intel/amd arch in builder and wheels workflow ([@bdraco] - [#107335]) +- Only mock config_entries.HANDLERS for the current test in mock_config_flow ([@jbouwh] - [#107357]) +- Add new locks automatically to tedee integration ([@zweckj] - [#107372]) +- remove marcolivierarsenault from ecobee codeowners ([@marcolivierarsenault] - [#107377]) +- Improve homekit_controller typing ([@cdce8p] - [#107381]) +- Bump py-aosmith to 1.0.6 ([@bdr99] - [#107409]) +- Update Apprise to 1.7.1 ([@Flash1232] - [#107383]) +- Streamline exception handling in Guardian ([@bachya] - [#107053]) +- Clean up buggy Guardian `switch` context managers ([@bachya] - [#107426]) +- Remove leftover Guardian mixin ([@bachya] - [#107424]) +- Enable strict typing for oralb ([@cdce8p] - [#107438]) +- Enable strict typing for led_ble ([@cdce8p] - [#107437]) +- Enable strict typing for enphase_envoy ([@cdce8p] - [#107436]) +- Enable strict typing for waqi ([@cdce8p] - [#107439]) +- Enable strict typing for youtube ([@cdce8p] - [#107440]) +- Add select platform to Vogel's MotionMount integration ([@RJPoelstra] - [#107132]) +- Add missing wifi data in AVM!Fritz Tools tests ([@mib1185] - [#107373]) +- Improve flume typing ([@cdce8p] - [#107444]) +- Clean up zwave_js test_removed_device test ([@raman325] - [#107346]) +- Fix local_todo typo ([@miaucl] - [#107454]) +- Add typing to Lutron platforms ([@joostlek] - [#107408]) +- Small cleanups to ESPHome callbacks ([@bdraco] - [#107428]) +- Remove calls to distribution and legacy zip support from package util ([@bdraco] - [#107427]) +- Improve harmony typing ([@cdce8p] - [#107447]) +- Google Generative AI: Add a service for prompts consisting of text and images using Gemini Pro Vision ([@tronikos] - [#105789]) +- Mark Ring battery and signal strength sensors as diagnostic ([@joostlek] - [#107503]) +- Move KNX service registration to `async_setup` ([@farmio] - [#106635]) +- Refactor translations to reduce dict lookups ([@bdraco] - [#107425]) +- Refactor recorder for common event case ([@bdraco] - [#106753]) +- Improve logbook context augment performance ([@bdraco] - [#106926]) +- Refactor sensor recorder _get_sensor_states to check for state class first ([@bdraco] - [#107046]) +- Add support for JSON fragments ([@bdraco] - [#107213]) +- Reduce overhead to compile statistics ([@bdraco] - [#106927]) +- Signficantly reduce executor contention during bootstrap ([@bdraco] - [#107312]) +- Add support for bluetooth local name matchers shorter than 3 chars ([@bdraco] - [#107411]) +- Use constants in Alpha2 config flow ([@joostlek] - [#107518]) +- Clean up met config flow ([@joostlek] - [#107480]) +- Introduce heat area property in moehlenhoff alpha2 ([@joostlek] - [#107488]) +- Bump sensorpush-ble to 1.6.2 ([@bdraco] - [#107410]) +- Increase pip timeout in image builds to match core ([@bdraco] - [#107514]) +- Bump aiowithings to 2.1.0 ([@joostlek] - [#107417]) +- Reduce duplicate code in ESPHome connection callback ([@bdraco] - [#107338]) +- Add Met eireann to strict typing ([@joostlek] - [#107486]) +- Migrate Mullvad to has entity name ([@joostlek] - [#107520]) +- Migrate kmtronic to has entity name ([@joostlek] - [#107469]) +- Add coverage for scanning tags with ESPHome ([@bdraco] - [#107337]) +- Remove MQTT legacy vacuum support ([@jbouwh] - [#107274]) +- Reduce overhead to call entity services ([@bdraco] - [#106908]) +- Enable long term statistics for Flume water usage current sensor ([@tronikos] - [#107512]) +- Remove deprecated YAML for freebox ([@jpbede] - [#107497]) +- Handle unknown state in HomeKit ([@bdraco] - [#107039]) +- Improve dispatcher typing ([@cdce8p] - [#106872]) +- Enable strict typing for google_assistant_sdk ([@cdce8p] - [#107306]) +- Bump SunWEG to 2.1.0 ([@rokam] - [#107459]) +- Improve typing for Tado ([@erwindouna] - [#106992]) +- Enable strict typing for history_stats ([@cdce8p] - [#107273]) +- Enable strict typing for generic_hygrostat ([@cdce8p] - [#107272]) +- Fully type homeassistant integration ([@cdce8p] - [#107380]) +- Improve hassio typing ([@cdce8p] - [#107292]) +- Improve hunterdouglas_powerview typing ([@cdce8p] - [#107445]) +- Enable strict typing for intent ([@cdce8p] - [#107282]) +- Add zone devices to AnthemAV ([@joostlek] - [#107192]) +- Cleanup device registry for tedee when a lock is removed ([@zweckj] - [#106994]) +- Use parametrize in drop connect binary sensor tests ([@joostlek] - [#107111]) +- Enable strict typing for system_health ([@cdce8p] - [#107283]) +- Enable strict typing for nightscout ([@cdce8p] - [#107307]) +- Enable strict typing for tod ([@cdce8p] - [#107284]) +- Enable strict typing for dlna_dms ([@cdce8p] - [#107305]) +- Improve folder_watcher typing ([@cdce8p] - [#107271]) +- Remove tedee device safely from registry ([@zweckj] - [#107529]) +- Unlock the precision of sensors of the opentherm_gw integration ([@FlorianOosterhof] - [#107227]) +- Bump pytedee_async to 0.2.10 ([@zweckj] - [#107540]) +- Pop the mocked config flow, restore the original with mock_config_flow ([@jbouwh] - [#107567]) +- Specific Assist errors for domain/device class ([@synesthesiam] - [#107302]) +- Add software version to Blink device info ([@mkmer] - [#107548]) +- Improve led_ble generic typing ([@cdce8p] - [#107534]) +- Remove deprecated YAML support from OpenSky ([@jpbede] - [#107585]) +- Let babel handle the locale separator in holiday ([@jrieger] - [#107571]) +- Bump pymeteoclimatic to 0.1.0 ([@bdraco] - [#107583]) +- Fix tractive tests using a dict for the unique_id ([@bdraco] - [#107602]) +- Bump aiohttp-zlib-ng to 0.3.1 ([@bdraco] - [#107595]) +- Bump pywemo to 1.4.0 ([@esev] - [#107623]) +- Small cleanups to number entity ([@bdraco] - [#107624]) +- Fix cloudflare tests using a dict for the unique id ([@bdraco] - [#107601]) +- Avoid duplicate property lookups in camera state_attributes ([@bdraco] - [#107627]) +- Tado unavailable state to device tracker ([@erwindouna] - [#107542]) +- Small cleanups to temperature helper ([@bdraco] - [#107625]) +- Add caching to the distance calculation utility ([@bdraco] - [#107626]) +- Bump idasen-ha to 2.5 ([@abmantis] - [#107607]) +- Remove deprecated line in osoenergy ([@xeniter] - [#107553]) +- Correct state class in `mobile_app` tests ([@jpbede] - [#107646]) +- Remove deprecated YAML support from zodiac ([@jpbede] - [#107584]) +- Fix dlink test mutating config entry after its adding to hass ([@bdraco] - [#107604]) +- Airthings cloud: Add myself as codeowner ([@LaStrada] - [#107654]) +- Remove unused option flow from blink ([@mkmer] - [#106735]) +- Use right state class for kWh sensor in `homekit_controller` ([@jpbede] - [#107644]) +- Use right state class in `filter` test ([@jpbede] - [#107643]) +- Correct device class in `sql` tests ([@jpbede] - [#107663]) +- Bump Python-Roborock to 0.39.0 ([@Lash-L] - [#107547]) +- Remove deprecated services from Ezviz ([@jpbede] - [#107582]) +- Remove deprecated services from Huawei LTE ([@jpbede] - [#107578]) +- Add test for avoid triggering ping device tracker `home` after reload ([@jpbede] - [#107107]) +- Avoid total_seconds conversion in bond keep alive ([@bdraco] - [#107618]) +- Add missing 'state class' to Airvisual ([@yuvalabou] - [#107666]) +- Add 'bitwise_xor' filter to jinja templates ([@TNTLarsn] - [#104942]) +- Bump pytedee_async to 0.2.11 ([@zweckj] - [#107707]) +- Remove myself as a codeowner from tado ([@michaelarnauts] - [#107708]) +- Set proper sensor device class for swiss_public_transport ([@miaucl] - [#106485]) +- Bump govee-ble to 0.26.0 ([@bdraco] - [#107706]) +- Improve debug logs in Minecraft Server ([@elmurato] - [#107672]) +- Add decorator typing [toon] ([@cdce8p] - [#107597]) +- Add decorator typing [soma] ([@cdce8p] - [#107559]) +- Add decorator typing [modern_forms] ([@cdce8p] - [#107558]) +- Improvements for tedee integration ([@zweckj] - [#107238]) +- Use new AEMET library data for sensor platform ([@Noltari] - [#102972]) +- Reduce discovery flow matching overhead ([@bdraco] - [#107709]) +- Rename AEMET weather_update_coordinator ([@Noltari] - [#107740]) +- Update powerwall for tesla_powerwall 0.5.0 which is async ([@bubonicbob] - [#107164]) +- Make to-do list item exception wording consistent ([@allenporter] - [#107743]) +- Add comment to ConfigEntry.async_setup about race safety ([@bdraco] - [#107756]) +- Add `valve` platform to Guardian ([@bachya] - [#107423]) +- Bump bthome-ble to 3.4.1 ([@Ernst79] - [#107757]) +- Add leak sensor for UP Sense for UniFi Protect ([@AngellusMortis] - [#107762]) +- Bump sonos-websocket to 0.1.3 ([@jjlawren] - [#107765]) +- Bump aioambient to 2024.01.0 ([@thomaskistler] - [#107767]) +- Rework state change detection for UniFi Protect entities ([@AngellusMortis] - [#107766]) +- Add new event sensors from UniFi Protect 2.11 ([@AngellusMortis] - [#107773]) +- Fastdotcom service optimization ([@erwindouna] - [#107179]) +- Revert "Revert "Add preselect_remember_me to `/auth/providers`"" ([@edenhaus] - [#106867]) +- Add SpeakerHub support to YoLink ([@matrixd2] - [#104678]) +- Bump govee-ble to 0.27.2 ([@bdraco] - [#107778]) +- Improve ergonomics of FlowManager.async_show_progress ([@emontnemery] - [#107668]) +- Improve calls to async_show_progress in zwave_js ([@emontnemery] - [#107794]) +- Improve calls to async_show_progress in matter ([@emontnemery] - [#107791]) +- Improve calls to async_show_progress in google ([@emontnemery] - [#107788]) +- Make step_id parameter to FlowHandler.async_show_progress optional ([@emontnemery] - [#107802]) +- Fix call to async_setup_component in translation test ([@emontnemery] - [#107807]) +- Fix Netatmo camera name does not show under Media -> Media sources -> Camera ([@codyc1515] - [#107696]) +- Remove Life360 integration ([@pnbruckner] - [#107805]) +- Bump PySwitchbot to 0.44.0 ([@dcmeglio] - [#107833]) +- Improved tracking of switchbot opening/closing states ([@dcmeglio] - [#106741]) +- Move Guardian valve attributes to diagnostics sensors ([@bachya] - [#107834]) +- Add YoLink SpeakerHub Service ([@matrixd2] - [#107787]) +- Bump govee-ble to 0.27.3 ([@bdraco] - [#107839]) +- Bump actions/cache from 3.3.2 to 3.3.3 (@dependabot - [#107840]) +- Bump github/codeql-action from 3.22.12 to 3.23.0 (@dependabot - [#107628]) +- Bump nexia to 2.0.8 ([@bdraco] - [#107835]) +- Migrate unifiprotect descriptions to be kw_only ([@bdraco] - [#107832]) +- Restrict Version Disclosure to Authenticated Requests in Home Assistant ([@emtunc] - [#107458]) +- Add jinja_pass_arg to reserved template names ([@bdraco] - [#107822]) +- Use identity checks for CoreState ([@bdraco] - [#107846]) +- Add decorator typing [limitlessled] ([@cdce8p] - [#107557]) +- Revert "Fix Netatmo camera name does not show under Media -> Media sources -> Camera" ([@cgtobi] - [#107856]) +- Rename netatmo base entity file ([@joostlek] - [#107857]) +- Add decorator typing [izone] ([@cdce8p] - [#107556]) +- Add decorator typing [homematicip_cloud] ([@cdce8p] - [#107555]) +- Add decorator typing [zha] ([@cdce8p] - [#107599]) +- Add myUplink integration ([@pajzo] - [#86522]) +- Enable strict typing for cert_expiry ([@cdce8p] - [#107860]) +- Improve onboarding provider call ([@cdce8p] - [#107864]) +- Enable strict typing for bthome ([@cdce8p] - [#107859]) +- Improve meteo_france typing ([@cdce8p] - [#107863]) +- Enable strict typing for ecowitt ([@cdce8p] - [#107861]) +- Add decorator typing [spotify] ([@cdce8p] - [#107560]) +- Bump xiaomi-ble to 0.21.2 ([@Ernst79] - [#107779]) +- Enable strict typing for ios ([@cdce8p] - [#107382]) +- Update frontend to 20240112.0 ([@bramkragten] - [#107886]) +- Extend Nuki integration to expose ringer through Nuki Opener ([@steffenrapp] - [#107745]) +- Handle missing fields from Roomba ([@Xitee1] - [#107893]) +- Fix missing timeout exception check in powerwall config flow ([@bdraco] - [#107899]) +- Bump orjson to 3.9.10 ([@bdraco] - [#107898]) +- Revert "Restrict Version Disclosure to Authenticated Requests in Home Assistant" ([@bdraco] - [#107904]) +- Remove deprecated YAML support from litejet ([@jpbede] - [#107884]) +- Improve Netatmo tests ([@joostlek] - [#107902]) +- Enable strict typing for system_log ([@cdce8p] - [#107914]) +- Enable strict typing for rest_command ([@cdce8p] - [#107911]) +- Avoid duplicate search for existing config entries in homekit_controller ([@bdraco] - [#107613]) +- Add snapshot tests to Netatmo platforms ([@joostlek] - [#107932]) +- Snapshot Netatmo devices ([@joostlek] - [#107935]) +- Give name to Netatmo device snapshots ([@joostlek] - [#107938]) +- Warn if integrations call async_show_progress without passing a task ([@emontnemery] - [#107796]) +- Enable strict typing for xiaomi_ble ([@cdce8p] - [#107948]) +- Bump python-holidays to 0.40 ([@jrieger] - [#107888]) +- Add fan mode support to SmartThings fan entity ([@ThePapaG] - [#106794]) +- Add account sensors to electric kiwi integration ([@mikey0000] - [#97681]) +- Add charge cable lock to Tessie ([@Bre77] - [#107212]) +- Remove useless _update function in ESPHome ([@bdraco] - [#107927]) +- Bump zamg to 0.3.5 ([@killer0071234] - [#107939]) +- Add support for Uonet+ Vulcan integration on Python 3.12 ([@Antoni-Czaplicki] - [#107959]) +- Enable strict typing for webhook ([@cdce8p] - [#107946]) +- Fix atag test mutating config entry after its adding to hass ([@bdraco] - [#107603]) +- Add an index for devices and config entries to the entity registry ([@bdraco] - [#107516]) +- Refactor User attribute caching to be safer and more efficient ([@bdraco] - [#96723]) +- Small cleanups to ESPHome ([@bdraco] - [#107924]) +- Use more shorthand attributes in ESPHome fans ([@bdraco] - [#107923]) +- Refactor config entry storage and index ([@bdraco] - [#107590]) +- Enable strict typing for search ([@cdce8p] - [#107912]) +- Use faster is_admin check for websocket state and event subscriptions ([@bdraco] - [#107621]) +- Add TICMeter Energy Metering sensors ([@xmow49] - [#107956]) +- Use prometheus_client module directly ([@cdce8p] - [#107918]) +- Fix duplicate config entry additions in tests ([@bdraco] - [#107984]) +- Add H5106 support to govee-ble ([@bdraco] - [#107781]) +- Avoid entity registry check in live logbook on each state update ([@bdraco] - [#107622]) +- Avoid total_seconds conversion every state write when context is set ([@bdraco] - [#107617]) +- Bump lxml to 5.1.0 ([@bdraco] - [#106696]) +- Fix logger creating many thread locks when reloading the integrations page ([@bdraco] - [#93768]) +- Migrate powerwall unique ids to use the gateway din ([@bdraco] - [#107509]) +- Refactor event time trackers to avoid using nonlocal ([@bdraco] - [#107997]) +- Break long lines in powerwall integration ([@bdraco] - [#108002]) +- Avoid useless time fetch in DataUpdateCoordinator ([@bdraco] - [#107999]) +- Save the HassJob type in wemo discovery to avoid checking it each time ([@bdraco] - [#107998]) +- Update habluetooth to 2.2.0 ([@bdraco] - [#108000]) +- Add route sensors to Tessie ([@Bre77] - [#106530]) +- Remove YAML support from gdacs ([@jbouwh] - [#107962]) +- Remove deprecated YAML import from generic camera ([@jbouwh] - [#107992]) +- Improve apple_tv typing ([@bdraco] - [#107694]) +- Improve calls to async_show_progress in improv_ble ([@emontnemery] - [#107790]) +- Enable strict typing for shopping_list ([@cdce8p] - [#107913]) +- Enable strict typing for trace ([@cdce8p] - [#107945]) +- Enable strict typing for timer ([@cdce8p] - [#107915]) +- Remove deprecated vacuum service from roborock ([@jpbede] - [#107895]) +- Drop facebox integration ([@reedy] - [#107005]) +- Improve calls to async_show_progress in homeassistant_hardware ([@emontnemery] - [#107789]) +- Refactor async_track_utc_time_change to avoid using nonlocal ([@bdraco] - [#108007]) +- Update pipdeptree to 2.13.2 ([@frenck] - [#108009]) +- Fix wifi sensor units in Blink ([@mkmer] - [#107539]) +- Improve calls to async_show_progress in snooz ([@emontnemery] - [#107793]) +- Improve calls to async_show_progress in octoprint ([@emontnemery] - [#107792]) +- Remove file/line annotations after config has been validated ([@emontnemery] - [#107139]) +- Add entity translations to Glances ([@joostlek] - [#107189]) +- Dynamically adjust Netatmo polling frequency ([@cgtobi] - [#106742]) +- Bump plugwise to v0.36.2 ([@bouwew] - [#108012]) +- Fix autoChangeoverActive for lyric LCC devices ([@nprez83] - [#106925]) +- Fix lyric TCC set temperature when in Auto mode ([@nprez83] - [#106853]) +- Update sentry-sdk to 1.39.2 ([@frenck] - [#108010]) +- Add Netatmo fan platform ([@cgtobi] - [#107989]) +- Remove deprecated services from Litterrobot ([@jpbede] - [#107882]) +- Add cached_property to State.name ([@bdraco] - [#108011]) +- Reset UniFi bandwidth sensor when client misses heartbeat ([@wittypluck] - [#104522]) +- Sensibo include mac in diagnostics redact filter ([@gjohansson-ST] - [#107986]) +- Improve the test class used for testing FlowManager.async_show_progress ([@emontnemery] - [#107786]) +- Bump SoCo to 0.30.2 ([@jjlawren] - [#108033]) +- Update shelly bluetooth scanner to version 2.0 ([@bdraco] - [#107917]) +- Update framework for Airthings cloud ([@LaStrada] - [#107653]) +- Update asyncsleepiq to 1.4.2 ([@kbickar] - [#108054]) +- Remove YAML auth setup support from home_connect ([@jbouwh] - [#108072]) +- Enable strict typing for prometheus ([@cdce8p] - [#108025]) +- Enable strict typing for duckdns ([@cdce8p] - [#108022]) +- Bump pychromecast to 13.1.0 ([@emontnemery] - [#108073]) +- Remove obsolete .txt extension from diagnostics download ([@mib1185] - [#108028]) +- Enable strict typing for generic_thermostat ([@cdce8p] - [#108024]) +- Improve gdacs typing ([@cdce8p] - [#108040]) +- Deprecate passing step_id to FlowHandler methods ([@emontnemery] - [#107944]) +- Bump evohome client to 0.4.17 ([@zxdavb] - [#108051]) +- Set webhook `local_only` to True by default ([@jpbede] - [#107670]) +- Improve ffmpeg and freebox typing ([@cdce8p] - [#108026]) +- Harden zone schedule processing for evohome ([@zxdavb] - [#108079]) +- Fix comment for SmartThings fan capability ([@ThePapaG] - [#108086]) +- Enable strict typing for onboarding ([@cdce8p] - [#108097]) +- Add availability to command_line ([@gjohansson-ST] - [#105300]) +- Add tests for System Monitor ([@gjohansson-ST] - [#107891]) +- Fix test_sensor_process_fails test in System Monitor ([@gjohansson-ST] - [#108110]) +- Make ATTR_SERIAL_NUMBER a generic homeassistant constant ([@jbouwh] - [#108106]) +- Improve electric_kiwi generic typing ([@cdce8p] - [#108084]) +- Improve google_translate typing ([@cdce8p] - [#108093]) +- Improve typing for the generic integration ([@cdce8p] - [#108094]) +- Improve risco typing ([@cdce8p] - [#108041]) +- Add Epion integration ([@lhgravendeel] - [#107570]) +- Remove deprecated vacuum services from tuya ([@jpbede] - [#107896]) +- Hide FlowResultType.SHOW_PROGRESS_DONE from frontend ([@emontnemery] - [#107799]) +- Add pylint plugin to check for sorted platforms list ([@jpbede] - [#108115]) +- bump pyfritzhome to 0.6.10 ([@mib1185] - [#108128]) +- Bump holidays to 0.41 ([@gjohansson-ST] - [#108132]) +- Update python-bsblan version to 0.5.18 ([@liudger] - [#108145]) +- Enable compression on frontend index page ([@bdraco] - [#108148]) +- Remove YAML import support for plum_lightpad ([@jbouwh] - [#108114]) +- Remove config import in meteo_france ([@gjohansson-ST] - [#107970]) +- Remove MELCloud YAML import support ([@jbouwh] - [#108113]) +- Add config flow for Ecovacs ([@edenhaus] - [#108111]) +- Avoid keeping config dir in path ([@elupus] - [#107760]) +- Default tuya climate temperature unit to system unit ([@DellanX] - [#108050]) +- Bump opower to 0.2.0 ([@max2697] - [#108067]) +- Handle renaming of evohome zones ([@zxdavb] - [#108089]) +- Add serial_number attribute to MQTT device properties ([@jbouwh] - [#108105]) +- Avoid duplicate timestamp conversions for websocket api and recorder ([@bdraco] - [#108144]) +- Add gateway_mode Select to Plugwise ([@bouwew] - [#108019]) +- Add integration lamarzocco ([@zweckj] - [#102291]) +- Refactor demo vacuum's to only use StateVacuum base class and features ([@jbouwh] - [#108150]) +- Bump vallox_websocket_api to 4.0.3 ([@slovdahl] - [#108109]) +- Add debugging to assist in debugging already configured error ([@allenporter] - [#108134]) +- Add late PR improvements to La Marzocco ([@zweckj] - [#108162]) +- Add Govee local light integration ([@Galorhallen] - [#106697]) +- Remove config import from surepetcare ([@gjohansson-ST] - [#107971]) +- Add Translation for Roborock exceptions ([@Lash-L] - [#105427]) +- Cache commonly called Integration manifest properties ([@bdraco] - [#108141]) +- Delete removed channel devices in Youtube ([@joostlek] - [#107907]) +- Remove config import in Neato ([@gjohansson-ST] - [#107967]) +- Avoid bytes to string to bytes conversion in websocket api ([@bdraco] - [#108139]) +- Add entity name translations to System Monitor ([@gjohansson-ST] - [#107952]) +- Deprecate Python 3.11 ([@frenck] - [#108160]) +- Remove config import from netatmo ([@gjohansson-ST] - [#107972]) +- Wyoming satellite ping and bugfix for local wake word ([@synesthesiam] - [#108164]) +- Set minimal value for modules power - Forecast.solar ([@klaasnicolaas] - [#108166]) +- Upgrade python-mpd2 to v3.1.1 ([@2franix] - [#108143]) +- Bump dbus-fast to 2.21.1 ([@bdraco] - [#108176]) +- Bump `aiokafka` to 0.10.0 ([@bachya] - [#108165]) +- Add decorator typing [yeelight] ([@cdce8p] - [#107598]) +- Move Guardian coordinator to suggested location ([@bachya] - [#108182]) +- Dynamically map state class, device class and UoM in ZHA smart energy metering sensor ([@jpbede] - [#107685]) +- Remove unnecessary OpenUV entity description mixins ([@bachya] - [#108195]) +- Remove unnecessary SimpliSafe entity description mixins ([@bachya] - [#108197]) +- Remove unnecessary PurpleAir entity description mixins ([@bachya] - [#108196]) +- Remove unnecessary Notion entity description mixins ([@bachya] - [#108194]) +- Remove unnecessary AirVisual Pro entity description mixins ([@bachya] - [#108192]) +- Remove unnecessary Ambient PWS entity description mixins ([@bachya] - [#108191]) +- Remove unnecessary RainMachine entity description mixins ([@bachya] - [#108190]) +- Create update coordinator for Systemmonitor ([@gjohansson-ST] - [#106693]) +- Bump actions/cache from 3.3.3 to 4.0.0 (@dependabot - [#108209]) +- Fix translation keys in Tessie ([@Bre77] - [#108203]) +- Add sensor platform to La Marzocco integration ([@zweckj] - [#108157]) +- Implement TechnoVE integration ([@Moustachauve] - [#106029]) +- Change the way an entity is supported in La Marzocco ([@zweckj] - [#108216]) +- Add binary sensor platforms to La Marzocco ([@zweckj] - [#108212]) +- Allow selecting camera in Trafikverket Camera ([@gjohansson-ST] - [#105927]) +- Improve aurora typing ([@cdce8p] - [#108217]) +- Add select platform to La Marzocco integration ([@zweckj] - [#108222]) +- Add number platform to La Marzocco ([@zweckj] - [#108229]) +- Remove unused entity_sources argument from shared_attrs_bytes_from_event ([@bdraco] - [#108210]) +- Disable Python 3.12 incompatible integrations ([@frenck] - [#108163]) +- Add update platform to La Marzocco ([@zweckj] - [#108235]) +- Add button platform to La Marzocco ([@zweckj] - [#108236]) +- Assert default response from conversation trigger ([@emontnemery] - [#108231]) +- Remove deprecated redundant dry and fan modes from `zwave_js` climates ([@jbouwh] - [#108124]) +- Decrease fitbit logging verbosity on connection error ([@MartinHjelmare] - [#108228]) +- Fix state after La Marzocco update ([@zweckj] - [#108244]) +- Improve systemmonitor generic typing ([@cdce8p] - [#108220]) +- Switch for swiss_public_transport to unique_id instead of unique_entry ([@miaucl] - [#107910]) +- Let zigpy decide on default manufacturer id ([@elupus] - [#108257]) +- Remove legacy VacuumEntity base class support ([@jbouwh] - [#108189]) +- Allow multiple config entries in Honeywell ([@mkmer] - [#108263]) +- Remove unused variables in honeywell ([@mkmer] - [#108252]) +- Fix apple_tv IP Address not being updated from discovery ([@bdraco] - [#107611]) +- Fix benign typo in entity registry ([@bdraco] - [#108270]) +- Bump github/codeql-action from 3.23.0 to 3.23.1 (@dependabot - [#108275]) +- Small cleanups to the websocket api handler ([@bdraco] - [#108274]) +- Avoid many replace calls in find_next_time_expression_time ([@bdraco] - [#108273]) +- Add state caching to button entities ([@bdraco] - [#108272]) +- Enable strict typing for config ([@cdce8p] - [#108023]) +- Improve daikin typing ([@cdce8p] - [#108039]) +- Add diagnostics to La Marzocco ([@zweckj] - [#108240]) +- Bump lmcloud to 0.4.35 ([@zweckj] - [#108288]) +- Add tests to flexit_bacnet integration ([@lellky] - [#108291]) +- Add test for failed initialization in Flexit BACnet ([@joostlek] - [#108294]) +- Add coordinator to Flexit bacnet ([@lellky] - [#108295]) +- Don't always set first thread dataset as preferred ([@emontnemery] - [#108278]) +- Small speed up to checking core state ([@bdraco] - [#107845]) +- Add task to install all requirements of an integration ([@edenhaus] - [#108262]) +- Improve august typing (1) ([@cdce8p] - [#108325]) +- Improve august typing (2) ([@cdce8p] - [#108327]) +- Fix remote control codes for jvc_projector ([@SteveEasley] - [#108253]) +- Improve api typing ([@cdce8p] - [#108307]) +- Add iBeacon UUID allowlist ([@chatziko] - [#104790]) +- Improve august typing (3) ([@cdce8p] - [#108329]) +- Improve august typing (4) ([@cdce8p] - [#108331]) +- Improve august typing (5) ([@cdce8p] - [#108332]) +- Improve person typing ([@cdce8p] - [#108218]) +- Adjust require_admin decorator typing ([@cdce8p] - [#108306]) +- Improve ffmpeg* typing ([@cdce8p] - [#108092]) +- Bump plugwise to v0.36.3 ([@bouwew] - [#108347]) +- Bump pyDuotecno to 2024.1.2 ([@Cereal2nd] - [#108314]) +- Bump orjson to 3.9.12 ([@bdraco] - [#108350]) +- Fix homekit_controller test ([@emontnemery] - [#108375]) +- Avoid json default fallback for area registry ([@bdraco] - [#108358]) +- Enable strict typing for bluetooth_adapters ([@cdce8p] - [#108365]) +- Enable strict typing for api ([@cdce8p] - [#108363]) +- Enable strict typing for default_config ([@cdce8p] - [#108366]) +- Enable strict typing for my ([@cdce8p] - [#108369]) +- Enable strict typing for map ([@cdce8p] - [#108368]) +- Enable strict typing for intent_script ([@cdce8p] - [#108367]) +- Avoid json encoder default fallback for APIComponentsView ([@bdraco] - [#108359]) +- Improve ifttt typing ([@cdce8p] - [#108308]) +- Use shorthand attributes for mobile_app sensor platforms ([@bdraco] - [#108353]) +- Add icon to entity registry list for display ([@frenck] - [#108313]) +- Expose TimeoutError during google_travel_time config_flow ([@eifinger] - [#108179]) +- Update dwdwfsapi to 1.0.7 ([@cdce8p] - [#108377]) +- Add binary sensor to MotionMount integration ([@RJPoelstra] - [#107659]) +- Update types packages ([@cdce8p] - [#108371]) +- Add support for MQTT based ecovacs vacuums ([@edenhaus] - [#108167]) +- Add icon translations support ([@frenck] - [#103294]) +- Update coverage to 7.4.0 ([@cdce8p] - [#108370]) +- Improve tplink_lte typing ([@cdce8p] - [#108393]) +- Update boto3 to 1.33.13 and aiobotocore to 2.9.1 ([@cdce8p] - [#108384]) +- Add icon translations to Anova ([@joostlek] - [#108399]) +- Add icon translations to AirQ ([@joostlek] - [#108402]) +- Add icon translations to Aurora ([@joostlek] - [#108410]) +- Add icon translations to August ([@joostlek] - [#108396]) +- Add icon translations to Aussie Broadband ([@joostlek] - [#108409]) +- Add icon translations to awair ([@joostlek] - [#108408]) +- Add icon translations to Airnow ([@joostlek] - [#108403]) +- Add icon translations to AsusWRT ([@joostlek] - [#108397]) +- Add icon translations to Airthings BLE ([@joostlek] - [#108401]) +- Add icon translations to Ambient station ([@joostlek] - [#108400]) +- Add icon translations to Aseko ([@joostlek] - [#108398]) +- Use async_create_clientsession for enigma2 ([@autinerd] - [#108395]) +- Add alarm_control_panel icon translations ([@frenck] - [#108413]) +- Add button icon translations ([@frenck] - [#108415]) +- Add calendar icon translations ([@frenck] - [#108416]) +- Update psutil to 5.9.8 ([@frenck] - [#108421]) +- Add air_quality icon translations ([@frenck] - [#108420]) +- Bump thermopro-ble to 0.8.0 ([@bdraco] - [#108319]) +- Avoid json encoder default fallback when serializing config ([@bdraco] - [#108360]) +- Add light icon translations ([@frenck] - [#108414]) +- Mark flaky fritz update test as xfail ([@frenck] - [#108447]) +- Add climate icon translations ([@frenck] - [#108418]) +- Add date icon translations ([@frenck] - [#108448]) +- Add datetime icon translations ([@frenck] - [#108449]) +- Add sensor icon translations ([@frenck] - [#108450]) +- Add image icon translations ([@frenck] - [#108455]) +- Add number icon translations ([@frenck] - [#108452]) +- Add event icon translations ([@frenck] - [#108453]) +- Add scene icon translations ([@frenck] - [#108456]) +- Add icon translations to AVM FRITZ!Box Call Monitor ([@jrieger] - [#108417]) +- Add camera icon translations ([@frenck] - [#108419]) +- Add lock icon translations ([@frenck] - [#108467]) +- Ensure pre-commit runs hassfest when icons change ([@frenck] - [#108470]) +- Add text icon translations ([@frenck] - [#108457]) +- Add humidifier icon translations ([@frenck] - [#108465]) +- Add geo_location icon translations ([@frenck] - [#108463]) +- Add fan icon translations ([@frenck] - [#108461]) +- Use right state class for volume and timestamp sensor in bthome ([@jpbede] - [#107675]) +- Add siren icon translations ([@frenck] - [#108473]) +- Add icon translations to Tankerkoenig ([@jrieger] - [#108499]) +- Update knx-frontend to 2024.1.20.105944 ([@farmio] - [#108511]) +- Upgrade nibe to 2.7.0 ([@elupus] - [#108507]) +- Add icon translations to HomeWizard Energy ([@frenck] - [#108506]) +- Add icon translations to Plugwise ([@frenck] - [#108498]) +- Add water heater icon translations ([@frenck] - [#108491]) +- Add weather icon translations ([@frenck] - [#108488]) +- Add media player icon translations ([@frenck] - [#108486]) +- Add wake word icon translations ([@frenck] - [#108482]) +- Add update icon translations ([@frenck] - [#108481]) +- Add valve icon translations ([@frenck] - [#108480]) +- Add vacuum icon translations ([@frenck] - [#108479]) +- Bump bthome-ble to 3.5.0 ([@Ernst79] - [#108475]) +- Add tts icon translations ([@frenck] - [#108476]) +- Add todo icon translations ([@frenck] - [#108477]) +- Add select icon translations ([@frenck] - [#108472]) +- Add stt icon translations ([@frenck] - [#108474]) +- Add remote icon translations ([@frenck] - [#108469]) +- Add lawn mower icon translations ([@frenck] - [#108466]) +- Add cover icon translations ([@frenck] - [#108460]) +- Fix hassfest icon schema for service only ([@frenck] - [#108494]) +- Remove unused TypeVar from config.py ([@emontnemery] - [#108495]) +- Add time icon translations ([@frenck] - [#108458]) +- Change calendar icon based on state ([@jrieger] - [#108451]) +- Add sun icon translations ([@jrieger] - [#108462]) +- Add nut icon translations ([@jrieger] - [#108471]) +- Remove OrderedDict from auth_store ([@bdraco] - [#108546]) +- Add icon translations for Pegelonline ([@mib1185] - [#108554]) +- Always load auth storage at startup ([@bdraco] - [#108543]) +- Ensure icon translations aren't the same as the default ([@frenck] - [#108568]) +- Ensure button platform does not restore unavailable state ([@bdraco] - [#108316]) +- Add sensors to the flexit_bacnet integration ([@lellky] - [#108297]) +- Add binary sensors to flexit_bacnet integration ([@lellky] - [#108571]) +- Add icon translations for lamarzocco ([@zweckj] - [#108569]) +- Add icon translation to Jellyfin ([@jrieger] - [#108559]) +- Add icon translations to Roborock ([@jrieger] - [#108508]) +- Add icon translations to DWD Weather Warnings ([@jrieger] - [#108501]) +- Make remaining WLED entities translatable ([@jpbede] - [#108534]) +- Add unique id to geonetnz_volcano sensors ([@exxamalte] - [#108556]) +- Icon translation for imap mail count sensor ([@jbouwh] - [#108576]) +- Add authentication to tplink integration for newer devices ([@sdb9696] - [#105143]) +- Fix numbered list in github config flow ([@emontnemery] - [#108587]) +- Add bthome event platform ([@bdraco] - [#108268]) +- Add missing property in flexit bacnet test ([@lellky] - [#108606]) +- Add icon translations to co2signal ([@jpbede] - [#108611]) +- Use more shorthand attributes in tplink ([@bdraco] - [#108284]) +- Add icon translations to Withings ([@joostlek] - [#108385]) +- Tweak evohome code quality ([@zxdavb] - [#107596]) +- Fix FlowHandler show progress ([@emontnemery] - [#108586]) +- Send recurrence data when updating a task in todoist ([@boralyl] - [#108269]) +- Update August diagnostics.py to redact contentToken ([@codyc1515] - [#108626]) +- Significantly reduce websocket api connection auth phase latency ([@bdraco] - [#108564]) +- Speed up run time of admin services by using HassJob ([@bdraco] - [#108623]) +- Avoid recreating persistent notification update function when subscribing ([@bdraco] - [#108624]) +- Small performance improvements to handing revoke token callbacks ([@bdraco] - [#108625]) +- Refactor async_listen_once to remove nonlocal ([@bdraco] - [#108627]) +- Avoid string decode/encode round trip in websocket_api get_services ([@bdraco] - [#108632]) +- Small cleanups to async_get_all_descriptions ([@bdraco] - [#108633]) +- Bump habluetooth to 2.3.1 ([@bdraco] - [#108628]) +- Small cleanup to zone async_active_zone ([@bdraco] - [#108629]) +- Fix unifi test_tracked_clients test ([@bdraco] - [#108638]) +- Remove numbering from GitHub progress step to not deal with styling of list entries ([@ludeeus] - [#108639]) +- Remove obsolete services.yaml and translations from WLED ([@jpbede] - [#108605]) +- Add icon translations to WLED ([@jpbede] - [#108604]) +- Add icon translations to Abode ([@joostlek] - [#108407]) +- Bump songpal dependency to 0.16.1 ([@rytilahti] - [#108637]) +- Use default icon in Agent DVR ([@joostlek] - [#108405]) +- Add icon translations to Adguard ([@joostlek] - [#108406]) +- Reduce lock contention when all translations are already cached ([@bdraco] - [#108634]) +- Update python-slugify to 8.0.1 ([@cdce8p] - [#108373]) +- Add binary_sensor to Ecovacs ([@edenhaus] - [#108544]) +- Update Pillow to 10.2.0 ([@frenck] - [#108422]) +- Convert AreaEntry to dataclass ([@emontnemery] - [#108648]) +- Bump asyncsleepiq to 1.5.2 ([@jmwaldrip] - [#108431]) +- Add device to Lutron ([@joostlek] - [#107467]) +- Add cloud tts entity ([@MartinHjelmare] - [#108293]) +- Add helper function to update and reload config entry to config flow ([@jpbede] - [#108034]) +- Cleanup Discovergy config flow ([@jpbede] - [#108381]) +- Update iOS configuration adding Action toggles to show in CarPlay and Watch ([@bgoncal] - [#108355]) +- Move core fundamental components into bootstrap ([@frenck] - [#105560]) +- Prevent runtime issue during entity registration in coordinator of AVM Fritz!Tools ([@mib1185] - [#108667]) +- Use snapshot testing in Airly sensor ([@joostlek] - [#108608]) +- Add icon translations to Airly ([@joostlek] - [#108404]) +- Add time to charge sensor to Tessie ([@Bre77] - [#108342]) +- Fix flaky sensibo test ([@jpbede] - [#108669]) +- Use new config entry update/abort helper in esphome ([@bdraco] - [#108672]) +- Use new config entry update/abort helper in august ([@bdraco] - [#108673]) +- Use new config entry update/abort helper in powerwall ([@bdraco] - [#108674]) +- Use new config entry update/abort helper in bthome ([@bdraco] - [#108676]) +- Use new config entry update/abort helper in xiaomi_ble ([@bdraco] - [#108677]) +- Use new config entry update/abort helper in yalexs_ble ([@bdraco] - [#108675]) +- Use new config entry update/abort helper in isy994 ([@bdraco] - [#108678]) +- Use new config entry update/abort helper in synology_dsm ([@bdraco] - [#108682]) +- Use new config entry update/abort helper in enphase_envoy ([@bdraco] - [#108679]) +- Use new config entry update/abort helper in shelly ([@bdraco] - [#108684]) +- Use new config entry update/abort helper in samsungtv ([@bdraco] - [#108683]) +- Use new config entry update/abort helper in onvif ([@bdraco] - [#108680]) +- Extend config entry update/abort helper to also update unique id ([@jpbede] - [#108681]) +- Use new config entry update/abort helper in enphase-envoy (part 2) ([@bdraco] - [#108689]) +- Use new config entry update/abort helper in apple_tv ([@bdraco] - [#108688]) +- Use new config entry update/abort helper in sense ([@bdraco] - [#108691]) +- Handle tplink credential change at run time ([@bdraco] - [#108692]) +- Refactor service enumeration methods to better match existing use cases ([@bdraco] - [#108671]) +- Use new config entry update/abort helper in bond ([@bdraco] - [#108690]) +- Add zeroconf to TechnoVE integration ([@Moustachauve] - [#108340]) +- Add OUI 5C628B to tplink ([@bdraco] - [#108699]) +- Bump habluetooth to 2.4.0 ([@bdraco] - [#108695]) +- Convert getting and removing access tokens to normal functions ([@bdraco] - [#108670]) +- Store area registry entries in a UserDict ([@emontnemery] - [#108656]) +- Group sensor calculate attributes ([@gjohansson-ST] - [#106972]) +- Fix for justnimbus integration ([@kvanzuijlen] - [#99212]) +- Scrub internal data for newer tplink devices ([@rytilahti] - [#108704]) +- Add Homeassistant Analytics Insights integration ([@joostlek] - [#107634]) +- Add sensor platform to Proximity ([@mib1185] - [#101497]) +- Add config flow for Time & Date ([@gjohansson-ST] - [#104183]) +- Use new config entry update/abort handler in co2signal ([@jpbede] - [#108715]) +- Bump python-homeassistant-analytics to 0.6.0 ([@joostlek] - [#108713]) +- Add ZHA entities for snzb06p ([@peterkh] - [#107379]) +- Add airtouch5 ([@danzel] - [#98136]) +- Add set_conversation_response script action ([@emontnemery] - [#108233]) +- Return PRESET_NONE in Honeywell ([@mkmer] - [#108599]) +- Remove home_plus_control and mark as virtual integration supported by Netatmo ([@jpbede] - [#107587]) +- Bump AIOSomecomort to 0.0.25 ([@mkmer] - [#107815]) +- Use new config entry update/abort handler in Honeywell ([@mkmer] - [#108726]) +- Improve tests of script trace ([@emontnemery] - [#108717]) +- Bump pymodbus to v2.6.3 ([@janiversen] - [#108736]) +- Add sensors to Ecovacs ([@edenhaus] - [#108686]) +- Improve vizio typing ([@cdce8p] - [#108042]) +- Get modbus coverage back to 100% ([@janiversen] - [#108734]) +- Randomize thread network names ([@emontnemery] - [#108302]) +- Fix intent loading and incorporate unmatched entities more ([@synesthesiam] - [#108423]) +- Pause Wyoming satellite on mute ([@synesthesiam] - [#108322]) +- Add 3C52A1 oui to tplink for tapo l5 devices ([@bdraco] - [#108750]) +- Add translation placeholders for TPLink power strip ([@joostlek] - [#108710]) +- Bumb python-homewizard-energy to 4.2.1 ([@DCSBL] - [#108738]) +- Use fixed state icon for climate domain ([@piitaya] - [#108723]) +- Add fan attributes icon translations ([@piitaya] - [#108722]) +- Add humidifier attributes icon translations ([@piitaya] - [#108718]) +- Add LeaOne integration ([@bdraco] - [#108617]) +- Bump lupupy to 0.3.2 ([@suaveolent] - [#108756]) +- Add more device info to foscam camera ([@krmarien] - [#108177]) +- Handle IP address changes properly for tplink ([@sdb9696] - [#108731]) +- Add bang_olufsen integration ([@mj23000] - [#93462]) +- Parse template result in async_render_with_possible_json_value ([@danieldotnl] - [#99670]) +- Bump py-switchbot-api to 2.0.0 ([@jklausa] - [#108721]) +- Bump comments in light indicating backwards compatibility plan ([@emontnemery] - [#108770]) +- Add ZHA metering summation received sensor ([@jeverley] - [#107576]) +- Fix race when deleting an automation ([@emontnemery] - [#108772]) +- Fix light color mode in fritzbox ([@emontnemery] - [#108758]) +- Fix light color mode in tplink ([@emontnemery] - [#108760]) +- Fix light color mode in advantage_air ([@emontnemery] - [#108757]) +- Fix light color mode in netatmo ([@emontnemery] - [#108759]) +- Improve tests of script trace ([@emontnemery] - [#108733]) +- Adjust color_mode checks when lights render effects ([@emontnemery] - [#108737]) +- Add invert option to switch_as_x ([@emontnemery] - [#107535]) +- Fix light color mode in tradfri ([@emontnemery] - [#108761]) +- Add Ecovacs select entities ([@edenhaus] - [#108766]) +- Stabilize alexa discovery ([@jbouwh] - [#108787]) +- Add Shelly CoAP port to default container port ([@chemelli74] - [#108016]) +- Add icon to areas ([@emontnemery] - [#108650]) +- Bump python-roborock to 39.1 ([@Lash-L] - [#108751]) +- Fix changed_variables in automation and script traces ([@emontnemery] - [#108788]) +- Complete device tracker entity tests ([@MartinHjelmare] - [#108768]) +- Avoid copying translations for single components ([@bdraco] - [#108645]) +- Bump area registry storage minor version to 4 ([@jpbede] - [#108798]) +- Set right icon for set_humidity climate service ([@piitaya] - [#108801]) +- Add write_registers support for Fan Mode in modbus ([@crug80] - [#108053]) +- Bump aioshelly to 8.0.1 ([@bdraco] - [#108805]) +- Add super chlorination services to screenlogic ([@dieselrabbit] - [#108048]) +- Add Ecovacs diagnostics ([@edenhaus] - [#108791]) +- Add expiration of unused refresh tokens ([@mib1185] - [#108428]) +- Bump thermopro-ble to 0.9.0 ([@h3ss] - [#108820]) +- Fix ESPHome not fully removing entities when entity info changes ([@bdraco] - [#108823]) +- Convert http auth internals to normal functions ([@bdraco] - [#108815]) +- Add basic tests for powerview scenes ([@bdraco] - [#108818]) +- Fix lights reporting unsupported colormodes in deCONZ ([@Kane610] - [#108812]) +- Update pytedee_async to 0.2.12 ([@zweckj] - [#108800]) +- Fix matter color modes ([@MartinHjelmare] - [#108804]) +- Fix light color mode in zwave_js ([@emontnemery] - [#108783]) +- Do not try to cleanup invalid config entries without an AccessoryPairingID ([@bdraco] - [#108830]) +- Bump dorny/paths-filter from 2.11.1 to 2.12.0 (@dependabot - [#108826]) +- Bump python-kasa to 0.6.1 ([@rytilahti] - [#108831]) +- Add 'last_reset' for 'total' state_class template sensor ([@RoboMagus] - [#100806]) +- Add support for externally connected utility devices in HomeWizard ([@DCSBL] - [#100684]) +- Update Lutron in callback ([@joostlek] - [#108779]) +- Add Teslemetry Integration ([@Bre77] - [#108147]) +- Add Huum integration ([@frwickst] - [#106420]) +- Use feed name as entity name in GeoJSON ([@codyc1515] - [#108753]) +- Use entity translations placeholders in HomeWizard ([@DCSBL] - [#108741]) +- Make device tracker latitude and longitude optional ([@MartinHjelmare] - [#108838]) +- Use Zigpy definition objects in ZHA cluster handlers ([@dmulcahey] - [#108383]) +- Bump blinkpy to 0.22.6 ([@mkmer] - [#108727]) +- Bump pyhuum to 0.7.10 ([@frwickst] - [#108853]) +- Address late review on auth ([@mib1185] - [#108852]) +- Add ConfigFlow for Lupusec ([@suaveolent] - [#108740]) +- Add utility meter option for the sensor to always be available ([@dougiteixeira] - [#103481]) +- Filter only utility_meter select entities in reset service ([@dgomes] - [#108855]) +- Add switch to flexit bacnet integration ([@lellky] - [#108866]) +- Fix ESPHome color modes for older firmwares ([@bdraco] - [#108870]) +- Bump aiocomelit to 0.8.2 ([@chemelli74] - [#108862]) +- Add binary sensor platform to JVC Projector ([@msavazzi] - [#108668]) +- Apply consistent naming to ZHA cluster handler implementations ([@dmulcahey] - [#108851]) +- Small cleanup to entity platform translation fetching ([@bdraco] - [#108890]) +- Speed up security filter middleware ([@bdraco] - [#108703]) +- Small speed up to listing config entries in the websocket api ([@bdraco] - [#108892]) +- Remove "max_current" from TechnoVE sensors ([@Moustachauve] - [#108898]) +- Add entity registry test to Withings ([@joostlek] - [#108900]) +- Add webhook support to tedee integration ([@zweckj] - [#106846]) +- Use unknown color_mode for MQTT json lights if color mode is not set ([@jbouwh] - [#108909]) +- Fix light color mode in advantage_air ([@emontnemery] - [#108875]) +- Deprecate legacy Proximity entity ([@mib1185] - [#108730]) +- Add Ecovacs image entities ([@edenhaus] - [#108924]) +- Switch imap to use async_update_reload_and_abort helper ([@bdraco] - [#108935]) +- Switch unifiprotect to use async_update_reload_and_abort helper ([@bdraco] - [#108934]) +- Convert referenced registry functions to use cached_property ([@bdraco] - [#108895]) +- Improved Assist debug ([@synesthesiam] - [#108889]) +- Refactor logbook helpers to reduce splits and lookups ([@bdraco] - [#108933]) +- Add more Thread vendor to brand mappings ([@agners] - [#108899]) +- Matter sensors for air quality measurements ([@matt7aylor] - [#108173]) +- Add comment to explain not using the core API in MQTT client ([@jbouwh] - [#108942]) +- Reorganize ZHA device availability code ([@dmulcahey] - [#108856]) +- Add snapshot testing to Tessie ([@Bre77] - [#108346]) +- Replace modbus number_validator by HA standard ([@janiversen] - [#108939]) +- Add model check to ZHA Sonoff manufacturer specific cluster handler ([@dmulcahey] - [#108947]) +- Use version property in Blink ([@mkmer] - [#108911]) +- Bump pyenphase to 1.19.0 ([@catsmanac] - [#108951]) +- Bump cryptography to 42.0.1 and pyOpenSSL to 24.0.0 ([@bdraco] - [#108956]) +- Add options flow to Analytics Insights ([@joostlek] - [#108716]) +- Separate ecobee start and end date/times for create_vacation service ([@myztillx] - [#107255]) +- Bump pytrafikverket to 0.3.10 ([@gjohansson-ST] - [#108984]) +- Fix error when passing a whole number to location selector ([@karwosts] - [#108952]) +- Add enum sensor to Vogel's MotionMount integration ([@RJPoelstra] - [#108643]) +- Add device info to lupusec ([@suaveolent] - [#108910]) +- Add clima support to Comelit integration ([@chemelli74] - [#108858]) +- Bump tesla-fleet-api to 0.2.3 ([@Bre77] - [#108992]) +- Added type information to lupusec ([@suaveolent] - [#109004]) +- Improve display of errors with no message in script trace ([@emontnemery] - [#108735]) +- Fix statuses for ZHA attribute reporting configuration event ([@dmulcahey] - [#108532]) +- Add new virtual integration for opower City of Austin Utilities provider ([@max2697] - [#108337]) +- Update pylutron-caseta to 0.19.0 ([@eclair4151] - [#108987]) +- Remove extra confirmation step in tplink authenticated discovery flow ([@bdraco] - [#109016]) +- Bump dorny/paths-filter from 2.12.0 to 3.0.0 (@dependabot - [#108894]) +- Add translation placeholder to Hue ([@joostlek] - [#108848]) +- Add tests to Teslemetry ([@Bre77] - [#108884]) +- Remove follow symlinks support from CachingStaticResource ([@bdraco] - [#109015]) +- Separate fixture in Sensibo ([@gjohansson-ST] - [#109000]) +- Add phase entities to Enphase Envoy ([@catsmanac] - [#108725]) +- Bump pytest-asyncio to 0.23.4 ([@joostlek] - [#109027]) +- Bump python-homewizard-energy to v4.2.2 ([@joostlek] - [#109038]) +- Add pylint plugin to check if coordinator is placed in its own module ([@jpbede] - [#108174]) +- Update attributes in Entity.__init__ in matter ([@emontnemery] - [#108877]) +- Move asyncio lock in Teslemetry ([@Bre77] - [#109044]) +- Add binary sensors to TechnoVE integration ([@Moustachauve] - [#108938]) +- Bump github/codeql-action from 3.23.1 to 3.23.2 (@dependabot - [#109039]) +- Fix Permobil eula error ([@IsakNyberg] - [#107290]) +- Simplify HomeWizard sensor names ([@DCSBL] - [#108854]) +- Remove deprecated event_loop fixtures in tests ([@cdce8p] - [#109048]) +- Avoid re-encoding the hassio command URL each request ([@bdraco] - [#109031]) +- Set hassio api json encoding to avoid looking it up every request ([@bdraco] - [#109032]) +- Add new sensors exposed by HomeWizard kWh meter ([@DCSBL] - [#108850]) +- Add bring integration ([@miaucl] - [#108027]) +- Bump aio-geojson-nsw-rfs-incidents to 0.7 ([@exxamalte] - [#108885]) +- Code quality for Shelly tests ([@chemelli74] - [#109054]) +- Allow delete_all_refresh_tokens to delete a specific token_type ([@karwosts] - [#106119]) +- Fix zwave_js set_config_parameter WS api regression ([@kpine] - [#109042]) +- Add default parameter to as_datetime template function/filter ([@TheFes] - [#107229]) +- Use constants instead of literals for api ([@jpbede] - [#105955]) +- Use unique artifact names for db jobs [ci] ([@cdce8p] - [#108653]) +- Allow system and helper integrations to provide entity_component icons ([@piitaya] - [#109045]) +- Add discovery support for the 2023 pro check model to mopkea ([@bdraco] - [#109033]) +- Prepare Analytics insights for more sensors ([@joostlek] - [#108976]) +- Raise ValueError when `last_reset` set and not `total` state class ([@jpbede] - [#108391]) +- Reject unifi uptime sensor updates if time delta is small ([@BHSPitMonkey] - [#108464]) +- Don't check SSL certificate retrieving webos image ([@emichael] - [#104014]) +- Add lutron fan entity ([@wilburCforce] - [#107402]) +- Bump python-kasa to 0.6.2 ([@rytilahti] - [#109064]) +- Try to reconnect to UniFi on 403 ([@Kane610] - [#109067]) +- Fix light color mode in govee_light_local ([@emontnemery] - [#108762]) +- Bump deebot-client to 5.0.0 ([@edenhaus] - [#109066]) +- Use right initial attribute value for demo climate ([@piitaya] - [#108719]) +- Add doors and charge cable binary sensors to Tessie ([@Bre77] - [#107172]) +- Bump tesla-powerwall to 0.5.1 ([@bdraco] - [#109069]) +- Extract foscam base entity for reuse ([@krmarien] - [#108893]) +- Update apprise to 1.7.2 ([@frenck] - [#109071]) +- Update colorlog to 6.8.2 ([@frenck] - [#109072]) +- Bump python-matter-server to version 5.3.0 ([@marcelveldt] - [#109068]) +- Fix duplicate Windy values showing in automations state selector ([@codyc1515] - [#108062]) +- Code quality for Comelit tests ([@chemelli74] - [#109077]) +- Don't remove zwave_js devices automatically ([@raman325] - [#98145]) +- Update calendar tests to use mock entities instead of demo platform ([@allenporter] - [#105317]) +- Bump/flush mypy cache ([@frenck] - [#109101]) +- Bump simplisafe-python to 2024.01.0 ([@peebles] - [#109091]) +- Code quality for Shelly integration ([@chemelli74] - [#109061]) +- Add support for ignoring zwave_js device config file changes ([@raman325] - [#108990]) +- Add configure option to Vodafone Station for consider home ([@chemelli74] - [#108594]) +- Fix tessie tests ([@Bre77] - [#109113]) +- Add person icon translations ([@piitaya] - [#109106]) +- Update attrs to 23.2.0 ([@cdce8p] - [#109115]) +- Improve invalid error messages in the config flows ([@edenhaus] - [#108075]) +- Add device tracker icon translations ([@piitaya] - [#109109]) +- Remove erroneous reference to Google from Calendar integration ([@codyc1515] - [#109089]) +- Intents package combines sentences/responses per language ([@synesthesiam] - [#109079]) +- Bump pytechnove to 1.2.1 ([@Moustachauve] - [#109098]) +- Clean up Fritz options flow ([@chemelli74] - [#109111]) +- Bump python-matter-server to 5.3.1 ([@marcelveldt] - [#109118]) +- Add script icon translations ([@piitaya] - [#109107]) +- Add input boolean icon translations ([@piitaya] - [#109108]) +- Add missing status's to Nut ([@cbrherms] - [#109085]) +- Update coverage to 7.4.1 ([@cdce8p] - [#109116]) +- Clean up ZHA cover entity and add support for inverting cover entities derived from the window covering cluster ([@dmulcahey] - [#108238]) +- Fix readme images ([@xMohamd] - [#108767]) +- Flow rate unit conversions and device class ([@elupus] - [#106077]) +- Add TURN_OFF and TURN_ON to ClimateEntityFeature ([@gjohansson-ST] - [#101673]) +- Add TURN_ON/OFF ClimateEntityFeature for Shelly ([@gjohansson-ST] - [#108967]) +- Update climate snapshots to fix CI ([@edenhaus] - [#109141]) +- Add support for custom integrations in Analytics Insights ([@joostlek] - [#109110]) +- Add TURN_ON/OFF ClimateEntityFeature for smartthings ([@gjohansson-ST] - [#108979]) +- Add TURN_ON/OFF ClimateEntityFeature for ZHA ([@gjohansson-ST] - [#108978]) +- Add TURN_ON/OFF ClimateEntityFeature for Balboa ([@gjohansson-ST] - [#109139]) +- Add TURN_ON/OFF ClimateEntityFeature for Vicare ([@gjohansson-ST] - [#109135]) +- Add TURN_ON/OFF ClimateEntityFeature for TOLO Sauna ([@gjohansson-ST] - [#108965]) +- Add TURN_ON/OFF ClimateEntityFeature for Overkiz ([@gjohansson-ST] - [#109132]) +- Add TURN_ON/OFF ClimateEntityFeature for Sensibo ([@gjohansson-ST] - [#108962]) +- Add TURN_ON/OFF ClimateEntityFeature for IntesisHome ([@gjohansson-ST] - [#109134]) +- Add TURN_ON/OFF ClimateEntityFeature for Fritzbox ([@gjohansson-ST] - [#108964]) +- Add TURN_ON/OFF ClimateEntityFeature for Adax ([@gjohansson-ST] - [#108966]) +- Add TURN_ON/OFF ClimateEntityFeature for Vera ([@gjohansson-ST] - [#108969]) +- Add TURN_ON/OFF ClimateEntityFeature for Nexia ([@gjohansson-ST] - [#108970]) +- Add TURN_ON/OFF ClimateEntityFeature for Advantage Air ([@gjohansson-ST] - [#108971]) +- Add TURN_ON/OFF ClimateEntityFeature for CoolMasterNet ([@gjohansson-ST] - [#108972]) +- Add TURN_ON/OFF ClimateEntityFeature for Netatmo ([@gjohansson-ST] - [#108973]) +- Add TURN_ON/OFF ClimateEntityFeature for Mill ([@gjohansson-ST] - [#108977]) +- Update Ecovacs binary sensor keys ([@edenhaus] - [#109145]) +- Add check for valid initial_suggested_unit ([@edenhaus] - [#108902]) +- Set TURN_ON and TURN_OFF feature on MQTT climate entities ([@jbouwh] - [#109146]) +- Update reload icons for automation and person service ([@piitaya] - [#109147]) +- Add event entity to Xiaomi-BLE integration ([@Ernst79] - [#108811]) +- Add TURN_ON/OFF ClimateEntityFeature for HomeKit Device ([@gjohansson-ST] - [#109137]) +- Simplify MQTT device triggers in automations ([@jbouwh] - [#108309]) +- Speed up listing issues via the repairs websocket api ([@bdraco] - [#109149]) +- Add missing ZHA metering device types ([@jeverley] - [#109126]) +- Filter ZHA light group color modes ([@puddly] - [#108861]) +- Remove Shelly RSSI sensor if Wi-FI is not configured ([@chemelli74] - [#108390]) +- Create an issue when database backups fail because the system runs out of resources ([@bdraco] - [#109020]) +- Fix precipitation typo in icons ([@karwosts] - [#109156]) +- Fix ZHA cover inversion handling missing attributes ([@puddly] - [#109151]) +- Handle deprecated cloud tts voice ([@MartinHjelmare] - [#109124]) +- Add a repair issue for Shelly devices with unsupported firmware ([@chemelli74] - [#109076]) +- Bump zha-quirks to 0.0.110 ([@TheJulianJES] - [#109161]) +- Add Nextcloud update entity ([@escoand] - [#106690]) +- Add DurationConverter ([@edenhaus] - [#108865]) +- Fix ZHA handling of power factor ElectricalMeasurement attribute sensor ([@jeverley] - [#107641]) +- Bump regenmaschine to 2024.01.0 ([@bdraco] - [#109157]) +- Convert gather calls into TaskGroups ([@bubonicbob] - [#109010]) +- Fix "deprecated" typo in ZHA smartenergy comment ([@TheJulianJES] - [#109173]) +- Fix Ecovacs duration sensors ([@edenhaus] - [#108868]) +- Store preferred border agent extended address for each thread dataset ([@emontnemery] - [#109065]) +- Bump python-matter-server to 5.4.0 ([@marcelveldt] - [#109178]) +- Fix schema validation for product_id in picnic integration ([@codesalatdev] - [#109083]) +- Bumb python-homewizard-energy to 4.3.0 ([@DCSBL] - [#109131]) +- Add alexa PowerController on enabled features for climate entities ([@jbouwh] - [#109174]) +- Migrate Tuya integration to new sharing SDK ([@frenck] - [#109155]) +- Add ZHA ZCL thermostat entities ([@Caius-Bonus] - [#106563]) +- Add OnOff trait for climate entities in google_assistant ([@jbouwh] - [#109160]) +- Add generic typing for powerwall sensors ([@bubonicbob] - [#109008]) +- Add update platform to ZHA (bumps zigpy to 0.61.0) ([@dmulcahey] - [#107612]) +- Add additional entities for the Aqara E1 curtain motor to ZHA ([@dmulcahey] - [#108243]) +- Add icon and state translations for zwave_js sensors ([@raman325] - [#109186]) +- Change the suggested energy units to kWh ([@bubonicbob] - [#109184]) +- allow songcast source to be stopped and played ([@bazwilliams] - [#109180]) +- Ensure bluetooth auto recovery does not run in tests ([@bdraco] - [#109163]) +- Remove unused constants from QNAP ([@jrieger] - [#109152]) +- Bump aioelectricitymaps to 0.2.0 ([@jpbede] - [#109150]) +- Intellifire: fix incorrect name attribute in debug log when setting flame height ([@julienfreche] - [#109168]) +- Add individual battery banks as devices ([@bubonicbob] - [#108339]) +- Add last seen sensor for zwave_js devices ([@raman325] - [#107345]) +- Add log to show last received UniFi websocket message ([@Kane610] - [#109167]) +- Add Ecovacs button entities ([@edenhaus] - [#109189]) +- Use constants in Picnic service functions ([@codesalatdev] - [#109170]) +- Add test case for binary sensors in ViCare ([@CFenner] - [#108769]) +- Add state_class to Kostal plenticore sensors ([@stegm] - [#108096]) +- Add coordinator to ring integration ([@sdb9696] - [#107088]) +- Add romy vacuum integration ([@xeniter] - [#93750]) +- Add session energy sensor for Tesla Wall Connector ([@mandarons] - [#102635]) +- Minor fixes to A. O. Smith integration ([@bdr99] - [#107421]) +- Migrate QNAP to has entity name ([@jrieger] - [#107232]) +- Add configflow to Proximity integration ([@mib1185] - [#103894]) +- Use home/sleep preset in ViCare climate entity ([@CFenner] - [#105636]) +- Make google_assistant report_state test timezone aware ([@jbouwh] - [#109200]) +- Apply late review comments for Comelit climate ([@chemelli74] - [#109114]) +- Add Qnap icon translations ([@jrieger] - [#108484]) +- Code quality for Vodafone tests ([@chemelli74] - [#109078]) +- Update Ecovacs config_flow to support self-hosted instances ([@edenhaus] - [#108944]) +- Make flexit bacnet switch more generic and prepare for more switches ([@lellky] - [#109154]) +- Add fuelcell gas consumption sensors to ViCare integration ([@CFenner] - [#105461]) +- Set entity category for QNAP sensors ([@jrieger] - [#109207]) +- Add Matter Websocket commands for node actions and diagnostics ([@marcelveldt] - [#109127]) +- Add Ecovacs number entities ([@edenhaus] - [#109209]) +- Add Elvia integration ([@ludeeus] - [#107405]) +- Add Traccar server integration ([@ludeeus] - [#109002]) +- Move tankerkoenig to new aiotankerkoenig package ([@jpbede] - [#108913]) +- Create issues for reauth flows ([@emontnemery] - [#109105]) +- Fix Huisbaasje negative periodic gas readings (#103457) ([@JeroenvIS] - [#108090]) +- Support alternative modelid for LIDL doorbell in deCONZ device triggers ([@Kane610] - [#107937]) +- Add Ecovacs switch entities ([@edenhaus] - [#109216]) +- Improve enabling of Google local fulfillment ([@emontnemery] - [#109192]) +- Modify climate turn_on/off backwards compatibility check ([@gjohansson-ST] - [#109195]) +- Add readable state for tesla wall connector ([@piitaya] - [#107909]) +- Rename Traccar to Traccar Client ([@ludeeus] - [#109217]) +- Use EnumSensor instead of custom formatter() in ZHA Sensor entities ([@Caius-Bonus] - [#109218]) +- Add ZHA support for Bosch Twinguard and siren install QR codes ([@idstein] - [#107460]) +- Add brands definition for Traccar ([@ludeeus] - [#109219]) +- Import Traccar YAML configuration to Traccar Server ([@ludeeus] - [#109226]) +- Add config flow to GPSD ([@jrieger] - [#106196]) +- Add qr code selector ([@bramkragten] - [#109214]) +- Fix ring chimes data update ([@sdb9696] - [#109220]) +- Update frontend to 20240131.0 ([@bramkragten] - [#109231]) +- Add test for integration migrated in climate ([@gjohansson-ST] - [#109224]) +- Suppress log warnings when a sensor group has non numeric members ([@mill1000] - [#102828]) +- Add reauth flow to kitchen sink ([@emontnemery] - [#109202]) +- Sort script actions ([@emontnemery] - [#108247]) +- Add translations to GPSd ([@jrieger] - [#108600]) +- Update rokuecp to 0.19 ([@ctalkington] - [#109100]) +- Fix time to arrival to timestamp in Tessie ([@Bre77] - [#109172]) +- Make zwave_js last seen sensor enabled by default ([@raman325] - [#109191]) +- Pass verify_ssl to created session in Omada ([@joostlek] - [#109212]) +- Bump govee-ble to 0.31.0 ([@bdraco] - [#109235]) +- Remove deprecation warnings for zwave_js climate TURN_ON/TURN_OFF features ([@raman325] - [#109242]) +- Apply review comments on proximity ([@mib1185] - [#109249]) +- Fix Xiaomi-ble automations for multiple button devices ([@Ernst79] - [#109251]) +- Fix ZHA update entity not updating installed version ([@TheJulianJES] - [#109260]) +- Restore support for packages being installed from urls with fragments ([@bdraco] - [#109267]) +- Fix app name sorting in apple_tv ([@bdraco] - [#109274]) +- Address late review of Tankerkoenig package move ([@jpbede] - [#109277]) +- Fix dalkin climate warnings ([@jbouwh] - [#109279]) +- bugfix: name missing in getLogger ([@llluis] - [#109282]) +- Fix two icon translations for La Marzocco ([@zweckj] - [#109284]) +- Remove quality scale platinum from daikin integration ([@jbouwh] - [#109292]) +- Fix device class repairs issues UOM placeholders in Group ([@frenck] - [#109294]) +- Bump hass-nabucasa from 0.75.1 to 0.76.0 ([@ludeeus] - [#109296]) +- Add translations for zwave_js entities and services ([@raman325] - [#109188]) +- Add climate on/off feature to Tessie ([@Bre77] - [#109239]) +- Add climate turn on/off feature to Teslemetry ([@Bre77] - [#109241]) +- Don't log warning for core integrations on new feature flags in Climate ([@gjohansson-ST] - [#109250]) +- Migrate to new intent error response keys ([@synesthesiam] - [#109269]) +- Remove battery charge sensor from powerwall ([@bubonicbob] - [#109271]) +- Bump airthings-ble to 0.6.1 ([@LaStrada] - [#109302]) +- Verify Ecovacs mqtt config ([@edenhaus] - [#109306]) +- Bump pytedee_async to 0.2.13 ([@zweckj] - [#109307]) +- Do not use a battery device class for Shelly analog input sensor ([@bieniu] - [#109311]) +- Fix race in loading service descriptions ([@bdraco] - [#109316]) +- Move default response out of sentence trigger registration and into agent ([@synesthesiam] - [#109317]) +- Update Home Assistant base image to 2024.02.0 ([@frenck] - [#109329]) +- Fix custom attribute lookup in Traccar Server ([@ludeeus] - [#109331]) +- Add device class to tesla wall connector session energy ([@piitaya] - [#109333]) +- Follow up swiss_public_transport migration fix of unique ids ([@miaucl] - [#107873]) +- Add independent session in honeywell ([@mkmer] - [#108435]) +- Add migrated ClimateEntityFeature for Atag ([@gjohansson-ST] - [#108961]) +- Add TURN_ON/OFF ClimateEntityFeature for Fibaro ([@gjohansson-ST] - [#108963]) +- Add TURN_ON/OFF ClimateEntityFeature for Matter ([@gjohansson-ST] - [#108974]) +- Add TURN_ON/OFF ClimateEntityFeature for Modbus ([@gjohansson-ST] - [#109133]) +- Add migrated ClimateEntityFeature for SwitchBot Cloud ([@gjohansson-ST] - [#109136]) +- Add TURN_ON/OFF ClimateEntityFeature for KNX ([@gjohansson-ST] - [#109138]) +- Add migrated ClimateEntityFeature for Nibe Heat Pump ([@gjohansson-ST] - [#109140]) +- Fix stale camera error message in img_util ([@bdraco] - [#109325]) +- Correct modbus commit validation, too strict on integers ([@janiversen] - [#109338]) +- Add sensibo migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109340]) +- Add Adax migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109341]) +- Ensure the purge entities service cleans up the states_meta table ([@bdraco] - [#109344]) +- Missing template helper translation keys ([@karwosts] - [#109347]) +- Update cryptography to 42.0.2 ([@frenck] - [#109359]) +- Bump deebot_client to 5.1.0 ([@edenhaus] - [#109360]) +- Specify end_time when importing Elvia data to deal with drift ([@ludeeus] - [#109361]) +- Remove suggested area from Verisure ([@frenck] - [#109364]) +- Improve Ecovacs naming ([@edenhaus] - [#109372]) +- Update frontend to 20240202.0 ([@bramkragten] - [#109388]) +- Ignore gateway devices in ViCare integration ([@CFenner] - [#106477]) +- Do not suggest area for portable Sonos speakers ([@jjlawren] - [#109350]) +- Update elgato to 5.1.2 ([@frenck] - [#109391]) +- Add diagnostics to proximity ([@mib1185] - [#109393]) +- More thorough checks in ESPHome voice assistant UDP server ([@synesthesiam] - [#109394]) +- Bump python-kasa to 0.6.2.1 ([@rytilahti] - [#109397]) +- Bump aioelectricitymaps to 0.3.0 ([@jpbede] - [#109399]) +- Fix device type in Lutron ([@wilburCforce] - [#109401]) +- Bump matrix-nio to 0.24.0 ([@jurriaan] - [#109403]) +- Bump aiotankerkoenig to 0.3.0 ([@jpbede] - [#109404]) +- Pass slots to error messages instead of IDs [rework] ([@synesthesiam] - [#109410]) +- Bump intents to 2024.2.2 ([@synesthesiam] - [#109412]) +- Bump aiohomekit to 3.1.4 ([@Jc2k] - [#109414]) +- Add Mill migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109415]) +- Add new ClimateEntityFeature for Tado ([@gjohansson-ST] - [#109416]) +- Add ClimateEntityFeatures to Nest ([@gjohansson-ST] - [#109417]) +- Adds migrated ClimateEntityFeature to Netatmo ([@gjohansson-ST] - [#109418]) +- Add migrated ClimateEntityFeature to MQTT ([@gjohansson-ST] - [#109419]) +- Add migrated ClimateEntityFeatures to advantage_air ([@gjohansson-ST] - [#109420]) +- Add new climate feature flags to airzone ([@gjohansson-ST] - [#109423]) +- Adds new climate feature flags for airzone_cloud ([@gjohansson-ST] - [#109424]) +- Add migrated climate feature flags to shelly ([@gjohansson-ST] - [#109425]) +- Add migrated climate feature flags to smartthings ([@gjohansson-ST] - [#109426]) +- Add migrated climate feature flags to smarttub ([@gjohansson-ST] - [#109427]) +- Add new climate feature flags to evohome ([@gjohansson-ST] - [#109429]) +- Add migrated climate entity features to flexit ([@gjohansson-ST] - [#109430]) +- Add new climate feature flags to flexit_bacnet ([@gjohansson-ST] - [#109431]) +- Add migrated climate feature flags to homekit_controller ([@gjohansson-ST] - [#109433]) +- Adds migrated climate entity feature for velbus ([@gjohansson-ST] - [#109435]) +- Add new climate feature flags to venstar ([@gjohansson-ST] - [#109436]) +- Add new OUIs for tplink ([@rytilahti] - [#109437]) +- Add migrated feature flags to vera ([@gjohansson-ST] - [#109438]) +- Add migrated climate feature flags to vicare ([@gjohansson-ST] - [#109439]) +- Add new climate feature flags to whirlpool ([@gjohansson-ST] - [#109440]) +- Add migrated climate feature flags to xs1 ([@gjohansson-ST] - [#109441]) +- Add new climate feature flags to yolink ([@gjohansson-ST] - [#109442]) +- Add migrated climate feature flags to zha ([@gjohansson-ST] - [#109443]) +- Add new climate feature flags to zhong_hong ([@gjohansson-ST] - [#109444]) +- Add migrated climate feature flags to zwave_me ([@gjohansson-ST] - [#109445]) +- Add migrated climate feature flags to teslemetry ([@gjohansson-ST] - [#109446]) +- Add migrated climate feature flags for tessie ([@gjohansson-ST] - [#109447]) +- Add new climate feature flags to tfiac ([@gjohansson-ST] - [#109448]) +- Add migrated climate feature flags to tolo ([@gjohansson-ST] - [#109449]) +- Add migrated climate feature flags to toon ([@gjohansson-ST] - [#109450]) +- Add migrated climate feature flags to touchline ([@gjohansson-ST] - [#109451]) +- Add migrated climate feature flags to schluter ([@gjohansson-ST] - [#109452]) +- Add new climate feature flags to screenlogic ([@gjohansson-ST] - [#109454]) +- Add migrated climate feature flags to senz ([@gjohansson-ST] - [#109455]) +- Add new climate feature flags to stiebel_eltron ([@gjohansson-ST] - [#109457]) +- Add new climate feature flags to oem ([@gjohansson-ST] - [#109461]) +- Add migrated climate feature flags to opentherm_gw ([@gjohansson-ST] - [#109462]) +- Add migrated climate feature flags to overkiz ([@gjohansson-ST] - [#109463]) +- Adds migrated climate feature flags for proliphix ([@gjohansson-ST] - [#109465]) +- Add new climate feature flags to radiotherm ([@gjohansson-ST] - [#109466]) +- Adds new climate feature flags to maxcube ([@gjohansson-ST] - [#109467]) +- Add new feature flags to melcloud ([@gjohansson-ST] - [#109468]) +- Adds new climate feature flags to melissa ([@gjohansson-ST] - [#109469]) +- Add migrated climate feature flags to moehlenhoff ([@gjohansson-ST] - [#109470]) +- Add new climate feature flags to mysensors ([@gjohansson-ST] - [#109471]) +- Add migrated climate feature flags to nexia ([@gjohansson-ST] - [#109472]) +- Adds migrated climate feature flags to nobo_hub ([@gjohansson-ST] - [#109473]) +- Adds migrated climate feature flags in nuheat ([@gjohansson-ST] - [#109474]) +- Adds new climate feature flags to ambiclimate ([@gjohansson-ST] - [#109475]) +- Adds new climate feature flags in baf ([@gjohansson-ST] - [#109476]) +- Adds migrated climate feature flags in balboa ([@gjohansson-ST] - [#109477]) +- Add new climate feature flags to blebox ([@gjohansson-ST] - [#109478]) +- Adds new climate feature flags to broadlink ([@gjohansson-ST] - [#109479]) +- Adds new climate feature flags to bsblan ([@gjohansson-ST] - [#109480]) +- Add new climate feature flags to demo ([@gjohansson-ST] - [#109481]) +- Add new climate feature flags to deconz ([@gjohansson-ST] - [#109482]) +- Extend the history of Elvia history to 3 years ([@ludeeus] - [#109490]) +- Change IoT class for Traccar Client ([@ludeeus] - [#109493]) +- Fix Tankerkoenig diagnostics file to use right format ([@jpbede] - [#109494]) +- Revert "Add webhook support to tedee integration (#106846)" ([@zweckj] - [#109408]) +- Avoid duplicate entity names in proximity ([@mib1185] - [#109413]) +- Add ClimateEntityFeatures to airtouch4 ([@gjohansson-ST] - [#109421]) +- Add new climate feature flags for airtouch5 ([@gjohansson-ST] - [#109422]) +- Add new climate feature flags to esphome ([@gjohansson-ST] - [#109428]) +- Add new climate feature flags to tuya ([@gjohansson-ST] - [#109434]) +- Add climate feature flags to spider ([@gjohansson-ST] - [#109456]) +- Add migrated climate feature flag to switchbee ([@gjohansson-ST] - [#109458]) +- Add new climate feature flags to switcher_kis ([@gjohansson-ST] - [#109459]) +- Add new climate feature flags for plugwise ([@gjohansson-ST] - [#109464]) +- Correct flow rate conversion review after merge ([@elupus] - [#109501]) +- Bump easyenergy lib to v2.1.1 ([@klaasnicolaas] - [#109510]) +- Move climate feature flags to child classes for airzone_cloud ([@TheJulianJES] - [#109515]) +- Prevent Flo devices and entities from going unavailable when a single refresh fails ([@dmulcahey] - [#109522]) +- Fix empty error modal when adding duplicate Thread integration ([@codyc1515] - [#109530]) +- Add new climate feature flags to ccm15 ([@gjohansson-ST] - [#109534]) +- Add new climate feature flags to comelit ([@gjohansson-ST] - [#109535]) +- Add migrated climate feature flags to coolmaster ([@gjohansson-ST] - [#109536]) +- Add migrated climate feature flags to daikin ([@gjohansson-ST] - [#109537]) +- Add migrated climate feature flags to devolo home control ([@gjohansson-ST] - [#109538]) +- Add new climate feature flags to duotecno ([@gjohansson-ST] - [#109539]) +- Add new climate feature flags to ecobee ([@gjohansson-ST] - [#109540]) +- Add new climate feature flags to econet ([@gjohansson-ST] - [#109541]) +- Add new climate feature flags to electrasmart ([@gjohansson-ST] - [#109542]) +- Adds new climate feature flags to elkm1 ([@gjohansson-ST] - [#109543]) +- Add new climate feature flags to ephember ([@gjohansson-ST] - [#109544]) +- Add new climate feature flags to escea ([@gjohansson-ST] - [#109545]) +- Add new climate feature flags to freedompro ([@gjohansson-ST] - [#109546]) +- Add migrated climate feature flags to fritzbox ([@gjohansson-ST] - [#109547]) +- Add new climate feature flags to generic_thermostat ([@gjohansson-ST] - [#109548]) +- Add new climate feature flags to geniushub ([@gjohansson-ST] - [#109549]) +- Add new climate feature flags to gree ([@gjohansson-ST] - [#109550]) +- Add new climate feature flags to heatmiser ([@gjohansson-ST] - [#109551]) +- Add new climate feature flags to hisense ([@gjohansson-ST] - [#109552]) +- Add new climate feature flags to hive ([@gjohansson-ST] - [#109553]) +- Add new climate feature flags to homematic ([@gjohansson-ST] - [#109554]) +- Add migrated climate feature flags to homematicip_cloud ([@gjohansson-ST] - [#109555]) +- Add new climate feature flags to honeywell ([@gjohansson-ST] - [#109556]) +- Add new climate feature flags to huum ([@gjohansson-ST] - [#109557]) +- Add new climate feature flags to iaqualink ([@gjohansson-ST] - [#109558]) +- Add migrated climate feature flags to incomfort ([@gjohansson-ST] - [#109559]) +- Add new climate feature flags to insteon ([@gjohansson-ST] - [#109560]) +- Add new climate feature flags to intellifire ([@gjohansson-ST] - [#109562]) +- Fix new climate feature flags in intesishome ([@gjohansson-ST] - [#109563]) +- Add new climate feature flags to isy994 ([@gjohansson-ST] - [#109564]) +- Add new climate feature flags to izone ([@gjohansson-ST] - [#109565]) +- Add new climate feature flags to lcn ([@gjohansson-ST] - [#109566]) +- Add new climate feature flags to lightwave ([@gjohansson-ST] - [#109568]) +- Add migrated climate feature flags to livisi ([@gjohansson-ST] - [#109569]) +- Add new climate feature flags to lookin ([@gjohansson-ST] - [#109570]) +- Add new climate feature flags to lyric ([@gjohansson-ST] - [#109571]) +- Add back logging for core for feature flags in climate ([@gjohansson-ST] - [#109572]) +- Fix yolink abnormal status when LeakSensor detection mode changes to "no water detect" ([@matrixd2] - [#109575]) +- Fix group sensor uom's in not convertable device classes ([@gjohansson-ST] - [#109580]) +- Fix overkiz climate feature flags for valve heating ([@gjohansson-ST] - [#109582]) +- Bump yalexs-ble to 2.4.1 ([@bdraco] - [#109585]) +- Fix Google generative AI service example ([@tronikos] - [#109594]) +- Bugfix lamarzocco issue ([@zweckj] - [#109596]) +- Redact location names in proximity diagnostics ([@mib1185] - [#109600]) +- Handle GeoJSON int to str conversion when the name is an int ([@codyc1515] - [#108937]) +- Fix imap message part decoding ([@jbouwh] - [#109523]) +- Update orjson to 3.9.13 ([@frenck] - [#109614]) +- Fix Tuya QR code expiry, use native QR selector ([@frenck] - [#109615]) +- Fix repairs for remove dates in Workday ([@gjohansson-ST] - [#109626]) +- Add debug logger for cpu temp in System Monitor ([@gjohansson-ST] - [#109627]) +- Allow the helper integrations to omit icon translation field ([@joostlek] - [#109648]) +- Add icon translations to derivative ([@joostlek] - [#109650]) +- Add icon translations to Counter ([@joostlek] - [#109651]) +- Add icon translations to Random ([@joostlek] - [#109652]) +- Improve Tuya token/reauth handling ([@frenck] - [#109653]) +- Add icon translations to Utility meter helper ([@jpbede] - [#109656]) +- Fix Tuya reauth_successful translation string ([@frenck] - [#109659]) +- Don't create AsusWRT loadavg sensors when unavailable ([@ollo69] - [#106790]) +- Screenlogic service refactor ([@dieselrabbit] - [#109041]) +- Fix home connect remaining progress time ([@leahoswald] - [#109525]) +- Add zone related sensors in proximity ([@mib1185] - [#109630]) +- Bump georss-generic-client to 0.8 ([@exxamalte] - [#109658]) +- Add icon translation to proximity ([@mib1185] - [#109664]) +- Add missing translation string to Home Assistant Analytics Insights ([@mib1185] - [#109666]) +- Buffer TImeoutError in Flo ([@dmulcahey] - [#109675]) +- Show site state in Amberelectric config flow ([@madpilot] - [#104702]) +- Bump python matter server to 5.4.1 ([@marcelveldt] - [#109692]) +- Add data descriptions to analytics insights ([@joostlek] - [#109694]) +- Set shorthand attribute in Epion ([@joostlek] - [#109695]) +- Remove obsolete check from Proximity ([@joostlek] - [#109701]) +- Set Analytics Insights as diagnostic ([@joostlek] - [#109702]) +- Queue climate calls for Comelit SimpleHome ([@chemelli74] - [#109707]) +- Fix log string in Traccar Server Coordinator ([@ludeeus] - [#109709]) +- Update frontend to 20240205.0 ([@bramkragten] - [#109716]) +- Add strings to Ruuvitag BLE ([@joostlek] - [#109717]) +- Bump python-bring-api to 3.0.0 ([@miaucl] - [#109720]) +- Fix generic camera error when template renders to an invalid URL ([@jbouwh] - [#109737]) +- Use tracked entity friendly name for proximity sensors ([@mib1185] - [#109744]) +- Add missing new climate feature flags to Mill ([@gjohansson-ST] - [#109748]) +- Fix incorrectly assigning supported features for plugwise climates ([@bouwew] - [#109749]) +- Reduce MELCloud poll frequency to avoid throttling ([@vilppuvuorinen] - [#109750]) +- Handle startup error in Analytics insights ([@joostlek] - [#109755]) +- Fix ZHA creating unnecessary "summ received" entity after upgrade ([@TheJulianJES] - [#109268]) +- Bump pyMicrobot to 0.0.10 ([@spycle] - [#109628]) +- Fix keymitt_ble config-flow ([@spycle] - [#109644]) +- Improve lupusec code quality ([@suaveolent] - [#109727]) +- Fix compatibility issues with older pymelcloud version ([@vilppuvuorinen] - [#109757]) +- Bump holidays to 0.42 ([@gjohansson-ST] - [#109760]) +- Fix Radarr health check singularity ([@joostlek] - [#109762]) +- Buffer JsonDecodeError in Flo ([@dmulcahey] - [#109767]) +- Bump ZHA dependencies ([@puddly] - [#109770]) +- Change state class of Tesla wall connector session energy entity ([@jpbede] - [#109778]) +- Bump ring_doorbell to 0.8.6 ([@sdb9696] - [#109199]) +- Bump ring_doorbell to 0.8.7 ([@sdb9696] - [#109783]) +- Update xknx to 2.12.0 and xknxproject to 3.5.0 ([@farmio] - [#109787]) +- Update MELCloud codeowners ([@vilppuvuorinen] - [#109793]) +- Bump aioelectricitymaps to 0.3.1 ([@jpbede] - [#109797]) +- Pin `chacha20poly1305-reuseable>=0.12.1` ([@puddly] - [#109807]) +- Don't block Supervisor entry setup with refreshing updates ([@frenck] - [#109809]) +- Fix entity services targeting entities outside the platform when using areas/devices ([@bdraco] - [#109810]) +- Mark Unifi bandwidth sensors as unavailable when client disconnects ([@wittypluck] - [#109812]) +- Ignore `trackable` without `details` in Tractive integration ([@bieniu] - [#109814]) +- Bump aioecowitt to 2024.2.0 ([@joostlek] - [#109817]) +- Bump python-otbr-api to 2.6.0 ([@emontnemery] - [#109823]) +- Bump aioesphomeapi to 21.0.2 ([@bdraco] - [#109824]) +- Bump awesomeversion from 23.11.0 to 24.2.0 ([@ludeeus] - [#109830]) +- Show domain in oauth2 error log ([@joostlek] - [#109708]) +- Add tapo virtual integration ([@rytilahti] - [#109765]) +- Make integration fields in Analytics Insights optional ([@joostlek] - [#109789]) +- Disable energy report based operations with API lib upgrade ([@vilppuvuorinen] - [#109832]) +- Bump motionblinds to 0.6.20 ([@starkillerOG] - [#109837]) +- Bump ZHA dependency zigpy to 0.62.3 ([@puddly] - [#109848]) +- Update Growatt server URLs ([@chenjiayi8] - [#109122]) +- Update nibe to 2.8.0 with LOG.SET fixes ([@elupus] - [#109825]) +- Bump aio-georss-gdacs to 0.9 ([@exxamalte] - [#109859]) +- Update frontend to 20240207.0 ([@bramkragten] - [#109871]) +- Fix YoLink SpeakerHub support ([@matrixd2] - [#107925]) +- Remove soft hyphens from myuplink sensor names ([@astrandb] - [#109845]) +- Bump aio-geojson-geonetnz-quakes to 0.16 ([@exxamalte] - [#109873]) +- Fix kitchen sink tests ([@joostlek] - [#109243]) + +## Release 2024.2.1 - February 9 + +- Catch APIRateLimit in Honeywell ([@mkmer] - [#107806]) +- Allow disabling home assistant watchdog ([@mdegat01] - [#109818]) +- Assist fixes ([@synesthesiam] - [#109889]) +- Bump Python matter server to 5.5.0 ([@marcelveldt] - [#109894]) +- Bump aioelectricitymaps to 0.4.0 ([@jpbede] - [#109895]) +- Skip polling of unavailable Matter nodes ([@marcelveldt] - [#109917]) +- Bump aio-geojson-geonetnz-volcano to 0.9 ([@exxamalte] - [#109940]) +- Handle Matter nodes that become available after startup is done ([@marcelveldt] - [#109956]) +- Allow modbus "scale" to be negative. ([@janiversen] - [#109965]) +- Don't blow up if config entries have unhashable unique IDs ([@emontnemery] - [#109966]) +- Bump pyMicrobot to 0.0.12 ([@spycle] - [#109970]) +- Allow modbus min/max temperature to be negative. ([@janiversen] - [#109977]) +- Bump deebot-client to 5.1.1 ([@edenhaus] - [#109994]) +- Allow modbus negative min/max value. ([@janiversen] - [#109995]) +- Bump aioecowitt to 2024.2.1 ([@edenhaus] - [#109999]) +- Avoid key_error in modbus climate with non-defined fan_mode. ([@janiversen] - [#110017]) +- Update frontend to 20240207.1 ([@bramkragten] - [#110039]) +- Matching duplicate named entities is now an error in Assist ([@synesthesiam] - [#110050]) +- Log error and continue on parsing issues of translated strings ([@mib1185] - [#110046]) +- Bump evohome-async to 0.4.18 ([@zxdavb] - [#110056]) +- Bump py-aosmith to 1.0.8 ([@bdr99] - [#110061]) + +[#107806]: https://github.com/home-assistant/core/pull/107806 +[#109818]: https://github.com/home-assistant/core/pull/109818 +[#109883]: https://github.com/home-assistant/core/pull/109883 +[#109889]: https://github.com/home-assistant/core/pull/109889 +[#109894]: https://github.com/home-assistant/core/pull/109894 +[#109895]: https://github.com/home-assistant/core/pull/109895 +[#109917]: https://github.com/home-assistant/core/pull/109917 +[#109940]: https://github.com/home-assistant/core/pull/109940 +[#109956]: https://github.com/home-assistant/core/pull/109956 +[#109965]: https://github.com/home-assistant/core/pull/109965 +[#109966]: https://github.com/home-assistant/core/pull/109966 +[#109970]: https://github.com/home-assistant/core/pull/109970 +[#109977]: https://github.com/home-assistant/core/pull/109977 +[#109994]: https://github.com/home-assistant/core/pull/109994 +[#109995]: https://github.com/home-assistant/core/pull/109995 +[#109999]: https://github.com/home-assistant/core/pull/109999 +[#110017]: https://github.com/home-assistant/core/pull/110017 +[#110039]: https://github.com/home-assistant/core/pull/110039 +[#110046]: https://github.com/home-assistant/core/pull/110046 +[#110050]: https://github.com/home-assistant/core/pull/110050 +[#110056]: https://github.com/home-assistant/core/pull/110056 +[#110061]: https://github.com/home-assistant/core/pull/110061 +[@bdr99]: https://github.com/bdr99 +[@bramkragten]: https://github.com/bramkragten +[@edenhaus]: https://github.com/edenhaus +[@emontnemery]: https://github.com/emontnemery +[@exxamalte]: https://github.com/exxamalte +[@frenck]: https://github.com/frenck +[@janiversen]: https://github.com/janiversen +[@jpbede]: https://github.com/jpbede +[@marcelveldt]: https://github.com/marcelveldt +[@mdegat01]: https://github.com/mdegat01 +[@mib1185]: https://github.com/mib1185 +[@mkmer]: https://github.com/mkmer +[@spycle]: https://github.com/spycle +[@synesthesiam]: https://github.com/synesthesiam +[@zxdavb]: https://github.com/zxdavb + +## Release 2024.2.2 - February 16 + +- Better teardown and setup of Roborock connections ([@Lash-L] - [#106092]) +- Fix freebox pairing in bridge mode ([@agrenott] - [#106131]) +- Update pytechnove to 1.2.2 ([@Moustachauve] - [#110074]) +- Bump aio-geojson-usgs-earthquakes to 0.3 ([@exxamalte] - [#110084]) +- Bump yalexs to 1.11.1, fixing camera snapshots from Yale Home ([@abjorck] - [#110089]) +- Fix typo in sensor icons configuration ([@bieniu] - [#110133]) +- Only schedule august activity update when a new activity is seen ([@bdraco] - [#110141]) +- Bump yalexs to 1.11.2 ([@bdraco] - [#110144]) +- Properly report cover positions to prometheus ([@agoode] - [#110157]) +- Fix device class repairs issues placeholders in Group ([@silamon] - [#110181]) +- Bump datapoint to 0.9.9 + re-enable Met Office Integration ([@DustyArmstrong] - [#110206]) +- Bump evohome-async to 0.4.19 ([@zxdavb] - [#110225]) +- Fix state classes issue translation in Group ([@silamon] - [#110238]) +- Handle no data error in Electricity Maps config flow ([@jpbede] - [#110259]) +- Fix cpu percentage in System Monitor ([@gjohansson-ST] - [#110268]) +- Bump aiopegelonline to 0.0.8 ([@mib1185] - [#110274]) +- Bump PySwitchbot to 0.45.0 ([@bdraco] - [#110275]) +- Update xknxproject to 3.6.0 ([@farmio] - [#110282]) +- Fix TDBU naming in Motionblinds ([@starkillerOG] - [#110283]) +- Bump linear-garage-door to 0.2.9 ([@IceBotYT] - [#110298]) +- Fix Starline GPS count sensor ([@Anonym-tsk] - [#110348]) +- Fix zone radius calculation when radius is not 0 ([@bdraco] - [#110354]) +- Bump py-sucks to 0.9.9 ([@mib1185] - [#110397]) +- Bump async-upnp-client to 0.38.2 ([@StevenLooman] - [#110411]) +- Mitigate session closed error in Netgear LTE ([@tkdrob] - [#110412]) +- Update pylutron to 0.2.11 ([@wilburCforce] - [#109853]) +- Update pylutron to 0.2.12 ([@wilburCforce] - [#110414]) +- Fix Raspberry Pi utilities installation on Alpine 3.19 ([@agners] - [#110463]) +- Coerce to float in Sensibo climate react custom service ([@gjohansson-ST] - [#110508]) +- Bump orjson to 3.9.14 ([@bdraco] - [#110552]) +- Fix tplink not updating IP from DHCP discovery and discovering twice ([@bdraco] - [#110557]) +- Modbus, allow received int to be a float. ([@janiversen] - [#110648]) +- Fix elkm1 service calls running in the executor ([@bdraco] - [#110655]) +- Bump aiounifi to v71 ([@Kane610] - [#110658]) +- Bump deebot-client to 5.2.1 ([@edenhaus] - [#110683]) + +[#106092]: https://github.com/home-assistant/core/pull/106092 +[#106131]: https://github.com/home-assistant/core/pull/106131 +[#109853]: https://github.com/home-assistant/core/pull/109853 +[#109883]: https://github.com/home-assistant/core/pull/109883 +[#110074]: https://github.com/home-assistant/core/pull/110074 +[#110078]: https://github.com/home-assistant/core/pull/110078 +[#110084]: https://github.com/home-assistant/core/pull/110084 +[#110089]: https://github.com/home-assistant/core/pull/110089 +[#110133]: https://github.com/home-assistant/core/pull/110133 +[#110141]: https://github.com/home-assistant/core/pull/110141 +[#110144]: https://github.com/home-assistant/core/pull/110144 +[#110157]: https://github.com/home-assistant/core/pull/110157 +[#110181]: https://github.com/home-assistant/core/pull/110181 +[#110206]: https://github.com/home-assistant/core/pull/110206 +[#110225]: https://github.com/home-assistant/core/pull/110225 +[#110238]: https://github.com/home-assistant/core/pull/110238 +[#110259]: https://github.com/home-assistant/core/pull/110259 +[#110268]: https://github.com/home-assistant/core/pull/110268 +[#110274]: https://github.com/home-assistant/core/pull/110274 +[#110275]: https://github.com/home-assistant/core/pull/110275 +[#110282]: https://github.com/home-assistant/core/pull/110282 +[#110283]: https://github.com/home-assistant/core/pull/110283 +[#110298]: https://github.com/home-assistant/core/pull/110298 +[#110348]: https://github.com/home-assistant/core/pull/110348 +[#110354]: https://github.com/home-assistant/core/pull/110354 +[#110397]: https://github.com/home-assistant/core/pull/110397 +[#110411]: https://github.com/home-assistant/core/pull/110411 +[#110412]: https://github.com/home-assistant/core/pull/110412 +[#110414]: https://github.com/home-assistant/core/pull/110414 +[#110463]: https://github.com/home-assistant/core/pull/110463 +[#110508]: https://github.com/home-assistant/core/pull/110508 +[#110552]: https://github.com/home-assistant/core/pull/110552 +[#110557]: https://github.com/home-assistant/core/pull/110557 +[#110648]: https://github.com/home-assistant/core/pull/110648 +[#110655]: https://github.com/home-assistant/core/pull/110655 +[#110658]: https://github.com/home-assistant/core/pull/110658 +[#110683]: https://github.com/home-assistant/core/pull/110683 +[@Anonym-tsk]: https://github.com/Anonym-tsk +[@DustyArmstrong]: https://github.com/DustyArmstrong +[@IceBotYT]: https://github.com/IceBotYT +[@Kane610]: https://github.com/Kane610 +[@Lash-L]: https://github.com/Lash-L +[@Moustachauve]: https://github.com/Moustachauve +[@StevenLooman]: https://github.com/StevenLooman +[@abjorck]: https://github.com/abjorck +[@agners]: https://github.com/agners +[@agoode]: https://github.com/agoode +[@agrenott]: https://github.com/agrenott +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@edenhaus]: https://github.com/edenhaus +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@janiversen]: https://github.com/janiversen +[@jpbede]: https://github.com/jpbede +[@mib1185]: https://github.com/mib1185 +[@silamon]: https://github.com/silamon +[@starkillerOG]: https://github.com/starkillerOG +[@tkdrob]: https://github.com/tkdrob +[@wilburCforce]: https://github.com/wilburCforce +[@zxdavb]: https://github.com/zxdavb + +[#100684]: https://github.com/home-assistant/core/pull/100684 +[#100806]: https://github.com/home-assistant/core/pull/100806 +[#101497]: https://github.com/home-assistant/core/pull/101497 +[#101673]: https://github.com/home-assistant/core/pull/101673 +[#102291]: https://github.com/home-assistant/core/pull/102291 +[#102635]: https://github.com/home-assistant/core/pull/102635 +[#102828]: https://github.com/home-assistant/core/pull/102828 +[#102846]: https://github.com/home-assistant/core/pull/102846 +[#102972]: https://github.com/home-assistant/core/pull/102972 +[#103294]: https://github.com/home-assistant/core/pull/103294 +[#103400]: https://github.com/home-assistant/core/pull/103400 +[#103481]: https://github.com/home-assistant/core/pull/103481 +[#103569]: https://github.com/home-assistant/core/pull/103569 +[#103894]: https://github.com/home-assistant/core/pull/103894 +[#104014]: https://github.com/home-assistant/core/pull/104014 +[#104183]: https://github.com/home-assistant/core/pull/104183 +[#104208]: https://github.com/home-assistant/core/pull/104208 +[#104453]: https://github.com/home-assistant/core/pull/104453 +[#104522]: https://github.com/home-assistant/core/pull/104522 +[#104678]: https://github.com/home-assistant/core/pull/104678 +[#104702]: https://github.com/home-assistant/core/pull/104702 +[#104790]: https://github.com/home-assistant/core/pull/104790 +[#104942]: https://github.com/home-assistant/core/pull/104942 +[#104973]: https://github.com/home-assistant/core/pull/104973 +[#105031]: https://github.com/home-assistant/core/pull/105031 +[#105143]: https://github.com/home-assistant/core/pull/105143 +[#105300]: https://github.com/home-assistant/core/pull/105300 +[#105317]: https://github.com/home-assistant/core/pull/105317 +[#105321]: https://github.com/home-assistant/core/pull/105321 +[#105415]: https://github.com/home-assistant/core/pull/105415 +[#105417]: https://github.com/home-assistant/core/pull/105417 +[#105427]: https://github.com/home-assistant/core/pull/105427 +[#105461]: https://github.com/home-assistant/core/pull/105461 +[#105560]: https://github.com/home-assistant/core/pull/105560 +[#105636]: https://github.com/home-assistant/core/pull/105636 +[#105675]: https://github.com/home-assistant/core/pull/105675 +[#105712]: https://github.com/home-assistant/core/pull/105712 +[#105740]: https://github.com/home-assistant/core/pull/105740 +[#105789]: https://github.com/home-assistant/core/pull/105789 +[#105887]: https://github.com/home-assistant/core/pull/105887 +[#105895]: https://github.com/home-assistant/core/pull/105895 +[#105927]: https://github.com/home-assistant/core/pull/105927 +[#105955]: https://github.com/home-assistant/core/pull/105955 +[#105964]: https://github.com/home-assistant/core/pull/105964 +[#106029]: https://github.com/home-assistant/core/pull/106029 +[#106077]: https://github.com/home-assistant/core/pull/106077 +[#106078]: https://github.com/home-assistant/core/pull/106078 +[#106119]: https://github.com/home-assistant/core/pull/106119 +[#106196]: https://github.com/home-assistant/core/pull/106196 +[#106286]: https://github.com/home-assistant/core/pull/106286 +[#106420]: https://github.com/home-assistant/core/pull/106420 +[#106477]: https://github.com/home-assistant/core/pull/106477 +[#106485]: https://github.com/home-assistant/core/pull/106485 +[#106490]: https://github.com/home-assistant/core/pull/106490 +[#106504]: https://github.com/home-assistant/core/pull/106504 +[#106508]: https://github.com/home-assistant/core/pull/106508 +[#106514]: https://github.com/home-assistant/core/pull/106514 +[#106519]: https://github.com/home-assistant/core/pull/106519 +[#106530]: https://github.com/home-assistant/core/pull/106530 +[#106544]: https://github.com/home-assistant/core/pull/106544 +[#106560]: https://github.com/home-assistant/core/pull/106560 +[#106563]: https://github.com/home-assistant/core/pull/106563 +[#106568]: https://github.com/home-assistant/core/pull/106568 +[#106574]: https://github.com/home-assistant/core/pull/106574 +[#106599]: https://github.com/home-assistant/core/pull/106599 +[#106611]: https://github.com/home-assistant/core/pull/106611 +[#106623]: https://github.com/home-assistant/core/pull/106623 +[#106624]: https://github.com/home-assistant/core/pull/106624 +[#106625]: https://github.com/home-assistant/core/pull/106625 +[#106633]: https://github.com/home-assistant/core/pull/106633 +[#106635]: https://github.com/home-assistant/core/pull/106635 +[#106640]: https://github.com/home-assistant/core/pull/106640 +[#106647]: https://github.com/home-assistant/core/pull/106647 +[#106658]: https://github.com/home-assistant/core/pull/106658 +[#106661]: https://github.com/home-assistant/core/pull/106661 +[#106662]: https://github.com/home-assistant/core/pull/106662 +[#106667]: https://github.com/home-assistant/core/pull/106667 +[#106672]: https://github.com/home-assistant/core/pull/106672 +[#106674]: https://github.com/home-assistant/core/pull/106674 +[#106685]: https://github.com/home-assistant/core/pull/106685 +[#106687]: https://github.com/home-assistant/core/pull/106687 +[#106690]: https://github.com/home-assistant/core/pull/106690 +[#106691]: https://github.com/home-assistant/core/pull/106691 +[#106693]: https://github.com/home-assistant/core/pull/106693 +[#106696]: https://github.com/home-assistant/core/pull/106696 +[#106697]: https://github.com/home-assistant/core/pull/106697 +[#106702]: https://github.com/home-assistant/core/pull/106702 +[#106709]: https://github.com/home-assistant/core/pull/106709 +[#106710]: https://github.com/home-assistant/core/pull/106710 +[#106716]: https://github.com/home-assistant/core/pull/106716 +[#106717]: https://github.com/home-assistant/core/pull/106717 +[#106718]: https://github.com/home-assistant/core/pull/106718 +[#106719]: https://github.com/home-assistant/core/pull/106719 +[#106720]: https://github.com/home-assistant/core/pull/106720 +[#106721]: https://github.com/home-assistant/core/pull/106721 +[#106722]: https://github.com/home-assistant/core/pull/106722 +[#106723]: https://github.com/home-assistant/core/pull/106723 +[#106724]: https://github.com/home-assistant/core/pull/106724 +[#106735]: https://github.com/home-assistant/core/pull/106735 +[#106736]: https://github.com/home-assistant/core/pull/106736 +[#106740]: https://github.com/home-assistant/core/pull/106740 +[#106741]: https://github.com/home-assistant/core/pull/106741 +[#106742]: https://github.com/home-assistant/core/pull/106742 +[#106753]: https://github.com/home-assistant/core/pull/106753 +[#106759]: https://github.com/home-assistant/core/pull/106759 +[#106772]: https://github.com/home-assistant/core/pull/106772 +[#106773]: https://github.com/home-assistant/core/pull/106773 +[#106776]: https://github.com/home-assistant/core/pull/106776 +[#106790]: https://github.com/home-assistant/core/pull/106790 +[#106794]: https://github.com/home-assistant/core/pull/106794 +[#106795]: https://github.com/home-assistant/core/pull/106795 +[#106796]: https://github.com/home-assistant/core/pull/106796 +[#106802]: https://github.com/home-assistant/core/pull/106802 +[#106810]: https://github.com/home-assistant/core/pull/106810 +[#106812]: https://github.com/home-assistant/core/pull/106812 +[#106813]: https://github.com/home-assistant/core/pull/106813 +[#106814]: https://github.com/home-assistant/core/pull/106814 +[#106816]: https://github.com/home-assistant/core/pull/106816 +[#106817]: https://github.com/home-assistant/core/pull/106817 +[#106819]: https://github.com/home-assistant/core/pull/106819 +[#106820]: https://github.com/home-assistant/core/pull/106820 +[#106821]: https://github.com/home-assistant/core/pull/106821 +[#106823]: https://github.com/home-assistant/core/pull/106823 +[#106824]: https://github.com/home-assistant/core/pull/106824 +[#106825]: https://github.com/home-assistant/core/pull/106825 +[#106832]: https://github.com/home-assistant/core/pull/106832 +[#106836]: https://github.com/home-assistant/core/pull/106836 +[#106837]: https://github.com/home-assistant/core/pull/106837 +[#106838]: https://github.com/home-assistant/core/pull/106838 +[#106839]: https://github.com/home-assistant/core/pull/106839 +[#106840]: https://github.com/home-assistant/core/pull/106840 +[#106841]: https://github.com/home-assistant/core/pull/106841 +[#106844]: https://github.com/home-assistant/core/pull/106844 +[#106846]: https://github.com/home-assistant/core/pull/106846 +[#106852]: https://github.com/home-assistant/core/pull/106852 +[#106853]: https://github.com/home-assistant/core/pull/106853 +[#106854]: https://github.com/home-assistant/core/pull/106854 +[#106857]: https://github.com/home-assistant/core/pull/106857 +[#106858]: https://github.com/home-assistant/core/pull/106858 +[#106859]: https://github.com/home-assistant/core/pull/106859 +[#106860]: https://github.com/home-assistant/core/pull/106860 +[#106867]: https://github.com/home-assistant/core/pull/106867 +[#106868]: https://github.com/home-assistant/core/pull/106868 +[#106869]: https://github.com/home-assistant/core/pull/106869 +[#106871]: https://github.com/home-assistant/core/pull/106871 +[#106872]: https://github.com/home-assistant/core/pull/106872 +[#106878]: https://github.com/home-assistant/core/pull/106878 +[#106879]: https://github.com/home-assistant/core/pull/106879 +[#106880]: https://github.com/home-assistant/core/pull/106880 +[#106881]: https://github.com/home-assistant/core/pull/106881 +[#106887]: https://github.com/home-assistant/core/pull/106887 +[#106888]: https://github.com/home-assistant/core/pull/106888 +[#106889]: https://github.com/home-assistant/core/pull/106889 +[#106890]: https://github.com/home-assistant/core/pull/106890 +[#106902]: https://github.com/home-assistant/core/pull/106902 +[#106905]: https://github.com/home-assistant/core/pull/106905 +[#106906]: https://github.com/home-assistant/core/pull/106906 +[#106907]: https://github.com/home-assistant/core/pull/106907 +[#106908]: https://github.com/home-assistant/core/pull/106908 +[#106910]: https://github.com/home-assistant/core/pull/106910 +[#106914]: https://github.com/home-assistant/core/pull/106914 +[#106919]: https://github.com/home-assistant/core/pull/106919 +[#106924]: https://github.com/home-assistant/core/pull/106924 +[#106925]: https://github.com/home-assistant/core/pull/106925 +[#106926]: https://github.com/home-assistant/core/pull/106926 +[#106927]: https://github.com/home-assistant/core/pull/106927 +[#106930]: https://github.com/home-assistant/core/pull/106930 +[#106931]: https://github.com/home-assistant/core/pull/106931 +[#106932]: https://github.com/home-assistant/core/pull/106932 +[#106953]: https://github.com/home-assistant/core/pull/106953 +[#106965]: https://github.com/home-assistant/core/pull/106965 +[#106972]: https://github.com/home-assistant/core/pull/106972 +[#106975]: https://github.com/home-assistant/core/pull/106975 +[#106984]: https://github.com/home-assistant/core/pull/106984 +[#106992]: https://github.com/home-assistant/core/pull/106992 +[#106993]: https://github.com/home-assistant/core/pull/106993 +[#106994]: https://github.com/home-assistant/core/pull/106994 +[#106998]: https://github.com/home-assistant/core/pull/106998 +[#107003]: https://github.com/home-assistant/core/pull/107003 +[#107005]: https://github.com/home-assistant/core/pull/107005 +[#107010]: https://github.com/home-assistant/core/pull/107010 +[#107015]: https://github.com/home-assistant/core/pull/107015 +[#107028]: https://github.com/home-assistant/core/pull/107028 +[#107032]: https://github.com/home-assistant/core/pull/107032 +[#107034]: https://github.com/home-assistant/core/pull/107034 +[#107039]: https://github.com/home-assistant/core/pull/107039 +[#107040]: https://github.com/home-assistant/core/pull/107040 +[#107042]: https://github.com/home-assistant/core/pull/107042 +[#107045]: https://github.com/home-assistant/core/pull/107045 +[#107046]: https://github.com/home-assistant/core/pull/107046 +[#107050]: https://github.com/home-assistant/core/pull/107050 +[#107053]: https://github.com/home-assistant/core/pull/107053 +[#107065]: https://github.com/home-assistant/core/pull/107065 +[#107066]: https://github.com/home-assistant/core/pull/107066 +[#107069]: https://github.com/home-assistant/core/pull/107069 +[#107071]: https://github.com/home-assistant/core/pull/107071 +[#107088]: https://github.com/home-assistant/core/pull/107088 +[#107089]: https://github.com/home-assistant/core/pull/107089 +[#107090]: https://github.com/home-assistant/core/pull/107090 +[#107095]: https://github.com/home-assistant/core/pull/107095 +[#107096]: https://github.com/home-assistant/core/pull/107096 +[#107100]: https://github.com/home-assistant/core/pull/107100 +[#107107]: https://github.com/home-assistant/core/pull/107107 +[#107109]: https://github.com/home-assistant/core/pull/107109 +[#107111]: https://github.com/home-assistant/core/pull/107111 +[#107116]: https://github.com/home-assistant/core/pull/107116 +[#107119]: https://github.com/home-assistant/core/pull/107119 +[#107132]: https://github.com/home-assistant/core/pull/107132 +[#107139]: https://github.com/home-assistant/core/pull/107139 +[#107148]: https://github.com/home-assistant/core/pull/107148 +[#107151]: https://github.com/home-assistant/core/pull/107151 +[#107152]: https://github.com/home-assistant/core/pull/107152 +[#107153]: https://github.com/home-assistant/core/pull/107153 +[#107159]: https://github.com/home-assistant/core/pull/107159 +[#107160]: https://github.com/home-assistant/core/pull/107160 +[#107164]: https://github.com/home-assistant/core/pull/107164 +[#107168]: https://github.com/home-assistant/core/pull/107168 +[#107172]: https://github.com/home-assistant/core/pull/107172 +[#107175]: https://github.com/home-assistant/core/pull/107175 +[#107179]: https://github.com/home-assistant/core/pull/107179 +[#107184]: https://github.com/home-assistant/core/pull/107184 +[#107188]: https://github.com/home-assistant/core/pull/107188 +[#107189]: https://github.com/home-assistant/core/pull/107189 +[#107190]: https://github.com/home-assistant/core/pull/107190 +[#107192]: https://github.com/home-assistant/core/pull/107192 +[#107195]: https://github.com/home-assistant/core/pull/107195 +[#107196]: https://github.com/home-assistant/core/pull/107196 +[#107199]: https://github.com/home-assistant/core/pull/107199 +[#107206]: https://github.com/home-assistant/core/pull/107206 +[#107209]: https://github.com/home-assistant/core/pull/107209 +[#107210]: https://github.com/home-assistant/core/pull/107210 +[#107212]: https://github.com/home-assistant/core/pull/107212 +[#107213]: https://github.com/home-assistant/core/pull/107213 +[#107227]: https://github.com/home-assistant/core/pull/107227 +[#107229]: https://github.com/home-assistant/core/pull/107229 +[#107232]: https://github.com/home-assistant/core/pull/107232 +[#107238]: https://github.com/home-assistant/core/pull/107238 +[#107240]: https://github.com/home-assistant/core/pull/107240 +[#107251]: https://github.com/home-assistant/core/pull/107251 +[#107252]: https://github.com/home-assistant/core/pull/107252 +[#107255]: https://github.com/home-assistant/core/pull/107255 +[#107256]: https://github.com/home-assistant/core/pull/107256 +[#107257]: https://github.com/home-assistant/core/pull/107257 +[#107261]: https://github.com/home-assistant/core/pull/107261 +[#107262]: https://github.com/home-assistant/core/pull/107262 +[#107263]: https://github.com/home-assistant/core/pull/107263 +[#107264]: https://github.com/home-assistant/core/pull/107264 +[#107266]: https://github.com/home-assistant/core/pull/107266 +[#107267]: https://github.com/home-assistant/core/pull/107267 +[#107271]: https://github.com/home-assistant/core/pull/107271 +[#107272]: https://github.com/home-assistant/core/pull/107272 +[#107273]: https://github.com/home-assistant/core/pull/107273 +[#107274]: https://github.com/home-assistant/core/pull/107274 +[#107278]: https://github.com/home-assistant/core/pull/107278 +[#107280]: https://github.com/home-assistant/core/pull/107280 +[#107282]: https://github.com/home-assistant/core/pull/107282 +[#107283]: https://github.com/home-assistant/core/pull/107283 +[#107284]: https://github.com/home-assistant/core/pull/107284 +[#107285]: https://github.com/home-assistant/core/pull/107285 +[#107290]: https://github.com/home-assistant/core/pull/107290 +[#107292]: https://github.com/home-assistant/core/pull/107292 +[#107299]: https://github.com/home-assistant/core/pull/107299 +[#107300]: https://github.com/home-assistant/core/pull/107300 +[#107301]: https://github.com/home-assistant/core/pull/107301 +[#107302]: https://github.com/home-assistant/core/pull/107302 +[#107305]: https://github.com/home-assistant/core/pull/107305 +[#107306]: https://github.com/home-assistant/core/pull/107306 +[#107307]: https://github.com/home-assistant/core/pull/107307 +[#107309]: https://github.com/home-assistant/core/pull/107309 +[#107312]: https://github.com/home-assistant/core/pull/107312 +[#107320]: https://github.com/home-assistant/core/pull/107320 +[#107323]: https://github.com/home-assistant/core/pull/107323 +[#107324]: https://github.com/home-assistant/core/pull/107324 +[#107326]: https://github.com/home-assistant/core/pull/107326 +[#107333]: https://github.com/home-assistant/core/pull/107333 +[#107335]: https://github.com/home-assistant/core/pull/107335 +[#107337]: https://github.com/home-assistant/core/pull/107337 +[#107338]: https://github.com/home-assistant/core/pull/107338 +[#107341]: https://github.com/home-assistant/core/pull/107341 +[#107342]: https://github.com/home-assistant/core/pull/107342 +[#107345]: https://github.com/home-assistant/core/pull/107345 +[#107346]: https://github.com/home-assistant/core/pull/107346 +[#107351]: https://github.com/home-assistant/core/pull/107351 +[#107357]: https://github.com/home-assistant/core/pull/107357 +[#107372]: https://github.com/home-assistant/core/pull/107372 +[#107373]: https://github.com/home-assistant/core/pull/107373 +[#107377]: https://github.com/home-assistant/core/pull/107377 +[#107379]: https://github.com/home-assistant/core/pull/107379 +[#107380]: https://github.com/home-assistant/core/pull/107380 +[#107381]: https://github.com/home-assistant/core/pull/107381 +[#107382]: https://github.com/home-assistant/core/pull/107382 +[#107383]: https://github.com/home-assistant/core/pull/107383 +[#107402]: https://github.com/home-assistant/core/pull/107402 +[#107405]: https://github.com/home-assistant/core/pull/107405 +[#107408]: https://github.com/home-assistant/core/pull/107408 +[#107409]: https://github.com/home-assistant/core/pull/107409 +[#107410]: https://github.com/home-assistant/core/pull/107410 +[#107411]: https://github.com/home-assistant/core/pull/107411 +[#107417]: https://github.com/home-assistant/core/pull/107417 +[#107421]: https://github.com/home-assistant/core/pull/107421 +[#107423]: https://github.com/home-assistant/core/pull/107423 +[#107424]: https://github.com/home-assistant/core/pull/107424 +[#107425]: https://github.com/home-assistant/core/pull/107425 +[#107426]: https://github.com/home-assistant/core/pull/107426 +[#107427]: https://github.com/home-assistant/core/pull/107427 +[#107428]: https://github.com/home-assistant/core/pull/107428 +[#107436]: https://github.com/home-assistant/core/pull/107436 +[#107437]: https://github.com/home-assistant/core/pull/107437 +[#107438]: https://github.com/home-assistant/core/pull/107438 +[#107439]: https://github.com/home-assistant/core/pull/107439 +[#107440]: https://github.com/home-assistant/core/pull/107440 +[#107444]: https://github.com/home-assistant/core/pull/107444 +[#107445]: https://github.com/home-assistant/core/pull/107445 +[#107447]: https://github.com/home-assistant/core/pull/107447 +[#107454]: https://github.com/home-assistant/core/pull/107454 +[#107458]: https://github.com/home-assistant/core/pull/107458 +[#107459]: https://github.com/home-assistant/core/pull/107459 +[#107460]: https://github.com/home-assistant/core/pull/107460 +[#107467]: https://github.com/home-assistant/core/pull/107467 +[#107469]: https://github.com/home-assistant/core/pull/107469 +[#107480]: https://github.com/home-assistant/core/pull/107480 +[#107486]: https://github.com/home-assistant/core/pull/107486 +[#107488]: https://github.com/home-assistant/core/pull/107488 +[#107497]: https://github.com/home-assistant/core/pull/107497 +[#107503]: https://github.com/home-assistant/core/pull/107503 +[#107509]: https://github.com/home-assistant/core/pull/107509 +[#107512]: https://github.com/home-assistant/core/pull/107512 +[#107514]: https://github.com/home-assistant/core/pull/107514 +[#107516]: https://github.com/home-assistant/core/pull/107516 +[#107518]: https://github.com/home-assistant/core/pull/107518 +[#107520]: https://github.com/home-assistant/core/pull/107520 +[#107529]: https://github.com/home-assistant/core/pull/107529 +[#107534]: https://github.com/home-assistant/core/pull/107534 +[#107535]: https://github.com/home-assistant/core/pull/107535 +[#107539]: https://github.com/home-assistant/core/pull/107539 +[#107540]: https://github.com/home-assistant/core/pull/107540 +[#107542]: https://github.com/home-assistant/core/pull/107542 +[#107547]: https://github.com/home-assistant/core/pull/107547 +[#107548]: https://github.com/home-assistant/core/pull/107548 +[#107553]: https://github.com/home-assistant/core/pull/107553 +[#107555]: https://github.com/home-assistant/core/pull/107555 +[#107556]: https://github.com/home-assistant/core/pull/107556 +[#107557]: https://github.com/home-assistant/core/pull/107557 +[#107558]: https://github.com/home-assistant/core/pull/107558 +[#107559]: https://github.com/home-assistant/core/pull/107559 +[#107560]: https://github.com/home-assistant/core/pull/107560 +[#107567]: https://github.com/home-assistant/core/pull/107567 +[#107570]: https://github.com/home-assistant/core/pull/107570 +[#107571]: https://github.com/home-assistant/core/pull/107571 +[#107576]: https://github.com/home-assistant/core/pull/107576 +[#107578]: https://github.com/home-assistant/core/pull/107578 +[#107582]: https://github.com/home-assistant/core/pull/107582 +[#107583]: https://github.com/home-assistant/core/pull/107583 +[#107584]: https://github.com/home-assistant/core/pull/107584 +[#107585]: https://github.com/home-assistant/core/pull/107585 +[#107587]: https://github.com/home-assistant/core/pull/107587 +[#107590]: https://github.com/home-assistant/core/pull/107590 +[#107595]: https://github.com/home-assistant/core/pull/107595 +[#107596]: https://github.com/home-assistant/core/pull/107596 +[#107597]: https://github.com/home-assistant/core/pull/107597 +[#107598]: https://github.com/home-assistant/core/pull/107598 +[#107599]: https://github.com/home-assistant/core/pull/107599 +[#107601]: https://github.com/home-assistant/core/pull/107601 +[#107602]: https://github.com/home-assistant/core/pull/107602 +[#107603]: https://github.com/home-assistant/core/pull/107603 +[#107604]: https://github.com/home-assistant/core/pull/107604 +[#107607]: https://github.com/home-assistant/core/pull/107607 +[#107611]: https://github.com/home-assistant/core/pull/107611 +[#107612]: https://github.com/home-assistant/core/pull/107612 +[#107613]: https://github.com/home-assistant/core/pull/107613 +[#107617]: https://github.com/home-assistant/core/pull/107617 +[#107618]: https://github.com/home-assistant/core/pull/107618 +[#107621]: https://github.com/home-assistant/core/pull/107621 +[#107622]: https://github.com/home-assistant/core/pull/107622 +[#107623]: https://github.com/home-assistant/core/pull/107623 +[#107624]: https://github.com/home-assistant/core/pull/107624 +[#107625]: https://github.com/home-assistant/core/pull/107625 +[#107626]: https://github.com/home-assistant/core/pull/107626 +[#107627]: https://github.com/home-assistant/core/pull/107627 +[#107628]: https://github.com/home-assistant/core/pull/107628 +[#107634]: https://github.com/home-assistant/core/pull/107634 +[#107641]: https://github.com/home-assistant/core/pull/107641 +[#107643]: https://github.com/home-assistant/core/pull/107643 +[#107644]: https://github.com/home-assistant/core/pull/107644 +[#107646]: https://github.com/home-assistant/core/pull/107646 +[#107653]: https://github.com/home-assistant/core/pull/107653 +[#107654]: https://github.com/home-assistant/core/pull/107654 +[#107659]: https://github.com/home-assistant/core/pull/107659 +[#107663]: https://github.com/home-assistant/core/pull/107663 +[#107666]: https://github.com/home-assistant/core/pull/107666 +[#107668]: https://github.com/home-assistant/core/pull/107668 +[#107670]: https://github.com/home-assistant/core/pull/107670 +[#107672]: https://github.com/home-assistant/core/pull/107672 +[#107675]: https://github.com/home-assistant/core/pull/107675 +[#107685]: https://github.com/home-assistant/core/pull/107685 +[#107694]: https://github.com/home-assistant/core/pull/107694 +[#107696]: https://github.com/home-assistant/core/pull/107696 +[#107706]: https://github.com/home-assistant/core/pull/107706 +[#107707]: https://github.com/home-assistant/core/pull/107707 +[#107708]: https://github.com/home-assistant/core/pull/107708 +[#107709]: https://github.com/home-assistant/core/pull/107709 +[#107740]: https://github.com/home-assistant/core/pull/107740 +[#107743]: https://github.com/home-assistant/core/pull/107743 +[#107745]: https://github.com/home-assistant/core/pull/107745 +[#107756]: https://github.com/home-assistant/core/pull/107756 +[#107757]: https://github.com/home-assistant/core/pull/107757 +[#107760]: https://github.com/home-assistant/core/pull/107760 +[#107762]: https://github.com/home-assistant/core/pull/107762 +[#107765]: https://github.com/home-assistant/core/pull/107765 +[#107766]: https://github.com/home-assistant/core/pull/107766 +[#107767]: https://github.com/home-assistant/core/pull/107767 +[#107773]: https://github.com/home-assistant/core/pull/107773 +[#107778]: https://github.com/home-assistant/core/pull/107778 +[#107779]: https://github.com/home-assistant/core/pull/107779 +[#107781]: https://github.com/home-assistant/core/pull/107781 +[#107786]: https://github.com/home-assistant/core/pull/107786 +[#107787]: https://github.com/home-assistant/core/pull/107787 +[#107788]: https://github.com/home-assistant/core/pull/107788 +[#107789]: https://github.com/home-assistant/core/pull/107789 +[#107790]: https://github.com/home-assistant/core/pull/107790 +[#107791]: https://github.com/home-assistant/core/pull/107791 +[#107792]: https://github.com/home-assistant/core/pull/107792 +[#107793]: https://github.com/home-assistant/core/pull/107793 +[#107794]: https://github.com/home-assistant/core/pull/107794 +[#107796]: https://github.com/home-assistant/core/pull/107796 +[#107799]: https://github.com/home-assistant/core/pull/107799 +[#107802]: https://github.com/home-assistant/core/pull/107802 +[#107805]: https://github.com/home-assistant/core/pull/107805 +[#107807]: https://github.com/home-assistant/core/pull/107807 +[#107815]: https://github.com/home-assistant/core/pull/107815 +[#107822]: https://github.com/home-assistant/core/pull/107822 +[#107832]: https://github.com/home-assistant/core/pull/107832 +[#107833]: https://github.com/home-assistant/core/pull/107833 +[#107834]: https://github.com/home-assistant/core/pull/107834 +[#107835]: https://github.com/home-assistant/core/pull/107835 +[#107839]: https://github.com/home-assistant/core/pull/107839 +[#107840]: https://github.com/home-assistant/core/pull/107840 +[#107845]: https://github.com/home-assistant/core/pull/107845 +[#107846]: https://github.com/home-assistant/core/pull/107846 +[#107856]: https://github.com/home-assistant/core/pull/107856 +[#107857]: https://github.com/home-assistant/core/pull/107857 +[#107859]: https://github.com/home-assistant/core/pull/107859 +[#107860]: https://github.com/home-assistant/core/pull/107860 +[#107861]: https://github.com/home-assistant/core/pull/107861 +[#107863]: https://github.com/home-assistant/core/pull/107863 +[#107864]: https://github.com/home-assistant/core/pull/107864 +[#107873]: https://github.com/home-assistant/core/pull/107873 +[#107882]: https://github.com/home-assistant/core/pull/107882 +[#107884]: https://github.com/home-assistant/core/pull/107884 +[#107886]: https://github.com/home-assistant/core/pull/107886 +[#107888]: https://github.com/home-assistant/core/pull/107888 +[#107891]: https://github.com/home-assistant/core/pull/107891 +[#107893]: https://github.com/home-assistant/core/pull/107893 +[#107895]: https://github.com/home-assistant/core/pull/107895 +[#107896]: https://github.com/home-assistant/core/pull/107896 +[#107898]: https://github.com/home-assistant/core/pull/107898 +[#107899]: https://github.com/home-assistant/core/pull/107899 +[#107902]: https://github.com/home-assistant/core/pull/107902 +[#107904]: https://github.com/home-assistant/core/pull/107904 +[#107907]: https://github.com/home-assistant/core/pull/107907 +[#107909]: https://github.com/home-assistant/core/pull/107909 +[#107910]: https://github.com/home-assistant/core/pull/107910 +[#107911]: https://github.com/home-assistant/core/pull/107911 +[#107912]: https://github.com/home-assistant/core/pull/107912 +[#107913]: https://github.com/home-assistant/core/pull/107913 +[#107914]: https://github.com/home-assistant/core/pull/107914 +[#107915]: https://github.com/home-assistant/core/pull/107915 +[#107917]: https://github.com/home-assistant/core/pull/107917 +[#107918]: https://github.com/home-assistant/core/pull/107918 +[#107923]: https://github.com/home-assistant/core/pull/107923 +[#107924]: https://github.com/home-assistant/core/pull/107924 +[#107925]: https://github.com/home-assistant/core/pull/107925 +[#107927]: https://github.com/home-assistant/core/pull/107927 +[#107932]: https://github.com/home-assistant/core/pull/107932 +[#107935]: https://github.com/home-assistant/core/pull/107935 +[#107937]: https://github.com/home-assistant/core/pull/107937 +[#107938]: https://github.com/home-assistant/core/pull/107938 +[#107939]: https://github.com/home-assistant/core/pull/107939 +[#107944]: https://github.com/home-assistant/core/pull/107944 +[#107945]: https://github.com/home-assistant/core/pull/107945 +[#107946]: https://github.com/home-assistant/core/pull/107946 +[#107948]: https://github.com/home-assistant/core/pull/107948 +[#107952]: https://github.com/home-assistant/core/pull/107952 +[#107956]: https://github.com/home-assistant/core/pull/107956 +[#107959]: https://github.com/home-assistant/core/pull/107959 +[#107962]: https://github.com/home-assistant/core/pull/107962 +[#107967]: https://github.com/home-assistant/core/pull/107967 +[#107970]: https://github.com/home-assistant/core/pull/107970 +[#107971]: https://github.com/home-assistant/core/pull/107971 +[#107972]: https://github.com/home-assistant/core/pull/107972 +[#107984]: https://github.com/home-assistant/core/pull/107984 +[#107986]: https://github.com/home-assistant/core/pull/107986 +[#107989]: https://github.com/home-assistant/core/pull/107989 +[#107992]: https://github.com/home-assistant/core/pull/107992 +[#107997]: https://github.com/home-assistant/core/pull/107997 +[#107998]: https://github.com/home-assistant/core/pull/107998 +[#107999]: https://github.com/home-assistant/core/pull/107999 +[#108000]: https://github.com/home-assistant/core/pull/108000 +[#108002]: https://github.com/home-assistant/core/pull/108002 +[#108007]: https://github.com/home-assistant/core/pull/108007 +[#108009]: https://github.com/home-assistant/core/pull/108009 +[#108010]: https://github.com/home-assistant/core/pull/108010 +[#108011]: https://github.com/home-assistant/core/pull/108011 +[#108012]: https://github.com/home-assistant/core/pull/108012 +[#108016]: https://github.com/home-assistant/core/pull/108016 +[#108019]: https://github.com/home-assistant/core/pull/108019 +[#108022]: https://github.com/home-assistant/core/pull/108022 +[#108023]: https://github.com/home-assistant/core/pull/108023 +[#108024]: https://github.com/home-assistant/core/pull/108024 +[#108025]: https://github.com/home-assistant/core/pull/108025 +[#108026]: https://github.com/home-assistant/core/pull/108026 +[#108027]: https://github.com/home-assistant/core/pull/108027 +[#108028]: https://github.com/home-assistant/core/pull/108028 +[#108033]: https://github.com/home-assistant/core/pull/108033 +[#108034]: https://github.com/home-assistant/core/pull/108034 +[#108039]: https://github.com/home-assistant/core/pull/108039 +[#108040]: https://github.com/home-assistant/core/pull/108040 +[#108041]: https://github.com/home-assistant/core/pull/108041 +[#108042]: https://github.com/home-assistant/core/pull/108042 +[#108048]: https://github.com/home-assistant/core/pull/108048 +[#108050]: https://github.com/home-assistant/core/pull/108050 +[#108051]: https://github.com/home-assistant/core/pull/108051 +[#108053]: https://github.com/home-assistant/core/pull/108053 +[#108054]: https://github.com/home-assistant/core/pull/108054 +[#108062]: https://github.com/home-assistant/core/pull/108062 +[#108067]: https://github.com/home-assistant/core/pull/108067 +[#108072]: https://github.com/home-assistant/core/pull/108072 +[#108073]: https://github.com/home-assistant/core/pull/108073 +[#108075]: https://github.com/home-assistant/core/pull/108075 +[#108079]: https://github.com/home-assistant/core/pull/108079 +[#108084]: https://github.com/home-assistant/core/pull/108084 +[#108086]: https://github.com/home-assistant/core/pull/108086 +[#108089]: https://github.com/home-assistant/core/pull/108089 +[#108090]: https://github.com/home-assistant/core/pull/108090 +[#108092]: https://github.com/home-assistant/core/pull/108092 +[#108093]: https://github.com/home-assistant/core/pull/108093 +[#108094]: https://github.com/home-assistant/core/pull/108094 +[#108096]: https://github.com/home-assistant/core/pull/108096 +[#108097]: https://github.com/home-assistant/core/pull/108097 +[#108105]: https://github.com/home-assistant/core/pull/108105 +[#108106]: https://github.com/home-assistant/core/pull/108106 +[#108109]: https://github.com/home-assistant/core/pull/108109 +[#108110]: https://github.com/home-assistant/core/pull/108110 +[#108111]: https://github.com/home-assistant/core/pull/108111 +[#108113]: https://github.com/home-assistant/core/pull/108113 +[#108114]: https://github.com/home-assistant/core/pull/108114 +[#108115]: https://github.com/home-assistant/core/pull/108115 +[#108124]: https://github.com/home-assistant/core/pull/108124 +[#108128]: https://github.com/home-assistant/core/pull/108128 +[#108132]: https://github.com/home-assistant/core/pull/108132 +[#108134]: https://github.com/home-assistant/core/pull/108134 +[#108139]: https://github.com/home-assistant/core/pull/108139 +[#108141]: https://github.com/home-assistant/core/pull/108141 +[#108143]: https://github.com/home-assistant/core/pull/108143 +[#108144]: https://github.com/home-assistant/core/pull/108144 +[#108145]: https://github.com/home-assistant/core/pull/108145 +[#108147]: https://github.com/home-assistant/core/pull/108147 +[#108148]: https://github.com/home-assistant/core/pull/108148 +[#108150]: https://github.com/home-assistant/core/pull/108150 +[#108157]: https://github.com/home-assistant/core/pull/108157 +[#108160]: https://github.com/home-assistant/core/pull/108160 +[#108162]: https://github.com/home-assistant/core/pull/108162 +[#108163]: https://github.com/home-assistant/core/pull/108163 +[#108164]: https://github.com/home-assistant/core/pull/108164 +[#108165]: https://github.com/home-assistant/core/pull/108165 +[#108166]: https://github.com/home-assistant/core/pull/108166 +[#108167]: https://github.com/home-assistant/core/pull/108167 +[#108173]: https://github.com/home-assistant/core/pull/108173 +[#108174]: https://github.com/home-assistant/core/pull/108174 +[#108176]: https://github.com/home-assistant/core/pull/108176 +[#108177]: https://github.com/home-assistant/core/pull/108177 +[#108179]: https://github.com/home-assistant/core/pull/108179 +[#108182]: https://github.com/home-assistant/core/pull/108182 +[#108189]: https://github.com/home-assistant/core/pull/108189 +[#108190]: https://github.com/home-assistant/core/pull/108190 +[#108191]: https://github.com/home-assistant/core/pull/108191 +[#108192]: https://github.com/home-assistant/core/pull/108192 +[#108194]: https://github.com/home-assistant/core/pull/108194 +[#108195]: https://github.com/home-assistant/core/pull/108195 +[#108196]: https://github.com/home-assistant/core/pull/108196 +[#108197]: https://github.com/home-assistant/core/pull/108197 +[#108203]: https://github.com/home-assistant/core/pull/108203 +[#108209]: https://github.com/home-assistant/core/pull/108209 +[#108210]: https://github.com/home-assistant/core/pull/108210 +[#108212]: https://github.com/home-assistant/core/pull/108212 +[#108216]: https://github.com/home-assistant/core/pull/108216 +[#108217]: https://github.com/home-assistant/core/pull/108217 +[#108218]: https://github.com/home-assistant/core/pull/108218 +[#108220]: https://github.com/home-assistant/core/pull/108220 +[#108222]: https://github.com/home-assistant/core/pull/108222 +[#108228]: https://github.com/home-assistant/core/pull/108228 +[#108229]: https://github.com/home-assistant/core/pull/108229 +[#108231]: https://github.com/home-assistant/core/pull/108231 +[#108233]: https://github.com/home-assistant/core/pull/108233 +[#108235]: https://github.com/home-assistant/core/pull/108235 +[#108236]: https://github.com/home-assistant/core/pull/108236 +[#108238]: https://github.com/home-assistant/core/pull/108238 +[#108240]: https://github.com/home-assistant/core/pull/108240 +[#108243]: https://github.com/home-assistant/core/pull/108243 +[#108244]: https://github.com/home-assistant/core/pull/108244 +[#108247]: https://github.com/home-assistant/core/pull/108247 +[#108252]: https://github.com/home-assistant/core/pull/108252 +[#108253]: https://github.com/home-assistant/core/pull/108253 +[#108257]: https://github.com/home-assistant/core/pull/108257 +[#108262]: https://github.com/home-assistant/core/pull/108262 +[#108263]: https://github.com/home-assistant/core/pull/108263 +[#108268]: https://github.com/home-assistant/core/pull/108268 +[#108269]: https://github.com/home-assistant/core/pull/108269 +[#108270]: https://github.com/home-assistant/core/pull/108270 +[#108272]: https://github.com/home-assistant/core/pull/108272 +[#108273]: https://github.com/home-assistant/core/pull/108273 +[#108274]: https://github.com/home-assistant/core/pull/108274 +[#108275]: https://github.com/home-assistant/core/pull/108275 +[#108278]: https://github.com/home-assistant/core/pull/108278 +[#108284]: https://github.com/home-assistant/core/pull/108284 +[#108288]: https://github.com/home-assistant/core/pull/108288 +[#108291]: https://github.com/home-assistant/core/pull/108291 +[#108293]: https://github.com/home-assistant/core/pull/108293 +[#108294]: https://github.com/home-assistant/core/pull/108294 +[#108295]: https://github.com/home-assistant/core/pull/108295 +[#108297]: https://github.com/home-assistant/core/pull/108297 +[#108302]: https://github.com/home-assistant/core/pull/108302 +[#108306]: https://github.com/home-assistant/core/pull/108306 +[#108307]: https://github.com/home-assistant/core/pull/108307 +[#108308]: https://github.com/home-assistant/core/pull/108308 +[#108309]: https://github.com/home-assistant/core/pull/108309 +[#108313]: https://github.com/home-assistant/core/pull/108313 +[#108314]: https://github.com/home-assistant/core/pull/108314 +[#108316]: https://github.com/home-assistant/core/pull/108316 +[#108319]: https://github.com/home-assistant/core/pull/108319 +[#108322]: https://github.com/home-assistant/core/pull/108322 +[#108325]: https://github.com/home-assistant/core/pull/108325 +[#108327]: https://github.com/home-assistant/core/pull/108327 +[#108329]: https://github.com/home-assistant/core/pull/108329 +[#108331]: https://github.com/home-assistant/core/pull/108331 +[#108332]: https://github.com/home-assistant/core/pull/108332 +[#108337]: https://github.com/home-assistant/core/pull/108337 +[#108339]: https://github.com/home-assistant/core/pull/108339 +[#108340]: https://github.com/home-assistant/core/pull/108340 +[#108342]: https://github.com/home-assistant/core/pull/108342 +[#108346]: https://github.com/home-assistant/core/pull/108346 +[#108347]: https://github.com/home-assistant/core/pull/108347 +[#108350]: https://github.com/home-assistant/core/pull/108350 +[#108353]: https://github.com/home-assistant/core/pull/108353 +[#108355]: https://github.com/home-assistant/core/pull/108355 +[#108358]: https://github.com/home-assistant/core/pull/108358 +[#108359]: https://github.com/home-assistant/core/pull/108359 +[#108360]: https://github.com/home-assistant/core/pull/108360 +[#108363]: https://github.com/home-assistant/core/pull/108363 +[#108365]: https://github.com/home-assistant/core/pull/108365 +[#108366]: https://github.com/home-assistant/core/pull/108366 +[#108367]: https://github.com/home-assistant/core/pull/108367 +[#108368]: https://github.com/home-assistant/core/pull/108368 +[#108369]: https://github.com/home-assistant/core/pull/108369 +[#108370]: https://github.com/home-assistant/core/pull/108370 +[#108371]: https://github.com/home-assistant/core/pull/108371 +[#108373]: https://github.com/home-assistant/core/pull/108373 +[#108375]: https://github.com/home-assistant/core/pull/108375 +[#108377]: https://github.com/home-assistant/core/pull/108377 +[#108381]: https://github.com/home-assistant/core/pull/108381 +[#108383]: https://github.com/home-assistant/core/pull/108383 +[#108384]: https://github.com/home-assistant/core/pull/108384 +[#108385]: https://github.com/home-assistant/core/pull/108385 +[#108390]: https://github.com/home-assistant/core/pull/108390 +[#108391]: https://github.com/home-assistant/core/pull/108391 +[#108393]: https://github.com/home-assistant/core/pull/108393 +[#108395]: https://github.com/home-assistant/core/pull/108395 +[#108396]: https://github.com/home-assistant/core/pull/108396 +[#108397]: https://github.com/home-assistant/core/pull/108397 +[#108398]: https://github.com/home-assistant/core/pull/108398 +[#108399]: https://github.com/home-assistant/core/pull/108399 +[#108400]: https://github.com/home-assistant/core/pull/108400 +[#108401]: https://github.com/home-assistant/core/pull/108401 +[#108402]: https://github.com/home-assistant/core/pull/108402 +[#108403]: https://github.com/home-assistant/core/pull/108403 +[#108404]: https://github.com/home-assistant/core/pull/108404 +[#108405]: https://github.com/home-assistant/core/pull/108405 +[#108406]: https://github.com/home-assistant/core/pull/108406 +[#108407]: https://github.com/home-assistant/core/pull/108407 +[#108408]: https://github.com/home-assistant/core/pull/108408 +[#108409]: https://github.com/home-assistant/core/pull/108409 +[#108410]: https://github.com/home-assistant/core/pull/108410 +[#108413]: https://github.com/home-assistant/core/pull/108413 +[#108414]: https://github.com/home-assistant/core/pull/108414 +[#108415]: https://github.com/home-assistant/core/pull/108415 +[#108416]: https://github.com/home-assistant/core/pull/108416 +[#108417]: https://github.com/home-assistant/core/pull/108417 +[#108418]: https://github.com/home-assistant/core/pull/108418 +[#108419]: https://github.com/home-assistant/core/pull/108419 +[#108420]: https://github.com/home-assistant/core/pull/108420 +[#108421]: https://github.com/home-assistant/core/pull/108421 +[#108422]: https://github.com/home-assistant/core/pull/108422 +[#108423]: https://github.com/home-assistant/core/pull/108423 +[#108428]: https://github.com/home-assistant/core/pull/108428 +[#108431]: https://github.com/home-assistant/core/pull/108431 +[#108435]: https://github.com/home-assistant/core/pull/108435 +[#108447]: https://github.com/home-assistant/core/pull/108447 +[#108448]: https://github.com/home-assistant/core/pull/108448 +[#108449]: https://github.com/home-assistant/core/pull/108449 +[#108450]: https://github.com/home-assistant/core/pull/108450 +[#108451]: https://github.com/home-assistant/core/pull/108451 +[#108452]: https://github.com/home-assistant/core/pull/108452 +[#108453]: https://github.com/home-assistant/core/pull/108453 +[#108455]: https://github.com/home-assistant/core/pull/108455 +[#108456]: https://github.com/home-assistant/core/pull/108456 +[#108457]: https://github.com/home-assistant/core/pull/108457 +[#108458]: https://github.com/home-assistant/core/pull/108458 +[#108460]: https://github.com/home-assistant/core/pull/108460 +[#108461]: https://github.com/home-assistant/core/pull/108461 +[#108462]: https://github.com/home-assistant/core/pull/108462 +[#108463]: https://github.com/home-assistant/core/pull/108463 +[#108464]: https://github.com/home-assistant/core/pull/108464 +[#108465]: https://github.com/home-assistant/core/pull/108465 +[#108466]: https://github.com/home-assistant/core/pull/108466 +[#108467]: https://github.com/home-assistant/core/pull/108467 +[#108469]: https://github.com/home-assistant/core/pull/108469 +[#108470]: https://github.com/home-assistant/core/pull/108470 +[#108471]: https://github.com/home-assistant/core/pull/108471 +[#108472]: https://github.com/home-assistant/core/pull/108472 +[#108473]: https://github.com/home-assistant/core/pull/108473 +[#108474]: https://github.com/home-assistant/core/pull/108474 +[#108475]: https://github.com/home-assistant/core/pull/108475 +[#108476]: https://github.com/home-assistant/core/pull/108476 +[#108477]: https://github.com/home-assistant/core/pull/108477 +[#108479]: https://github.com/home-assistant/core/pull/108479 +[#108480]: https://github.com/home-assistant/core/pull/108480 +[#108481]: https://github.com/home-assistant/core/pull/108481 +[#108482]: https://github.com/home-assistant/core/pull/108482 +[#108484]: https://github.com/home-assistant/core/pull/108484 +[#108486]: https://github.com/home-assistant/core/pull/108486 +[#108488]: https://github.com/home-assistant/core/pull/108488 +[#108491]: https://github.com/home-assistant/core/pull/108491 +[#108494]: https://github.com/home-assistant/core/pull/108494 +[#108495]: https://github.com/home-assistant/core/pull/108495 +[#108498]: https://github.com/home-assistant/core/pull/108498 +[#108499]: https://github.com/home-assistant/core/pull/108499 +[#108501]: https://github.com/home-assistant/core/pull/108501 +[#108506]: https://github.com/home-assistant/core/pull/108506 +[#108507]: https://github.com/home-assistant/core/pull/108507 +[#108508]: https://github.com/home-assistant/core/pull/108508 +[#108511]: https://github.com/home-assistant/core/pull/108511 +[#108532]: https://github.com/home-assistant/core/pull/108532 +[#108534]: https://github.com/home-assistant/core/pull/108534 +[#108543]: https://github.com/home-assistant/core/pull/108543 +[#108544]: https://github.com/home-assistant/core/pull/108544 +[#108546]: https://github.com/home-assistant/core/pull/108546 +[#108554]: https://github.com/home-assistant/core/pull/108554 +[#108556]: https://github.com/home-assistant/core/pull/108556 +[#108559]: https://github.com/home-assistant/core/pull/108559 +[#108564]: https://github.com/home-assistant/core/pull/108564 +[#108568]: https://github.com/home-assistant/core/pull/108568 +[#108569]: https://github.com/home-assistant/core/pull/108569 +[#108571]: https://github.com/home-assistant/core/pull/108571 +[#108576]: https://github.com/home-assistant/core/pull/108576 +[#108586]: https://github.com/home-assistant/core/pull/108586 +[#108587]: https://github.com/home-assistant/core/pull/108587 +[#108594]: https://github.com/home-assistant/core/pull/108594 +[#108599]: https://github.com/home-assistant/core/pull/108599 +[#108600]: https://github.com/home-assistant/core/pull/108600 +[#108604]: https://github.com/home-assistant/core/pull/108604 +[#108605]: https://github.com/home-assistant/core/pull/108605 +[#108606]: https://github.com/home-assistant/core/pull/108606 +[#108608]: https://github.com/home-assistant/core/pull/108608 +[#108611]: https://github.com/home-assistant/core/pull/108611 +[#108617]: https://github.com/home-assistant/core/pull/108617 +[#108623]: https://github.com/home-assistant/core/pull/108623 +[#108624]: https://github.com/home-assistant/core/pull/108624 +[#108625]: https://github.com/home-assistant/core/pull/108625 +[#108626]: https://github.com/home-assistant/core/pull/108626 +[#108627]: https://github.com/home-assistant/core/pull/108627 +[#108628]: https://github.com/home-assistant/core/pull/108628 +[#108629]: https://github.com/home-assistant/core/pull/108629 +[#108632]: https://github.com/home-assistant/core/pull/108632 +[#108633]: https://github.com/home-assistant/core/pull/108633 +[#108634]: https://github.com/home-assistant/core/pull/108634 +[#108637]: https://github.com/home-assistant/core/pull/108637 +[#108638]: https://github.com/home-assistant/core/pull/108638 +[#108639]: https://github.com/home-assistant/core/pull/108639 +[#108643]: https://github.com/home-assistant/core/pull/108643 +[#108645]: https://github.com/home-assistant/core/pull/108645 +[#108648]: https://github.com/home-assistant/core/pull/108648 +[#108650]: https://github.com/home-assistant/core/pull/108650 +[#108653]: https://github.com/home-assistant/core/pull/108653 +[#108656]: https://github.com/home-assistant/core/pull/108656 +[#108667]: https://github.com/home-assistant/core/pull/108667 +[#108668]: https://github.com/home-assistant/core/pull/108668 +[#108669]: https://github.com/home-assistant/core/pull/108669 +[#108670]: https://github.com/home-assistant/core/pull/108670 +[#108671]: https://github.com/home-assistant/core/pull/108671 +[#108672]: https://github.com/home-assistant/core/pull/108672 +[#108673]: https://github.com/home-assistant/core/pull/108673 +[#108674]: https://github.com/home-assistant/core/pull/108674 +[#108675]: https://github.com/home-assistant/core/pull/108675 +[#108676]: https://github.com/home-assistant/core/pull/108676 +[#108677]: https://github.com/home-assistant/core/pull/108677 +[#108678]: https://github.com/home-assistant/core/pull/108678 +[#108679]: https://github.com/home-assistant/core/pull/108679 +[#108680]: https://github.com/home-assistant/core/pull/108680 +[#108681]: https://github.com/home-assistant/core/pull/108681 +[#108682]: https://github.com/home-assistant/core/pull/108682 +[#108683]: https://github.com/home-assistant/core/pull/108683 +[#108684]: https://github.com/home-assistant/core/pull/108684 +[#108686]: https://github.com/home-assistant/core/pull/108686 +[#108688]: https://github.com/home-assistant/core/pull/108688 +[#108689]: https://github.com/home-assistant/core/pull/108689 +[#108690]: https://github.com/home-assistant/core/pull/108690 +[#108691]: https://github.com/home-assistant/core/pull/108691 +[#108692]: https://github.com/home-assistant/core/pull/108692 +[#108695]: https://github.com/home-assistant/core/pull/108695 +[#108699]: https://github.com/home-assistant/core/pull/108699 +[#108703]: https://github.com/home-assistant/core/pull/108703 +[#108704]: https://github.com/home-assistant/core/pull/108704 +[#108710]: https://github.com/home-assistant/core/pull/108710 +[#108713]: https://github.com/home-assistant/core/pull/108713 +[#108715]: https://github.com/home-assistant/core/pull/108715 +[#108716]: https://github.com/home-assistant/core/pull/108716 +[#108717]: https://github.com/home-assistant/core/pull/108717 +[#108718]: https://github.com/home-assistant/core/pull/108718 +[#108719]: https://github.com/home-assistant/core/pull/108719 +[#108721]: https://github.com/home-assistant/core/pull/108721 +[#108722]: https://github.com/home-assistant/core/pull/108722 +[#108723]: https://github.com/home-assistant/core/pull/108723 +[#108725]: https://github.com/home-assistant/core/pull/108725 +[#108726]: https://github.com/home-assistant/core/pull/108726 +[#108727]: https://github.com/home-assistant/core/pull/108727 +[#108730]: https://github.com/home-assistant/core/pull/108730 +[#108731]: https://github.com/home-assistant/core/pull/108731 +[#108733]: https://github.com/home-assistant/core/pull/108733 +[#108734]: https://github.com/home-assistant/core/pull/108734 +[#108735]: https://github.com/home-assistant/core/pull/108735 +[#108736]: https://github.com/home-assistant/core/pull/108736 +[#108737]: https://github.com/home-assistant/core/pull/108737 +[#108738]: https://github.com/home-assistant/core/pull/108738 +[#108740]: https://github.com/home-assistant/core/pull/108740 +[#108741]: https://github.com/home-assistant/core/pull/108741 +[#108750]: https://github.com/home-assistant/core/pull/108750 +[#108751]: https://github.com/home-assistant/core/pull/108751 +[#108753]: https://github.com/home-assistant/core/pull/108753 +[#108756]: https://github.com/home-assistant/core/pull/108756 +[#108757]: https://github.com/home-assistant/core/pull/108757 +[#108758]: https://github.com/home-assistant/core/pull/108758 +[#108759]: https://github.com/home-assistant/core/pull/108759 +[#108760]: https://github.com/home-assistant/core/pull/108760 +[#108761]: https://github.com/home-assistant/core/pull/108761 +[#108762]: https://github.com/home-assistant/core/pull/108762 +[#108766]: https://github.com/home-assistant/core/pull/108766 +[#108767]: https://github.com/home-assistant/core/pull/108767 +[#108768]: https://github.com/home-assistant/core/pull/108768 +[#108769]: https://github.com/home-assistant/core/pull/108769 +[#108770]: https://github.com/home-assistant/core/pull/108770 +[#108772]: https://github.com/home-assistant/core/pull/108772 +[#108779]: https://github.com/home-assistant/core/pull/108779 +[#108783]: https://github.com/home-assistant/core/pull/108783 +[#108787]: https://github.com/home-assistant/core/pull/108787 +[#108788]: https://github.com/home-assistant/core/pull/108788 +[#108791]: https://github.com/home-assistant/core/pull/108791 +[#108798]: https://github.com/home-assistant/core/pull/108798 +[#108800]: https://github.com/home-assistant/core/pull/108800 +[#108801]: https://github.com/home-assistant/core/pull/108801 +[#108804]: https://github.com/home-assistant/core/pull/108804 +[#108805]: https://github.com/home-assistant/core/pull/108805 +[#108811]: https://github.com/home-assistant/core/pull/108811 +[#108812]: https://github.com/home-assistant/core/pull/108812 +[#108815]: https://github.com/home-assistant/core/pull/108815 +[#108818]: https://github.com/home-assistant/core/pull/108818 +[#108820]: https://github.com/home-assistant/core/pull/108820 +[#108823]: https://github.com/home-assistant/core/pull/108823 +[#108826]: https://github.com/home-assistant/core/pull/108826 +[#108830]: https://github.com/home-assistant/core/pull/108830 +[#108831]: https://github.com/home-assistant/core/pull/108831 +[#108838]: https://github.com/home-assistant/core/pull/108838 +[#108848]: https://github.com/home-assistant/core/pull/108848 +[#108850]: https://github.com/home-assistant/core/pull/108850 +[#108851]: https://github.com/home-assistant/core/pull/108851 +[#108852]: https://github.com/home-assistant/core/pull/108852 +[#108853]: https://github.com/home-assistant/core/pull/108853 +[#108854]: https://github.com/home-assistant/core/pull/108854 +[#108855]: https://github.com/home-assistant/core/pull/108855 +[#108856]: https://github.com/home-assistant/core/pull/108856 +[#108858]: https://github.com/home-assistant/core/pull/108858 +[#108861]: https://github.com/home-assistant/core/pull/108861 +[#108862]: https://github.com/home-assistant/core/pull/108862 +[#108865]: https://github.com/home-assistant/core/pull/108865 +[#108866]: https://github.com/home-assistant/core/pull/108866 +[#108868]: https://github.com/home-assistant/core/pull/108868 +[#108870]: https://github.com/home-assistant/core/pull/108870 +[#108875]: https://github.com/home-assistant/core/pull/108875 +[#108877]: https://github.com/home-assistant/core/pull/108877 +[#108884]: https://github.com/home-assistant/core/pull/108884 +[#108885]: https://github.com/home-assistant/core/pull/108885 +[#108889]: https://github.com/home-assistant/core/pull/108889 +[#108890]: https://github.com/home-assistant/core/pull/108890 +[#108892]: https://github.com/home-assistant/core/pull/108892 +[#108893]: https://github.com/home-assistant/core/pull/108893 +[#108894]: https://github.com/home-assistant/core/pull/108894 +[#108895]: https://github.com/home-assistant/core/pull/108895 +[#108898]: https://github.com/home-assistant/core/pull/108898 +[#108899]: https://github.com/home-assistant/core/pull/108899 +[#108900]: https://github.com/home-assistant/core/pull/108900 +[#108902]: https://github.com/home-assistant/core/pull/108902 +[#108909]: https://github.com/home-assistant/core/pull/108909 +[#108910]: https://github.com/home-assistant/core/pull/108910 +[#108911]: https://github.com/home-assistant/core/pull/108911 +[#108913]: https://github.com/home-assistant/core/pull/108913 +[#108924]: https://github.com/home-assistant/core/pull/108924 +[#108933]: https://github.com/home-assistant/core/pull/108933 +[#108934]: https://github.com/home-assistant/core/pull/108934 +[#108935]: https://github.com/home-assistant/core/pull/108935 +[#108937]: https://github.com/home-assistant/core/pull/108937 +[#108938]: https://github.com/home-assistant/core/pull/108938 +[#108939]: https://github.com/home-assistant/core/pull/108939 +[#108942]: https://github.com/home-assistant/core/pull/108942 +[#108944]: https://github.com/home-assistant/core/pull/108944 +[#108947]: https://github.com/home-assistant/core/pull/108947 +[#108951]: https://github.com/home-assistant/core/pull/108951 +[#108952]: https://github.com/home-assistant/core/pull/108952 +[#108956]: https://github.com/home-assistant/core/pull/108956 +[#108961]: https://github.com/home-assistant/core/pull/108961 +[#108962]: https://github.com/home-assistant/core/pull/108962 +[#108963]: https://github.com/home-assistant/core/pull/108963 +[#108964]: https://github.com/home-assistant/core/pull/108964 +[#108965]: https://github.com/home-assistant/core/pull/108965 +[#108966]: https://github.com/home-assistant/core/pull/108966 +[#108967]: https://github.com/home-assistant/core/pull/108967 +[#108969]: https://github.com/home-assistant/core/pull/108969 +[#108970]: https://github.com/home-assistant/core/pull/108970 +[#108971]: https://github.com/home-assistant/core/pull/108971 +[#108972]: https://github.com/home-assistant/core/pull/108972 +[#108973]: https://github.com/home-assistant/core/pull/108973 +[#108974]: https://github.com/home-assistant/core/pull/108974 +[#108976]: https://github.com/home-assistant/core/pull/108976 +[#108977]: https://github.com/home-assistant/core/pull/108977 +[#108978]: https://github.com/home-assistant/core/pull/108978 +[#108979]: https://github.com/home-assistant/core/pull/108979 +[#108984]: https://github.com/home-assistant/core/pull/108984 +[#108987]: https://github.com/home-assistant/core/pull/108987 +[#108990]: https://github.com/home-assistant/core/pull/108990 +[#108992]: https://github.com/home-assistant/core/pull/108992 +[#109000]: https://github.com/home-assistant/core/pull/109000 +[#109002]: https://github.com/home-assistant/core/pull/109002 +[#109004]: https://github.com/home-assistant/core/pull/109004 +[#109008]: https://github.com/home-assistant/core/pull/109008 +[#109010]: https://github.com/home-assistant/core/pull/109010 +[#109015]: https://github.com/home-assistant/core/pull/109015 +[#109016]: https://github.com/home-assistant/core/pull/109016 +[#109020]: https://github.com/home-assistant/core/pull/109020 +[#109027]: https://github.com/home-assistant/core/pull/109027 +[#109031]: https://github.com/home-assistant/core/pull/109031 +[#109032]: https://github.com/home-assistant/core/pull/109032 +[#109033]: https://github.com/home-assistant/core/pull/109033 +[#109038]: https://github.com/home-assistant/core/pull/109038 +[#109039]: https://github.com/home-assistant/core/pull/109039 +[#109041]: https://github.com/home-assistant/core/pull/109041 +[#109042]: https://github.com/home-assistant/core/pull/109042 +[#109044]: https://github.com/home-assistant/core/pull/109044 +[#109045]: https://github.com/home-assistant/core/pull/109045 +[#109048]: https://github.com/home-assistant/core/pull/109048 +[#109054]: https://github.com/home-assistant/core/pull/109054 +[#109061]: https://github.com/home-assistant/core/pull/109061 +[#109064]: https://github.com/home-assistant/core/pull/109064 +[#109065]: https://github.com/home-assistant/core/pull/109065 +[#109066]: https://github.com/home-assistant/core/pull/109066 +[#109067]: https://github.com/home-assistant/core/pull/109067 +[#109068]: https://github.com/home-assistant/core/pull/109068 +[#109069]: https://github.com/home-assistant/core/pull/109069 +[#109071]: https://github.com/home-assistant/core/pull/109071 +[#109072]: https://github.com/home-assistant/core/pull/109072 +[#109076]: https://github.com/home-assistant/core/pull/109076 +[#109077]: https://github.com/home-assistant/core/pull/109077 +[#109078]: https://github.com/home-assistant/core/pull/109078 +[#109079]: https://github.com/home-assistant/core/pull/109079 +[#109083]: https://github.com/home-assistant/core/pull/109083 +[#109085]: https://github.com/home-assistant/core/pull/109085 +[#109089]: https://github.com/home-assistant/core/pull/109089 +[#109091]: https://github.com/home-assistant/core/pull/109091 +[#109098]: https://github.com/home-assistant/core/pull/109098 +[#109100]: https://github.com/home-assistant/core/pull/109100 +[#109101]: https://github.com/home-assistant/core/pull/109101 +[#109105]: https://github.com/home-assistant/core/pull/109105 +[#109106]: https://github.com/home-assistant/core/pull/109106 +[#109107]: https://github.com/home-assistant/core/pull/109107 +[#109108]: https://github.com/home-assistant/core/pull/109108 +[#109109]: https://github.com/home-assistant/core/pull/109109 +[#109110]: https://github.com/home-assistant/core/pull/109110 +[#109111]: https://github.com/home-assistant/core/pull/109111 +[#109113]: https://github.com/home-assistant/core/pull/109113 +[#109114]: https://github.com/home-assistant/core/pull/109114 +[#109115]: https://github.com/home-assistant/core/pull/109115 +[#109116]: https://github.com/home-assistant/core/pull/109116 +[#109118]: https://github.com/home-assistant/core/pull/109118 +[#109122]: https://github.com/home-assistant/core/pull/109122 +[#109124]: https://github.com/home-assistant/core/pull/109124 +[#109126]: https://github.com/home-assistant/core/pull/109126 +[#109127]: https://github.com/home-assistant/core/pull/109127 +[#109131]: https://github.com/home-assistant/core/pull/109131 +[#109132]: https://github.com/home-assistant/core/pull/109132 +[#109133]: https://github.com/home-assistant/core/pull/109133 +[#109134]: https://github.com/home-assistant/core/pull/109134 +[#109135]: https://github.com/home-assistant/core/pull/109135 +[#109136]: https://github.com/home-assistant/core/pull/109136 +[#109137]: https://github.com/home-assistant/core/pull/109137 +[#109138]: https://github.com/home-assistant/core/pull/109138 +[#109139]: https://github.com/home-assistant/core/pull/109139 +[#109140]: https://github.com/home-assistant/core/pull/109140 +[#109141]: https://github.com/home-assistant/core/pull/109141 +[#109145]: https://github.com/home-assistant/core/pull/109145 +[#109146]: https://github.com/home-assistant/core/pull/109146 +[#109147]: https://github.com/home-assistant/core/pull/109147 +[#109149]: https://github.com/home-assistant/core/pull/109149 +[#109150]: https://github.com/home-assistant/core/pull/109150 +[#109151]: https://github.com/home-assistant/core/pull/109151 +[#109152]: https://github.com/home-assistant/core/pull/109152 +[#109154]: https://github.com/home-assistant/core/pull/109154 +[#109155]: https://github.com/home-assistant/core/pull/109155 +[#109156]: https://github.com/home-assistant/core/pull/109156 +[#109157]: https://github.com/home-assistant/core/pull/109157 +[#109160]: https://github.com/home-assistant/core/pull/109160 +[#109161]: https://github.com/home-assistant/core/pull/109161 +[#109163]: https://github.com/home-assistant/core/pull/109163 +[#109167]: https://github.com/home-assistant/core/pull/109167 +[#109168]: https://github.com/home-assistant/core/pull/109168 +[#109170]: https://github.com/home-assistant/core/pull/109170 +[#109172]: https://github.com/home-assistant/core/pull/109172 +[#109173]: https://github.com/home-assistant/core/pull/109173 +[#109174]: https://github.com/home-assistant/core/pull/109174 +[#109178]: https://github.com/home-assistant/core/pull/109178 +[#109180]: https://github.com/home-assistant/core/pull/109180 +[#109184]: https://github.com/home-assistant/core/pull/109184 +[#109186]: https://github.com/home-assistant/core/pull/109186 +[#109188]: https://github.com/home-assistant/core/pull/109188 +[#109189]: https://github.com/home-assistant/core/pull/109189 +[#109191]: https://github.com/home-assistant/core/pull/109191 +[#109192]: https://github.com/home-assistant/core/pull/109192 +[#109195]: https://github.com/home-assistant/core/pull/109195 +[#109199]: https://github.com/home-assistant/core/pull/109199 +[#109200]: https://github.com/home-assistant/core/pull/109200 +[#109202]: https://github.com/home-assistant/core/pull/109202 +[#109207]: https://github.com/home-assistant/core/pull/109207 +[#109209]: https://github.com/home-assistant/core/pull/109209 +[#109212]: https://github.com/home-assistant/core/pull/109212 +[#109214]: https://github.com/home-assistant/core/pull/109214 +[#109216]: https://github.com/home-assistant/core/pull/109216 +[#109217]: https://github.com/home-assistant/core/pull/109217 +[#109218]: https://github.com/home-assistant/core/pull/109218 +[#109219]: https://github.com/home-assistant/core/pull/109219 +[#109220]: https://github.com/home-assistant/core/pull/109220 +[#109224]: https://github.com/home-assistant/core/pull/109224 +[#109226]: https://github.com/home-assistant/core/pull/109226 +[#109231]: https://github.com/home-assistant/core/pull/109231 +[#109235]: https://github.com/home-assistant/core/pull/109235 +[#109239]: https://github.com/home-assistant/core/pull/109239 +[#109241]: https://github.com/home-assistant/core/pull/109241 +[#109242]: https://github.com/home-assistant/core/pull/109242 +[#109243]: https://github.com/home-assistant/core/pull/109243 +[#109249]: https://github.com/home-assistant/core/pull/109249 +[#109250]: https://github.com/home-assistant/core/pull/109250 +[#109251]: https://github.com/home-assistant/core/pull/109251 +[#109260]: https://github.com/home-assistant/core/pull/109260 +[#109267]: https://github.com/home-assistant/core/pull/109267 +[#109268]: https://github.com/home-assistant/core/pull/109268 +[#109269]: https://github.com/home-assistant/core/pull/109269 +[#109271]: https://github.com/home-assistant/core/pull/109271 +[#109274]: https://github.com/home-assistant/core/pull/109274 +[#109277]: https://github.com/home-assistant/core/pull/109277 +[#109279]: https://github.com/home-assistant/core/pull/109279 +[#109282]: https://github.com/home-assistant/core/pull/109282 +[#109284]: https://github.com/home-assistant/core/pull/109284 +[#109292]: https://github.com/home-assistant/core/pull/109292 +[#109294]: https://github.com/home-assistant/core/pull/109294 +[#109296]: https://github.com/home-assistant/core/pull/109296 +[#109302]: https://github.com/home-assistant/core/pull/109302 +[#109306]: https://github.com/home-assistant/core/pull/109306 +[#109307]: https://github.com/home-assistant/core/pull/109307 +[#109311]: https://github.com/home-assistant/core/pull/109311 +[#109316]: https://github.com/home-assistant/core/pull/109316 +[#109317]: https://github.com/home-assistant/core/pull/109317 +[#109325]: https://github.com/home-assistant/core/pull/109325 +[#109329]: https://github.com/home-assistant/core/pull/109329 +[#109331]: https://github.com/home-assistant/core/pull/109331 +[#109333]: https://github.com/home-assistant/core/pull/109333 +[#109338]: https://github.com/home-assistant/core/pull/109338 +[#109340]: https://github.com/home-assistant/core/pull/109340 +[#109341]: https://github.com/home-assistant/core/pull/109341 +[#109344]: https://github.com/home-assistant/core/pull/109344 +[#109347]: https://github.com/home-assistant/core/pull/109347 +[#109350]: https://github.com/home-assistant/core/pull/109350 +[#109359]: https://github.com/home-assistant/core/pull/109359 +[#109360]: https://github.com/home-assistant/core/pull/109360 +[#109361]: https://github.com/home-assistant/core/pull/109361 +[#109364]: https://github.com/home-assistant/core/pull/109364 +[#109372]: https://github.com/home-assistant/core/pull/109372 +[#109388]: https://github.com/home-assistant/core/pull/109388 +[#109391]: https://github.com/home-assistant/core/pull/109391 +[#109393]: https://github.com/home-assistant/core/pull/109393 +[#109394]: https://github.com/home-assistant/core/pull/109394 +[#109397]: https://github.com/home-assistant/core/pull/109397 +[#109399]: https://github.com/home-assistant/core/pull/109399 +[#109401]: https://github.com/home-assistant/core/pull/109401 +[#109403]: https://github.com/home-assistant/core/pull/109403 +[#109404]: https://github.com/home-assistant/core/pull/109404 +[#109408]: https://github.com/home-assistant/core/pull/109408 +[#109410]: https://github.com/home-assistant/core/pull/109410 +[#109412]: https://github.com/home-assistant/core/pull/109412 +[#109413]: https://github.com/home-assistant/core/pull/109413 +[#109414]: https://github.com/home-assistant/core/pull/109414 +[#109415]: https://github.com/home-assistant/core/pull/109415 +[#109416]: https://github.com/home-assistant/core/pull/109416 +[#109417]: https://github.com/home-assistant/core/pull/109417 +[#109418]: https://github.com/home-assistant/core/pull/109418 +[#109419]: https://github.com/home-assistant/core/pull/109419 +[#109420]: https://github.com/home-assistant/core/pull/109420 +[#109421]: https://github.com/home-assistant/core/pull/109421 +[#109422]: https://github.com/home-assistant/core/pull/109422 +[#109423]: https://github.com/home-assistant/core/pull/109423 +[#109424]: https://github.com/home-assistant/core/pull/109424 +[#109425]: https://github.com/home-assistant/core/pull/109425 +[#109426]: https://github.com/home-assistant/core/pull/109426 +[#109427]: https://github.com/home-assistant/core/pull/109427 +[#109428]: https://github.com/home-assistant/core/pull/109428 +[#109429]: https://github.com/home-assistant/core/pull/109429 +[#109430]: https://github.com/home-assistant/core/pull/109430 +[#109431]: https://github.com/home-assistant/core/pull/109431 +[#109433]: https://github.com/home-assistant/core/pull/109433 +[#109434]: https://github.com/home-assistant/core/pull/109434 +[#109435]: https://github.com/home-assistant/core/pull/109435 +[#109436]: https://github.com/home-assistant/core/pull/109436 +[#109437]: https://github.com/home-assistant/core/pull/109437 +[#109438]: https://github.com/home-assistant/core/pull/109438 +[#109439]: https://github.com/home-assistant/core/pull/109439 +[#109440]: https://github.com/home-assistant/core/pull/109440 +[#109441]: https://github.com/home-assistant/core/pull/109441 +[#109442]: https://github.com/home-assistant/core/pull/109442 +[#109443]: https://github.com/home-assistant/core/pull/109443 +[#109444]: https://github.com/home-assistant/core/pull/109444 +[#109445]: https://github.com/home-assistant/core/pull/109445 +[#109446]: https://github.com/home-assistant/core/pull/109446 +[#109447]: https://github.com/home-assistant/core/pull/109447 +[#109448]: https://github.com/home-assistant/core/pull/109448 +[#109449]: https://github.com/home-assistant/core/pull/109449 +[#109450]: https://github.com/home-assistant/core/pull/109450 +[#109451]: https://github.com/home-assistant/core/pull/109451 +[#109452]: https://github.com/home-assistant/core/pull/109452 +[#109454]: https://github.com/home-assistant/core/pull/109454 +[#109455]: https://github.com/home-assistant/core/pull/109455 +[#109456]: https://github.com/home-assistant/core/pull/109456 +[#109457]: https://github.com/home-assistant/core/pull/109457 +[#109458]: https://github.com/home-assistant/core/pull/109458 +[#109459]: https://github.com/home-assistant/core/pull/109459 +[#109461]: https://github.com/home-assistant/core/pull/109461 +[#109462]: https://github.com/home-assistant/core/pull/109462 +[#109463]: https://github.com/home-assistant/core/pull/109463 +[#109464]: https://github.com/home-assistant/core/pull/109464 +[#109465]: https://github.com/home-assistant/core/pull/109465 +[#109466]: https://github.com/home-assistant/core/pull/109466 +[#109467]: https://github.com/home-assistant/core/pull/109467 +[#109468]: https://github.com/home-assistant/core/pull/109468 +[#109469]: https://github.com/home-assistant/core/pull/109469 +[#109470]: https://github.com/home-assistant/core/pull/109470 +[#109471]: https://github.com/home-assistant/core/pull/109471 +[#109472]: https://github.com/home-assistant/core/pull/109472 +[#109473]: https://github.com/home-assistant/core/pull/109473 +[#109474]: https://github.com/home-assistant/core/pull/109474 +[#109475]: https://github.com/home-assistant/core/pull/109475 +[#109476]: https://github.com/home-assistant/core/pull/109476 +[#109477]: https://github.com/home-assistant/core/pull/109477 +[#109478]: https://github.com/home-assistant/core/pull/109478 +[#109479]: https://github.com/home-assistant/core/pull/109479 +[#109480]: https://github.com/home-assistant/core/pull/109480 +[#109481]: https://github.com/home-assistant/core/pull/109481 +[#109482]: https://github.com/home-assistant/core/pull/109482 +[#109490]: https://github.com/home-assistant/core/pull/109490 +[#109493]: https://github.com/home-assistant/core/pull/109493 +[#109494]: https://github.com/home-assistant/core/pull/109494 +[#109501]: https://github.com/home-assistant/core/pull/109501 +[#109510]: https://github.com/home-assistant/core/pull/109510 +[#109515]: https://github.com/home-assistant/core/pull/109515 +[#109522]: https://github.com/home-assistant/core/pull/109522 +[#109523]: https://github.com/home-assistant/core/pull/109523 +[#109525]: https://github.com/home-assistant/core/pull/109525 +[#109530]: https://github.com/home-assistant/core/pull/109530 +[#109534]: https://github.com/home-assistant/core/pull/109534 +[#109535]: https://github.com/home-assistant/core/pull/109535 +[#109536]: https://github.com/home-assistant/core/pull/109536 +[#109537]: https://github.com/home-assistant/core/pull/109537 +[#109538]: https://github.com/home-assistant/core/pull/109538 +[#109539]: https://github.com/home-assistant/core/pull/109539 +[#109540]: https://github.com/home-assistant/core/pull/109540 +[#109541]: https://github.com/home-assistant/core/pull/109541 +[#109542]: https://github.com/home-assistant/core/pull/109542 +[#109543]: https://github.com/home-assistant/core/pull/109543 +[#109544]: https://github.com/home-assistant/core/pull/109544 +[#109545]: https://github.com/home-assistant/core/pull/109545 +[#109546]: https://github.com/home-assistant/core/pull/109546 +[#109547]: https://github.com/home-assistant/core/pull/109547 +[#109548]: https://github.com/home-assistant/core/pull/109548 +[#109549]: https://github.com/home-assistant/core/pull/109549 +[#109550]: https://github.com/home-assistant/core/pull/109550 +[#109551]: https://github.com/home-assistant/core/pull/109551 +[#109552]: https://github.com/home-assistant/core/pull/109552 +[#109553]: https://github.com/home-assistant/core/pull/109553 +[#109554]: https://github.com/home-assistant/core/pull/109554 +[#109555]: https://github.com/home-assistant/core/pull/109555 +[#109556]: https://github.com/home-assistant/core/pull/109556 +[#109557]: https://github.com/home-assistant/core/pull/109557 +[#109558]: https://github.com/home-assistant/core/pull/109558 +[#109559]: https://github.com/home-assistant/core/pull/109559 +[#109560]: https://github.com/home-assistant/core/pull/109560 +[#109562]: https://github.com/home-assistant/core/pull/109562 +[#109563]: https://github.com/home-assistant/core/pull/109563 +[#109564]: https://github.com/home-assistant/core/pull/109564 +[#109565]: https://github.com/home-assistant/core/pull/109565 +[#109566]: https://github.com/home-assistant/core/pull/109566 +[#109568]: https://github.com/home-assistant/core/pull/109568 +[#109569]: https://github.com/home-assistant/core/pull/109569 +[#109570]: https://github.com/home-assistant/core/pull/109570 +[#109571]: https://github.com/home-assistant/core/pull/109571 +[#109572]: https://github.com/home-assistant/core/pull/109572 +[#109575]: https://github.com/home-assistant/core/pull/109575 +[#109580]: https://github.com/home-assistant/core/pull/109580 +[#109582]: https://github.com/home-assistant/core/pull/109582 +[#109585]: https://github.com/home-assistant/core/pull/109585 +[#109594]: https://github.com/home-assistant/core/pull/109594 +[#109596]: https://github.com/home-assistant/core/pull/109596 +[#109600]: https://github.com/home-assistant/core/pull/109600 +[#109614]: https://github.com/home-assistant/core/pull/109614 +[#109615]: https://github.com/home-assistant/core/pull/109615 +[#109626]: https://github.com/home-assistant/core/pull/109626 +[#109627]: https://github.com/home-assistant/core/pull/109627 +[#109628]: https://github.com/home-assistant/core/pull/109628 +[#109630]: https://github.com/home-assistant/core/pull/109630 +[#109644]: https://github.com/home-assistant/core/pull/109644 +[#109648]: https://github.com/home-assistant/core/pull/109648 +[#109650]: https://github.com/home-assistant/core/pull/109650 +[#109651]: https://github.com/home-assistant/core/pull/109651 +[#109652]: https://github.com/home-assistant/core/pull/109652 +[#109653]: https://github.com/home-assistant/core/pull/109653 +[#109656]: https://github.com/home-assistant/core/pull/109656 +[#109658]: https://github.com/home-assistant/core/pull/109658 +[#109659]: https://github.com/home-assistant/core/pull/109659 +[#109664]: https://github.com/home-assistant/core/pull/109664 +[#109666]: https://github.com/home-assistant/core/pull/109666 +[#109675]: https://github.com/home-assistant/core/pull/109675 +[#109692]: https://github.com/home-assistant/core/pull/109692 +[#109694]: https://github.com/home-assistant/core/pull/109694 +[#109695]: https://github.com/home-assistant/core/pull/109695 +[#109701]: https://github.com/home-assistant/core/pull/109701 +[#109702]: https://github.com/home-assistant/core/pull/109702 +[#109707]: https://github.com/home-assistant/core/pull/109707 +[#109708]: https://github.com/home-assistant/core/pull/109708 +[#109709]: https://github.com/home-assistant/core/pull/109709 +[#109716]: https://github.com/home-assistant/core/pull/109716 +[#109717]: https://github.com/home-assistant/core/pull/109717 +[#109720]: https://github.com/home-assistant/core/pull/109720 +[#109727]: https://github.com/home-assistant/core/pull/109727 +[#109737]: https://github.com/home-assistant/core/pull/109737 +[#109744]: https://github.com/home-assistant/core/pull/109744 +[#109748]: https://github.com/home-assistant/core/pull/109748 +[#109749]: https://github.com/home-assistant/core/pull/109749 +[#109750]: https://github.com/home-assistant/core/pull/109750 +[#109755]: https://github.com/home-assistant/core/pull/109755 +[#109757]: https://github.com/home-assistant/core/pull/109757 +[#109760]: https://github.com/home-assistant/core/pull/109760 +[#109762]: https://github.com/home-assistant/core/pull/109762 +[#109765]: https://github.com/home-assistant/core/pull/109765 +[#109767]: https://github.com/home-assistant/core/pull/109767 +[#109770]: https://github.com/home-assistant/core/pull/109770 +[#109778]: https://github.com/home-assistant/core/pull/109778 +[#109783]: https://github.com/home-assistant/core/pull/109783 +[#109787]: https://github.com/home-assistant/core/pull/109787 +[#109789]: https://github.com/home-assistant/core/pull/109789 +[#109793]: https://github.com/home-assistant/core/pull/109793 +[#109797]: https://github.com/home-assistant/core/pull/109797 +[#109807]: https://github.com/home-assistant/core/pull/109807 +[#109809]: https://github.com/home-assistant/core/pull/109809 +[#109810]: https://github.com/home-assistant/core/pull/109810 +[#109812]: https://github.com/home-assistant/core/pull/109812 +[#109814]: https://github.com/home-assistant/core/pull/109814 +[#109817]: https://github.com/home-assistant/core/pull/109817 +[#109823]: https://github.com/home-assistant/core/pull/109823 +[#109824]: https://github.com/home-assistant/core/pull/109824 +[#109825]: https://github.com/home-assistant/core/pull/109825 +[#109830]: https://github.com/home-assistant/core/pull/109830 +[#109832]: https://github.com/home-assistant/core/pull/109832 +[#109837]: https://github.com/home-assistant/core/pull/109837 +[#109845]: https://github.com/home-assistant/core/pull/109845 +[#109848]: https://github.com/home-assistant/core/pull/109848 +[#109859]: https://github.com/home-assistant/core/pull/109859 +[#109871]: https://github.com/home-assistant/core/pull/109871 +[#109873]: https://github.com/home-assistant/core/pull/109873 +[#66130]: https://github.com/home-assistant/core/pull/66130 +[#80061]: https://github.com/home-assistant/core/pull/80061 +[#86522]: https://github.com/home-assistant/core/pull/86522 +[#93462]: https://github.com/home-assistant/core/pull/93462 +[#93750]: https://github.com/home-assistant/core/pull/93750 +[#93768]: https://github.com/home-assistant/core/pull/93768 +[#96723]: https://github.com/home-assistant/core/pull/96723 +[#97208]: https://github.com/home-assistant/core/pull/97208 +[#97681]: https://github.com/home-assistant/core/pull/97681 +[#97937]: https://github.com/home-assistant/core/pull/97937 +[#98136]: https://github.com/home-assistant/core/pull/98136 +[#98145]: https://github.com/home-assistant/core/pull/98145 +[#98489]: https://github.com/home-assistant/core/pull/98489 +[#98703]: https://github.com/home-assistant/core/pull/98703 +[#99212]: https://github.com/home-assistant/core/pull/99212 +[#99670]: https://github.com/home-assistant/core/pull/99670 +[#99752]: https://github.com/home-assistant/core/pull/99752 +[@2franix]: https://github.com/2franix +[@AngellusMortis]: https://github.com/AngellusMortis +[@Anonym-tsk]: https://github.com/Anonym-tsk +[@Antoni-Czaplicki]: https://github.com/Antoni-Czaplicki +[@BHSPitMonkey]: https://github.com/BHSPitMonkey +[@Bre77]: https://github.com/Bre77 +[@CFenner]: https://github.com/CFenner +[@Caius-Bonus]: https://github.com/Caius-Bonus +[@Cereal2nd]: https://github.com/Cereal2nd +[@DCSBL]: https://github.com/DCSBL +[@DellanX]: https://github.com/DellanX +[@Ernst79]: https://github.com/Ernst79 +[@Flash1232]: https://github.com/Flash1232 +[@FlorianOosterhof]: https://github.com/FlorianOosterhof +[@Floris272]: https://github.com/Floris272 +[@Galorhallen]: https://github.com/Galorhallen +[@Guy293]: https://github.com/Guy293 +[@IsakNyberg]: https://github.com/IsakNyberg +[@Jc2k]: https://github.com/Jc2k +[@JeroenvIS]: https://github.com/JeroenvIS +[@Kane610]: https://github.com/Kane610 +[@LaStrada]: https://github.com/LaStrada +[@Lash-L]: https://github.com/Lash-L +[@Luap99]: https://github.com/Luap99 +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MisterCommand]: https://github.com/MisterCommand +[@Moustachauve]: https://github.com/Moustachauve +[@Noltari]: https://github.com/Noltari +[@RJPoelstra]: https://github.com/RJPoelstra +[@RickeyWard]: https://github.com/RickeyWard +[@RoboMagus]: https://github.com/RoboMagus +[@SLaks]: https://github.com/SLaks +[@Shulyaka]: https://github.com/Shulyaka +[@SteveEasley]: https://github.com/SteveEasley +[@TNTLarsn]: https://github.com/TNTLarsn +[@TheFes]: https://github.com/TheFes +[@TheJulianJES]: https://github.com/TheJulianJES +[@ThePapaG]: https://github.com/ThePapaG +[@Xitee1]: https://github.com/Xitee1 +[@abmantis]: https://github.com/abmantis +[@agners]: https://github.com/agners +[@al-s]: https://github.com/al-s +[@allenporter]: https://github.com/allenporter +[@angristan]: https://github.com/angristan +[@ashleigh-hopkins]: https://github.com/ashleigh-hopkins +[@astrandb]: https://github.com/astrandb +[@autinerd]: https://github.com/autinerd +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bazwilliams]: https://github.com/bazwilliams +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@bgoncal]: https://github.com/bgoncal +[@bieniu]: https://github.com/bieniu +[@boralyl]: https://github.com/boralyl +[@bouwew]: https://github.com/bouwew +[@bramkragten]: https://github.com/bramkragten +[@bubonicbob]: https://github.com/bubonicbob +[@catsmanac]: https://github.com/catsmanac +[@cbrherms]: https://github.com/cbrherms +[@cdce8p]: https://github.com/cdce8p +[@cgtobi]: https://github.com/cgtobi +[@chatziko]: https://github.com/chatziko +[@chemelli74]: https://github.com/chemelli74 +[@chenjiayi8]: https://github.com/chenjiayi8 +[@codesalatdev]: https://github.com/codesalatdev +[@codyc1515]: https://github.com/codyc1515 +[@cottsay]: https://github.com/cottsay +[@crug80]: https://github.com/crug80 +[@ctalkington]: https://github.com/ctalkington +[@danieldotnl]: https://github.com/danieldotnl +[@danzel]: https://github.com/danzel +[@dcmeglio]: https://github.com/dcmeglio +[@dgomes]: https://github.com/dgomes +[@dieselrabbit]: https://github.com/dieselrabbit +[@dmulcahey]: https://github.com/dmulcahey +[@dougiteixeira]: https://github.com/dougiteixeira +[@eclair4151]: https://github.com/eclair4151 +[@edenhaus]: https://github.com/edenhaus +[@eifinger]: https://github.com/eifinger +[@elmurato]: https://github.com/elmurato +[@elupus]: https://github.com/elupus +[@emichael]: https://github.com/emichael +[@emontnemery]: https://github.com/emontnemery +[@emtunc]: https://github.com/emtunc +[@engrbm87]: https://github.com/engrbm87 +[@erwindouna]: https://github.com/erwindouna +[@escoand]: https://github.com/escoand +[@esev]: https://github.com/esev +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@frenck]: https://github.com/frenck +[@frwickst]: https://github.com/frwickst +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@h3ss]: https://github.com/h3ss +[@idstein]: https://github.com/idstein +[@janiversen]: https://github.com/janiversen +[@jbouwh]: https://github.com/jbouwh +[@jeverley]: https://github.com/jeverley +[@jimmyd-be]: https://github.com/jimmyd-be +[@jjlawren]: https://github.com/jjlawren +[@jklausa]: https://github.com/jklausa +[@jkrall]: https://github.com/jkrall +[@jmwaldrip]: https://github.com/jmwaldrip +[@joostlek]: https://github.com/joostlek +[@jpbede]: https://github.com/jpbede +[@jrieger]: https://github.com/jrieger +[@julienfreche]: https://github.com/julienfreche +[@jurriaan]: https://github.com/jurriaan +[@karwosts]: https://github.com/karwosts +[@kbickar]: https://github.com/kbickar +[@killer0071234]: https://github.com/killer0071234 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kpine]: https://github.com/kpine +[@krmarien]: https://github.com/krmarien +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@leahoswald]: https://github.com/leahoswald +[@lellky]: https://github.com/lellky +[@lhgravendeel]: https://github.com/lhgravendeel +[@liudger]: https://github.com/liudger +[@llluis]: https://github.com/llluis +[@ludeeus]: https://github.com/ludeeus +[@madpilot]: https://github.com/madpilot +[@mandarons]: https://github.com/mandarons +[@marcelveldt]: https://github.com/marcelveldt +[@marcolivierarsenault]: https://github.com/marcolivierarsenault +[@matrixd2]: https://github.com/matrixd2 +[@matt7aylor]: https://github.com/matt7aylor +[@max2697]: https://github.com/max2697 +[@miaucl]: https://github.com/miaucl +[@mib1185]: https://github.com/mib1185 +[@michaelarnauts]: https://github.com/michaelarnauts +[@mikey0000]: https://github.com/mikey0000 +[@mill1000]: https://github.com/mill1000 +[@mj23000]: https://github.com/mj23000 +[@mkmer]: https://github.com/mkmer +[@msavazzi]: https://github.com/msavazzi +[@myztillx]: https://github.com/myztillx +[@nprez83]: https://github.com/nprez83 +[@ollo69]: https://github.com/ollo69 +[@pajzo]: https://github.com/pajzo +[@peebles]: https://github.com/peebles +[@peterkh]: https://github.com/peterkh +[@piitaya]: https://github.com/piitaya +[@pnbruckner]: https://github.com/pnbruckner +[@puddly]: https://github.com/puddly +[@raman325]: https://github.com/raman325 +[@rappenze]: https://github.com/rappenze +[@reedy]: https://github.com/reedy +[@rfverbruggen]: https://github.com/rfverbruggen +[@rikroe]: https://github.com/rikroe +[@rokam]: https://github.com/rokam +[@rsiv]: https://github.com/rsiv +[@rytilahti]: https://github.com/rytilahti +[@sdb9696]: https://github.com/sdb9696 +[@slovdahl]: https://github.com/slovdahl +[@spycle]: https://github.com/spycle +[@starkillerOG]: https://github.com/starkillerOG +[@steffenrapp]: https://github.com/steffenrapp +[@stegm]: https://github.com/stegm +[@suaveolent]: https://github.com/suaveolent +[@synesthesiam]: https://github.com/synesthesiam +[@teharris1]: https://github.com/teharris1 +[@thomaskistler]: https://github.com/thomaskistler +[@tkdrob]: https://github.com/tkdrob +[@tronikos]: https://github.com/tronikos +[@vilppuvuorinen]: https://github.com/vilppuvuorinen +[@wilburCforce]: https://github.com/wilburCforce +[@wittypluck]: https://github.com/wittypluck +[@xMohamd]: https://github.com/xMohamd +[@xeniter]: https://github.com/xeniter +[@xmow49]: https://github.com/xmow49 +[@yuvalabou]: https://github.com/yuvalabou +[@zweckj]: https://github.com/zweckj +[@zxdavb]: https://github.com/zxdavb diff --git a/source/common-tasks/general.markdown b/source/common-tasks/general.markdown index 251b9d7d019..e6841034ed4 100644 --- a/source/common-tasks/general.markdown +++ b/source/common-tasks/general.markdown @@ -9,4 +9,11 @@ This section provides tasks that do not depend on a specific Home Assistant inst ## Defining a custom polling interval +Creating an automation for polling gives you more flexibility on when to poll. + +Why use an automation instead of changing the integration's configuration for polling? + +1. Not all integrations have a configurable polling interval. The homassistant.update_entity service on the other hand works with most of the integrations, no code changes required. +2. An automation allows you to poll whenever you want. For example, if you have a rate-limited solar panel provider with a maximum number of requests per day, you may want to lower/stop the polling at night but poll more frequently during the day. + {% include common-tasks/define_custom_polling.md %} \ No newline at end of file diff --git a/source/getting-started/concepts-terminology.markdown b/source/getting-started/concepts-terminology.markdown index 32aab1db043..0efb230a20c 100644 --- a/source/getting-started/concepts-terminology.markdown +++ b/source/getting-started/concepts-terminology.markdown @@ -6,13 +6,13 @@ Now you're in Home Assistant, let's look at the most important concepts. ## Integrations -Integrations are pieces of software that allow Home Assistant to connect to other software and platforms. For example, a product by Philips called Hue would use the Philips Hue {% term integration %} and allow Home Assistant to talk to the hardware controller Hue Bridge. Any Home Assistant compatible {% term devices %} connected to the Hue Bridge would appear in Home Assistant as [devices](#devices--entities). +Integrations are pieces of software that allow Home Assistant to connect to other software and platforms. For example, a product by Philips called Hue would use the Philips Hue {% term integration %} and allow Home Assistant to talk to the hardware controller Hue Bridge. Any Home Assistant compatible {% term devices %} connected to the Hue Bridge would appear in Home Assistant as [devices](#devices). ![Integrations](/images/getting-started/integrations-new.png) For a full list of compatible {% term integrations %}, refer to the [integrations](/integrations) documentation. -Once an {% term integration %} has been added, the hardware and/or data are represented in Home Assistant as [devices and entities](#devices--entities). +Once an {% term integration %} has been added, the hardware and/or data are represented in Home Assistant as [devices and entities](#devices). ## Entities diff --git a/source/getting-started/index.markdown b/source/getting-started/index.markdown index 6ebe6f8ede8..7165c0d593f 100644 --- a/source/getting-started/index.markdown +++ b/source/getting-started/index.markdown @@ -7,8 +7,8 @@ show_title: true {% include getting-started/next_step.html step="Installation" link="/installation/" %} {% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %} -{% include getting-started/next_step.html step="Edit the dashboard" link="/getting-started/onboarding_dashboard/" %} {% include getting-started/next_step.html step="Concepts and terminology" link="/getting-started/concepts-terminology/" %} +{% include getting-started/next_step.html step="Edit the dashboard" link="/getting-started/onboarding_dashboard/" %} {% include getting-started/next_step.html step="Integration" link="/getting-started/integration/" %} {% include getting-started/next_step.html step="Automation" link="/getting-started/automation/" %} {% include getting-started/next_step.html step="Presence detection" link="/getting-started/presence-detection/" %} diff --git a/source/green/index.html b/source/green/index.html index 6f64fb6f618..6c7745bd104 100644 --- a/source/green/index.html +++ b/source/green/index.html @@ -2408,6 +2408,24 @@ frontpage_image: /images/frontpage/green-frontpage.png
    + +
    +
    +
    πŸ‡΅πŸ‡Ή
    +
    Mauser
    +
    Shipping from Portugal
    +
    + + + +
    +
    + + +
    +
    +
    πŸ‡·πŸ‡΄
    +
    WIFIShop
    +
    Shipping from Romania
    +
    + + + +
    +
    diff --git a/source/images/assist/assist_aliases.png b/source/images/assist/assist_aliases.png new file mode 100644 index 00000000000..2c0bdbc3bb4 Binary files /dev/null and b/source/images/assist/assist_aliases.png differ diff --git a/source/images/assist/assist_aliases_02.png b/source/images/assist/assist_aliases_02.png new file mode 100644 index 00000000000..27fee5f7b0b Binary files /dev/null and b/source/images/assist/assist_aliases_02.png differ diff --git a/source/images/assist/wake_word_engine_location.png b/source/images/assist/wake_word_engine_location.png new file mode 100644 index 00000000000..8e142a82d84 Binary files /dev/null and b/source/images/assist/wake_word_engine_location.png differ diff --git a/source/images/blog/2024-02-voice-chapter-6/banner.png b/source/images/blog/2024-02-voice-chapter-6/banner.png new file mode 100644 index 00000000000..96136c9e93a Binary files /dev/null and b/source/images/blog/2024-02-voice-chapter-6/banner.png differ diff --git a/source/images/blog/2024-02-zwave/nabucasa-zwa.png b/source/images/blog/2024-02-zwave/nabucasa-zwa.png new file mode 100644 index 00000000000..0981440c5c0 Binary files /dev/null and b/source/images/blog/2024-02-zwave/nabucasa-zwa.png differ diff --git a/source/images/blog/2024-02/assist-custom-response-editor.png b/source/images/blog/2024-02/assist-custom-response-editor.png new file mode 100644 index 00000000000..3320ef4b786 Binary files /dev/null and b/source/images/blog/2024-02/assist-custom-response-editor.png differ diff --git a/source/images/blog/2024-02/assist-custom-response.png b/source/images/blog/2024-02/assist-custom-response.png new file mode 100644 index 00000000000..193d75fdc74 Binary files /dev/null and b/source/images/blog/2024-02/assist-custom-response.png differ diff --git a/source/images/blog/2024-02/assist-devices.png b/source/images/blog/2024-02/assist-devices.png new file mode 100644 index 00000000000..3e47793bbc9 Binary files /dev/null and b/source/images/blog/2024-02/assist-devices.png differ diff --git a/source/images/blog/2024-02/assist-errors.png b/source/images/blog/2024-02/assist-errors.png new file mode 100644 index 00000000000..8b89fe4aea8 Binary files /dev/null and b/source/images/blog/2024-02/assist-errors.png differ diff --git a/source/images/blog/2024-02/csv-export.png b/source/images/blog/2024-02/csv-export.png new file mode 100644 index 00000000000..20433d69905 Binary files /dev/null and b/source/images/blog/2024-02/csv-export.png differ diff --git a/source/images/blog/2024-02/dragndrop-automations.gif b/source/images/blog/2024-02/dragndrop-automations.gif new file mode 100644 index 00000000000..5100447f8e0 Binary files /dev/null and b/source/images/blog/2024-02/dragndrop-automations.gif differ diff --git a/source/images/blog/2024-02/dragndrop-nested.gif b/source/images/blog/2024-02/dragndrop-nested.gif new file mode 100644 index 00000000000..9c7556d6b4a Binary files /dev/null and b/source/images/blog/2024-02/dragndrop-nested.gif differ diff --git a/source/images/blog/2024-02/gemini-google-generative-ai.png b/source/images/blog/2024-02/gemini-google-generative-ai.png new file mode 100644 index 00000000000..bb5ed8cb2c6 Binary files /dev/null and b/source/images/blog/2024-02/gemini-google-generative-ai.png differ diff --git a/source/images/blog/2024-02/icons-areas.png b/source/images/blog/2024-02/icons-areas.png new file mode 100644 index 00000000000..0d0654b21d7 Binary files /dev/null and b/source/images/blog/2024-02/icons-areas.png differ diff --git a/source/images/blog/2024-02/icons-services.png b/source/images/blog/2024-02/icons-services.png new file mode 100644 index 00000000000..62c8634e8e3 Binary files /dev/null and b/source/images/blog/2024-02/icons-services.png differ diff --git a/source/images/blog/2024-02/matter-actions.png b/source/images/blog/2024-02/matter-actions.png new file mode 100644 index 00000000000..efe34da8693 Binary files /dev/null and b/source/images/blog/2024-02/matter-actions.png differ diff --git a/source/images/blog/2024-02/matter-diagnostic-information.png b/source/images/blog/2024-02/matter-diagnostic-information.png new file mode 100644 index 00000000000..4881061fee5 Binary files /dev/null and b/source/images/blog/2024-02/matter-diagnostic-information.png differ diff --git a/source/images/blog/2024-02/proximity.png b/source/images/blog/2024-02/proximity.png new file mode 100644 index 00000000000..9615d120304 Binary files /dev/null and b/source/images/blog/2024-02/proximity.png differ diff --git a/source/images/blog/2024-02/repair-reauth.png b/source/images/blog/2024-02/repair-reauth.png new file mode 100644 index 00000000000..810f738739b Binary files /dev/null and b/source/images/blog/2024-02/repair-reauth.png differ diff --git a/source/images/blog/2024-02/social.png b/source/images/blog/2024-02/social.png new file mode 100644 index 00000000000..70dcdf07ab8 Binary files /dev/null and b/source/images/blog/2024-02/social.png differ diff --git a/source/images/blog/2024-02/zha-updating-devices.png b/source/images/blog/2024-02/zha-updating-devices.png new file mode 100644 index 00000000000..80ce4898bd9 Binary files /dev/null and b/source/images/blog/2024-02/zha-updating-devices.png differ diff --git a/source/images/blueprints/selector-qr-code.png b/source/images/blueprints/selector-qr-code.png new file mode 100644 index 00000000000..62fe609ecbe Binary files /dev/null and b/source/images/blueprints/selector-qr-code.png differ diff --git a/source/images/integrations/event/event_timestamp.png b/source/images/integrations/event/event_timestamp.png new file mode 100644 index 00000000000..3c0a010d03b Binary files /dev/null and b/source/images/integrations/event/event_timestamp.png differ diff --git a/source/images/integrations/thread/thread-google-br.png b/source/images/integrations/thread/thread-google-br.png new file mode 100644 index 00000000000..a96f80fe168 Binary files /dev/null and b/source/images/integrations/thread/thread-google-br.png differ diff --git a/source/images/integrations/thread/thread-ha-and-google-br.png b/source/images/integrations/thread/thread-ha-and-google-br.png new file mode 100644 index 00000000000..22c3f2954f5 Binary files /dev/null and b/source/images/integrations/thread/thread-ha-and-google-br.png differ diff --git a/source/images/integrations/thread/thread-ha-preferred.png b/source/images/integrations/thread/thread-ha-preferred.png new file mode 100644 index 00000000000..52d9f42a343 Binary files /dev/null and b/source/images/integrations/thread/thread-ha-preferred.png differ diff --git a/source/images/integrations/thread/thread-no-preferred-network-but-third-party-present.png b/source/images/integrations/thread/thread-no-preferred-network-but-third-party-present.png new file mode 100644 index 00000000000..a1c484e8c38 Binary files /dev/null and b/source/images/integrations/thread/thread-no-preferred-network-but-third-party-present.png differ diff --git a/source/images/integrations/thread/thread-preferred-network-ha-only.png b/source/images/integrations/thread/thread-preferred-network-ha-only.png new file mode 100644 index 00000000000..f34e838311e Binary files /dev/null and b/source/images/integrations/thread/thread-preferred-network-ha-only.png differ diff --git a/source/installation/macos.markdown b/source/installation/macos.markdown index 6ed8c8ee180..35723ffe2d7 100644 --- a/source/installation/macos.markdown +++ b/source/installation/macos.markdown @@ -1,6 +1,6 @@ --- -title: "MacOS" -description: "Install Home Assistant on a MacOS" +title: "macOS" +description: "Install Home Assistant on macOS" installation_type: macos --- {% comment %} diff --git a/source/installation/raspberrypi.markdown b/source/installation/raspberrypi.markdown index d22df15d5fd..36bcbb48ddc 100644 --- a/source/installation/raspberrypi.markdown +++ b/source/installation/raspberrypi.markdown @@ -122,7 +122,7 @@ _Select and copy the URL or use the "copy" button that appear when you hover it. 6. **Select target**. ![Screenshot of the Etcher software showing the select target button highlighted.](/images/installation/etcher3.png) 7. Select the SD card you want to use for your installation. -![Screenshot of the Etcher software showing teh targets available.](/images/installation/etcher4.png) +![Screenshot of the Etcher software showing the targets available.](/images/installation/etcher4.png) 8. Select **Flash!** to start writing the image. ![Screenshot of the Etcher software showing the Flash button highlighted.](/images/installation/etcher5.png) 9. Once Balena Etcher has finished writing the image, you will see a confirmation. diff --git a/source/integrations/index.html b/source/integrations/index.html index 4032b66ea49..69959e54f68 100644 --- a/source/integrations/index.html +++ b/source/integrations/index.html @@ -34,7 +34,7 @@ regenerate: false All ({{tot}})
    Added in: