diff --git a/CODEOWNERS b/CODEOWNERS index 41edb4ebd65..c0c6c5e75ed 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -33,8 +33,8 @@ source/_integrations/airvisual.markdown @bachya source/_integrations/airvisual_pro.markdown @bachya source/_integrations/airzone.markdown @Noltari source/_integrations/airzone_cloud.markdown @Noltari -source/_integrations/aladdin_connect.markdown @swcloudgenie source/_integrations/alarm_control_panel.markdown @home-assistant/core +source/_integrations/alarm_control_panel.template.markdown @home-assistant/core source/_integrations/alert.markdown @home-assistant/core @frenck source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy @jbouwh @@ -80,6 +80,7 @@ source/_integrations/august_ble.markdown @bdraco source/_integrations/aurora.markdown @djtimca source/_integrations/aurora_abb_powerone.markdown @davet2001 source/_integrations/aussie_broadband.markdown @nickw444 @Bre77 +source/_integrations/autarco.markdown @klaasnicolaas source/_integrations/auth.markdown @home-assistant/core source/_integrations/automation.markdown @home-assistant/core source/_integrations/avea.markdown @pattyland @@ -105,13 +106,13 @@ source/_integrations/bloc_blinds.markdown @starkillerOG source/_integrations/blue_current.markdown @Floris272 @gleeuwen source/_integrations/bluemaestro.markdown @bdraco source/_integrations/blueprint.markdown @home-assistant/core -source/_integrations/bluesound.markdown @thrawnarn +source/_integrations/bluesound.markdown @thrawnarn @LouisChrist source/_integrations/bluetooth.markdown @bdraco source/_integrations/bluetooth_adapters.markdown @bdraco source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe source/_integrations/bond.markdown @bdraco @prystupa @joshs85 @marciogranzotto source/_integrations/bosch_shc.markdown @tschamm -source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/braviatv.markdown @bieniu @Drafteed source/_integrations/brel_home.markdown @starkillerOG source/_integrations/bring.markdown @miaucl @tr4nt0r @@ -119,6 +120,7 @@ source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am @eif source/_integrations/brother.markdown @bieniu source/_integrations/brottsplatskartan.markdown @gjohansson-ST source/_integrations/brunt.markdown @eavanvalkenburg +source/_integrations/bryant_evolution.markdown @danielsmyers source/_integrations/bsblan.markdown @liudger source/_integrations/bswitch.markdown @jafar-atili source/_integrations/bt_smarthub.markdown @typhoon2099 @@ -132,6 +134,7 @@ source/_integrations/camera.markdown @home-assistant/core source/_integrations/cast.markdown @emontnemery source/_integrations/ccm15.markdown @ocalvo source/_integrations/cert_expiry.markdown @jjlawren +source/_integrations/chacon_dio.markdown @cnico source/_integrations/cisco_ios.markdown @fbradyirl source/_integrations/cisco_mobility_express.markdown @fbradyirl source/_integrations/cisco_webex_teams.markdown @fbradyirl @@ -155,7 +158,8 @@ source/_integrations/conversation.markdown @home-assistant/core @synesthesiam source/_integrations/coolmaster.markdown @OnFreund source/_integrations/counter.markdown @fabaff source/_integrations/cover.markdown @home-assistant/core -source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/cover.template.markdown @home-assistant/core +source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/cpuspeed.markdown @fabaff source/_integrations/cribl.markdown @Bre77 source/_integrations/crownstone.markdown @Crownstone @RicArch97 @@ -207,7 +211,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 @edenhaus @Augar +source/_integrations/ecovacs.markdown @mib1185 @edenhaus @Augar source/_integrations/ecowitt.markdown @pvizeli source/_integrations/efergy.markdown @tkdrob source/_integrations/egardia.markdown @jeroenterheerdt @@ -230,7 +234,7 @@ source/_integrations/energyzero.markdown @klaasnicolaas source/_integrations/enigma2.markdown @autinerd source/_integrations/enmax.markdown @tronikos source/_integrations/enocean.markdown @bdurrer -source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek @catsmanac +source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @joostlek @catsmanac source/_integrations/entur_public_transport.markdown @hfurubotten source/_integrations/environment_canada.markdown @gwww @michaeldavie source/_integrations/ephember.markdown @ttroy50 @@ -249,7 +253,9 @@ source/_integrations/evohome.markdown @zxdavb source/_integrations/ezviz.markdown @RenierM26 @baqs source/_integrations/faa_delays.markdown @ntilley905 source/_integrations/fan.markdown @home-assistant/core +source/_integrations/fan.template.markdown @home-assistant/core source/_integrations/fastdotcom.markdown @rohankapoorcom @erwindouna +source/_integrations/feedreader.markdown @mib1185 source/_integrations/fibaro.markdown @rappenze source/_integrations/file.markdown @fabaff source/_integrations/file_upload.markdown @home-assistant/core @@ -262,7 +268,7 @@ source/_integrations/fitbit.markdown @allenporter source/_integrations/fivem.markdown @Sander0542 source/_integrations/fjaraskupan.markdown @elupus source/_integrations/flexit_bacnet.markdown @lellky @piotrbulinski -source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/flick_electric.markdown @ZephireNZ source/_integrations/flipr.markdown @cnico source/_integrations/flo.markdown @dmulcahey @@ -328,8 +334,8 @@ source/_integrations/heatmiser.markdown @andylockran source/_integrations/heiwa.markdown @cmroche source/_integrations/heos.markdown @andrewsayre source/_integrations/here_travel_time.markdown @eifinger -source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 -source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 +source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/hikvision.markdown @mezz64 source/_integrations/hikvisioncam.markdown @fbradyirl source/_integrations/hisense_aehw4a1.markdown @bannhead @@ -394,13 +400,16 @@ source/_integrations/intellifire.markdown @jeeftor source/_integrations/intesishome.markdown @jnimmo source/_integrations/ios.markdown @robbiet480 source/_integrations/iotawatt.markdown @gtdiehl @jyavenard +source/_integrations/iotty.markdown @pburgio source/_integrations/iperf3.markdown @rohankapoorcom source/_integrations/ipma.markdown @dgomes source/_integrations/iqvia.markdown @bachya source/_integrations/irish_rail_transport.markdown @ttroy50 +source/_integrations/iron_os.markdown @tr4nt0r source/_integrations/isal.markdown @bdraco source/_integrations/islamic_prayer_times.markdown @engrbm87 @cpfair source/_integrations/ismartwindow.markdown @starkillerOG +source/_integrations/israel_rail.markdown @shaiu source/_integrations/iss.markdown @DurgNomis-drol source/_integrations/ista_ecotrend.markdown @tr4nt0r source/_integrations/isy994.markdown @bdraco @shbatm @@ -421,7 +430,7 @@ source/_integrations/keyboard_remote.markdown @bendavid @lanrat source/_integrations/keymitt_ble.markdown @spycle source/_integrations/kitchen_sink.markdown @home-assistant/core source/_integrations/kmtronic.markdown @dgomes -source/_integrations/knocki.markdown @joostlek @jgatto1 +source/_integrations/knocki.markdown @joostlek @jgatto1 @JakeBosh source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w source/_integrations/kodi.markdown @OnFreund source/_integrations/konnected.markdown @heythisisnate @@ -445,7 +454,9 @@ source/_integrations/legrand.markdown @cgtobi source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave source/_integrations/lg_netcast.markdown @Drafteed @splinter98 source/_integrations/lidarr.markdown @tkdrob +source/_integrations/lifx.markdown @Djelibeybi source/_integrations/light.markdown @home-assistant/core +source/_integrations/light.template.markdown @home-assistant/core source/_integrations/linear_garage_door.markdown @IceBotYT source/_integrations/linux_battery.markdown @fabaff source/_integrations/litejet.markdown @joncar @@ -455,6 +466,7 @@ source/_integrations/local_calendar.markdown @allenporter source/_integrations/local_ip.markdown @issacg source/_integrations/local_todo.markdown @allenporter source/_integrations/lock.markdown @home-assistant/core +source/_integrations/lock.template.markdown @home-assistant/core source/_integrations/logbook.markdown @home-assistant/core source/_integrations/logger.markdown @home-assistant/core source/_integrations/london_underground.markdown @jpbede @@ -468,6 +480,7 @@ source/_integrations/lutron_caseta.markdown @swails @bdraco @danaues @eclair4151 source/_integrations/luxaflex.markdown @bdraco @kingy444 @trullock source/_integrations/lyric.markdown @timmo001 source/_integrations/madeco.markdown @starkillerOG +source/_integrations/madvr.markdown @iloveicedgreentea source/_integrations/marantz.markdown @ol-iver @starkillerOG source/_integrations/martec.markdown @starkillerOG source/_integrations/mastodon.markdown @fabaff @andrew-codechimp @@ -483,6 +496,7 @@ source/_integrations/mediaroom.markdown @dgomes source/_integrations/melcloud.markdown @erwindouna source/_integrations/melissa.markdown @kennedyshead source/_integrations/melnor.markdown @vanstinator +source/_integrations/mercury_nz.markdown @tronikos source/_integrations/met.markdown @danielhiversen source/_integrations/met_eireann.markdown @DylanGore source/_integrations/meteo_france.markdown @hacf-fr @oncleben31 @Quentame @@ -495,10 +509,10 @@ source/_integrations/mikrotik.markdown @engrbm87 source/_integrations/mill.markdown @danielhiversen source/_integrations/min_max.markdown @gjohansson-ST source/_integrations/minecraft_server.markdown @elmurato +source/_integrations/mini_connected.markdown @gerard33 @rikroe source/_integrations/minio.markdown @tkislan source/_integrations/moat.markdown @bdraco source/_integrations/mobile_app.markdown @home-assistant/core -source/_integrations/modbus.markdown @janiversen source/_integrations/modem_callerid.markdown @tkdrob source/_integrations/modern_forms.markdown @wonderslug source/_integrations/moehlenhoff_alpha2.markdown @j-a-n @@ -530,7 +544,7 @@ source/_integrations/netgear.markdown @hacf-fr @Quentame @starkillerOG source/_integrations/netgear_lte.markdown @tkdrob source/_integrations/network.markdown @home-assistant/core source/_integrations/nexia.markdown @bdraco -source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/nextbus.markdown @vividboarder source/_integrations/nextcloud.markdown @mib1185 source/_integrations/nextdns.markdown @bieniu @@ -561,7 +575,6 @@ source/_integrations/octoprint.markdown @rfleming71 source/_integrations/ohmconnect.markdown @robbiet480 source/_integrations/ollama.markdown @synesthesiam source/_integrations/ombi.markdown @larssont -source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu source/_integrations/onboarding.markdown @home-assistant/core source/_integrations/oncue.markdown @bdraco @peterager source/_integrations/ondilo_ico.markdown @JeromeHXP @@ -586,7 +599,7 @@ source/_integrations/oru_opower.markdown @tronikos source/_integrations/osoenergy.markdown @osohotwateriot source/_integrations/otbr.markdown @home-assistant/core source/_integrations/ourgroceries.markdown @OnFreund -source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/ovo_energy.markdown @timmo001 source/_integrations/p1_monitor.markdown @klaasnicolaas source/_integrations/panel_custom.markdown @home-assistant/frontend @@ -602,6 +615,7 @@ source/_integrations/philips_js.markdown @elupus source/_integrations/pi_hole.markdown @shenxn source/_integrations/picnic.markdown @corneyl source/_integrations/pilight.markdown @trekky12 +source/_integrations/pinecil.markdown @tr4nt0r source/_integrations/ping.markdown @jpbede source/_integrations/piper.markdown @balloob @synesthesiam source/_integrations/plaato.markdown @JohNan @@ -665,7 +679,7 @@ source/_integrations/reolink.markdown @starkillerOG source/_integrations/repairs.markdown @home-assistant/core source/_integrations/repetier.markdown @ShadowBr0ther source/_integrations/rest_command.markdown @jpbede -source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/rflink.markdown @javicalle source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 source/_integrations/rhasspy.markdown @balloob @synesthesiam @@ -683,6 +697,7 @@ source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/rss_feed_template.markdown @home-assistant/core source/_integrations/rtsp_to_webrtc.markdown @allenporter source/_integrations/ruckus_unleashed.markdown @lanrat @ms264556 @gabe565 +source/_integrations/russound_rio.markdown @noahhusby source/_integrations/ruuvi_gateway.markdown @akx source/_integrations/ruuvitag_ble.markdown @akx source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc @@ -723,10 +738,11 @@ source/_integrations/shodan.markdown @fabaff source/_integrations/sia.markdown @eavanvalkenburg source/_integrations/sighthound.markdown @robmarkcole source/_integrations/signal_messenger.markdown @bbernhard +source/_integrations/simplefin.markdown @scottg489 @jeeftor source/_integrations/simplepush.markdown @engrbm87 source/_integrations/simplisafe.markdown @bachya source/_integrations/simply_automated.markdown @gwww -source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/sinch.markdown @bendikrb source/_integrations/siren.markdown @home-assistant/core @raman325 source/_integrations/sisyphus.markdown @jkeljo @@ -755,7 +771,7 @@ source/_integrations/solaredge_local.markdown @drobtravels @scheric source/_integrations/solarlog.markdown @Ernst79 @dontinelli source/_integrations/solax.markdown @squishykid source/_integrations/soma.markdown @ratsept @sebfortier2288 -source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/sonarr.markdown @ctalkington source/_integrations/songpal.markdown @rytilahti @shenxn source/_integrations/sonos.markdown @jjlawren @peterager @@ -788,6 +804,7 @@ source/_integrations/swepco.markdown @tronikos source/_integrations/swiss_hydrological_data.markdown @fabaff source/_integrations/swiss_public_transport.markdown @fabaff @miaucl source/_integrations/switch.markdown @home-assistant/core +source/_integrations/switch.template.markdown @home-assistant/core source/_integrations/switch_as_x.markdown @home-assistant/core source/_integrations/switchbee.markdown @jafar-atili source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski @@ -814,6 +831,7 @@ 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_fleet.markdown @Bre77 source/_integrations/tesla_wall_connector.markdown @einarhauks source/_integrations/teslemetry.markdown @Bre77 source/_integrations/tessie.markdown @Bre77 @@ -852,7 +870,7 @@ source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck source/_integrations/twentemilieu.markdown @frenck source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 @Olen source/_integrations/twitch.markdown @joostlek -source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 +source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14 source/_integrations/ukraine_alarm.markdown @PaulAnnekov source/_integrations/unifi.markdown @Kane610 source/_integrations/unifi_direct.markdown @tofuSCHNITZEL @@ -870,6 +888,7 @@ source/_integrations/usgs_earthquakes_feed.markdown @exxamalte source/_integrations/utility_meter.markdown @dgomes source/_integrations/v2c.markdown @dgomes source/_integrations/vacuum.markdown @home-assistant/core +source/_integrations/vacuum.template.markdown @home-assistant/core source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru- @yozik04 source/_integrations/valve.markdown @home-assistant/core source/_integrations/velbus.markdown @Cereal2nd @brefra @@ -899,6 +918,7 @@ source/_integrations/watson_tts.markdown @rutkai source/_integrations/watttime.markdown @bachya source/_integrations/waze_travel_time.markdown @eifinger source/_integrations/weather.markdown @home-assistant/core +source/_integrations/weather.template.markdown @home-assistant/core source/_integrations/weatherflow.markdown @natekspencer @jeeftor source/_integrations/weatherflow_cloud.markdown @jeeftor source/_integrations/weatherkit.markdown @tjhorner diff --git a/Gemfile b/Gemfile index 4d43955bb8d..ba7ea78a3c3 100644 --- a/Gemfile +++ b/Gemfile @@ -10,8 +10,8 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - gem 'rubocop', '1.65.0' - gem 'ruby-lsp', '0.17.10' + gem 'rubocop', '1.65.1' + gem 'ruby-lsp', '0.17.11' gem 'rackup', '2.1.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 6e9efc9d936..6fa8c5810f8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -28,7 +28,7 @@ GEM eventmachine (1.2.7) ffi (1.17.0-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (4.27.2-x86_64-linux) + google-protobuf (4.27.3-x86_64-linux) bigdecimal rake (>= 13) http_parser.rb (0.8.0) @@ -75,12 +75,12 @@ GEM logger (1.6.0) mercenary (0.4.0) multi_json (1.15.0) - mustermann (3.0.0) + mustermann (3.0.1) ruby2_keywords (~> 0.0.1) nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) parallel (1.25.1) - parser (3.3.4.0) + parser (3.3.4.1) ast (~> 2.4.1) racc pathutil (0.16.2) @@ -105,10 +105,10 @@ GEM rbs (3.5.2) logger regexp_parser (2.9.2) - rexml (3.3.2) + rexml (3.3.4) strscan rouge (4.3.0) - rubocop (1.65.0) + rubocop (1.65.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -119,9 +119,9 @@ GEM rubocop-ast (>= 1.31.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.31.3) + rubocop-ast (1.32.0) parser (>= 3.3.1.0) - ruby-lsp (0.17.10) + ruby-lsp (0.17.11) language_server-protocol (~> 3.17.0) prism (>= 0.29.0, < 0.31) rbs (>= 3, < 4) @@ -142,7 +142,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11501) + sorbet-runtime (0.5.11514) stringex (2.8.6) strscan (3.1.0) terminal-table (3.0.2) @@ -168,8 +168,8 @@ DEPENDENCIES nokogiri (= 1.16.7) rackup (= 2.1.0) rake (= 13.2.1) - rubocop (= 1.65.0) - ruby-lsp (= 0.17.10) + rubocop (= 1.65.1) + ruby-lsp (= 0.17.11) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) diff --git a/_config.yml b/_config.yml index bf3cc05f11f..3f78316a5a8 100644 --- a/_config.yml +++ b/_config.yml @@ -107,9 +107,9 @@ social: # Home Assistant release details current_major_version: 2024 -current_minor_version: 7 -current_patch_version: 4 -date_released: 2024-07-30 +current_minor_version: 8 +current_patch_version: 0 +date_released: 2024-08-07 # 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 34fd16851c7..04f55b0ad9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.0", "remark-stringify": "^11.0.0", - "textlint": "^14.0.4", + "textlint": "^14.0.5", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" @@ -416,65 +416,65 @@ "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.4.tgz", - "integrity": "sha512-SQ/2DjxVlDVeCEjVlD8c8R2Sl3VGDZEx8o9+i8bV8NUdY8qsSHbo29/BfiUZf/uaX6eeNpZsurtstJ25hbVrsQ==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.5.tgz", + "integrity": "sha512-fXIffKbOXwULZwMib9BtGf+IkARXs/CnEmFhAGwLhzPjLTB9YgNftjTyxmVvNbpKA02KTMdK3JFpgZ5Vyxsykg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/ast-traverse": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.4.tgz", - "integrity": "sha512-bzFC7UJ2FvhjH5ekXGQ0i9vjK+xzMT69gHBsYVEl+TtbplnH2YY3+sbw6B1j3LocJuo6xngZ2YWXXqmQlKgzLg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.5.tgz", + "integrity": "sha512-5q/7vifbG8mqDEpByaUjAfHHjJlFiS737axziNQ8qXVswyrMdmRIRE9Wv0unvrs0W9mLKHcsPHh8JQd1RGpfIg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/config-loader": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.4.tgz", - "integrity": "sha512-qgAvZ1RcTq58+yNbzhaKHsb52yHRxt8SRpG7S4WFjYj2DEStjIxzssSQvlZtEBjSUQ7RZNJ93d+pL0YK8MIVoA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.5.tgz", + "integrity": "sha512-nZZGwXei1kizl8+3uvahfHcMg2npMnuE2WWQ8z8c8seNsnHLitoTNoSR8IQYZ0XDQ9Iy3ROOkRX2qUvKCQPgQQ==", "dev": true, "dependencies": { - "@textlint/kernel": "^14.0.4", - "@textlint/module-interop": "^14.0.4", - "@textlint/types": "^14.0.4", - "@textlint/utils": "^14.0.4", + "@textlint/kernel": "^14.0.5", + "@textlint/module-interop": "^14.0.5", + "@textlint/types": "^14.0.5", + "@textlint/utils": "^14.0.5", "debug": "^4.3.4", "rc-config-loader": "^4.1.3", "try-resolve": "^1.0.1" } }, "node_modules/@textlint/feature-flag": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.4.tgz", - "integrity": "sha512-1FMZqnjOA4KVpt/aloI1fNs46P0rUeHWcCRKl33/08wRHHMdcbaN4EsHkq7UfriuSfFgUuiyeo0bPjCpv15hhQ==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.5.tgz", + "integrity": "sha512-hTlCE+cyJ6BxsXgDJfe/mF/b/GVKrPUMzgqbd6n5bbGuhdTYO0hDrl/nCAbasQz4oJh6TGq4WH2dNts38TlZng==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.4.tgz", - "integrity": "sha512-HkMxzGPo/pgA9UvddqJG6qm62ICNgil3AmBVp0QpOv5uTV1u9gCSQ5jOdb/aOJBw7W8fd+CcnEsEBYn9HT8e6A==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.5.tgz", + "integrity": "sha512-fRXWUQVBbg4Gp2k254YLbEzn42GwBcmAmRUODSJkXkF8oAu91uEQJ6uJlOE0/plQfZUOgQebco9KPmeL8+Jb+A==", "dev": true, "dependencies": { - "@textlint/module-interop": "^14.0.4", - "@textlint/types": "^14.0.4", + "@textlint/module-interop": "^14.0.5", + "@textlint/types": "^14.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^5.2.0", @@ -485,39 +485,39 @@ } }, "node_modules/@textlint/kernel": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.4.tgz", - "integrity": "sha512-6WNoEBZ4lYTYOGK4EEEdjp+kgxSSC1nIFwN6tY9XGVkd4OACzDNothVTvJBwaX73FWFG5zoSjnNQxBDPUHMc8g==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.5.tgz", + "integrity": "sha512-AfCGRSq4XuH1UCAcKKurbBRxxypTJzdWmG3Netpa/cGmkdI4tcL+kfaimG3hSnXvQfv6VIzHASBB6u2WpUAGXg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", - "@textlint/ast-tester": "^14.0.4", - "@textlint/ast-traverse": "^14.0.4", - "@textlint/feature-flag": "^14.0.4", - "@textlint/source-code-fixer": "^14.0.4", - "@textlint/types": "^14.0.4", - "@textlint/utils": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", + "@textlint/ast-tester": "^14.0.5", + "@textlint/ast-traverse": "^14.0.5", + "@textlint/feature-flag": "^14.0.5", + "@textlint/source-code-fixer": "^14.0.5", + "@textlint/types": "^14.0.5", + "@textlint/utils": "^14.0.5", "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.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/linter-formatter": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.4.tgz", - "integrity": "sha512-EQZJPydExEIvBARkdmkoGsKWie1ekNAiqerQgIqwPb3SqOzKnlaDGrZOMy40HufTcacZrrvlbByDyai6m30+Lw==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.5.tgz", + "integrity": "sha512-Ht9/FNwoZuW95rsgJ4aR+d0LSkVqw5dC+wp5Hab4HtPhdSsDcTEA1Q53JUubjhcpKnwNxv/aNxh1iXMBiNrSqA==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.0.4", - "@textlint/types": "^14.0.4", + "@textlint/module-interop": "^14.0.5", + "@textlint/types": "^14.0.5", "chalk": "^4.1.2", "debug": "^4.3.4", "js-yaml": "^3.14.1", @@ -531,26 +531,26 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.4.tgz", - "integrity": "sha512-D9UUxnRJoNROVjOa9bhoQPDdRvlvS/xP3MJo0Kl6b/mJFi0dOlW31WUfpOFjZkp4uXkL+oo0ji7AMnmV6JORsQ==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.5.tgz", + "integrity": "sha512-m6EIJL/qhvGuB5zXCQNHBF8MdhPpN4s2F2WPxfwFunXb/K58murSEkUTCviuHiDG/7XOFT030dY9eck3Pez0gg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", + "neotraverse": "^0.6.15", "remark-footnotes": "^3.0.0", "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", "remark-parse": "^9.0.0", - "traverse": "^0.6.8", "unified": "^9.2.2" } }, "node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/markdown-to-ast/node_modules/bail": { @@ -780,73 +780,73 @@ } }, "node_modules/@textlint/module-interop": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.4.tgz", - "integrity": "sha512-okv52pRSQ1aeC8rim8qp2D2Fmj/oKDYGY2itdeZhj9E/vdkU9/r7OpdcxyuNiuqLEd/sWw03EAwt3S6mlfNIOw==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.5.tgz", + "integrity": "sha512-naK1z6omW/1C0UF8kLlnmtx0Ikmnp2DUUm5C2mEt5dpEqpXF39/dKFNbMOrac0nLh/65QCpj8m9GlpbbrKKjHw==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.4.tgz", - "integrity": "sha512-gIUeWjF0WdSwgCUhW310hKJsWOyRyFe6PGaqqCk7Mhc+vVcePfmC8mmmhVgeuyys/Dhe+0iaP4M1eJf4COaIQw==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.5.tgz", + "integrity": "sha512-JNSBVFQ09LXxeiebQ4PI72N1XTW/CZb3gVewnojL/un39oAo3yGjzFox/59TL5rdrGAqsijOq4CrWkJ+3Xb2kg==", "dev": true, "dependencies": { - "@textlint/types": "^14.0.4", + "@textlint/types": "^14.0.5", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.4.tgz", - "integrity": "sha512-r2KSnKzhsCIvX72yX+7sEuu9nDQIS4+xRsSffuXYB0etRQUI6VTTsE6Ibd6yMbEsMDUF4BfKWzNGn+bQ8U7oHA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.5.tgz", + "integrity": "sha512-3dq1OL6gU522H+/b+NmE4z8OXMG5aLgKAlBu1zBbcXGAjgtIEdplYn6XGvpkGRM2FnypMzsDIUjzwUS8bjbpWw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.4.tgz", - "integrity": "sha512-mqQieI9U5GTRTjkK4Cj57Axl6fVloaA8g0+sCsp3TjmNWyEgGBvt3aw+FIUiFTvheg9L3RGe/aXgvp5ORADOAA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.5.tgz", + "integrity": "sha512-QjfATGYKuPkLVT+GsG8WjwrkgNpksKED6Qd4TDL/q2LwNVEZ6ULFLZmufL9z9ENCeBs6y0YDE7IbE26Vhq5zww==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^14.0.4" + "@textlint/markdown-to-ast": "^14.0.5" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.4.tgz", - "integrity": "sha512-HwTQyOcwDRrPPHyD8lwSMyGR1ETasR2WK6BLO0PRbowRe6K/K4b9OBBd6+nJcRFa+9Nd6p7nxPzA2WxDi1X/Zg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.5.tgz", + "integrity": "sha512-OJJP5WXo3rqqL7bXYy44f8z9s1Ssb/2/nmTStbTepSOujQjOoEwehtwV+QBwdzwRkzbQFcZ0HS+dJ/yNdneKWA==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^14.0.4" + "@textlint/text-to-ast": "^14.0.5" } }, "node_modules/@textlint/types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.4.tgz", - "integrity": "sha512-SNdFG/GB6utYeHmNfoAMlI+K1NykPxK9TtilkEfhr/fF9TqmeeJ+6CMk5NLQzEvfKm6jUbv2pp5DPS27vo6GKg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.5.tgz", + "integrity": "sha512-scrY5Zzz/SSAXaxw6OspbgFuiyQpHq88iK7OhUYE3BMnM90ijKzSohGMUHHK872zenzGTTOepE2sdjkIyXr1pA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4" + "@textlint/ast-node-types": "^14.0.5" } }, "node_modules/@textlint/types/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/@textlint/utils": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.4.tgz", - "integrity": "sha512-/ThtVZCB/vB2e8+MnKquCFNO2cKXCPEGxFlkdvJ5g9q9ODpVyFcf2ogYoIlvR7cNotvq67zVjENS7dsGDNFEmw==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.5.tgz", + "integrity": "sha512-+EDQlPx4t/DcH4EYXB62J+5mTRdJaMlFEyzCK7QUfZ9u2JeIE+AFt4D7xDAeiXcdxYTAm2ASdJ+lw7z3Z+vasQ==", "dev": true }, "node_modules/@types/concat-stream": { @@ -898,12 +898,12 @@ "dev": true }, "node_modules/@types/mdast": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz", - "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", "dev": true, "dependencies": { - "@types/unist": "*" + "@types/unist": "^2" } }, "node_modules/@types/ms": { @@ -952,15 +952,15 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -1417,6 +1417,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "node_modules/fault": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", @@ -3630,6 +3636,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/neotraverse": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.15.tgz", + "integrity": "sha512-HZpdkco+JeXq0G+WWpMJ4NsX3pqb5O7eR9uGz3FfoFt+LYzU8iRWp49nJtud6hsDoywM8tIrDo3gjgmOqJA8LA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/nopt": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", @@ -3918,15 +3933,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/quotation": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz", @@ -5999,9 +6005,9 @@ } }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -6021,23 +6027,23 @@ "dev": true }, "node_modules/textlint": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.0.4.tgz", - "integrity": "sha512-xPQkC/BftPjizjs31wci/791EjwfN11iRLrNKiPVBogYd1r+6TnSxbCERZhgXCGcD9tEHss0kOYc0+vPEEG8jg==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.0.5.tgz", + "integrity": "sha512-k2x1itoYuUPE6FCodxV7cW0Rcnycx8DVYMGQd8G/iFGPaT8As3XdXMfATTGRQIkMR5TkbCeBVVrWKTNHotCx2g==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.0.4", - "@textlint/ast-traverse": "^14.0.4", - "@textlint/config-loader": "^14.0.4", - "@textlint/feature-flag": "^14.0.4", - "@textlint/fixer-formatter": "^14.0.4", - "@textlint/kernel": "^14.0.4", - "@textlint/linter-formatter": "^14.0.4", - "@textlint/module-interop": "^14.0.4", - "@textlint/textlint-plugin-markdown": "^14.0.4", - "@textlint/textlint-plugin-text": "^14.0.4", - "@textlint/types": "^14.0.4", - "@textlint/utils": "^14.0.4", + "@textlint/ast-node-types": "^14.0.5", + "@textlint/ast-traverse": "^14.0.5", + "@textlint/config-loader": "^14.0.5", + "@textlint/feature-flag": "^14.0.5", + "@textlint/fixer-formatter": "^14.0.5", + "@textlint/kernel": "^14.0.5", + "@textlint/linter-formatter": "^14.0.5", + "@textlint/module-interop": "^14.0.5", + "@textlint/textlint-plugin-markdown": "^14.0.5", + "@textlint/textlint-plugin-text": "^14.0.5", + "@textlint/types": "^14.0.5", + "@textlint/utils": "^14.0.5", "debug": "^4.3.4", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", @@ -6163,9 +6169,9 @@ } }, "node_modules/textlint/node_modules/@textlint/ast-node-types": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz", - "integrity": "sha512-O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz", + "integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==", "dev": true }, "node_modules/to-regex-range": { @@ -6180,18 +6186,6 @@ "node": ">=8.0" } }, - "node_modules/traverse": { - "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" - } - }, "node_modules/trough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", @@ -6206,6 +6200,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz", "integrity": "sha512-yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true }, "node_modules/type-check": { @@ -6748,15 +6743,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 264b89cbafe..b0dc185e0e5 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.0", "remark-stringify": "^11.0.0", - "textlint": "^14.0.4", + "textlint": "^14.0.5", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" diff --git a/source/_dashboards/button.markdown b/source/_dashboards/button.markdown index 7e84aca94b5..19ebda8313e 100644 --- a/source/_dashboards/button.markdown +++ b/source/_dashboards/button.markdown @@ -140,8 +140,8 @@ type: button name: Turn Off Lights show_state: false tap_action: - action: call-service - service: script.turn_on + action: perform-action + perform_action: script.turn_on data: entity_id: script.turn_off_lights ``` diff --git a/source/_dashboards/entities.markdown b/source/_dashboards/entities.markdown index 98cc7056db5..6185487a423 100644 --- a/source/_dashboards/entities.markdown +++ b/source/_dashboards/entities.markdown @@ -426,8 +426,8 @@ entities: name: Bed light transition action_name: Toggle light tap_action: - action: call-service - service: light.toggle + action: perform-action + perform_action: light.toggle data: entity_id: light.bed_light transition: 10 @@ -458,8 +458,8 @@ entities: name: Power cycle LibreELEC icon: mdi:power-cycle tap_action: - action: call-service + action: perform-action confirmation: text: Are you sure you want to restart? - service: script.libreelec_power_cycle + perform_action: script.libreelec_power_cycle ``` diff --git a/source/_dashboards/picture-entity.markdown b/source/_dashboards/picture-entity.markdown index f090bf77947..afdc03003e4 100644 --- a/source/_dashboards/picture-entity.markdown +++ b/source/_dashboards/picture-entity.markdown @@ -135,8 +135,8 @@ type: picture-entity entity: camera.backdoor camera_view: live tap_action: - action: call-service - service: camera.snapshot + action: perform-action + perform_action: camera.snapshot data: entity_id: camera.backdoor filename: '/shared/backdoor-{{ now().strftime("%Y-%m-%d-%H%M%S") }}.jpg' diff --git a/source/_dashboards/picture-glance.markdown b/source/_dashboards/picture-glance.markdown index a81ec742141..c4c73e008d7 100644 --- a/source/_dashboards/picture-glance.markdown +++ b/source/_dashboards/picture-glance.markdown @@ -197,35 +197,35 @@ If your camera supports PTZ (can be mov - entity: button.camera1_ptz_left icon: mdi:pan-left tap_action: - action: call-service - service: button.press + action: perform-action + perform_action: button.press data: entity_id: button.camera1_ptz_left - entity: button.camera1_ptz_right icon: mdi:pan-right tap_action: - action: call-service - service: button.press + action: perform-action + perform_action: button.press data: entity_id: button.camera1_ptz_right - entity: button.camera1_ptz_up icon: mdi:pan-up tap_action: - action: call-service - service: button.press + action: perform-action + perform_action: button.press data: entity_id: button.camera1_ptz_up - entity: button.camera1_ptz_down icon: mdi:pan-down tap_action: - action: call-service - service: button.press + action: perform-action + perform_action: button.press data: entity_id: button.camera1_ptz_down camera_image: camera.camera1_sub tap_action: - action: call-service - service: light.toggle + action: perform-action + perform_action: light.toggle target: entity_id: light.philips_929003052501_01_huelight ``` diff --git a/source/_dashboards/picture.markdown b/source/_dashboards/picture.markdown index 015e19ed515..25770bf6605 100644 --- a/source/_dashboards/picture.markdown +++ b/source/_dashboards/picture.markdown @@ -80,8 +80,8 @@ Toggle entity using an action: type: picture image: /local/light.png tap_action: - action: call-service - service: light.toggle + action: perform-action + perform_action: light.toggle data: entity_id: light.ceiling_lights ``` diff --git a/source/_dashboards/sections.markdown b/source/_dashboards/sections.markdown index 20ec4612f8f..a96f998d849 100644 --- a/source/_dashboards/sections.markdown +++ b/source/_dashboards/sections.markdown @@ -64,7 +64,7 @@ Once you have created a sections view, you can populate it with sections and car ## Deleting a section -1. To delete a section, go to the dashboard and in the top right corner, select the pencil icon. +1. To delete a section, go to the dashboard and in the top right corner, select the edit {% icon "mdi:edit" %} button. 2. Open the view with the section you want to delete. 3. Select the delete {% icon "mdi:trash" %} button. @@ -72,7 +72,7 @@ Once you have created a sections view, you can populate it with sections and car In the sections view, you can rearrange sections and cards by dragging them to a new location. This is not yet possible in other views. -1. To edit your dashboard, in the top right corner, select the pencil icon. +1. To edit your dashboard, in the top right corner, select the edit {% icon "mdi:edit" %} button. 2. To rearrange sections, hold the move {% icon "mdi:cursor-move" %} button and move the card.

diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index 871cef34bc0..8a83d5cc374 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -51,6 +51,10 @@ _Make sure to choose a secure password!_ At some time in the future, you will pr As an extra level of security, you can turn on [multi-factor authentication](/docs/authentication/multi-factor-auth/). +## Adding a person to Home Assistant + +If you have administrator rights, you can [add a person to Home Assistant](/integrations/person/#adding-a-person-to-home-assistant) and create them a user account. + ## Changing display or user name To learn how to change a display or user name, refer to [setting up basic information](/docs/configuration/basic/). diff --git a/source/_docs/organizing/areas.markdown b/source/_docs/organizing/areas.markdown index 6b6a0f2f3e1..93eebe78323 100644 --- a/source/_docs/organizing/areas.markdown +++ b/source/_docs/organizing/areas.markdown @@ -44,7 +44,7 @@ Follow these steps to create a new area from the **Areas** view. If an area has not yet been assigned to a floor, it is shown in the **Unassigned areas** section. Follow these steps to assign an area to a floor. 1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select **Create area**. -2. On the area card, select the pencil icon. +2. On the area card, select the edit {% icon "mdi:edit" %} button. 3. In the dialog, select the floor and add labels, if you like. ## Assigning an area to multiple items @@ -64,7 +64,7 @@ You can assign an area to multiple items at once in the automation, scene, scrip Follow these steps to edit an area. -1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and on the area card, select the pencil icon. +1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and on the area card, select the edit {% icon "mdi:edit" %} button. 2. In the dialog, adjust the area details you want to change: - Edit the area **Name**. - Add an icon (We use [Material icons](https://pictogrammers.com/library/mdi/)). diff --git a/source/_docs/organizing/labels.markdown b/source/_docs/organizing/labels.markdown index c15b32e64e7..ba46255f284 100644 --- a/source/_docs/organizing/labels.markdown +++ b/source/_docs/organizing/labels.markdown @@ -38,7 +38,7 @@ Follow these steps to apply a label 1. To apply a label to an area: - Go to {% my areas title="**Settings** > **Areas, labels & zones**" %}. - - On the area card, select the pencil icon. + - On the area card, select the edit {% icon "mdi:edit" %} button. - Select one or more labels or select **Add new label** to create a new one. 2. To apply a label to a device, entity, or helper: - Go to **{% my integrations title="Settings > Devices & Services" %}** and open the respective tab. diff --git a/source/_docs/organizing/tables.markdown b/source/_docs/organizing/tables.markdown index ce2cd40852f..8c6d2d6e659 100644 --- a/source/_docs/organizing/tables.markdown +++ b/source/_docs/organizing/tables.markdown @@ -74,5 +74,6 @@ To customize columns, follow these steps: 1. In the top right corner of the table, select the cog wheel. 2. To hide a column, deselect it. 3. To rearrange the order, grab the column and move it to its new position. +4. To sort, select the column header of interest. ![Screencast showing how to show, hide, and rearrange columns](/images/organizing/customize_columns.webp) \ No newline at end of file diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown index 62aee08978c..0ebaef12182 100644 --- a/source/_docs/z-wave/controllers.markdown +++ b/source/_docs/z-wave/controllers.markdown @@ -9,9 +9,29 @@ You need to have a compatible Z-Wave stick or module installed. The following de {% warning %} -Until recently, 700 series Z-Wave Controllers had a bug that could cause the mesh to be flooded on some networks and the controller to become unresponsive. At present, all 700 series controllers share the same firmware and are subject to this bug. It appears that this bug is largely, if not completely, resolved as of firmware version 7.17.2. +The firmwares of 700 and 800 series Z-Wave controllers have several bugs which impact the stability of the mesh and can cause the controller to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria: -Users should upgrade the firmware on all 700 series controllers to version 7.17.2 or greater. Firmware can be upgraded using the below directions: +- 700 series: + - prefer SDK versions 7.17.2 to 7.18.x + - SDK versions 7.19.x are okay + - avoid SDK versions before 7.17.2 + - avoid SDK versions 7.20 to 7.21.3 + +- 800 series + - prefer SDK versions 7.22.x + - SDK versions 7.17.2 to 7.19.x are okay + - avoid SDK versions before 7.17.2 + - avoid SDK versions 7.20 to 7.21.3 + +{% note %} +The SDK version does not have to match the firmware version. If you are unsure which SDK versions a firmware is based on, contact the manufacturer of your device. +{% endnote %} + +{% important %} +You should upgrade the firmware on all 700 and 800 series controllers to a recommended version. +{% endimportant %} + +Firmware can be upgraded using the below directions: - [Upgrade instructions using Linux](https://github.com/kpine/zwave-js-server-docker/wiki/700-series-Controller-Firmware-Updates-(Linux)) - [Upgrade instructions using Windows (Aeotec)](https://aeotec.freshdesk.com/support/solutions/articles/6000252296-update-z-stick-7-with-windows) @@ -21,8 +41,9 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17. {% endwarning %} - 800 series controllers (with some caveats, see notes) - - Zooz 800 Series Z-Wave Long Range S2 Stick (ZST39 LR) + - Z-Wave.Me Z-Station - HomeSeer SmartStick G8 + - Zooz 800 Series Z-Wave Long Range S2 Stick (ZST39 LR) - 700 series controllers - Aeotec Z-Stick 7 USB stick (ZWA010) (the EU version is not recommended due to RF performance issues) @@ -141,11 +162,11 @@ If you've installed the Z-Wave.Me Z-Way software. In order to use Z-Wave JS inst This procedure has been tested with the following modules: - - Aeotec Z-Pi 7 Raspberry Pi HAT/Shield - - Z-Wave.Me RaZberry 7 - - Z-Wave.Me RaZberry 7 Pro +- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield +- Z-Wave.Me RaZberry 7 +- Z-Wave.Me RaZberry 7 Pro -1. Make sure the module is properly seated on the Home Assistant Yellow. +1. Make sure the module is properly seated on the Home Assistant Yellow. ![Aeotec Z-Pi 7 on Home Assistant Yellow](/images/docs/z-wave/zpi-7-yellow.jpg). 2. Carefully [close the case](https://yellow.home-assistant.io/guides/add-ssd-existing-installation/#reassembling-top-part) and power up Home Assistant Yellow. 3. Follow the procedure on [setting up a Z-Wave JS server](/integrations/zwave_js/#setting-up-a-z-wave-js-server). diff --git a/source/_includes/common-tasks/data_disk.md b/source/_includes/common-tasks/data_disk.md index b815b0d0205..ab6ddbcc311 100644 --- a/source/_includes/common-tasks/data_disk.md +++ b/source/_includes/common-tasks/data_disk.md @@ -64,7 +64,7 @@ This can be an option if the following elements apply to your use case: - You already have a functioning Home Assistant instance (system 1) that is using an external data disk. - You have another, new, Home Assistant instance (system 2). -- You want now want to use the data disk of system 1 on system 2 instead. +- You now want to use the data disk of system 1 on system 2 instead. The aim is to migrate the data from system 1 to system 2. One way to do this is by [restoring a backup](/common-tasks/os/#restoring-a-backup). The other way is to move the data disk. This can be an interesting option if you have a large amount of data on your external disk or if your external disk has more storage capacity than your new system. diff --git a/source/_includes/common-tasks/third-party-addons.md b/source/_includes/common-tasks/third-party-addons.md index 827791fbfce..6dbb01599fa 100644 --- a/source/_includes/common-tasks/third-party-addons.md +++ b/source/_includes/common-tasks/third-party-addons.md @@ -1,25 +1,33 @@ -## Installing third-party add-ons +## Installing a third-party add-on repository -Home Assistant allows anyone to create add-on repositories to share their add-ons easily. To try this locally, you can use our example add-on repository at +Home Assistant allows anyone to create an add-on repository to share their own add-ons with the community. -```text -https://github.com/home-assistant/hassio-addons-example -``` - -{% caution %} +{% warning %} Home Assistant cannot guarantee the quality or security of third-party add-ons. Use at your own risk. -{% endcaution %} +{% endwarning %} -

- -From {% my supervisor title="Settings > Add-ons" %} open the add-on store. -

+To add an add-on repository, follow these steps: -

- -Add the URL of the repository and then press "Add". A new card for the repository will appear. -

+1. Copy the URL of the repository. + - The URL is the git repository clone URL (on GitHub, use the Code button and copy the HTTPS URL). + - This documentation uses an example add-on repository. It is not practically useful but follows the same steps. + - If you are interested in add-on development, refer to our [add-on development documentation](https://developers.home-assistant.io/docs/add-ons). -### Help: Repository is not showing up + ```text + https://github.com/home-assistant/hassio-addons-example + ``` +2. Go to {% my supervisor title="**Settings** > **Add-ons**" %} and select **Add-on store**. + ![Screenshot of the add-on store](/images/getting-started/add-ons.png) +3. In the top-right corner, select the three dots {% icon "mdi:dots-vertical" %} menu, and select **Repositories**. +4. Add the URL of the repository and select **Add**. + ![Screenshot of the add-on store](/images/hassio/screenshots/adding_repositories.png) + - **Result**: A new card for the repository will appear. + ![Screenshot of the add-on store](/images/hassio/screenshots/add-ons-community_example.png) -If you have added a repository, but it's not showing up, it means that the repository contains invalid configuration. Go to {% my logs title="Settings > System > Logs" %} to find the System log. It should tell you what went wrong. Report this information to the repository author. +### Troubleshooting: Repository is not showing up + +If you have added an add-on repository, but it's not showing up, make sure to refresh your browser. If it still doesn't show up, the add-on repository may contain invalid configuration data. + +1. Go to {% my logs title="**Settings** > **System** > **Logs**" %} and select Supervisor in the top right corner to get the Supervisor log. + - It should tell you what went wrong. +2. Report this information to the add-on repository author. diff --git a/source/_includes/dashboard/edit_dashboard.md b/source/_includes/dashboard/edit_dashboard.md index 42da726cd25..1053b8b3cdf 100644 --- a/source/_includes/dashboard/edit_dashboard.md +++ b/source/_includes/dashboard/edit_dashboard.md @@ -4,7 +4,7 @@ To add the {{ title | downcase }} to your user interface: -1. In the top right of the screen, select the pencil icon. +1. In the top right of the screen, select the edit {% icon "mdi:edit" %} button. - If this is your first time editing a dashboard, the **Edit dashboard** dialog appears. - By editing the dashboard, you are taking over control of this dashboard. - This means that it is no longer automatically updated when new dashboard elements become available. diff --git a/source/_includes/installation/container.md b/source/_includes/installation/container.md index 40a1cbb6487..0304fc4f4f2 100644 --- a/source/_includes/installation/container.md +++ b/source/_includes/installation/container.md @@ -41,7 +41,7 @@ Once the Home Assistant Container is running Home Assistant should be accessible If you change the configuration, you have to restart the server. To do that you have 3 options. 1. In your Home Assistant UI, go to the **Settings** > **System** and click the **Restart** button. -2. You can go to the **Developer Tools** > **Actions**, select the service `homeassistant.restart` and select **Perform action**. +2. You can go to the **Developer Tools** > **Actions**, select `homeassistant.restart` and select **Perform action**. 3. Restart it from a terminal. {% tabbed_block %} diff --git a/source/_integrations/alarm_control_panel.mqtt.markdown b/source/_integrations/alarm_control_panel.mqtt.markdown index 78847e993aa..34a8c53c8db 100644 --- a/source/_integrations/alarm_control_panel.mqtt.markdown +++ b/source/_integrations/alarm_control_panel.mqtt.markdown @@ -135,6 +135,10 @@ device: description: "The model of the device." required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: "The name of the device." required: false @@ -344,4 +348,4 @@ mqtt: {% caution %} When your MQTT connection is not secured, this will send your secret code over the network unprotected! {% endcaution %} - \ No newline at end of file + diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index ef4282d9366..420d74854ca 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -149,7 +149,7 @@ The first thing you need to do after signing into the [AWS console](https://cons Next you need create a Lambda function. - Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home) -- **IMPORTANT - Alexa Skills are only supported in certain AWS regions** Your current server location will be displayed on the top right corner (for example, Ohio), make sure you select the server closest to your location / region based on your Amazon account's country, whilst also ensuring that it is within one of the supported regions for Alexa Skills otherwise this will not work! +- **IMPORTANT - Alexa Skills are only supported in certain AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server below that is closest to your location and in your region, based on your Amazon account’s country. Alexa Lambda functions created on other servers will not work properly and may prevent account linking! - **US East (N.Virginia)** region for English (US) or English (CA) skills - **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills - **US West (Oregon)** region for Japanese and English (AU) skills. @@ -245,6 +245,10 @@ Alexa needs to link your Amazon account to your Home Assistant account. Therefor Read [more from the Alexa developer documentation](https://developer.amazon.com/en-US/docs/alexa/account-linking/requirements-account-linking.html) about requirements for account linking. + {% note %} + Despite the Alexa documentation's disclaimer, however, [Let's Encrypt](https://letsencrypt.org/) certificates are still accepted. + {% endnote %} + {% important %} You must use a valid/trusted SSL certificate for account linking to work. Self signed certificates will not work, but you can use a free Let's Encrypt certificate. diff --git a/source/_integrations/anthemav.markdown b/source/_integrations/anthemav.markdown index 905f0030f7f..86639e31898 100644 --- a/source/_integrations/anthemav.markdown +++ b/source/_integrations/anthemav.markdown @@ -60,4 +60,4 @@ The {% term integration %} will maintain a persistent connection to the network

*The underlying Python module has hooks for halting and resuming the network connection but those functions are currently unsupported by the Home Assistant platform.* -{% endwarning %} \ No newline at end of file +{% endwarning %} diff --git a/source/_integrations/anthropic.markdown b/source/_integrations/anthropic.markdown new file mode 100644 index 00000000000..ec06105b0c6 --- /dev/null +++ b/source/_integrations/anthropic.markdown @@ -0,0 +1,77 @@ +--- +title: Anthropic Conversation +description: Instructions on how to integrate Anthropic Claude as a conversation agent +ha_category: + - Voice +ha_release: 2024.9 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@Shulyaka' +ha_domain: anthropic +ha_integration_type: service +ha_platforms: + - conversation +related: + - docs: /voice_control/voice_remote_expose_devices/ + title: Exposing entities to Assist + - docs: /voice_control/assist_create_open_ai_personality/ + title: Create an AI personality + - url: https://console.anthropic.com/settings/keys + title: Anthropic API key + - url: https://www.anthropic.com + title: Anthropic + - url: https://claude.ai + title: Claude +--- + +The **Anthropic** {% term integrations %} adds a conversation agent powered by [Anthropic](https://www.anthropic.com), such as Claude 3.5 Sonnet, in Home Assistant. + +Controlling Home Assistant is done by providing the AI access to the Assist API of Home Assistant. You can control what devices and entities it can access from the {% my voice_assistants title="exposed entities page" %}. The AI can provide you information about your devices and control them. + +Legal note: Anthropic currently limits the API usage to organizations only, more info here: [Can I use the Claude API for individual use?](https://support.anthropic.com/en/articles/8987200-can-i-use-the-claude-api-for-individual-use) + +This integration does not integrate with [sentence triggers](/docs/automation/trigger/#sentence-trigger). + +## Prerequisites + +- This integration requires an API key to use, [which you can generate here.](https://console.anthropic.com/settings/keys). +- This is a paid service, we advise you to monitor your costs in the [Anthropic portal](https://console.anthropic.com/settings/cost) closely. + +### Generating an API Key + +The Anthropic API key is used to authenticate requests to the Anthropic API. To generate an API key, take the following steps: + +1. Log in to the [Anthropic portal](https://console.anthropic.com) or sign up for an account. +2. Enable billing with a valid credit card on the [plans page](https://console.anthropic.com/settings/plans). +3. Visit the [API Keys page](https://console.anthropic.com/settings/keys) to retrieve the API key you'll use to configure the integration. + +{% include integrations/config_flow.md %} + +{% include integrations/option_flow.md %} +{% configuration_basic %} +Instructions: + description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/). + +Control Home Assistant: + description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. + +Recommended settings: + description: If enabled, the recommended model and settings are chosen. + +{% endconfiguration_basic %} + +If you choose not to use the recommended settings, you can configure the following options: + +{% configuration_basic %} + +Model: + description: The model that will complete your prompt. See [models](https://docs.anthropic.com/en/docs/about-claude/models#model-names) for additional details and options. + +Maximum Tokens to Return in Response: + description: The maximum number of tokens to generate before stopping. Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. Different models have different maximum values for this parameter. See [models](https://docs.anthropic.com/en/docs/models-overview) for details. + +Temperature: + description: Amount of randomness injected into the response. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. Note that even with `temperature` of `0.0`, the results will not be fully deterministic. + +{% endconfiguration_basic %} diff --git a/source/_integrations/apsystems.markdown b/source/_integrations/apsystems.markdown index 2d830e814a8..9aeee5b468e 100644 --- a/source/_integrations/apsystems.markdown +++ b/source/_integrations/apsystems.markdown @@ -8,6 +8,7 @@ ha_category: - Energy ha_domain: apsystems ha_platforms: + - binary_sensor - number - sensor - switch @@ -23,6 +24,9 @@ The following data is provided by the integration: - Lifetime production (Per input and in total) - Current production (Per input and in total) - Today's production (Per input and in total) +- Short circuit error status (per input) +- Off grid status +- Output status The following data can be set by the integration: diff --git a/source/_integrations/autarco.markdown b/source/_integrations/autarco.markdown index 74cf55c8568..339efdcf55f 100644 --- a/source/_integrations/autarco.markdown +++ b/source/_integrations/autarco.markdown @@ -11,6 +11,7 @@ ha_codeowners: - '@klaasnicolaas' ha_domain: autarco ha_platforms: + - diagnostics - sensor ha_integration_type: integration --- diff --git a/source/_integrations/bayesian.markdown b/source/_integrations/bayesian.markdown index 66efb3fb525..d5163843a0b 100644 --- a/source/_integrations/bayesian.markdown +++ b/source/_integrations/bayesian.markdown @@ -3,6 +3,7 @@ title: Bayesian description: Instructions on how to integrate threshold Bayesian sensors into Home Assistant. ha_category: - Binary sensor + - Helper - Utility ha_iot_class: Local Polling ha_release: 0.53 @@ -10,7 +11,7 @@ ha_quality_scale: internal ha_domain: bayesian ha_platforms: - binary_sensor -ha_integration_type: integration +ha_integration_type: helper ha_codeowners: - '@HarvsG' related: @@ -48,7 +49,9 @@ To enable the Bayesian sensor, add the following lines to your {% term "`configu # Example configuration.yaml entry binary_sensor: - platform: bayesian - prior: 0.1 + name: "Kitchen Occupied" + prior: 0.3 + probability_threshold: 0.5 observations: - entity_id: "switch.kitchen_lights" prob_given_true: 0.6 diff --git a/source/_integrations/binary_sensor.mqtt.markdown b/source/_integrations/binary_sensor.mqtt.markdown index 5b64bd29f9b..4899572be9b 100644 --- a/source/_integrations/binary_sensor.mqtt.markdown +++ b/source/_integrations/binary_sensor.mqtt.markdown @@ -96,6 +96,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/bluesound.markdown b/source/_integrations/bluesound.markdown index b2f4befa845..af67f7c6a35 100644 --- a/source/_integrations/bluesound.markdown +++ b/source/_integrations/bluesound.markdown @@ -10,10 +10,13 @@ ha_platforms: - media_player ha_codeowners: - '@thrawnarn' + - '@LouisChrist' ha_integration_type: integration related: - docs: /docs/configuration/ title: Configuration file +ha_config_flow: true +ha_zeroconf: true --- The `bluesound` platform allows you to control your [Bluesound](https://www.bluesound.com/) HiFi wireless speakers and audio integrations from Home Assistant. diff --git a/source/_integrations/bmw_connected_drive.markdown b/source/_integrations/bmw_connected_drive.markdown index 7cc6077ffac..40de6af6cb5 100644 --- a/source/_integrations/bmw_connected_drive.markdown +++ b/source/_integrations/bmw_connected_drive.markdown @@ -31,6 +31,7 @@ ha_platforms: - sensor - switch ha_integration_type: integration +ha_quality_scale: platinum --- The **BMW Connected Drive** {% term integration %} lets you retrieve data of your BMW vehicle from the BMW Connected Drive portal. You need to have a working BMW Connected Drive account and a Connected Drive enabled vehicle for this to work. diff --git a/source/_integrations/brandt.markdown b/source/_integrations/brandt.markdown index 06367e7dd0e..27d629a104b 100644 --- a/source/_integrations/brandt.markdown +++ b/source/_integrations/brandt.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/bryant_evolution.markdown b/source/_integrations/bryant_evolution.markdown index 87085bed79b..116661abc84 100644 --- a/source/_integrations/bryant_evolution.markdown +++ b/source/_integrations/bryant_evolution.markdown @@ -10,9 +10,9 @@ ha_config_flow: true ha_domain: bryant_evolution ha_platforms: - climate -ha_zeroconf: false -ha_homekit: true -ha_integration_type: integration +ha_integration_type: device +ha_codeowners: + - '@danielsmyers' --- The **Bryant Evolution** {% term integration %} lets you control Bryant Evolution HVAC systems. diff --git a/source/_integrations/button.mqtt.markdown b/source/_integrations/button.mqtt.markdown index b84e055f58e..27b13b4d25a 100644 --- a/source/_integrations/button.mqtt.markdown +++ b/source/_integrations/button.mqtt.markdown @@ -93,6 +93,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/camera.mqtt.markdown b/source/_integrations/camera.mqtt.markdown index cf9b228e6c0..2d8cb9f4938 100644 --- a/source/_integrations/camera.mqtt.markdown +++ b/source/_integrations/camera.mqtt.markdown @@ -95,6 +95,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/climate.mqtt.markdown b/source/_integrations/climate.mqtt.markdown index b1179141219..ec9052ef44b 100644 --- a/source/_integrations/climate.mqtt.markdown +++ b/source/_integrations/climate.mqtt.markdown @@ -115,6 +115,10 @@ device: description: 'The model of the device.' required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: 'The name of the device.' required: false @@ -474,4 +478,4 @@ mqtt: precision: 1.0 ``` -{% endraw %} \ No newline at end of file +{% endraw %} diff --git a/source/_integrations/cover.mqtt.markdown b/source/_integrations/cover.mqtt.markdown index 0b890ea932b..6c093b95415 100644 --- a/source/_integrations/cover.mqtt.markdown +++ b/source/_integrations/cover.mqtt.markdown @@ -106,6 +106,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/cozytouch.markdown b/source/_integrations/cozytouch.markdown index cf3f4f6b495..cc92b45491e 100644 --- a/source/_integrations/cozytouch.markdown +++ b/source/_integrations/cozytouch.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index a3480b8c464..d33b9f48414 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -81,6 +81,7 @@ Known supported devices: - Marantz AV7704 - Marantz AV8802A - Marantz CINEMA 50 +- Marantz CINEMA 60 - Marantz CINEMA 70s - Marantz M-CR510 - Marantz M-CR511 diff --git a/source/_integrations/device_tracker.mqtt.markdown b/source/_integrations/device_tracker.mqtt.markdown index 1471fe455cf..625f1c56405 100644 --- a/source/_integrations/device_tracker.mqtt.markdown +++ b/source/_integrations/device_tracker.mqtt.markdown @@ -95,6 +95,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/device_trigger.mqtt.markdown b/source/_integrations/device_trigger.mqtt.markdown index 1ad3a038e7b..bc2e1dff2a0 100644 --- a/source/_integrations/device_trigger.mqtt.markdown +++ b/source/_integrations/device_trigger.mqtt.markdown @@ -68,6 +68,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown index df549788950..dd07b459844 100644 --- a/source/_integrations/dsmr.markdown +++ b/source/_integrations/dsmr.markdown @@ -11,6 +11,7 @@ ha_codeowners: - '@Robbie1221' - '@frenck' ha_platforms: + - diagnostics - sensor ha_integration_type: hub --- diff --git a/source/_integrations/elevenlabs.markdown b/source/_integrations/elevenlabs.markdown new file mode 100644 index 00000000000..72f958ce6de --- /dev/null +++ b/source/_integrations/elevenlabs.markdown @@ -0,0 +1,47 @@ +--- +title: ElevenLabs text-to-speech +description: Instructions on how to setup ElevenLabs text-to-speech with Home Assistant. +ha_category: + - Text-to-speech +ha_release: 2024.8 +ha_iot_class: Cloud Push +ha_domain: elevenlabs +ha_platforms: + - tts +ha_config_flow: true +ha_integration_type: integration +--- + +The **ElevenLabs** text-to-speech {% term integrations %} adds support for [ElevenLabs](https://elevenlabs.io/) as text-to-speech to read a text with natural sounding voices. +## Prerequisites + +- You need an ElevenLabs account to use this integration. A free account suffices for basic usage. +- For custom voices or more quota you need a subscription. +- You need your API key from the ElevenLabs website. + +{% include integrations/config_flow.md %} + +For an overview of which languages can be used, check the [complete list of supported languages](https://elevenlabs.io/languages). + +For a description of which voices are available for use, check your VoiceLab voices. + +To see the available models and their benefits, check the [models documentation](https://elevenlabs.io/docs/speech-synthesis/models). + +## Action speak + +The `tts.speak` action is the modern way to use TTS. Add the `speak` action, select the entity for your ElevenLabs TTS (it's named ElevenLabs by default), select the media player entity or group to send the TTS audio to, and enter the message to speak. + +For more options about `speak`, see the Speak section on the main [TTS](/integrations/tts/#service-speak) building block page. + +In YAML, your action will look like this: + +```yaml +action: tts.speak +target: + entity_id: tts.elevenlabs +data: + media_player_entity_id: media_player.giant_tv + message: Hello, can you hear me now? +``` + +For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/). diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index 54315bea0b7..30b90d7549d 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -11,7 +11,6 @@ ha_config_flow: true ha_codeowners: - '@bdraco' - '@cgarwood' - - '@dgomes' - '@joostlek' - '@catsmanac' ha_platforms: diff --git a/source/_integrations/event.mqtt.markdown b/source/_integrations/event.mqtt.markdown index 645264b8a03..29c73730c87 100644 --- a/source/_integrations/event.mqtt.markdown +++ b/source/_integrations/event.mqtt.markdown @@ -87,6 +87,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/fan.mqtt.markdown b/source/_integrations/fan.mqtt.markdown index 4a56e0d507a..afe35bebd41 100644 --- a/source/_integrations/fan.mqtt.markdown +++ b/source/_integrations/fan.mqtt.markdown @@ -102,6 +102,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/feedreader.markdown b/source/_integrations/feedreader.markdown index f4f66fd6981..784a0d823e8 100644 --- a/source/_integrations/feedreader.markdown +++ b/source/_integrations/feedreader.markdown @@ -14,6 +14,8 @@ ha_integration_type: integration related: - docs: /docs/configuration/ title: Configuration file +ha_codeowners: + - '@mib1185' --- Add an RSS/Atom feed reader that polls feeds every hour and sends new entries into the event bus. diff --git a/source/_integrations/filter.markdown b/source/_integrations/filter.markdown index 49b50b28a56..fc3af0bc185 100644 --- a/source/_integrations/filter.markdown +++ b/source/_integrations/filter.markdown @@ -2,6 +2,7 @@ title: Filter description: Instructions on how to integrate Data Filter Sensors into Home Assistant. ha_category: + - Helper - Sensor - Utility ha_release: 0.65 @@ -12,7 +13,7 @@ ha_codeowners: ha_domain: filter ha_platforms: - sensor -ha_integration_type: integration +ha_integration_type: helper related: - docs: /docs/configuration/ title: Configuration file diff --git a/source/_integrations/flexom.markdown b/source/_integrations/flexom.markdown index ce7e03c7089..54f4abe1177 100644 --- a/source/_integrations/flexom.markdown +++ b/source/_integrations/flexom.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/foscam.markdown b/source/_integrations/foscam.markdown index a3cb4dbf741..00a7c6911a7 100644 --- a/source/_integrations/foscam.markdown +++ b/source/_integrations/foscam.markdown @@ -11,6 +11,7 @@ ha_domain: foscam ha_config_flow: true ha_platforms: - camera + - switch ha_integration_type: integration --- diff --git a/source/_integrations/geniushub.markdown b/source/_integrations/geniushub.markdown index 829d67da940..9664ac157a6 100644 --- a/source/_integrations/geniushub.markdown +++ b/source/_integrations/geniushub.markdown @@ -19,6 +19,7 @@ ha_platforms: - switch - water_heater ha_integration_type: integration +ha_config_flow: true --- The `geniushub` integration links Home Assistant with your Genius Hub CH/DHW system, including its zones, devices, and issues. diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown index 18770dce99a..7142b044a2f 100644 --- a/source/_integrations/group.markdown +++ b/source/_integrations/group.markdown @@ -24,6 +24,7 @@ ha_domain: group ha_config_flow: true ha_platforms: - binary_sensor + - button - cover - event - fan diff --git a/source/_integrations/hexaom.markdown b/source/_integrations/hexaom.markdown index 57512f7ea0a..03973151a48 100644 --- a/source/_integrations/hexaom.markdown +++ b/source/_integrations/hexaom.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/hi_kumo.markdown b/source/_integrations/hi_kumo.markdown index 73763b7ad81..61f5bec0c58 100644 --- a/source/_integrations/hi_kumo.markdown +++ b/source/_integrations/hi_kumo.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown index 7995cdc2867..6cb544d377a 100644 --- a/source/_integrations/history_stats.markdown +++ b/source/_integrations/history_stats.markdown @@ -1,7 +1,8 @@ --- -title: History stats +title: History Stats description: Instructions about how to integrate historical statistics into Home Assistant. ha_category: + - Helper - Sensor - Utility ha_iot_class: Local Polling @@ -11,7 +12,7 @@ ha_domain: history_stats ha_config_flow: true ha_platforms: - sensor -ha_integration_type: integration +ha_integration_type: helper related: - docs: /docs/configuration/ title: Configuration file @@ -19,7 +20,7 @@ related: The **History stats** {% term integration %} provides quick statistics about another integration or platforms, using data from the [`history`](/integrations/history/) integration. -It can track how long the {% term integration %} has been in a specific state, in a custom time period. +It can track how long an {% term entity %} has been in a specific state, in a custom time period. Examples of what you can track: diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown index 078bb6319e4..ad043a83901 100644 --- a/source/_integrations/humidifier.mqtt.markdown +++ b/source/_integrations/humidifier.mqtt.markdown @@ -120,6 +120,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/image.mqtt.markdown b/source/_integrations/image.mqtt.markdown index 366cb11e17d..2278cee09aa 100644 --- a/source/_integrations/image.mqtt.markdown +++ b/source/_integrations/image.mqtt.markdown @@ -98,6 +98,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/iotty.markdown b/source/_integrations/iotty.markdown index e88c219af81..821016c8d44 100644 --- a/source/_integrations/iotty.markdown +++ b/source/_integrations/iotty.markdown @@ -1,18 +1,17 @@ --- title: iotty -description: "Instructions on how to connect iotty Smart Devices to Home Assistant." -ha_release: "2024.8" -ha_category: +description: Instructions on how to connect iotty Smart Devices to Home Assistant. +ha_release: '2024.8' +ha_category: - Switch -ha_iot_class: "Cloud Polling" -ha_quality_scale: no score +ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@pburgio' ha_domain: iotty ha_platforms: - switch -ha_integration_type: hub +ha_integration_type: device --- The iotty {% term integration%} lets you integrate iotty devices into Home Assistant. The iotty family includes the smart switch for lights and gates, the smart shades switch for blinds and shutters, and the smart outlet. diff --git a/source/_integrations/israel_rail.markdown b/source/_integrations/israel_rail.markdown index 6bb9373b980..8455fbed0dc 100644 --- a/source/_integrations/israel_rail.markdown +++ b/source/_integrations/israel_rail.markdown @@ -1,5 +1,5 @@ --- -title: Israel Rail +title: Israel Railways description: Instructions on how to integrate timetable data for traveling in Israel rail within Home Assistant. ha_category: - Transport diff --git a/source/_integrations/jewish_calendar.markdown b/source/_integrations/jewish_calendar.markdown index 18aae8cd405..4f6b66effb0 100644 --- a/source/_integrations/jewish_calendar.markdown +++ b/source/_integrations/jewish_calendar.markdown @@ -13,6 +13,7 @@ ha_platforms: - sensor ha_integration_type: integration ha_config_flow: true +ha_quality_scale: silver --- The Jewish Calendar (`jewish_calendar`) {% term integration %} displays various information related to the Jewish Calendar as various sensors. diff --git a/source/_integrations/knocki.markdown b/source/_integrations/knocki.markdown index cbf3518503f..4af8438eb5c 100644 --- a/source/_integrations/knocki.markdown +++ b/source/_integrations/knocki.markdown @@ -9,6 +9,7 @@ ha_iot_class: Cloud Push ha_codeowners: - '@joostlek' - '@jgatto1' + - '@JakeBosh' ha_domain: knocki ha_platforms: - event diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 4569eb6dd83..37266f726dc 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -796,20 +796,20 @@ The following values are valid for the `heat_cool_address` and the `heat_cool_st The following values are valid for the Home Assistant [Climate](/integrations/climate/) `hvac_mode` attribute. Supported values for your KNX thermostats can be specified via `controller_modes` configuration variable: -- `Off` (maps internally to `HVAC_MODE_OFF` within Home Assistant) -- `Auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant) -- `Heat` (maps internally to `HVAC_MODE_HEAT` within Home Assistant) -- `Cool` (maps internally to `HVAC_MODE_COOL` within Home Assistant) -- `Fan only` (maps internally to `HVAC_MODE_FAN_ONLY` within Home Assistant) -- `Dry` (maps internally to `HVAC_MODE_DRY` within Home Assistant) +- `off` (maps internally to `HVAC_MODE_OFF` within Home Assistant) +- `auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant) +- `heat` (maps internally to `HVAC_MODE_HEAT` within Home Assistant) +- `cool` (maps internally to `HVAC_MODE_COOL` within Home Assistant) +- `fan_only` (maps internally to `HVAC_MODE_FAN_ONLY` within Home Assistant) +- `dehumidification` (maps internally to `HVAC_MODE_DRY` within Home Assistant) The following presets are valid for the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute. Supported values for your KNX thermostats can be specified via `operation_modes` configuration variable: -- `Auto` (maps to `none` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `Comfort` (maps to `comfort` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `Standby` (maps to `away` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `Night` (maps to `sleep` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `Frost Protection` (maps to `eco` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `auto` (maps to `none` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `comfort` (maps to `comfort` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `standby` (maps to `away` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `economy` (maps to `sleep` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `building_protection` (maps to `eco` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) {% configuration %} name: @@ -866,7 +866,7 @@ command_value_state_address: required: false type: [string, list] operation_mode_address: - description: KNX address for setting operation mode (Frost protection/night/comfort). *DPT 20.102* + description: KNX address for setting operation mode (auto / building protection / economy / standby / comfort). *DPT 20.102* required: false type: [string, list] operation_mode_state_address: @@ -902,7 +902,7 @@ operation_mode_frost_protection_address: required: false type: [string, list] operation_mode_night_address: - description: KNX address for switching on/off night mode. *DPT 1* + description: KNX address for switching on/off economy mode. *DPT 1* required: false type: [string, list] operation_mode_comfort_address: diff --git a/source/_integrations/lawn_mower.mqtt.markdown b/source/_integrations/lawn_mower.mqtt.markdown index 61766ae84fb..e006db58e6f 100644 --- a/source/_integrations/lawn_mower.mqtt.markdown +++ b/source/_integrations/lawn_mower.mqtt.markdown @@ -96,6 +96,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/lifx.markdown b/source/_integrations/lifx.markdown index 60923d268d7..eee75ca6755 100644 --- a/source/_integrations/lifx.markdown +++ b/source/_integrations/lifx.markdown @@ -18,6 +18,8 @@ ha_platforms: - sensor ha_integration_type: integration ha_dhcp: true +ha_codeowners: + - '@Djelibeybi' --- The LIFX integration automatically discovers [LIFX](https://www.lifx.com) lights on each network that is enabled in Home Assistant's [network configuration](/integrations/network). Suppose any of your LIFX lights are not automatically discovered. In that case, you can add them manually using the user interface by following the configuration steps below for each light you want to add: diff --git a/source/_integrations/light.mqtt.markdown b/source/_integrations/light.mqtt.markdown index 9aee3d634ca..e9179af08c9 100644 --- a/source/_integrations/light.mqtt.markdown +++ b/source/_integrations/light.mqtt.markdown @@ -164,6 +164,10 @@ device: description: 'The model of the device.' required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: 'The name of the device.' required: false diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index 6dece6193de..1452b1d4d3b 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -108,6 +108,10 @@ device: description: 'The model of the device.' required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: 'The name of the device.' required: false diff --git a/source/_integrations/madvr.markdown b/source/_integrations/madvr.markdown index 4d87a051217..2dc814a763b 100644 --- a/source/_integrations/madvr.markdown +++ b/source/_integrations/madvr.markdown @@ -2,8 +2,8 @@ title: madVR Envy description: Instructions on how to integrate a madVR Envy into Home Assistant. ha_category: - - Remote - Binary Sensor + - Remote - Sensor ha_release: '2024.8' ha_iot_class: Local Push diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index 02a87a28102..e90b1e3b70a 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -11,10 +11,8 @@ ha_domain: mastodon ha_iot_class: Cloud Push ha_platforms: - notify -ha_integration_type: integration -related: - - docs: /docs/configuration/ - title: Configuration file +ha_integration_type: service +ha_config_flow: true --- The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver notifications from Home Assistant. diff --git a/source/_integrations/matter.markdown b/source/_integrations/matter.markdown index 0952ab1eefb..74a06d0807c 100644 --- a/source/_integrations/matter.markdown +++ b/source/_integrations/matter.markdown @@ -12,6 +12,7 @@ ha_category: - Select - Sensor - Switch + - Update ha_release: '2022.12' ha_iot_class: Local Push ha_config_flow: true @@ -188,8 +189,8 @@ This guide describes how to add a new device. This will use the Bluetooth connec - This starts the commissioning process which may take a few minutes. - If you're adding a test board (e.g. ESP32 running the example apps) and commissioning fails, you might need to take some actions in the Google Developer console, have a look at any instructions for your test device. - Once the process is complete, select **Done**. -5. To view the device details, go to {% my integrations title="**Settings** > **Devices & services**" %} and select the **Matter** integration. -6. By default, the device gets a factory specified name. To rename it, on the device page, select the pencil to edit and rename the device. +5. To view the device details, go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the **Matter** integration. +6. By default, the device gets a factory specified name. To rename it, on the device page, select the pencil {% icon "mdi:edit" %} to edit and rename the device. ![image](/images/integrations/matter/matter-android-rename.png) 7. Your device is now ready to use. diff --git a/source/_integrations/mealie.markdown b/source/_integrations/mealie.markdown index 9189b0cbfb9..e00b3dd4dc7 100644 --- a/source/_integrations/mealie.markdown +++ b/source/_integrations/mealie.markdown @@ -13,12 +13,12 @@ ha_codeowners: ha_domain: mealie ha_platforms: - calendar + - diagnostics - sensor - todo ha_integration_type: service --- - The Mealie integration will fetch data from your [Mealie instance](https://mealie.io/). ## Prerequisites @@ -145,7 +145,7 @@ template: unique_id: mealie_dinner_today state: > {% for meal in result.mealplan if meal.entry_type == "dinner" -%} - {{ meal.recipe['name'] if meal.recipe is not none else meal.title }} + {{ meal.recipe['name'] if meal.recipe is not none else meal.title -}} {{ ", " if not loop.last }} {%- endfor %} ``` diff --git a/source/_integrations/mini_connected.markdown b/source/_integrations/mini_connected.markdown index 7938fac86de..c4c2b11f316 100644 --- a/source/_integrations/mini_connected.markdown +++ b/source/_integrations/mini_connected.markdown @@ -1,6 +1,6 @@ --- title: MINI Connected -description: Get the status and control your MINI vehicle, using the BMW Connected Drive integration +description: Connect and control your MINI Connected devices using the BMW Connected Drive integration ha_category: - Binary sensor - Button @@ -13,15 +13,14 @@ ha_category: - Sensor - Switch ha_release: 2024.8 -ha_iot_class: Cloud Polling -ha_config_flow: true ha_integration_type: virtual ha_supporting_domain: bmw_connected_drive ha_supporting_integration: BMW Connected Drive +ha_domain: mini_connected ha_codeowners: - '@gerard33' - '@rikroe' -ha_domain: mini_connected +ha_config_flow: true ha_platforms: - binary_sensor - button @@ -33,6 +32,7 @@ ha_platforms: - select - sensor - switch +ha_iot_class: Cloud Polling --- {% include integrations/supported_brand.md %} diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 0926cba9c02..7e6cc4d9416 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -5,8 +5,6 @@ ha_category: - Hub ha_release: pre 0.7 ha_iot_class: Local Polling -ha_codeowners: - - '@janiversen' ha_domain: modbus ha_platforms: - binary_sensor @@ -16,7 +14,7 @@ ha_platforms: - light - sensor - switch -ha_quality_scale: platinum +ha_quality_scale: silver ha_integration_type: integration related: - docs: /docs/configuration/ diff --git a/source/_integrations/mpd.markdown b/source/_integrations/mpd.markdown index 7930fd38409..fb6aa21850b 100644 --- a/source/_integrations/mpd.markdown +++ b/source/_integrations/mpd.markdown @@ -12,6 +12,7 @@ ha_integration_type: integration related: - docs: /docs/configuration/ title: Configuration file +ha_config_flow: true --- The Music Player Daemon {% term integration %} allows you to control a [Music Player Daemon](https://www.musicpd.org/) from Home Assistant. Unfortunately, it does not allow you to manipulate the playlist (add or delete songs) or add transitions between the songs. diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index a1ff21b8f45..139e0e52bb1 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -584,6 +584,7 @@ support_url: 'name': 'name', 'mf': 'manufacturer', 'mdl': 'model', + 'mdl_id': 'model_id', 'hw': 'hw_version', 'sw': 'sw_version', 'sa': 'suggested_area', @@ -820,7 +821,8 @@ Setting up a sensor with multiple measurement values requires multiple consecuti ], "name":"Bedroom", "manufacturer": "Example sensors Ltd.", - "model": "K9", + "model": "Example Sensor", + "model_id": "K9", "serial_number": "12AE3010545", "hw_version": "1.01a", "sw_version": "2024.1.0", @@ -955,6 +957,7 @@ Setting up a [light that takes JSON payloads](/integrations/light.mqtt/#json-sch "name": "Kitchen", "mf": "Bla electronics", "mdl": "xya", + "mdl_id": "ABC123", "sw": "1.0", "sn": "ea334450945afc", "hw": "1.0rev2", @@ -1175,7 +1178,8 @@ data: "device": { "identifiers": "Acurite-986-1R-51778", "name": "Bathroom", - "model": "Acurite-986", + "model": "Acurite", + "model_id": "986", "manufacturer": "rtl_433" } } ``` diff --git a/source/_integrations/nexity.markdown b/source/_integrations/nexity.markdown index 6f547c76eab..58e47fe160d 100644 --- a/source/_integrations/nexity.markdown +++ b/source/_integrations/nexity.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/nibe_heatpump.markdown b/source/_integrations/nibe_heatpump.markdown index 82c545f55d1..78adaee39c8 100644 --- a/source/_integrations/nibe_heatpump.markdown +++ b/source/_integrations/nibe_heatpump.markdown @@ -107,4 +107,4 @@ If your system is equipped with a MODBUS40 accessory, this can be used to contro {% note %} Support for RCU-based communication is currently untested. -{% endnote %} \ No newline at end of file +{% endnote %} diff --git a/source/_integrations/notify.mqtt.markdown b/source/_integrations/notify.mqtt.markdown index 2f02873ff8a..2d7dca5ffb6 100644 --- a/source/_integrations/notify.mqtt.markdown +++ b/source/_integrations/notify.mqtt.markdown @@ -93,6 +93,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/number.mqtt.markdown b/source/_integrations/number.mqtt.markdown index e4301d3fac7..68d44cdbbb7 100644 --- a/source/_integrations/number.mqtt.markdown +++ b/source/_integrations/number.mqtt.markdown @@ -87,6 +87,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/omnilogic.markdown b/source/_integrations/omnilogic.markdown index 54e565f7310..b059a7a8709 100644 --- a/source/_integrations/omnilogic.markdown +++ b/source/_integrations/omnilogic.markdown @@ -7,10 +7,6 @@ ha_category: ha_release: 0.116 ha_iot_class: Cloud Polling ha_config_flow: true -ha_codeowners: - - '@oliver84' - - '@djtimca' - - '@gentoosu' ha_domain: omnilogic ha_platforms: - sensor diff --git a/source/_integrations/onkyo.markdown b/source/_integrations/onkyo.markdown index 9a1c01548ea..0898ebbcc54 100644 --- a/source/_integrations/onkyo.markdown +++ b/source/_integrations/onkyo.markdown @@ -52,7 +52,7 @@ max_volume: default: 100 type: integer receiver_max_volume: - description: The maximum volume of the receiver. For older Onkyo receivers this was 80, newer Onkyo receivers use 200. + description: The number of steps it takes for the receiver to go from the lowest to the highest possible volume. Possible values are 50, 80, 100, 200. For older Onkyo receivers, this typically is 80; newer Onkyo receivers use 200. required: false default: 80 type: integer @@ -91,22 +91,6 @@ List of source names: - `xm` - `sirius` -If your source is not listed above, and you want to figure out how to format that source name so you can map its entry, you can use the `onkyo-eiscp` Python module to discover the exact naming needed. First, change your receiver's source to the one that you need to define, and then run: - -```bash -onkyo --host 192.168.0.100 source=query -``` - -If this returns multiple, comma-separated values, use the first one. For example, if `dvd,bd,dvd` is returned, use `dvd`. - -To find your receivers max volume use the onkyo-eiscp Python module set the receiver to its maximum volume -(don't do this whilst playing something!) and run: - -```bash -onkyo --host 192.168.0.100 volume=query -unknown-model: master-volume = 191 -``` - ### Action `onkyo_select_hdmi_output` Changes HDMI output of your receiver diff --git a/source/_integrations/opower.markdown b/source/_integrations/opower.markdown index 2a6f06b8f3b..6979a117aee 100644 --- a/source/_integrations/opower.markdown +++ b/source/_integrations/opower.markdown @@ -75,7 +75,9 @@ Alternatively, you can create a new TOTP secret for your account and use the "no ### Exelon subsidiaries -When using Opower with any of the Exelon subsidiaries, such as BGE, ComEd, PECO, Pepco, etc., you need to actively disable two-factor authentication. Log onto the website, select **Don't use 2FA** and **Don't ask me again**. If you have already enabled 2FA, disable it. +When using Opower with any of the Exelon subsidiaries, such as BGE, ComEd, PECO, Pepco, etc., you need to actively disable two-factor authentication. +Before proceeding, make sure you understand the security implications of disabling 2FA. +Log onto the website, select **Don't use 2FA** and **Don't ask me again**. If you have already enabled 2FA, disable it. {% include integrations/config_flow.md %} diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown index 1d487066468..4d1fcf33855 100644 --- a/source/_integrations/overkiz.markdown +++ b/source/_integrations/overkiz.markdown @@ -26,6 +26,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_domain: overkiz ha_dhcp: true ha_zeroconf: true diff --git a/source/_integrations/person.markdown b/source/_integrations/person.markdown index f7b350b1810..d773e7a2923 100644 --- a/source/_integrations/person.markdown +++ b/source/_integrations/person.markdown @@ -32,6 +32,36 @@ In short, when you're at home, your position is determined first by stationary t You can manage persons {% my people title="via the UI from the person page inside the configuration panel" %} or via `YAML` in your {% term "`configuration.yaml`" %} file. +## Adding a person to Home Assistant + +If you have administrator rights, you can add other persons to Home Assistant and create them a user account. Depending on the rights you give them, they can then use Home Assistant on their own devices, can have their own dashboards, and be used in automations. + +1. Go to {% my people title="**Settings** > **People**" %} and select **Add person**. +2. Enter their **Name**. +3. Add an image if you like. +4. Under **Allow login**, select if they should be able to log in. + - If they cannot log in, they do not get a user account, and they cannot do much with Home Assistant. + - They cannot have their own dashboard, for example. + - But they can still be used for device tracking and show up on a map and be used in automations. +5. If they are able to log in, fill in the user information. + - Check if the user name is correct. A suggestion is made based on the person name. But they do not have to be identical. + - The username is required to log in. + - The person name is the name displayed in the UI. + - Enter a password and store it in a safe location. + - Define if they should have **Local access only**. + - If this is enabled, they won't have access to Home Assistant when they are outside your network, for example from their phone. + - Define if they should have **Administrator** rights. + - Select **Create**. +6. If you have already set up devices for [presence detection](/getting-started/presence-detection/), **select the devices that belong to this person**. + +### Customizing the picture for a person + +You can easily upload a picture in the frontend. Simply click on a person, select or drop an image in the input field, and then crop it. + + + +See the documentation about [hosting files](/integrations/http/#hosting-files) for more information about the `www` folder. + ## Configuring the `person` integration via the Home Assistant configuration panel This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually: @@ -90,19 +120,3 @@ person: ``` If you change the YAML, you can reload it by calling the `person.reload` action. - -### Customizing the picture for a person - -You can easily upload a picture in the frontend. Simply click on a person, select or drop an image in the input field, and then crop it. - - - -You can also do this using YAML. By following the instructions on the [customizing entities](/docs/configuration/customizing-devices#entity_picture) page, you can customize the picture used for a person entity in the `customize:` section of your configuration. For example: - -```yaml -customize: - person.ada: - entity_picture: "/local/ada.jpg" -``` - -See the documentation about [hosting files](/integrations/http/#hosting-files) for more information about the `www` folder. diff --git a/source/_integrations/pinecil.markdown b/source/_integrations/pinecil.markdown index 140fb2f89f6..dfe65391131 100644 --- a/source/_integrations/pinecil.markdown +++ b/source/_integrations/pinecil.markdown @@ -1,19 +1,20 @@ --- title: Pinecil -description: Instructions on how to integrate Pinecil V2 devices in Home Assistant with the IronOS integration. +description: Connect and control your Pinecil devices using the IronOS integration ha_category: - Sensor -ha_iot_class: Local Polling ha_release: 2024.8 -ha_config_flow: true -ha_codeowners: - - '@tr4nt0r' ha_domain: pinecil ha_integration_type: virtual ha_supporting_domain: iron_os ha_supporting_integration: IronOS +ha_codeowners: + - '@tr4nt0r' +ha_config_flow: true ha_platforms: + - number - sensor +ha_iot_class: Local Polling --- {% include integrations/supported_brand.md %} diff --git a/source/_integrations/rachio.markdown b/source/_integrations/rachio.markdown index b3803539fd2..fdda582a3d0 100644 --- a/source/_integrations/rachio.markdown +++ b/source/_integrations/rachio.markdown @@ -17,7 +17,7 @@ ha_homekit: true ha_dhcp: true ha_platforms: - binary_sensor - - Calendar + - calendar - switch ha_zeroconf: true ha_integration_type: integration diff --git a/source/_integrations/rexel.markdown b/source/_integrations/rexel.markdown index 0bad9d07bc7..019c9c40a17 100644 --- a/source/_integrations/rexel.markdown +++ b/source/_integrations/rexel.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/scene.mqtt.markdown b/source/_integrations/scene.mqtt.markdown index f7ec95cbeac..7ddd58d84c5 100644 --- a/source/_integrations/scene.mqtt.markdown +++ b/source/_integrations/scene.mqtt.markdown @@ -91,6 +91,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/select.mqtt.markdown b/source/_integrations/select.mqtt.markdown index dcd782ccb38..03c03470fa3 100644 --- a/source/_integrations/select.mqtt.markdown +++ b/source/_integrations/select.mqtt.markdown @@ -99,6 +99,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index ebc059543e4..e3e517d5a0f 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -88,6 +88,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/simplefin.markdown b/source/_integrations/simplefin.markdown index 1bbf054d81c..01df36cce23 100644 --- a/source/_integrations/simplefin.markdown +++ b/source/_integrations/simplefin.markdown @@ -1,19 +1,18 @@ --- -title: Simplefin +title: SimpleFin description: Instructions on the SimpleFIN Integration for personal finance. ha_category: - Sensor ha_iot_class: Cloud Polling ha_release: 2024.8 ha_codeowners: - - '@jeeftor' - '@scottg489' + - '@jeeftor' ha_domain: simplefin ha_config_flow: true ha_platforms: - sensor -ha_dhcp: false -ha_integration_type: integration +ha_integration_type: service --- [SimpleFIN](http://simplefin.org) allows users to share read-only financial data. This is a paid service although it is quite affordable ($1.50 a month). diff --git a/source/_integrations/simu.markdown b/source/_integrations/simu.markdown index 532af038646..d5467df41ba 100644 --- a/source/_integrations/simu.markdown +++ b/source/_integrations/simu.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown index efc26dc6f75..c3dcfc57d42 100644 --- a/source/_integrations/siren.mqtt.markdown +++ b/source/_integrations/siren.mqtt.markdown @@ -110,6 +110,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/somfy.markdown b/source/_integrations/somfy.markdown index f76a5fa17a2..9fdb2a342d4 100644 --- a/source/_integrations/somfy.markdown +++ b/source/_integrations/somfy.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index a597e89108b..b86a2ff9801 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -423,4 +423,4 @@ The Sonos speakers will attempt to connect back to Home Assistant to deliver cha sonos: media_player: advertise_addr: 192.0.2.1 -``` \ No newline at end of file +``` diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown index 1aade14aeff..c3619c78b2d 100644 --- a/source/_integrations/switch.mqtt.markdown +++ b/source/_integrations/switch.mqtt.markdown @@ -101,6 +101,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/tag.mqtt.markdown b/source/_integrations/tag.mqtt.markdown index 93e6b0a442a..352ad0d3fed 100644 --- a/source/_integrations/tag.mqtt.markdown +++ b/source/_integrations/tag.mqtt.markdown @@ -53,6 +53,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/technove.markdown b/source/_integrations/technove.markdown index 1516bdfaaf5..140bdc3cbfd 100644 --- a/source/_integrations/technove.markdown +++ b/source/_integrations/technove.markdown @@ -12,10 +12,12 @@ ha_codeowners: - '@Moustachauve' ha_platforms: - binary_sensor + - diagnostics - number - sensor - switch ha_integration_type: device +ha_quality_scale: platinum --- The TechnoVE integration provides connectivity with TechnoVE Smart Charging Station through the station local API. diff --git a/source/_integrations/tesla_fleet.markdown b/source/_integrations/tesla_fleet.markdown index b6e72799c8b..90026d71835 100644 --- a/source/_integrations/tesla_fleet.markdown +++ b/source/_integrations/tesla_fleet.markdown @@ -34,7 +34,7 @@ When connecting your Tesla account to Home Assistant, you **must** select the `V ## Rate limits -Tesla restricts open-source integrations to the ["Discovery tier"](https://developer.tesla.com/docs/fleet-api#membership-levels) which only allows for 200 vehicle data requests per day. The integration will initially poll every 90 seconds, making vehicle data requests only when the vehicle is awake, and then dynamically slow down polling based on how many vehicle data requests have been made in the last 24 hours. +Tesla restricts open-source integrations to the ["Discovery" plan](https://developer.tesla.com/docs/fleet-api/getting-started/subscription-plans) which only allows for 200 vehicle data requests per day. The integration will initially poll every 90 seconds, making vehicle data requests only when the vehicle is awake, and then dynamically slow down polling based on how many vehicle data requests have been made in the last 24 hours. ## Entities diff --git a/source/_integrations/tessie.markdown b/source/_integrations/tessie.markdown index 05956de91dd..ef96ef37130 100644 --- a/source/_integrations/tessie.markdown +++ b/source/_integrations/tessie.markdown @@ -25,6 +25,7 @@ ha_platforms: - climate - cover - device_tracker + - diagnostics - lock - media_player - number @@ -33,13 +34,14 @@ ha_platforms: - switch - update ha_integration_type: integration +ha_quality_scale: platinum --- -The Tessie integration exposes various commands and sensors from the Tesla vehicles connected to your [Tessie](https://my.tessie.com/) account. +The Tessie integration exposes various commands and sensors from the Tesla vehicles and energy products connected to your [Tessie](https://tessie.com/) subscription. ## Prerequisites -You must have a [Tessie](https://my.tessie.com/) account, generate a [Tessie Access Token](https://my.tessie.com/settings/api) and grant Tessie access to your Tesla vehicle by generating a [Tesla Virtual Key](https://www.tesla.com/_ak/tessie.com). +You must have an active [Tessie](https://my.tessie.com/) subscription, generate a [Tessie Access Token](https://my.tessie.com/settings/api) and grant Tessie access to your Tesla vehicle by generating a [Tesla Virtual Key](https://www.tesla.com/_ak/tessie.com). {% include integrations/config_flow.md %} diff --git a/source/_integrations/text.mqtt.markdown b/source/_integrations/text.mqtt.markdown index c8b36f76dff..c94f87da8cc 100644 --- a/source/_integrations/text.mqtt.markdown +++ b/source/_integrations/text.mqtt.markdown @@ -95,6 +95,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/ubiwizz.markdown b/source/_integrations/ubiwizz.markdown index f5e618aee61..d5802580c0d 100644 --- a/source/_integrations/ubiwizz.markdown +++ b/source/_integrations/ubiwizz.markdown @@ -28,6 +28,7 @@ ha_codeowners: - '@tetienne' - '@nyroDev' - '@tronix117' + - '@alexfp14' ha_config_flow: true ha_platforms: - alarm_control_panel diff --git a/source/_integrations/update.mqtt.markdown b/source/_integrations/update.mqtt.markdown index 63167874b2a..522f5c9ed7b 100644 --- a/source/_integrations/update.mqtt.markdown +++ b/source/_integrations/update.mqtt.markdown @@ -92,6 +92,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index 6bf2044f6bf..8351b02b4f4 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -84,6 +84,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/valve.mqtt.markdown b/source/_integrations/valve.mqtt.markdown index 379c0d3e88e..909f7ff7b5b 100644 --- a/source/_integrations/valve.mqtt.markdown +++ b/source/_integrations/valve.mqtt.markdown @@ -130,6 +130,10 @@ device: description: The model of the device. required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: The name of the device. required: false diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index caf31c200ae..7829114cf1a 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -183,4 +183,4 @@ Invalid data from Vicare server: { } ``` -Usually, this resolves itself after a while, but if this state persists, try to power cycle your gateway. +Usually, this resolves itself after a while, but if this state persists, try to power cycle your gateway. diff --git a/source/_integrations/water_heater.mqtt.markdown b/source/_integrations/water_heater.mqtt.markdown index 2ca78692316..c0d7ef41646 100644 --- a/source/_integrations/water_heater.mqtt.markdown +++ b/source/_integrations/water_heater.mqtt.markdown @@ -96,6 +96,10 @@ device: description: 'The model of the device.' required: false type: string + model_id: + description: The model identifier of the device. + required: false + type: string name: description: 'The name of the device.' required: false diff --git a/source/_integrations/watttime.markdown b/source/_integrations/watttime.markdown index 147a31e5d20..630f0242933 100644 --- a/source/_integrations/watttime.markdown +++ b/source/_integrations/watttime.markdown @@ -3,6 +3,8 @@ title: WattTime description: Instructions on how to set up the WattTime integration within Home Assistant. ha_category: - Sensor + - Energy + - Environment ha_release: '2021.10' ha_iot_class: Cloud Polling ha_domain: watttime diff --git a/source/_integrations/yale_home.markdown b/source/_integrations/yale_home.markdown index 69ea687dd91..9981d222a44 100644 --- a/source/_integrations/yale_home.markdown +++ b/source/_integrations/yale_home.markdown @@ -6,6 +6,7 @@ ha_category: - Button - Camera - Doorbell + - Event - Lock - Sensor ha_release: 0.64 @@ -21,6 +22,7 @@ ha_platforms: - button - camera - diagnostics + - event - lock - sensor ha_iot_class: Cloud Push diff --git a/source/_integrations/zone.markdown b/source/_integrations/zone.markdown index 42414203291..64d11818385 100644 --- a/source/_integrations/zone.markdown +++ b/source/_integrations/zone.markdown @@ -10,17 +10,58 @@ ha_codeowners: - '@home-assistant/core' ha_domain: zone ha_integration_type: system +related: + - docs: /docs/configuration/basic/ + title: Editing basic settings + - docs: /docs/organizing/areas/ + title: Areas + - docs: /getting-started/onboarding/ + title: Onboarding + - docs: /getting-started/presence-detection/ + title: Presence detection --- -Zones allow you to specify certain regions on earth (for now). When a device tracker sees a device to be within a zone, the state will take the name from the zone. Zones can also be used as a [trigger](/docs/automation/trigger#zone-trigger) or [condition](/docs/scripts/conditions/#zone-condition) inside automation setups. +Zones allow you to specify certain regions on a map. They enable [zone presence-detection](/getting-started/presence-detection/). This information can be used in automations. For example, to start the vacuum after you left home or start the heating at home when you leave the office. -Zones can be added and managed through the user interface at {% my zones title="**Settings** > **Areas, labels & zones**" %}. +Create a zone for each area you want to automate on. For example, work, school, and home. Different technologies can be used to detect presence in these zones. A common method is app-based detection using a mobile phone. -![Screenshot of the UI for adding or editing a zone](/images/integrations/zone/zone_edit_ui.png) +

+ Screenshot of a map dashboard in Home Assistant showing a school, work and home zone and two people. + Map dashboard showing a school, work, and a home zone and the location of two people. +

-You can add a zone in the user interface by specifying the GPS coordinates or dragging the icon on the map. You can adjust the zone radius (except for the Home zone) by changing the size of the zone circle. +## About the home zone -Zones can also be configured via {% term "`configuration.yaml`" %}: +During the [onboarding process](/getting-started/onboarding/), Home Assistant asked for your home location. You either entered this manually or asked Home Assistant to detect it automatically. This location was used to create the home zone with a 100 m radius. The home zone is a special, pre-defined zone with a few characteristics that set it apart from other zones. + +- The name of this zone is defined by the name of your Home Assistant installation name (which defaults to "Home"). +- The home zone cannot be deleted and is designated with the home icon in the zone configuration page. +- The home zone's location is used by integrations that are location-based. For example, the [Sun integration](/integrations/sun/), which uses it to calculate the position of the sun relative to your home. +- During onboarding, Home Assistant used the location to define settings such as the unit system and time zone. If you change the location later, unit system and time zone will not be changed automatically anymore. +- Devices that are in the home zone will not appear on the map in the Home Assistant UI. For example, if you are using your phone for presence detection, you won't see your phone on the Map dashboard while you are at home. + +## Adding a new zone or editing zones + +1. Go to {% my zones title="**Settings** > **Areas, labels & zones**" %}. +2. To edit an existing zone, select the edit {% icon "mdi:edit" %} button. To add a new zone, select **Add zone**. +3. Give your zone a name, for example `Nina's office`, or `school`. + - The home zone always has the name of your Home Assistant installation. To change the name of the home, go to {% my general title="**Settings** > **System** > **General**" %}. +4. Pick any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/) and prefix the name with `mdi:`. + - For example, `mdi:school`, `mdi:briefcase`, `mdi:home`, `mdi:cart`, or `mdi:castle`. + - For the home zone, the icon cannot be changed. +5. To change location or radius, under **Edit location**, select edit. + - To adjust the location, specify the GPS coordinates or drag the icon on the map + - To change the zone radius, change the size of the zone circle or edit the **Radius** in meters. + + ![Screenshot of the UI for adding or editing a zone](/images/integrations/zone/zone_edit_ui.png) + +6. If you want to hide the zone from the frontend and not use the zone for device tracker state, enable **Passive**. You can still use it in automations. + - For the home zone, **Passive** is not available. +7. To save your changes, select **Update**. + +## Editing zones in YAML + +Zones can also be configured via {% term "`configuration.yaml`" %}. If you define these settings in YAML, they cannot be edited in the UI. They will appear greyed out. ```yaml # Example configuration.yaml entry @@ -74,18 +115,6 @@ passive: To find the latitude/longitude of a certain place you can use [Google Maps](https://www.google.com/maps/) or [Bing Maps](https://www.bing.com/maps). Just right click and copy the coordinates from there (Bing) or click on the "What is here?" (Google) -## Home zone - -If no configuration is given, the `zone` integration will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration in `configuration.yaml` (see above) and name it **'Home'**. Overriding the Home zone via the UI is not supported. - -{% note %} -Devices that are in the zone **'Home'** will not appear on the map in the Home Assistant UI. To apply the changes to the **'Home'** `zone`, you must restart Home Assistant. -{% endnote %} - -## Icons - -It is recommended that you pick an icon to use for your zone. Pick any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/) and prefix the name with `mdi:`. For example `mdi:school`, `mdi:briefcase`, `mdi:home`, `mdi:cart`, or `mdi:castle`. - ## State The state of a zone is a number, which represents the number of diff --git a/source/_posts/2024-08-01-streamlining-the-home-assistant-yellow-lineup.markdown b/source/_posts/2024-08-01-streamlining-the-home-assistant-yellow-lineup.markdown new file mode 100644 index 00000000000..34d5e58bb68 --- /dev/null +++ b/source/_posts/2024-08-01-streamlining-the-home-assistant-yellow-lineup.markdown @@ -0,0 +1,117 @@ +--- +layout: post +title: "Streamlining the Home Assistant Yellow lineup" +description: "Home Assistant Yellow continues to be our flagship product, and the line is getting a small tweak." +date: 2024-08-01 00:00:01 +date_formatted: "August 1, 2024" +author: Andy Gill +comments: true +categories: Announcements +og_image: /images/blog/2024-08-yellow-lineup/art.jpg +--- +

Home Assistant Yellow and packagingHome Assistant Yellow fully assembled with additional (and not included) NVMe storage and Z-Wave GPIO module

+ +**TL;DR:**  We will now only sell the Home Assistant Yellow as a kit, which requires the separate purchase of a CM4. Home Assistant Green is the best plug-and-play option for beginners. + +An important part of getting more people to use Home Assistant is providing great purpose-built hardware. It's our goal to provide hardware that makes it easier than ever to start with Home Assistant, along with compelling options for advanced users.  In 2022, we began shipping our [Home Assistant Yellow](/yellow/), and I'm happy to say that now in 2024, it remains our flagship hardware product.  We see a long life ahead for this expandable little powerhouse, and that's why we're streamlining our hardware lineup to make a bit more sense going forward. + +We will now only sell the Home Assistant Yellow as a kit and have stopped producing the Home Assistant Yellow Standard (our version that came preassembled with a CM4 and Home Assistant already installed). Rest assured, as the Home Assistant Yellow Standard's hardware is identical to our kits, it will continue to receive the same support and software updates. The kits will continue to be available with or without power-over-ethernet (PoE). + +It's not the biggest change, but we wanted our community to know - and if you want to see why we made the change, and how our [current hardware compares](#comparison), keep reading. + + + +## Background + +When we launched Home Assistant Yellow, we designed it with expandability in mind.  It includes an onboard Zigbee/Thread radio, M.2 for more robust storage, and USB ports to add more connectivity (like adding our future [Z-Wave device](/blog/2024/06/12/roadmap-2024h1/#next-priority-home-assistant-connect-hardware-for-z-wave)).  Most importantly, you can change the core specs of the device by swapping the Raspberry Pi Compute Module 4 (CM4).  This allows users to increase the RAM, add eMMC storage, or even add built-in Wi-Fi/Bluetooth. + +All this expandability is great, but we found many users wanted a more straightforward way to get started with Home Assistant. That's why we created the Home Assistant Yellow Standard variant, which included a CM4 with Home Assistant already installed onto the board - unlike our kits there was no assembly required. This meant you could immediately start using it after plugging in Ethernet and power. + +### Green meets Yellow + +Jump ahead to 2023, and in our quest to create an even more affordable starting point, we launched [Home Assistant Green](/green/). Not only does it cost less, it better fulfills the plug-and-play role the Home Assistant Yellow Standard used to occupy. From a timing perspective 2021 and 2022, were not the easiest time to source Raspberry Pi products, including the CM4. We learned some big lessons about the added supply chain complexities of this kind of product, and it influenced our thinking when designing Green. Ultimately, Home Assistant Green being a better beginner option led us to end production of the Standard. Though the Home Assistant Yellow Standard is now out of stock at major retailers, it will continue to receive support. + +## Comparison + +

Home Assistant Green and Yellow comparedHome Assistant Green and Yellow compared - as you can see they're about the same size

+So you've decided on getting some official Home Assistant hardware and don't know where to start, here's a little comparison to help you choose between the Green and Yellow. + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeaturesHome Assistant GreenHome Assistant Yellow Kit
Best forBeginners, plug-and-playAdvanced users, tinkerers, expandability
SetupEasy - plug in the two included cables, and you're up and runningRequires purchase of a CM4, basic assembly, and software installation
ConnectivityEthernet via included cableEthernet via included cable
Zigbee/Thread built-inNo

(Can be added with Home Assistant Connect ZBT-1)

Yes

(Onboard Zigbee 3.0 / Thread)

Expandability + Good +
    +
  • 2x USB ports
  • +
+
+ Best +
    +
  • 1x Compute module connector (RAM, eMMC, Wi-Fi/Bluetooth)
  • +
  • 1x NVMe slot
  • +
  • 2x USB ports
  • +
  • 10-pin GPIO
  • +
+
PowerIncluded power supply + Model dependent: +
    +
  • Kit: included power supply
  • +
  • Kit PoE: Power-over-Ethernet, no power supply
  • +
+
What else do they have in commonBoth are small, fanless/silent, have extremely low power draw, and solid performance, leading to a smooth Home Assistant experience. Plus, purchasing either supports the development of Home Assistant!
More informationLearn more about Home Assistant GreenLearn more about Home Assistant Yellow
+ +## Conclusion + +This small change helps us keep things simple while continuing to provide great hardware options for new and existing users. But as we always say, run Home Assistant on whatever hardware you have, whether that's our hardware or whatever you already have on hand. In the end, one of our main goals is to build a more sustainable smart home. diff --git a/source/_posts/2024-08-07-release-20248.markdown b/source/_posts/2024-08-07-release-20248.markdown new file mode 100644 index 00000000000..0ac661e536c --- /dev/null +++ b/source/_posts/2024-08-07-release-20248.markdown @@ -0,0 +1,954 @@ +--- +layout: post +title: "2024.8: Beautiful badges!" +description: "Beautiful new badges for your dashboards, control Home Assistant with a local AI using Ollama, update your Matter device, manage KNX via the UI, goodbye services, hello actions! And much more!" +date: 2024-08-07 00:00:00 +date_formatted: "August 7, 2024" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2024-08/social.jpg +--- + + + +Home Assistant 2024.8! 🎉 + +Warning! An awesome and huge release is coming your way this month! + +[11! new integrations](#new-integrations) and [7! integrations are now available via the UI](#now-available-to-set-up-from-the-ui); +We have many [noteworthy improvements to integrations](#noteworthy-improvements-to-existing-integrations) +and even more [noteworthy improvements to Home Assistant](#other-noteworthy-changes) itself. +And that... is just the tip of the iceberg! 🗻 + +I'm most excited about the new [badges for your dashboard](#new-badges-for-your-dashboard). +I mean, the old ones weren't the prettiest, but these new ones are definitely +gorgeous! Oh! And if you missed the last dashboard stream, I would highly recommend +watching the [recording](https://www.youtube.com/watch?v=9zmXLxQPr1o) of it, as +it is very insightful! + +This release also marks a significant milestone in the history of Home Assistant, +as we are [saying goodbye to **service calls**](#goodbye-service-calls-hello-actions-). +Services have been around since day one, but we are now moving to **actions**, +making things much easier to explain to people new to Home Assistant. + +Enjoy the release! 🎉 + +../Frenck + + + +- [Dashboards - Chapter 2](#dashboards---chapter-2) + - [New badges for your dashboard](#new-badges-for-your-dashboard) + - [Optimized information density for the Sections view](#optimized-information-density-for-the-sections-view) +- [Goodbye service calls, hello actions 👋](#goodbye-service-calls-hello-actions-) +- [Sort data tables by created or last modified](#sort-data-tables-by-created-or-last-modified) +- [Control Home Assistant using AI with Ollama](#control-home-assistant-using-ai-with-ollama) +- [Integrations](#integrations) + - [New integrations](#new-integrations) + - [Noteworthy improvements to existing integrations](#noteworthy-improvements-to-existing-integrations) + - [Integrations reaching platinum quality level](#integrations-reaching-platinum-quality-level) + - [Now available to set up from the UI](#now-available-to-set-up-from-the-ui) + - [Farewell to the following](#farewell-to-the-following) +- [Zigbee Home Automation (ZHA) updates](#zigbee-home-automation-zha-updates) +- [Matter updates](#matter-updates) +- [KNX can now be managed via the UI](#knx-can-now-be-managed-via-the-ui) +- [Other noteworthy changes](#other-noteworthy-changes) +- [Integrations and helpers set up via YAML, now visible in the UI!](#integrations-and-helpers-set-up-via-yaml-now-visible-in-the-ui) +- [Need help? Join the community!](#need-help-join-the-community) +- [Backward-incompatible changes](#backward-incompatible-changes) +- [All changes](#all-changes) + +## Dashboards - Chapter 2 + +As part of our [roadmap](/blog/2024/06/12/roadmap-2024h1/#dashboards), work has +continued on making dashboard customization and organization easier and more +intuitive. + +Last week, we had the ["Dashboards Chapter 2"](https://www.youtube.com/watch?v=9zmXLxQPr1o) +live stream, talking about the current state of the dashboards, the progress +we have made, the upcoming features, and improvements we are working on, but +more importantly: The great insights in all our research and the design philosophy +behind the dashboards. In case you missed it, you can watch the 1-hour recording +on our [YouTube channel](https://www.youtube.com/watch?v=9zmXLxQPr1o) or +read the [recap blog post](/blog/2024/07/26/dashboard-chapter-2/). + +As part of our continuous improvement, this month we have fully redesigned +and revamped the badges for your dashboards! + +### New badges for your dashboard + +We already wrote about it extensively in our [Dashboard Chapter 2 blog post](/blog/2024/07/26/dashboard-chapter-2/#new-badges) +and this release introduces our redesigned badges! + +This is a big revamp of the original badges that have been in Home Assistant +since, well, forever. The new badges are designed to match the design of the +[Mushroom] chip cards, and are meant to sit at the top of a dashboard view, +providing a summary of the most important information that you need to know +at a glance. + +New badges sitting on top of a dashboard view! + +These new badges match the functionality of the previous design but are +now even more feature-rich. Of course, they are fully configurable from the UI, +allowing you to tweak them to your needs. You can specify whether the icon, +name, and/or state will be visible, and you can configure the contents within +each of them. + +Everything can, of course, be dragged and dropped in the order you like 😎 + +Not just that, the new badges also come with visibility options, the same +as we have [introduced for cards in Home Assistant 2024.6](/blog/2024/06/05/release-20246/#control-visibility-of-cards). +This means you can show or hide them based on who is viewing the dashboard, what +screen size it is displayed within, whether an entity is in a certain state, +and more. + +Screenshots; left showing the add badge dialog wich include the custom mushroom template badge, on the right shows the visibility tab and options badges now have. + +The best news of all? The new badges work across both the new sections view and +the old masonry view! 🎉 Heck!, we even have support for custom badges, like the +custom template one released by the [Mushroom] project 🍄. + +If you have existing old-style badges today, don't worry! They will be +automatically converted to the new badges when you upgrade to this release. + +[Mushroom]: https://github.com/piitaya/lovelace-mushroom + +### Optimized information density for the Sections view + +For this release, we have also fine-tuned the design grid for our +[experimental Sections view](/dashboards/sections/). + +The height of each row has been reduced, allowing more information to be +displayed on the screen. Hours of pixel pushing have also reduced the gap +between the [Tile card](/dashboards/tile/) contents and its +[features](/dashboards/features/), resulting in a cleaner and more +uniform appearance. + +

+Screenshot showing the difference between the previous and current release. +The 2024.7 release on the left and this 2024.8 release on the right. +

+ +If you have been experimenting with sections and have resized some of your +cards, you may need to readjust the sizes to accommodate these changes. + +## Goodbye service calls, hello actions 👋 + +This release marks an important milestone in the evolution of Home Assistant: +we are saying goodbye to **service calls** and hello to **actions**! + +If you are a long-time user of Home Assistant reading this now: don't be alarmed +by this change, nothing breaks with this, and everything will continue to work +just as it did before. + +In the 2024.1 release, we [unified the actions](/2024/01/03/release-20241/#unified-actions) +in the Home Assistant {% term automation %} & script editors. The goal of +that change was to make our automation editor easier for newer users to +understand by removing the “Service call” layer and terminology. + +Screenshot showing the new add action dialog utilizing the search function to find whatever you need. + +The above screenshot shows the UI that has been in use since the [January release](/2024/01/03/release-20241/), +and was very well received in general. However, the underlying terminology +in our documentation and all other places in Home Assistant still used the +"service call" terminology. + +Additionally, the term "services" in Home Assistant is overloaded and ambiguous. +It is used for both the services you can call in Home Assistant and services you +might integrate with, like weather or music services. In the latter case, we +are talking about integrating with a service provided by a program or website, +which is referenced in our Settings page as **Devices & services**. 😵‍💫 + +To make things clearer, we are now changing the terminology around +_service calls_ in Home Assistant from "services" to "actions" **everywhere**. + +Every occurrence in the documentation, the UI, the code, and everywhere else +in Home Assistant, has been replaced with "action". Unlike the previous services +which were "called", actions are "performed". + +Screenshot of the developers tools, which also renamed all occurances of services to actions. + +{% important %} + +If you write automations in YAML, you will notice that the `service` key +in your actions is now called `action`. For example: + +```yaml +- action: light.turn_on + target: + area: living_room +``` + +Existing UI-managed automations will be automatically converted the next time they +are edited and saved. If you write automation in YAML, you can +use either `action` or `service`, as this change is fully backward compatible, +but we recommend using `action` from now on. + +{% endimportant %} + +## Sort data tables by created or last modified + +You've added a new integration, a new device, or maybe just updated +Home Assistant and wondering what new entities or devices you have available? + +This release will help you with that. Home Assistant now tracks when entities +and devices, and many other things were created or last modified. If these are +shown in a table, it means you can now sort them by the date they were created +or last modified; helping you find those recently added or modified items. + +Screenshot showing the new created and modified columns of the entities table, allowing one to sort on these new values. + +The created and modified columns are hidden by default, but you can make them +visible by clicking the {% icon "mdi:cog" %} icon at the top right of the +table. Sorting is always available, regardless of the columns' visibility. + +You might notice that most entities and devices do not have this created or +modified data populated yet. Well this data has only started being recorded in +this release, and cannot be applied retroactively, but going forward it should +only get more useful. + +## Control Home Assistant using AI with Ollama + +In the 2024.6 release, we introduced the ability to use the [OpenAI] and +[GoogleAI] {%term integrations %} to [control your home using Large Language Models] +(LLMs). Many of you requested this to work with a local hosted LLM as well. + +Today we are happy to announce that Home Assistant now supports +control via local LLMs too! + +This is achieved thanks to [@Shulyaka] adding support for the brand new tools +API in Ollama. The performance of the local models has been fine tuned by +[@AllenPorter]. + +Allen created a new [LLM benchmark suite] that is more balanced, less focused +on edge cases, and uses fewer exposed entities. We scored the different models +with this new benchmark, and the cloud-based models scored 98%, but local LLMs +did not do nearly as well. + +Through prompt tuning and fixes included in this release, we have gotten local +LLMs to score a reasonable 84%. We will continue to test new models while +improving our prompts and tools to achieve a higher score. + +

+Picture showing the results of the LLM benchmark suite ran against different models. +Overview of performance of Ollama running different local models ran against the LLM benchmark suite. +

+ +If you want to experiment with local LLMs using Home Assistant, we currently +recommend using the Llama 3.1 8B model and exposing fewer than 25 entities. Note +that smaller models are more likely to make mistakes. + +[@AllenPorter]: https://github.com/AllenPorter +[@Shulyaka]: https://github.com/Shulyaka +[control your home using Large Language Models]: /blog/2024/06/05/release-20246/#dipping-our-toes-in-the-world-of-ai-using-llms +[GoogleAI]: /integrations/google_generative_ai_conversation/ +[LLM benchmark suite]: https://github.com/allenporter/home-assistant-datasets/tree/main/reports#assist-mini +[OpenAI]: /integrations/openai_conversation + +## Integrations + +Thanks to our community for keeping pace with the new {% term integrations %} +and improvements to existing ones! You’re all awesome 🥰 + +### New integrations + +We welcome the following new integrations in this release: + +- **[Autarco]**, added by [@klaasnicolaas] + Monitor the performance of your [Autarco](https://www.autarco.com/) connected solar panels, inverters, and batteries. +- **[Bryant Evolution]**, added by [@danielsmyers] + Control your [Bryant Evolution](https://www.bryant.com/en/us/products/evolution-system/) HVAC system. +- **[Dio Chacon]**, added by [@cnico] + Connect your [Dio Chacon devices](https://chacon.com/en/) via RF 433 Mhz or Wi-Fi. +- **[ElevenLabs]**, added by [@sorgfresser] + [ElevenLabs text-to-speech] service, provides natural sounding voices. +- **[iotty]**, added by [@pburgio] + Control your [iotty Smart Home](https://www.iotty.com/) light switch, gate, smart cover, and outlet devices. +- **[IronOS]**, added by [@tr4nt0r] + Integrate your IronOS-powered soldering iron with Home Assistant over Bluetooth. +- **[Israel Rail]**, added by [@shaiu] + Get real-time departure information from the Israel railways. +- **[LinkPlay]**, added by [@dukeofphilberg] + Control various media players based on the [LinkPlay](https://www.linkplay.com/) protocol. +- **[madVR Envy]**, added by [@iloveicedgreentea] + Control your [madVR Envy](https://www.madvrenvy.com/) video processor for your home theater. +- **[Simplefin]**, added by [@jeeftor] + SimpleFIN is a financial data provider that offers a simple and easy-to-use API for retrieving financial data. +- **[Tesla Fleet]**, added by [@Bre77] + Through the Tesla Fleet API, you can connect and monitor various sensors from Tesla vehicles, PowerWall, Solar panels, or Wall connectors. + +[@Bre77]: https://github.com/Bre77 +[@cnico]: https://github.com/cnico +[@danielsmyers]: https://github.com/danielsmyers +[@dukeofphilberg]: https://github.com/dukeofphilberg +[@iloveicedgreentea]: https://github.com/iloveicedgreentea +[@jeeftor]: https://github.com/jeeftor +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@pburgio]: https://github.com/pburgio +[@shaiu]: https://github.com/shaiu +[@sorgfresser]: https://github.com/sorgfresser +[@tr4nt0r]: https://github.com/tr4nt0r +[Autarco]: /integrations/autarco +[Bryant Evolution]: /integrations/bryant_evolution +[Dio Chacon]: /integrations/chacon_dio +[ElevenLabs text-to-speech]: https://elevenlabs.io/ +[ElevenLabs]: /integrations/elevenlabs +[iotty]: /integrations/iotty +[ironOS]: /integrations/iron_os +[Israel Rail]: /integrations/isreal_rail +[LinkPlay]: /integrations/linkplay +[madVR Envy]: /integrations/madvr +[Simplefin]: /integrations/simplefin +[Tesla Fleet]: /integrations/tesla_fleet + +This release also has new virtual integrations. Virtual integrations +are stubs that are handled by other (existing) integrations to help with +findability. These ones are new: + +- **[Mercury NZ Limited]**, provided by [Opower], added by [@SplicedNZ] +- **[MINI Connected]**, provided by [BMW Connected Drive], added by [@rikroe] +- **[Pinecil]**, provided by [ironOS], added by [@tr4nt0r] + +[@rikroe]: https://github.com/rikroe +[@Splicednz]: https://github.com/SplicedNZ +[@tr4nt0r]: https://github.com/tr4nt0r +[BMW Connected Drive]: /integrations/bmw_connected_drive +[ironOS]: /integrations/iron_os +[Mercury NZ Limited]: /integrations/mercury_nz +[MINI Connected]: /integrations/mini_connected +[Opower]: /integrations/opower +[Pinecil]: /integrations/pinecil + +### Noteworthy improvements to existing integrations + +It is not just new {% term integrations %} that have been added; existing +integrations are also being constantly improved. Here are some of the noteworthy +changes to existing integrations: + +- The [HomeKit Bridge] integration now supports the event entities representing + doorbells and motion sensors. Big thanks [@bdraco]! +- To use the above HomeKit feature, [@bdraco] added support for event entities + to the [UniFi Protect], [Doorbird], and [August] integrations. Awesome! +- Talking about event entities, [@mib1185] added event entities to the + [Feedreader] integration. So you can now easily automate when a new article + shows up in one of the news feeds you follow. Great! +- The [OpenAI conversation] integration now defaults to the, much cheaper, + gpt-4o-mini model. Thanks [@allenporter]! +- The [WLED] integration now supports CCT LED strips, thanks to [@Suxsem]! +- [Tessie] received lots of attention from [@Bre77] this release, adding + tons of new entities and features to the integration. Great job! +- [@joostlek] and [@andrew-codechimp] have been extending the [Mealie] + integration with a lot of new actions and features. Most notably, the ability to + import recipes, set meal plans, and view shopping lists. Thanks! +- You can now control your Reolink chime with the [Reolink] integration, thanks + to [@starkillerOG]! +- The [Roborock] integration now supports the [Roborock Zeo] washer/dryer. + Cool [@Lash-L]! +- [@tr4nt0r] migrated the [Habitica] Dailies and to-do's to support our + to-do entities. Nice! +- Thanks to [@tanchu], the [Xiaomi Miio] integration now supports Xiaomi + air purifiers and humidifiers. Great! +- [@bieniu] extended the [Shelly] integration to support [Shelly virtual components]. + These virtual components can be used to add Home Assistant entities to your + Shelly device, such as the [Shelly WallDisplay] dashboard, or pass + Home Assistant sensor data to [Shelly scripts]. Nice! + +[@allenporter]: https://github.com/allenporter +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@Bre77]: https://github.com/Bre77 +[@joostlek]: https://github.com/joostlek +[@Lash-L]: https://github.com/Lash-L +[@mib1185]: https://github.com/mib1185 +[@starkillerOG]: https://github.com/starkillerOG +[@Suxsem]: https://github.com/Suxsem +[@tanchu]: https://github.com/tanchu +[@tr4nt0r]: https://github.com/tr4nt0r +[August]: /integrations/august +[Doorbird]: /integrations/doorbird +[Feedreader]: /integrations/feedreader +[Habitica]: /integrations/habitica +[HomeKit Bridge]: /integrations/homekit +[Mealie]: /integrations/mealie +[OpenAI conversation]: /integrations/openai_conversation +[Reolink]: /integrations/reolink +[Roborock Zeo]: https://global.roborock.com/pages/roborock-zeo-one +[Roborock]: /integrations/roborock +[Shelly scripts]: https://shelly-api-docs.shelly.cloud/gen2/Scripts/Tutorial/ +[Shelly virtual components]: https://shelly-api-docs.shelly.cloud/gen2/DynamicComponents/Virtual/ +[Shelly WallDisplay]: https://www.shelly.com/en/products/shop/shelly-wall-display/shelly-wall-display +[Shelly]: /integrations/shelly +[Tessie]: /integrations/tessie +[UniFi Protect]: /integrations/unifiprotect +[WLED]: /integrations/wled +[Xiaomi Miio]: /integrations/xiaomi_miio + +### Integrations reaching platinum quality level + +The following {% term integrations %} have reached the platinum 🏆 level on our +[integration quality scale](/docs/quality_scale). These integrations are +the best of the best and give you an excellent out-of-the-box experience. + +- **[BMW Connected Drive]**, done by [@rikroe] +- **[TechnoVE]**, done by [@Moustachauve] +- **[Tessie]**, done by [@Bre77] + +Congratulations to all the developers who worked on these integrations! + +[BMW Connected Drive]: /integrations/bmw_connected_drive +[@rikroe]: https://github.com/rikroe +[TechnoVE]: /integrations/technove +[@Moustachauve]: https://github.com/Moustachauve +[Tessie]: /integrations/tessie +[@Bre77]: https://github.com/Bre77 + +### Now available to set up from the UI + +While most {% term integrations %} can be set up directly from the Home Assistant +user interface, some were only available using YAML configuration. We keep moving +more integrations to the UI, making them more accessible for everyone +to set up and use. + +The following integrations are now available via the Home Assistant UI: + +- **[Bluesound]**, done by [@LouisChrist] +- **[Genius Hub]**, done by [@GeoffAtHome] +- **[History stats]**, done by [@gjohansson-ST] +- **[Mastodon]**, done by [@andrew-codechimp] +- **[Russound RIO]**, done by [@noahhusby] +- **[Wake on LAN]**, done by [@gjohansson-ST] +- **[Worldclock]**, done by [@gjohansson-ST] + +[Bluesound]: /integrations/bluesound +[@LouisChrist]: https://github.com/LouisChrist +[@GeoffAtHome]: https://github.com/GeoffAtHome +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@noahhusby]: https://github.com/noahhusby +[Genius Hub]: /integrations/geniushub +[History stats]: /integrations/history_stats +[Russound RIO]: /integrations/russound_rio +[Wake on LAN]: /integrations/wake_on_lan +[Worldclock]: /integrations/worldclock +[Mastodon]: /integrations/mastodon +[@andrew-codechimp]: https://github.com/andrew-codechimp + +### Farewell to the following + +The following {% term integrations %} are also no longer available as +of this release: + +- **UE Smart Radio** has been removed; the service has been [discontinued](https://forums.slimdevices.com/forum/user-forums/general-discussion/1668327-uesmartradio-com-and-mysqueezebox-com-servers). + +## Zigbee Home Automation (ZHA) updates + +The [Zigbee Home Automation] (ZHA) got a massive overhaul this release! + +What this means for you? Well... basically: _**nothing**_! And this sounds odd, +but that is a good thing! + +The whole integration has been split into a separate codebase, making it +easier to maintain and improve. This is a huge step forward for the integration, +and took months of work to get done. + +You will not notice anything different right now, but this change will make the +integration easier to maintain and improve in the future, including allowing +code contributors to contribute more easily. + +Thanks for the dedication and the huge amounts of hard work on this integration +[@dmulcahey], [@puddly], and [@TheJulianJES]! 🥰 + +[@dmulcahey]: https://github.com/dmulcahey +[@puddly]: https://github.com/puddly +[@TheJulianJES]: https://github.com/TheJulianJES +[Zigbee Home Automation]: /integrations/zha + +## Matter updates + +There are a couple of updates for the Matter integration this release, while we +are working hard to get the integration ready for official Matter certification. + +The Matter integration can now provide update entities. If your Matter device +has a firmware update available, Home Assistant will now be able to inform you +about it and update the device for you. 🎉 + +

Screenshot showing an firmware update for an Matter device being able and can be installed straight from the Home Assistant UI.

+ +This update feature is available for all Matter devices, where manufacturers +provide firmware updates via the official Matter update channels. Not many +manufacturers are involved in delivering these updates yet, but this is a great +step forward, and we hope many manufacturers using Matter will follow this +example. + +Event entities provided by the Matter integration have been improved. They +will now provide more event types, allowing you to react to things like single +press or double press events with ease. + +Additionally, [@jvmahon] contributed support for select entities to the Matter +integration. This is used to select modes if your Matter device supports them, +such as laundry, oven, or dishwasher modes. + +These last two features, are amazing improvements to the Matter integration, +but they are mainly a highlight. Many Matter device types have seen improvements, +including more (configuration) entities and other improvements. + +[@jvmahon]: https://github.com/jvmahon + +## KNX can now be managed via the UI + +The [KNX integration] introduces the ability to manage entities directly from the +UI. 🎉 + +If you have an ETS project file, configuring your devices is now more +intuitive; you can easily select an actuator from the side panel and drag and +drop its assigned group addresses into the configuration. Alternatively, +addresses can be found by name or number using dropdown menus. + +Create, update, and delete KNX switch and light entities directly from the KNX +panel without touching any YAML. 😎 + +

Screenshot showing the KNX panel that allows to create entities right from the UI.

+ +More improvements have been made under the hood. One of the most notable changes +is the support for a broader range of Data Point Type (DPT) definitions. These +can be used directly within actions and triggers and inspected +in the KNX GroupMonitor. + +Thank you for working so hard on this one [@farmio]; this is awesome! 🥰 + +[KNX integration]: /integrations/knx +[@farmio]: https://github.com/farmio + +## Other noteworthy changes + +There are many more improvements in this release; here are some of the other +noteworthy changes this release: + +- We are proud of our [Open Home Foundation], so we will now show its pretty + logo on the Home Assistant loading and information screens. Thanks [@balloob]! +- [Timer support] using [Assist] for mobile devices. This means you can now + control timers from your mobile device or tablet. Thanks [@balloob]! +- You can now ask [Assist] for the current time and date, thanks [@synesthesiam]! +- [@synesthesiam] also switched our voice activity detection to [microVAD]! + Using this we are able to detect the end of a speech command much better + in noisy environments, even with music in the background. Cool! +- The [picture elements card] can now be fully managed in the UI using a + brand-new visual editor. Fantastic work there [@karwosts]! +- Home Assistant will now raise a repair issue if a script can't be set up + (for example, because of YAML syntax errors). Thanks [@emontnemery]! +- If Home Assistant finds an integration set up that has been removed + (like when you remove a custom integration), it will now raise a repair issue + to help you clean up anything left behind. Thanks [@joostlek]! +- [Group] now has support for grouping two new entity types. [@joostlek] added + support for grouping [notify] entities, and [@frenck] added support for grouping + [button] entities. Nice! +- The [Generic Thermostat] and [Hygrostat] helpers will now be linked to the + device that provided the actuator entity, thanks [@dougiteixeira]! +- [@gjohansson-ST] did the same, he added a link to the [History stats] helper + to the device that provided the sensor entity. +- You can now set up [button], [image], [select], and [switch] templates + entities, straight from the UI. Awesome job [@dougiteixeira]! +- [@karwosts] added a button to the actions developer tools to copy the action + response as JSON for use in templates. Nice! +- The [picture], [picture elements], [picture entity], and [picture glance] cards + can now get their image from the person entity! You don't need to set a static + image to represent a person, it will now automatically fetch the person's picture + for you. Thanks [@Quentame]! + +[@balloob]: https://github.com/balloob +[@dougiteixeira]: https://github.com/dougiteixeira +[@emontnemery]: https://github.com/emontnemery +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@joostlek]: https://github.com/joostlek +[@karwosts]: https://github.com/karwosts +[@Quentame]: https://github.com/Quentame +[@synesthesiam]: https://github.com/synesthesiam +[Assist]: /voice_control/ +[button]: /integrations/button +[Generic Thermostat]: /integrations/generic_thermostat +[Group]: /integrations/group +[History stats]: /integrations/history_stats +[Hygrostat]: /integrations/generic_hygrostat +[image]: /integrations/image +[microVAD]: https://github.com/rhasspy/pymicro-vad +[notify]: /integrations/notify +[Open Home Foundation]: https://openhomefoundation.org/ +[picture]: /dashboards/picture/ +[picture elements]: /dashboards/picture-elements/ +[picture elements card]: /dashboards/picture-elements/ +[picture entity]: /dashboards/picture-entity/ +[picture glance]: /dashboards/picture-glance/ +[select]: /integrations/select +[switch]: /integrations/switch +[Timer support]: /blog/2024/07/03/release-20247/#timers-are-here + +## Integrations and helpers set up via YAML, now visible in the UI! + +Most popular {% term integrations %} and helpers can be set up directly from the +Home Assistant user interface. However, we still have a lot of older or less +used integrations that can only be set up using [manual YAML configuration](/docs/configuration/yaml/). +We are working hard to move [more and more of these integrations to the UI](#now-available-to-set-up-from-the-ui), +however, this takes time and effort. + +The problem with these integrations is that they are not visible in the UI +when they are set up using YAML. What we often see is that someone sets up +an integration using YAML and then cannot see it on the integrations page, +often resulting in questions in our community about where to find it. + +As of this release, we have drastically improved this situation. All integrations, +regardless of how they are set up, are now visible on the integrations page +in the UI. This means that even if you set up an integration using YAML, +you can now find it in the UI and view its provided entities. + +Screenshot showing the demo integration, which is set up manually via YAML, showing up in the UI on the integrations dashboard. + +Integrations originating from manual YAML configuration can be recognized by the +{% icon "mdi:file-code-outline" %} icon showing on their cards. + +Similarly, we also have [many helpers](/integrations/#helper) that can be set up +using YAML configuration. These sometimes showed up in the UI, but often did not. +We have adjusted this as well, and made sure that all helpers are now visible +in the UI, regardless of how they are set up. + +{% note %} +Things set up manually using YAML are still managed using YAML. This means that +if you want to change the configuration of these integrations or helpers, you +will need to do so in the YAML configuration files. +{% endnote %} + +## 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 + +We do our best to avoid making changes to existing functionality that might +unexpectedly impact your Home Assistant installation. Unfortunately, sometimes, +it is inevitable. + +We always make sure to document these changes to make the transition as easy as +possible for you. This release has the following backward-incompatible changes: + +{% details "Recorder database upgrade notice" %} + +This notice applies only if you use the recorder integration with a MySQL or +PostgreSQL database. If you are using the default SQLite database, +you can ignore it. + +This release includes a database upgrade/migration that increases the size of +the number we can store for the identifier fields. For a more technical +explanation, we are upgrading integer fields for ID columns from a 32-bit +integer to `BIGINT`, which is a 64-bit integer. + +This can cause the database upgrade to take longer than usual, depending on +the size of your database. + +Please be patient and let the upgrade process finish. Do not interrupt the +upgrade process, as this can lead to a corrupted database. + +([@emontnemery] - [#121025]) ([documentation](/integrations/recorder)) + +[@emontnemery]: https://github.com/emontnemery +[#121025]: https://github.com/home-assistant/core/pull/121025 + +{% enddetails %} + +{% details "BlinkStick" %} + +The Blinksticklight integration is disabled because it requires software that +is not open source. Any help or contributions to make this integration work +without the closed-source software is welcome. + +([@joostlek] - [#121846]) ([documentation](/integrations/blinksticklight)) + +[@joostlek]: https://github.com/joostlek +[#121846]: https://github.com/home-assistant/core/pull/121846 + +{% enddetails %} + +{% details "Bluesound" %} + +Sources behave slightly differently. Radio station providers (like TuneIn and +Radio Paradise) are no longer part of the source list and are not selectable +as sources. + +Presets that play a specific radio station can be created in the BluOS app and +are displayed as sources in Home Assistant. + +The currently selected source tries to match those presets and falls back to +the radio station provider (like TuneIn, Radio Paradise). + +([@LouisChrist] - [#117257]) ([documentation](/integrations/bluesound)) + +[@LouisChrist]: https://github.com/LouisChrist +[#117257]: https://github.com/home-assistant/core/pull/117257 + +{% enddetails %} + +{% details "BMW Connected Drive" %} + +Describing attributes `car` and `vin` have been removed from BMW entities. +If you need to look them up, please get them from the device info screen. + +([@rikroe] - [#120830]) ([documentation](/integrations/bmw_connected_drive)) + +[@rikroe]: https://github.com/rikroe +[#121093]: https://github.com/home-assistant/core/pull/120830 + +{% enddetails %} + +{% details "Climate" %} + +Scenes that use the deprecated auxiliary heat (`aux_heat` attribute) +will no longer restore/set the auxiliary heat state when the scene +is activated. + +([@bjpetit] - [#121873]) ([documentation](/integrations/climate)) + +[@bjpetit]: https://github.com/bjpetit +[#121873]: https://github.com/home-assistant/core/pull/121873 + +{% enddetails %} + +{% details "Concord232" %} + +The Concord232 integration is disabled because it requires software that +is not open source. Any help or contributions to make this integration work +without the closed-source software is welcomed. + +([@joostlek] - [#121974]) ([documentation](/integrations/concord232)) + +[@joostlek]: https://github.com/joostlek +[#121974]: https://github.com/home-assistant/core/pull/121974 + +{% enddetails %} + +{% details "DoorBird" %} + +Previously, resetting the device favorites required working out a complicated +URL. A button is now available to perform this operation. + +([@bdraco] - [#121720]) ([documentation](/integrations/doorbird)) + +[@bdraco]: https://github.com/bdraco +[#121720]: https://github.com/home-assistant/core/pull/121720 + +{% enddetails %} + +{% details "Dovado" %} + +The Dovado integration is disabled because it requires software that +is not open source. Any help or contributions to make this integration work +without the closed-source software is welcomed. + +([@joostlek] - [#121871]) ([documentation](/integrations/dovado)) + +[@joostlek]: https://github.com/joostlek +[#121871]: https://github.com/home-assistant/core/pull/121871 + +{% enddetails %} + +{% details "Ecovacs" %} + +The attributes on the vacuum entity for the lifespan of the main brush, +side brush, and filter are deprecated and will be removed in 2025.2. + +These attributes are superseded by dedicated sensor entities. + +([@mib1185] - [#122740]) ([documentation](/integrations/ecovacs)) + +[@mib1185]: https://github.com/mib1185 +[#122740]: https://github.com/home-assistant/core/pull/122740 + +{% enddetails %} + +{% details "HomeKit Bridge" %} + +PM2.5 air quality sensors are now mapped to the [US EPA AQI scale](https://www.epa.gov/system/files/documents/2024-02/pm-naaqs-air-quality-index-fact-sheet.pdf). +The new cutoff value for US AQI Good (0-50) is 9.0 µg/m3 is thus now used to +match the 2024 US EPA AQI standard. + +([@sarabveer] - [#121093]) ([documentation](/integrations/homekit)) + +[@sarabveer]: https://github.com/sarabveer +[#109900]: https://github.com/home-assistant/core/pull/109900 + +{% enddetails %} + +{% details "Lights" %} + +The following attributes are no longer saved in the database for light +entities because their combinations would quickly fill up the database, and +they are never used by Home Assistant: + +- `brightness` +- `color_mode` +- `color_temp` +- `color_temp_kelvin` +- `effect` +- `hs_color` +- `rgb_color` +- `rgbw_color` +- `rgbww_color` +- `xy_color` + +This change will not impact the operation of your lights, but it will +reduce the amount of data stored in the database. + +([@bdraco] - [#121776]) ([documentation](/integrations/light)) + +[@bdraco]: https://github.com/bdraco +[#121776]: https://github.com/home-assistant/core/pull/121776 + +{% enddetails %} + +{% details "Matter" %} + +Multi-press events are now split into their own dedicated event type, such as +`multi_press_1`, `multi_press_2`, etc., making it easier to automate multiple +presses instead of looking manually at the number of presses count. + +If you have used the current event type in your automations, you will need to +update them to use the new event types. + +([@marcelveldt] - [#122191]) ([documentation](/integrations/matter)) + +[@marcelveldt]: https://github.com/marcelveldt +[#122191]: https://github.com/home-assistant/core/pull/122191 + +{% enddetails %} + +{% details "MQTT" %} + +The `schema` option has been removed from the MQTT vacuum schema. YAML configs +still containing this option will break after 6 months of deprecation. Users +have been warned with a repair. Discovery configs will not break if the schema +options are still in the config, but they will be ignored, and an error message +will be logged to notice. + +([@jbouwh] - [#121093]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#121093]: https://github.com/home-assistant/core/pull/121093 + +{% enddetails %} + +{% details "MVG" %} + +([@joostlek] - [#121975]) ([documentation](/integrations/mvglive)) + +The MVG integration is disabled because it requires software that +is not open source. Any help or contributions to make this integration work +without the closed-source software is welcome. + +[@joostlek]: https://github.com/joostlek +[#121975]: https://github.com/home-assistant/core/pull/121975 + +{% enddetails %} + +{% details "National Weather Service (NWS)" %} + +NWS weather entities no longer have a `detailed_description` in the return +from the `weather.get_forecasts` service. + +A new service, `nws.get_forecasts_extra`, is provided that includes +`detailed_description`. The `detailed_description` is no longer provided +for `hourly` forecasts in the `nws.get_forecasts_extra` service as the API +does not return data. However a `short_description` is now available. + +([@MatthewFlamm] - [#117254]) ([documentation](/integrations/nws)) + +[@MatthewFlamm]: https://github.com/MatthewFlamm +[#117254]: https://github.com/home-assistant/core/pull/117254 + +{% enddetails %} + +{% details "NextBus" %} + +The `messages`, `directions`, and `attribution` attributes have been removed from +the sensor. The new API doesn't provide these anymore. + +([@ViViDboarder] - [#121133]) ([documentation](/integrations/nextbus)) + +[@ViViDboarder]: https://github.com/ViViDboarder +[#121133]: https://github.com/home-assistant/core/pull/121133 + +{% enddetails %} + +{% details "OpenAI Conversation" %} + +The previously deprecated `256`, `512`, and `1024` values for the size argument +for the `generate_image` action have been removed. They have already been +unsupported in the past (replaced with `1024x1024` by default). + +If you still use these values in your automations or scripts, you will need to +update them to use "1024x1024", "1024x1792", or "1792x1024" values. + +([@Shulyaka] - [#122388]) ([documentation](/integrations/openai_conversation)) + +[@Shulyaka]: https://github.com/Shulyaka +[#122388]: https://github.com/home-assistant/core/pull/122388 + +{% enddetails %} + +{% details "WLED" %} + +The WLED integration now requires a WLED device running at least +[WLED 0.14.0](https://github.com/Aircoookie/WLED/releases/tag/v0.14.0) + +([@frenck] - [#122101]) ([documentation](/integrations/wled)) + +[@frenck]: https://github.com/frenck +[#122101]: https://github.com/home-assistant/core/pull/122101 + +{% enddetails %} + +{% details "Xiaomi Miio" %} + +The `Nature` and `Normal` preset modes will be renamed to `nature` +and `normal` to support translations. + +If you have automations or scripts that use the `Nature` or `Normal` preset +modes, you will need to update them to use `nature` and `normal` instead. + +([@piitaya] - [#122367]) ([documentation](/integrations/xiaomi_miio)) + +[@piitaya]: https://github.com/piitaya +[#122367]: https://github.com/home-assistant/core/pull/122367 + +{% enddetails %} + +If you are a custom integration developer and want to learn about 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: + +- [Climate entity now validates temperature provided in action calls](https://developers.home-assistant.io/blog/2024/07/24/climate-min-max-temperature-check/) +- [model_id added to DeviceInfo](https://developers.home-assistant.io/blog/2024/07/16/device-info-model-id) +- [New entity feature flags in FanEntity](https://developers.home-assistant.io/blog/2024/07/19/fan-fanentityfeatures-turn-on_off) +- [New HVACAction DEFROSTING](https://developers.home-assistant.io/blog/2024/07/07/climate-hvacaction-defrosting/) +- [Services are now actions](https://developers.home-assistant.io/blog/2024/07/16/service-actions) +- [Set up your DataUpdateCoordinator with a setup method](https://developers.home-assistant.io/blog/2024/08/05/coordinator_async_setup/) + +[devblog]: https://developers.home-assistant.io/blog/ + +## All changes + +Of course, there is a lot more in this release. You can find a list of +all changes made here: [Full changelog for Home Assistant Core 2024.8](/changelogs/core-2024.8) diff --git a/source/changelogs/core-2024.8.markdown b/source/changelogs/core-2024.8.markdown new file mode 100644 index 00000000000..ccf28bcf635 --- /dev/null +++ b/source/changelogs/core-2024.8.markdown @@ -0,0 +1,2515 @@ +--- +title: Full changelog for Home Assistant Core 2024.8 +description: Detailed changelog for the Home Assistant Core 2024.8 release +replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$ +--- + +These are all the changes included in the Home Assistant Core 2024.8 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2024/08/07/release-20248/). + +## All changes + +- Bump version to 2024.8.0dev0 ([@frenck] - [#120577]) +- Adapt Roborock to runtime_data ([@edenhaus] - [#120578]) +- Update pylint to 3.2.4 ([@cdce8p] - [#120606]) +- Add some more VolDictType annotations ([@cdce8p] - [#120610]) +- Install libturbojpeg in hassfest job [ci] ([@cdce8p] - [#120611]) +- Prevent importing PLATFORM_SCHEMA/_BASE from config validation ([@epenet] - [#120571]) +- Address device helper review comments ([@dougiteixeira] - [#120615]) +- Bump awesomeversion from 24.2.0 to 24.6.0 ([@ludeeus] - [#120642]) +- Remove unnecessary .coveragerc entries ([@davet2001] - [#120620]) +- Add release url to lamarzocco update ([@zweckj] - [#120645]) +- Improve type hints in emulated_hue tests ([@epenet] - [#120664]) +- Improve type hints in esphome tests ([@epenet] - [#120674]) +- Add capsys to enforce-type-hints plugin ([@epenet] - [#120653]) +- Improve type hints in enphase_envoy tests ([@epenet] - [#120676]) +- Improve type hints in evil_genius_labs tests ([@epenet] - [#120677]) +- Bump ring-doorbell to 0.8.12 ([@sdb9696] - [#120671]) +- Fix SIM300 ([@joostlek] - [#120725]) +- Improve type hints in auth tests ([@epenet] - [#120655]) +- Improve type hints in flux_led tests ([@epenet] - [#120734]) +- Add unit and state_class to heating sensor in ista EcoTrend ([@tr4nt0r] - [#120728]) +- Improve type hints in flux tests ([@epenet] - [#120733]) +- Fix ruff type comparison E721 ([@joostlek] - [#120731]) +- Improve type hints in fjaraskupan tests ([@epenet] - [#120732]) +- Fix ruff manual-dict-comprehension PERF403 in tests ([@joostlek] - [#120738]) +- Fix ruff redefined-argument-from-local PLR1704 ([@joostlek] - [#120729]) +- Bump aiomaps with fixed license classifier ([@devbis] - [#120654]) +- Improve type hints in flo tests ([@epenet] - [#120730]) +- Improve type hints in forked_daapd tests ([@epenet] - [#120735]) +- Improve type hints in frontend tests ([@epenet] - [#120739]) +- Fix ruff manual-dict-comprehension PERF403 ([@joostlek] - [#120723]) +- Bump ruff to 0.5.0 ([@joostlek] - [#120749]) +- Cleanup mqtt platform tests part 6 (last) ([@jbouwh] - [#120736]) +- Cleanup mqtt platform tests part 5 ([@jbouwh] - [#120719]) +- Bump Wallbox to 0.7.0 ([@kotope] - [#120768]) +- Catch exceptions in service calls by buttons/switches in pyLoad integration ([@tr4nt0r] - [#120701]) +- Fix stale docstring in recorder queries ([@bdraco] - [#120763]) +- Link Generic Thermostat helper entity to actuator entity device ([@dougiteixeira] - [#120767]) +- Link Generic Hygrostat helper entity to actuator entity device ([@dougiteixeira] - [#120759]) +- Add event platform to unifiprotect ([@bdraco] - [#120681]) +- Cleanup db_schema from_event constructors ([@bdraco] - [#120803]) +- Bump pyOverkiz to 1.13.12 ([@iMicknl] - [#120819]) +- Bump plexapi to 4.15.14 ([@jjlawren] - [#120832]) +- Use eventing for some of the upnp sensors, instead of polling ([@StevenLooman] - [#120262]) +- Store runtime data inside the config entry in solarlog ([@dontinelli] - [#120773]) +- Add linked doorbell event support to HomeKit ([@bdraco] - [#120834]) +- Bump google-cloud-texttospeech to 2.16.3 ([@tronikos] - [#120845]) +- Use TextToSpeechAsyncClient in Google Cloud TTS ([@tronikos] - [#120847]) +- Do not set gender if voice name is specified in Google Cloud TTS ([@tronikos] - [#120848]) +- Handle error when validating options in Google Cloud TTS ([@tronikos] - [#120850]) +- Use runtime_data for BMW ([@rikroe] - [#120837]) +- Axis improve fixture naming ([@Kane610] - [#120844]) +- Store runtime data inside the config entry in fyta ([@dontinelli] - [#120761]) +- Correctly return file extension in Google Cloud TTS ([@tronikos] - [#120849]) +- Use SelectSelector in BMW config flow ([@rikroe] - [#120831]) +- Simplify UniFi uptime sensor test ([@Kane610] - [#120794]) +- Change schema to TextSelector to enable autocomplete ([@dontinelli] - [#120771]) +- Improve UniFi device tracker tests Pt2 ([@Kane610] - [#120796]) +- Improve UniFi device tracker tests ([@Kane610] - [#120795]) +- Migrate Ecowitt to runtime_data ([@edenhaus] - [#120675]) +- Fix unifi device tracker test imports ([@rikroe] - [#120864]) +- Add valve domain to HomeKit ([@sander1988] - [#115901]) +- Bump github/codeql-action from 3.25.10 to 3.25.11 (@dependabot - [#120899]) +- Use service_calls fixture in deconz tests ([@epenet] - [#120905]) +- Import Generator from collections.abc (1) ([@cdce8p] - [#120914]) +- Import Generator from collections.abc (4) ([@cdce8p] - [#120917]) +- Import Generator from collections.abc (2) ([@cdce8p] - [#120915]) +- Import Generator from collections.abc (3) ([@cdce8p] - [#120916]) +- Add typing to Panasonic Viera ([@joostlek] - [#120772]) +- First step towards fixtures in deCONZ tests ([@Kane610] - [#120863]) +- Use service_calls fixture in google_translate tests ([@epenet] - [#120920]) +- Use TypeVar defaults for Generator ([@cdce8p] - [#120921]) +- Remove OverloadUT as codeowner from Ecovacs ([@edenhaus] - [#120517]) +- Add Context to service_calls fixture ([@epenet] - [#120923]) +- Use service_calls fixture in knx tests ([@epenet] - [#120930]) +- Use service_calls fixture in hue tests ([@epenet] - [#120928]) +- Improve flume test coverage ([@allenporter] - [#120851]) +- Use service_calls fixture in lutron_caseta tests ([@epenet] - [#120934]) +- Use service_calls fixture in homeassistant tests ([@epenet] - [#120922]) +- Use service_calls fixture in lcn tests ([@epenet] - [#120931]) +- Use fixtures in deCONZ select tests ([@Kane610] - [#120943]) +- Use service_calls fixture in media_extractor tests ([@epenet] - [#120935]) +- Use service_calls fixture in lg_netcast tests ([@epenet] - [#120932]) +- Add exception translations ([@timmo001] - [#120937]) +- Use fixtures in deCONZ scene tests ([@Kane610] - [#120936]) +- Use fixtures in deCONZ number tests ([@Kane610] - [#120938]) +- Use service_calls fixture in litejet tests ([@epenet] - [#120933]) +- Replace GoogleAPICallError with GoogleAPIError ([@tronikos] - [#120902]) +- Remove a useless line in Google Generative AI test ([@tronikos] - [#120903]) +- Use service_calls fixture in kodi tests ([@epenet] - [#120929]) +- Use service_calls fixture in homekit_controller tests ([@epenet] - [#120927]) +- Use service_calls fixture in geo_location tests ([@epenet] - [#120911]) +- Use service_calls fixture in conversation tests ([@epenet] - [#120906]) +- Use fixtures in deCONZ logbook tests ([@Kane610] - [#120947]) +- Use fixtures in deCONZ lock tests ([@Kane610] - [#120948]) +- Use fixtures in deCONZ switch tests ([@Kane610] - [#120944]) +- Simplify Bang & Olufsen media_image_url property ([@mj23000] - [#120951]) +- Use service_calls fixture in core platform tests [a-l] ([@epenet] - [#120904]) +- Use fixtures in deCONZ fan tests ([@Kane610] - [#120953]) +- Use fixtures in deCONZ cover tests ([@Kane610] - [#120954]) +- Use fixtures in deCONZ button tests ([@Kane610] - [#120958]) +- Use service_calls fixture in netatmo tests ([@epenet] - [#120986]) +- Use service_calls fixture in shelly tests ([@epenet] - [#120991]) +- Use service_calls fixture in samsungtv tests ([@epenet] - [#120992]) +- Use service_calls fixture in mqtt tests ([@epenet] - [#120984]) +- Use common registry fixtures in hue ([@epenet] - [#121003]) +- Use common registry fixtures in tplink ([@epenet] - [#121002]) +- Use service_calls fixture in microsoft tests ([@epenet] - [#120983]) +- Use service_calls fixture in zone tests ([@epenet] - [#120995]) +- Use service_calls fixture in sun tests ([@epenet] - [#120990]) +- Use service_calls fixture in yolink tests ([@epenet] - [#120997]) +- Use common fixtures in philips_js tests ([@epenet] - [#120988]) +- Use common registry fixtures in lifx ([@epenet] - [#121004]) +- Use service_calls fixture in core platform tests [m-z] ([@epenet] - [#121001]) +- Use common registry fixtures in solarlog ([@epenet] - [#121005]) +- Use service_calls fixture in zwave_js tests ([@epenet] - [#120994]) +- Use service_calls fixture in xiaomi_ble tests ([@epenet] - [#120998]) +- Use fixtures in deCONZ diagnostics tests ([@Kane610] - [#120968]) +- Improve type hints in analytics tests ([@epenet] - [#121012]) +- Adjust Generator type hints in tests ([@epenet] - [#121013]) +- Fix typo in post_schema_migration ([@emontnemery] - [#121017]) +- Use service_calls fixture in nest tests ([@epenet] - [#120987]) +- Use common fixtures in tasmota tests ([@epenet] - [#121000]) +- Bump amberelectric to 1.1.1 ([@madpilot] - [#121010]) +- Update voluptuous to 0.15.2 ([@cdce8p] - [#120631]) +- Bump orjson to 3.10.6 ([@bdraco] - [#121028]) +- Improve type hints in home_connect tests ([@epenet] - [#121014]) +- Add Beoconnect Core as selectable Bang & Olufsen device ([@mj23000] - [#121015]) +- Remove BaseTableManager active attribute ([@emontnemery] - [#121020]) +- Bump pytechnove to 1.3.0 ([@Moustachauve] - [#120975]) +- Bump uiprotect to 5.0.0 ([@bdraco] - [#121034]) +- Add monkeypatch type hints to shelly tests ([@epenet] - [#121057]) +- Add conversation supported feature CONTROL ([@balloob] - [#121036]) +- Use async_setup_recorder_instance fixture in recorder migration tests ([@emontnemery] - [#121050]) +- Remove unused diagnostics fixtures ([@epenet] - [#121066]) +- Cleanup deprecated json utils ([@epenet] - [#121069]) +- Add CONTROL supported feature to OpenAI conversation entities ([@balloob] - [#121064]) +- Improve logic when retrying establishing database connection ([@emontnemery] - [#121047]) +- Use async_setup_recorder_instance fixture in recorder auto_repairs tests ([@emontnemery] - [#121077]) +- Fix async knocki function ([@joostlek] - [#121048]) +- Bump uiprotect to 5.2.0 ([@bdraco] - [#121079]) +- Cleanup v32 recorder migration test ([@bdraco] - [#121083]) +- Small speed up to writing entity state ([@bdraco] - [#121043]) +- Fix leak of SQLAlchemy engine objects in recorder ([@emontnemery] - [#121085]) +- Make the async_setup_recorder_instance fixture a context manager ([@emontnemery] - [#121086]) +- Fix event loop blocking I/O in command_line tests ([@bdraco] - [#121098]) +- Fix event loop blocking I/O in generic tests ([@bdraco] - [#121100]) +- Remove schema option for mqtt vacuum configs ([@jbouwh] - [#121093]) +- Fix blocking I/O in demo mailbox ([@bdraco] - [#121097]) +- Remove unnecessary lambdas in timeout tests ([@bdraco] - [#121101]) +- Fix blocking process call in process tests ([@bdraco] - [#121104]) +- Add monkeypatch type hints to switcher_kis tests ([@epenet] - [#121055]) +- Add monkeypatch type hints to webostv tests ([@epenet] - [#121054]) +- Add recorder test fixture for skipping tests by DB engine ([@emontnemery] - [#121118]) +- Fix blocking I/O in event loop in kira test ([@bdraco] - [#121127]) +- Fix blocking I/O in event loop in google_assistant test ([@bdraco] - [#121126]) +- Bump nextcloudmonitor to 1.5.1 ([@meichthys] - [#120356]) +- Use async_test_recorder fixture in recorder auto_repairs tests ([@emontnemery] - [#121125]) +- Fix blocking I/O in media_extractor tests ([@bdraco] - [#121139]) +- Fix blocking I/O in mqtt tests ([@bdraco] - [#121140]) +- Fix blocking I/O in stream tests ([@bdraco] - [#121142]) +- Fix blocking I/O in tts tests ([@bdraco] - [#121143]) +- Fix blocking I/O in config tests ([@bdraco] - [#121144]) +- Update pytechnove to 1.3.1 ([@Moustachauve] - [#121146]) +- Bump thermobeacon-ble to 0.7.0 ([@bdraco] - [#121136]) +- Fix blocking I/O in event loop in core test ([@bdraco] - [#121128]) +- Add port mapping entry count sensor to upnp ([@StevenLooman] - [#120263]) +- Add recorder test fixture to enable persistent SQLite database ([@emontnemery] - [#121137]) +- Improve type hints in group tests ([@epenet] - [#121174]) +- Improve type hints in gpslogger tests ([@epenet] - [#121173]) +- Improve type hints in geofency tests ([@epenet] - [#121168]) +- Improve type hints in google_travel_time tests ([@epenet] - [#121171]) +- Improve type hints in generic_hygrostat/thermostat tests ([@epenet] - [#121167]) +- Improve type hints in generic tests ([@epenet] - [#121166]) +- Convert async_get_conversation_languages from async to callback ([@balloob] - [#121162]) +- Improve type hints in google_generative_ai tests ([@epenet] - [#121170]) +- Enable ruff asyncio event loop blocking detection rules ([@bdraco] - [#120799]) +- Improve type hints in google_pubsub tests ([@epenet] - [#121172]) +- Add monkeypatch type hints to numato tests ([@epenet] - [#121056]) +- Add event platform to doorbird ([@bdraco] - [#121114]) +- Use fixtures in deCONZ config flow tests PT1 ([@Kane610] - [#121121]) +- Use fixtures in deCONZ sensor tests PT1 ([@Kane610] - [#121116]) +- Add support for event entity motion sensors to HomeKit ([@bdraco] - [#121123]) +- Improve type hints in guardian tests ([@epenet] - [#121175]) +- Use recorder test fixtures in recorder init tests ([@emontnemery] - [#121176]) +- Fix Google assistant SDK broadcasting command for italian ([@giulianoriccio] - [#116198]) +- Fix some typos in core.py ([@emontnemery] - [#121189]) +- Add test fixture to control recorder migration ([@emontnemery] - [#121180]) +- Use fixtures in deCONZ alarm control panel tests ([@Kane610] - [#120967]) +- Use fixtures in deCONZ binary sensor tests ([@Kane610] - [#120966]) +- Use fixtures in deCONZ light tests PT1 ([@Kane610] - [#121112]) +- Use fixtures in deCONZ device trigger tests ([@Kane610] - [#121103]) +- Use fixtures in deCONZ service tests ([@Kane610] - [#121108]) +- Improve type hints in google tests ([@epenet] - [#121169]) +- Use fixtures in deCONZ sensor tests PT2 ([@Kane610] - [#121204]) +- Use fixtures in deCONZ config flow tests PT2 ([@Kane610] - [#121203]) +- Add type hints to matrix events fixtures ([@epenet] - [#121213]) +- Improve type hints in habitica tests ([@epenet] - [#121212]) +- Add type hints to homekit events fixture ([@epenet] - [#121211]) +- Add new integration for Dio Chacon cover devices ([@cnico] - [#116267]) +- Drop use of async_setup_recorder_instance fixture in recorder migration tests ([@emontnemery] - [#121196]) +- Drop use of async_setup_recorder_instance fixture in recorder purge tests ([@emontnemery] - [#121193]) +- Add support for the Select platform in Matter ([@jvmahon] - [#119769]) +- Update short_name in web app manifest ([@pkoenig10] - [#121223]) +- Update uiprotect to 5.2.2 ([@bdraco] - [#121227]) +- Use Generator from abc instead of typing_extensions in Matter discovery ([@marcelveldt] - [#121236]) +- Import AsyncGenerator from collections.abc in tests ([@epenet] - [#121019]) +- Add .coveragerc to core files ([@epenet] - [#121182]) +- Add warnings for deprecated json helpers ([@epenet] - [#121161]) +- Bump pytrafikverket to 1.0.0 ([@gjohansson-ST] - [#121210]) +- Fix AprilAire case ([@chamberlain2007] - [#120895]) +- Add MINI Connected virtual integration ([@rikroe] - [#120874]) +- Bump `nettigo_air_monitor` to version 3.3.0 ([@bieniu] - [#120901]) +- Improve type hints in ezviz tests ([@epenet] - [#120679]) +- Use service_calls fixture in webostv tests ([@epenet] - [#120999]) +- Update laundrify_aio to v1.2.2 ([@xLarry] - [#121068]) +- Use async_setup_recorder_instance fixture in recorder v32_migration tests ([@emontnemery] - [#121081]) +- Remove legacy method from deCONZ fan and sensor tests ([@Kane610] - [#121244]) +- Update HomeKit PM2.5 mappings based on new 2024 US EPA AQI ([@sarabveer] - [#109900]) +- Cache is_official_image/is_docker_env in bootstrap to fix blocking I/O ([@bdraco] - [#121261]) +- Small speed up to entity state calculation ([@bdraco] - [#121273]) +- Small speedup to processing entity customize ([@bdraco] - [#121271]) +- Fix blocking I/O while validating config schema ([@bdraco] - [#121263]) +- Use fixtures in deCONZ climate tests ([@Kane610] - [#121242]) +- Improve type hints in hassio tests ([@epenet] - [#121221]) +- Add Aprilaire humidifier ([@chamberlain2007] - [#120270]) +- Respect icloud `Enable polling updates` ([@fopina] - [#117984]) +- Make device_tracker fallback defaults cached_property ([@bdraco] - [#121260]) +- Assist Pipeline minor cleanup ([@balloob] - [#121187]) +- Cleanup unifiprotect entity classes ([@bdraco] - [#121184]) +- Add max current number entity for TechnoVE ([@Moustachauve] - [#121148]) +- Remove unneeded blocking sleep in srp_energy tests ([@bdraco] - [#121141]) +- Simplify conversation tests ([@balloob] - [#121060]) +- Extend wrapper for sending commands to all platforms in Husqvarna Automower ([@Thomas55555] - [#120255]) +- Add monkeypatch type hints to rflink tests ([@epenet] - [#121053]) +- Use fixtures in deCONZ light tests PT2 ([@Kane610] - [#121208]) +- Remove coveragerc ([@frenck] - [#121286]) +- Bump pynx584 to 0.8.2 ([@joostlek] - [#120910]) +- Improve type hints in broadlink ([@epenet] - [#121285]) +- Add monkeypatch to enforce-type-hints plugin ([@epenet] - [#121051]) +- Improve type hints in homeassistant_alerts tests ([@epenet] - [#121293]) +- Improve type hints in http tests ([@epenet] - [#121294]) +- Improve type hints in hue tests ([@epenet] - [#121298]) +- Device change test improvements in Template ([@dougiteixeira] - [#120884]) +- Fix vscode debug launch deprecation warning by swapping python to debugpy ([@davet2001] - [#120866]) +- Separate BMW base entity into separate file ([@rikroe] - [#120830]) +- Add support for min mode in Netatmo public sensor ([@maniek335] - [#118613]) +- Improve type hints for silent_ssdp_scanner in tests ([@epenet] - [#121309]) +- Add ability to select current map for Roborock ([@Lash-L] - [#120882]) +- Improve type hints in hdmi_cec tests ([@epenet] - [#121302]) +- Improve hass type hints for autouse fixtures in tests ([@epenet] - [#121311]) +- Use fixtures in deCONZ gateway tests ([@Kane610] - [#121305]) +- Add valve to base platform ([@joostlek] - [#121313]) +- Use BIGINT SQL type for ID columns ([@emontnemery] - [#121025]) +- Use fixtures on deCONZ event tests ([@Kane610] - [#121303]) +- Use fixtures in deCONZ init tests ([@Kane610] - [#121217]) +- Get languages and voices from the API in Google Cloud TTS ([@tronikos] - [#120852]) +- Finally remove all legacy test stubs from deCONZ tests ([@Kane610] - [#121323]) +- Update ulid-transform to 0.10.1 ([@bdraco] - [#121321]) +- Add PPV2 entity for Growatt storage inverter ([@Cris-ET] - [#121052]) +- Match comments with refactoring ([@erwindouna] - [#121330]) +- Fix Netatmo snapshot ([@joostlek] - [#121333]) +- Add audit license script ([@joostlek] - [#120683]) +- Expose Twitch "Started At" attribute ([@DHandspikerWade] - [#121265]) +- Improve deCONZ websocket fixture ([@Kane610] - [#121332]) +- Bump ruff to 0.5.1 ([@autinerd] - [#121324]) +- Add diagnostics to Tessie ([@Bre77] - [#121348]) +- Improve user message if stream is not set up in generic camera ([@davet2001] - [#121308]) +- Bump webrtc-noise-gain to 1.2.4 ([@synesthesiam] - [#121346]) +- Provide default values for common keys in deCONZ websocket fixture ([@Kane610] - [#121359]) +- Refactor BMW send_message and add tests ([@rikroe] - [#119170]) +- Add energy binary sensors to Tessie ([@Bre77] - [#121349]) +- Add support for Roborock Zeo ([@Lash-L] - [#121334]) +- Refactor the validation in Google Cloud TTS ([@tronikos] - [#120853]) +- Add energy select entities to Tessie ([@Bre77] - [#120641]) +- Add valve-open/closed state icons ([@Mariusthvdb] - [#121312]) +- Add demand window sensor for amberelectric ([@upsuper] - [#121356]) +- Add energy number entities for Tessie ([@Bre77] - [#121354]) +- Add energy switch entities to Tessie ([@Bre77] - [#121360]) +- Remove old codeowners who no longer maintain the Omnilogic integration ([@djtimca] - [#117987]) +- Implement TechnoVE diagnostic ([@Moustachauve] - [#121278]) +- Add repair issue when trying to set up unknown integration ([@joostlek] - [#121089]) +- Fix Audit license script comments ([@joostlek] - [#121374]) +- Refactor BMW sensors and migrate unique_ids ([@rikroe] - [#121380]) +- Add BMW tire pressure sensors ([@rikroe] - [#120949]) +- Improve Elmax alarm control panel ([@albertogeniola] - [#117689]) +- Add json_attributes_path configuration for command_line sensor ([@atlflyer] - [#116656]) +- Convert Hue scenes brightness to 0..255 ([@barryvdh] - [#105871]) +- Add support for Xiaomi airpurifier and humidifier ([@tanchu] - [#117791]) +- Set BMW quality scale to platinum ([@rikroe] - [#121388]) +- Add @mib1185 as codeowner for Feedreader ([@mib1185] - [#121399]) +- Use shared httpx client in iaqualink integration ([@flz] - [#121407]) +- Minor changes to laundrify binary_sensor platform ([@xLarry] - [#121435]) +- Enable remove device entry in fibaro integration ([@rappenze] - [#121427]) +- Fix missing placeholder in intergration issue ([@joostlek] - [#121425]) +- Change TechnoVE quality scale to platinum ([@Moustachauve] - [#121275]) +- Add support for SenseCAP ([@angelnu] - [#121405]) +- Add event platform to august ([@bdraco] - [#121392]) +- Update mypy-dev to 1.12.0a1 ([@cdce8p] - [#121428]) +- Migrate QNAP extra state attributes to separate states ([@jrieger] - [#109221]) +- Add `_attr` class attributes to TextToSpeechEntity ([@autinerd] - [#115684]) +- Add prometheus fan handler ([@llamafilm] - [#119805]) +- Bump pydaikin to 2.13.1 ([@kingy444] - [#118679]) +- Add Tuya Smart Gardening system ([@zinuzoid] - [#118335]) +- Handle more pushover exceptions during setup ([@zmc] - [#115802]) +- Add configurable keep_alive to Ollama integration, change default to 5m ([@srwareham] - [#119341]) +- Remove device ID from config schema via YAML in helper template ([@dougiteixeira] - [#120708]) +- Set Jewish Calendar quality scale ([@tsvi] - [#120604]) +- Bump aiomealie to 0.6.0 ([@joostlek] - [#121439]) +- Deprecate the dynamic package sensors in seventeentrack ([@shaiu] - [#116102]) +- Migrate doorbird to use entry.runtime_data ([@bdraco] - [#121413]) +- Fix incorrect temperature in Gree if temp units changed on device ([@cmroche] - [#121041]) +- Generate translation in vscode taks: Code Coverage ([@Thomas55555] - [#120434]) +- Add mealie version to device info ([@joostlek] - [#121443]) +- Refactor Tado to use runtime_data ([@erwindouna] - [#121373]) +- Ensure `intents_changed` variable is always initialized ([@balloob] - [#121444]) +- Migrate Habitica Dailies and To-Do's to the todo platform ([@tr4nt0r] - [#116655]) +- Home Connect unit tests for switch platform ([@beastie29a] - [#115456]) +- Add defrosting as HVACAction in ClimateEntity ([@gjohansson-ST] - [#121448]) +- Add Prometheus fan_mode and climate_mode metrics ([@llamafilm] - [#120267]) +- Use ConfigEntry runtime_data in TechnoVE ([@Moustachauve] - [#121410]) +- Add madvr envy integration ([@iloveicedgreentea] - [#120382]) +- Add valve support to Hydrawise ([@dknowles2] - [#116302]) +- Add config flow to history_stats helper ([@gjohansson-ST] - [#121381]) +- Add Mealie service to get mealplan ([@joostlek] - [#120824]) +- Add event entity to Feedreader ([@mib1185] - [#118147]) +- Fix flakey homekit reload test ([@bdraco] - [#121463]) +- Wait for conversation test init ([@jbouwh] - [#121464]) +- Small cleanups to doorbird ([@bdraco] - [#121454]) +- Fix BangOlufsenSource enum member names ([@mj23000] - [#116052]) +- Refactor schema generation in Template integration ([@dougiteixeira] - [#120889]) +- Add button platform to Habitica integration ([@tr4nt0r] - [#121461]) +- Bump actions/download-artifact from 4.1.7 to 4.1.8 (@dependabot - [#121490]) +- Bump actions/upload-artifact from 4.3.3 to 4.3.4 (@dependabot - [#121491]) +- Add rest in the inn switch to Habitica integration ([@tr4nt0r] - [#121472]) +- Add entity base class in Habitica integration ([@tr4nt0r] - [#121320]) +- Improve type hints in insteon tests ([@epenet] - [#121504]) +- Improve type hints in ipma tests ([@epenet] - [#121501]) +- Improve type hints in kulersky tests ([@epenet] - [#121510]) +- Improve type hints in kitchen_sink tests ([@epenet] - [#121509]) +- Improve type hints in iqvia tests ([@epenet] - [#121506]) +- Improve type hints in kodi tests ([@epenet] - [#121508]) +- Define state_class for Growatt storage entities ([@Cris-ET] - [#121514]) +- Write data to state after Broadlink entity added ([@eifinger] - [#121493]) +- Improve type hints in lyric tests ([@epenet] - [#121517]) +- Improve type hints in logi_circle tests ([@epenet] - [#121518]) +- Improve type hints in iotawatt tests ([@epenet] - [#121505]) +- Improve type hints in lovelace tests ([@epenet] - [#121520]) +- Fix unreleased breaking change in Google Cloud ([@tronikos] - [#121523]) +- Define state_class for Growatt inverter entities ([@Cris-ET] - [#121516]) +- Add Mealie service to get recipe ([@joostlek] - [#121462]) +- Add myself as co-codeowner for Mealie integration ([@andrew-codechimp] - [#121536]) +- ZHA as an external library ([@puddly] - [#120190]) +- Update Home Assistant Wheels action to 2024.07.0 ([@frenck] - [#121552]) +- Update Home Assistant Wheels action to 2024.07.1 ([@frenck] - [#121555]) +- Add new entities for the Growatt Storage inverter ([@Cris-ET] - [#121507]) +- Fix Bang & Olufsen wrong source being compared ([@mj23000] - [#121512]) +- Bump webrtc-noise-gain to 1.2.5 ([@synesthesiam] - [#121539]) +- Add Bang & Olufsen media_player testing ([@mj23000] - [#120580]) +- Revert webrtc to 1.2.3 ([@synesthesiam] - [#121561]) +- Home Connect unit tests for light platform ([@beastie29a] - [#121576]) +- Add sunroof to Teslemetry ([@Bre77] - [#121476]) +- Add entity_id as key for kafka message ([@leosperry] - [#121519]) +- Fix missing validation and service definition in Mealie ([@joostlek] - [#121578]) +- Improve type hints for webhook implementation in dialogflow ([@epenet] - [#121592]) +- Improve type hints in webhook implementations ([@epenet] - [#121588]) +- Improve type hints in device tracker implementations ([@epenet] - [#121585]) +- Improve type hints for webhook implementation in push ([@epenet] - [#121589]) +- Remove "unavailable" and "unknown" filters from Kafka integration ([@leosperry] - [#121602]) +- Remove language lock from default agent and move around tests ([@synesthesiam] - [#121531]) +- Ensure we prepare conversation pipeline when speech-to-text starts ([@balloob] - [#114665]) +- Bump hassil to 1.7.3 for number word caching ([@synesthesiam] - [#121608]) +- Allow targeting conversation agent as pipeline ([@balloob] - [#119556]) +- Add alexa remote support ([@CrazyMan2000] - [#120878]) +- Remove stale `template_topic` code for mqtt publish service ([@jbouwh] - [#121604]) +- Add shopping lists to Mealie integration ([@andrew-codechimp] - [#121534]) +- Add binary sensor to madVR integration ([@iloveicedgreentea] - [#121465]) +- Improve type hints in zwave_js tests ([@epenet] - [#121594]) +- Improve type hints in recorder result_processor ([@epenet] - [#121593]) +- Jellyfin - Improve unloading/reloading config entry ([@j-stienstra] - [#121613]) +- Add constant for climate feature flag check ([@gjohansson-ST] - [#121619]) +- Modbus, Remove duplicate address check ([@janiversen] - [#121579]) +- Add config flow for platform button in Template ([@dougiteixeira] - [#120886]) +- Update CODEOWNERS of enphase_envoy ([@dgomes] - [#121623]) +- Do not use `curr` as abbreviation in alexa tests and remove conditions ([@jbouwh] - [#121627]) +- Split media player select input test ([@CrazyMan2000] - [#121633]) +- Convert powerwall to use entry.runtime_data ([@bdraco] - [#121643]) +- Bump ZHA lib to 0.0.19 ([@dmulcahey] - [#121637]) +- Convert solaredge to use entry.runtime_data ([@bdraco] - [#121642]) +- Prevent entity creation errors from causing all entities for a platform from loading in ZHA ([@dmulcahey] - [#121631]) +- Migrate emonitor to entry.runtime_data ([@bdraco] - [#121645]) +- Convert nexia to use entry.runtime_data ([@bdraco] - [#121640]) +- Migrate screenlogic to use entry.runtime_data ([@bdraco] - [#121644]) +- Cleanup unnecessary definition in lamarzocco tests ([@epenet] - [#121655]) +- Add Bromley to list of london air authorities ([@gingermike] - [#121498]) +- Improve type hints in calendar tests ([@epenet] - [#121654]) +- Adjust type hints for unnecessary returns ([@epenet] - [#121650]) +- Adjust type hints for unnecessary returns in tests ([@epenet] - [#121657]) +- Small refactor to cleanup unnecessary returns ([@epenet] - [#121653]) +- Add SimpleFIN integration ([@jeeftor] - [#108336]) +- Bump aiorussound to 1.1.2 ([@noahhusby] - [#121674]) +- Add service to import recipe to mealie ([@joostlek] - [#121598]) +- Use service_calls fixture in zha tests ([@epenet] - [#120996]) +- Cleanup unnecessary returns ([@epenet] - [#121652]) +- Small cleanups to bond entities ([@bdraco] - [#121641]) +- Bump switchbot-api to 2.2.1 ([@SeraphicRav] - [#121676]) +- Handle empty entity_id in the recorder filter ([@bdraco] - [#121681]) +- Fix ZHA select platform state restoration ([@puddly] - [#121646]) +- Convert doorbird to use asyncio ([@bdraco] - [#121569]) +- Get suggested_unit_of_measurement via unit converter's UNIT_CLASS ([@rikroe] - [#119196]) +- Add diagnostics to Mealie ([@joostlek] - [#121700]) +- Enable Ruff RUF017 ([@autinerd] - [#121693]) +- Add mqtt automation publish test with template rendering ([@jbouwh] - [#121695]) +- Mealie min version check ([@andrew-codechimp] - [#121677]) +- Add Ruff refurb rules ([@autinerd] - [#121701]) +- Add config flow to Russound RIO integration ([@noahhusby] - [#121262]) +- Add Autarco integration ([@klaasnicolaas] - [#121600]) +- Extend generic hygrostat/thermostat actuators using config flow ([@elupus] - [#121690]) +- Add constants for todo services ([@joostlek] - [#121616]) +- Bump ZHA dependencies ([@puddly] - [#121716]) +- Migrate resetting doorbird favorites to a button ([@bdraco] - [#121720]) +- Fix small issue on Autarco integration ([@klaasnicolaas] - [#121723]) +- Add config flow for image platform in Template ([@dougiteixeira] - [#121648]) +- Don't patch libraries that aren't installed in pytest ([@davet2001] - [#121628]) +- Add support for Shelly virtual `boolean` component ([@bieniu] - [#119932]) +- Use new constants in todo tests ([@joostlek] - [#121727]) +- Add HassGetCurrentDate and HassGetCurrentTime intents ([@synesthesiam] - [#121707]) +- Add ability to control ventilated seats with Tessie integration ([@atinsley] - [#121624]) +- Add reauth flow to Mealie ([@joostlek] - [#121697]) +- Bump DoorBirdPy to 3.0.1 ([@bdraco] - [#121733]) +- Add diagnostics to Autarco integration ([@klaasnicolaas] - [#121732]) +- Add Broadlink time platform ([@eifinger] - [#121470]) +- Add Israel rail integration ([@shaiu] - [#121418]) +- Bump actions/setup-python from 5.1.0 to 5.1.1 (@dependabot - [#121749]) +- Bump pyserial-asyncio-fast to 0.13 ([@bdraco] - [#121745]) +- Add sunroof to Tessie ([@Bre77] - [#121743]) +- Append multiple rows in Google Sheets ([@luca-angemi] - [#120829]) +- Fix recorder max backlog calculation being too small ([@bdraco] - [#121739]) +- Fix bugs Habitica to-do lists ([@tr4nt0r] - [#121755]) +- Add reconfigure flow to Mealie ([@joostlek] - [#121750]) +- Add test coverage for Tessie seat coolers ([@Bre77] - [#121742]) +- Revert "Add mqtt automation publish test with template rendering" ([@jbouwh] - [#121757]) +- Add button group support ([@frenck] - [#121715]) +- Add config flow for platform switch in Template ([@dougiteixeira] - [#121639]) +- Dynamically create and delete todo lists in mealie ([@joostlek] - [#121710]) +- Add Jewish Calendar reconfiguration test ([@tsvi] - [#118833]) +- Pre-configure default doorbird events ([@bdraco] - [#121692]) +- Remove unused code in blink ([@mkmer] - [#121780]) +- Add verify SSL option to Mealie ([@joostlek] - [#121767]) +- Update aioairzone-cloud to v0.5.4 ([@Noltari] - [#121787]) +- Migrate esphome to use shorthand available attr ([@bdraco] - [#121827]) +- Use identity check for ESPHome sensor device_class ([@bdraco] - [#121828]) +- Cleanup Shelly unused strings for removed valve switch ([@thecode] - [#121813]) +- Make BaseCoordinatorEntity.should_poll a cached_property since it never changes ([@bdraco] - [#121826]) +- Add configuration_url to AVM FRITZ!Box Call Monitor ([@jrieger] - [#121836]) +- Add support for Shelly `text` virtual component ([@bieniu] - [#121735]) +- Fix Mealie mealplan service date parsing ([@joostlek] - [#121844]) +- Fix schema and strings in template switch ([@gjohansson-ST] - [#121843]) +- Bump boto3, botocore and aiobotocore ([@chemelli74] - [#121773]) +- Bump DoorBirdPy to 3.0.2 ([@bdraco] - [#121823]) +- Correct deprecated telegram usage in dsmr ([@elupus] - [#121847]) +- Add device link to History stats helper ([@gjohansson-ST] - [#121848]) +- Fix typo in Template switch ([@davet2001] - [#121856]) +- Disable blinkstick integration ([@joostlek] - [#121846]) +- Fix too verbose HTTP logging for Azure Data Explorer ([@marcelvriend] - [#121802]) +- Use a listcomp for more history results ([@bdraco] - [#121830]) +- Avoid recording additional light attributes ([@bdraco] - [#121776]) +- Fix homekit linked doorbell and motion firing on reload ([@bdraco] - [#121818]) +- Extend search with support for integrations ([@frenck] - [#121765]) +- Add reauth support to doorbird ([@bdraco] - [#121815]) +- Add inverters to Autarco integration ([@klaasnicolaas] - [#121779]) +- Remove an unneeded test dependency on pydantic in matrix ([@allenporter] - [#121860]) +- Add config flow for select platform in Template ([@dougiteixeira] - [#121809]) +- Initial support for LIFX Ceiling SKY effect ([@Djelibeybi] - [#121820]) +- Remove unused code in doorbird ([@bdraco] - [#121884]) +- Bump aioaquacell to 0.2.0 ([@Jordi1990] - [#121876]) +- Address post merge review on israel rail ([@shaiu] - [#121872]) +- Migrate hunterdouglas_powerview to use entry.runtime_data ([@bdraco] - [#121887]) +- Use parametrize in tests for Shelly `boolean` virtual component ([@bieniu] - [#121895]) +- Dynamically add Airzone entities ([@Noltari] - [#121891]) +- Fix group operations in ZHA websocket API ([@dmulcahey] - [#121881]) +- Bump ZHA lib to 0.0.23 ([@dmulcahey] - [#121900]) +- Ensure states table rebuild still happens if the event_id index was removed ([@bdraco] - [#121938]) +- Use dispatcher for doorbird event entities ([@bdraco] - [#121825]) +- Migrate lutron_caseta to use entry.runtime_data ([@bdraco] - [#121903]) +- Add Broadlink select platform ([@eifinger] - [#121797]) +- Rename Airzone system_zone_id to system_id ([@Noltari] - [#121931]) +- Bump github/codeql-action from 3.25.11 to 3.25.12 (@dependabot - [#121963]) +- Bump ruff to 0.5.2 ([@autinerd] - [#121946]) +- Fix BMW remaining fuel device class ([@rikroe] - [#119172]) +- Disable Dovado integration ([@joostlek] - [#121871]) +- Make Bayesian a helper ([@joostlek] - [#121976]) +- Disable MVG integration ([@joostlek] - [#121975]) +- Bump yalexs to 6.4.3 ([@bdraco] - [#121984]) +- Move licenses to right list ([@joostlek] - [#121986]) +- Update aioairzone to v0.8.0 ([@Noltari] - [#121991]) +- Disable concord232 integration ([@joostlek] - [#121974]) +- Bump python-homeassistant-analytics to 0.7.0 ([@mib1185] - [#121992]) +- Rename Services to Actions in translation strings ([@frenck] - [#121777]) +- Add support for Shelly `number` virtual component ([@bieniu] - [#121894]) +- Add mac address as connection for matter device ([@MrEbbinghaus] - [#121257]) +- Bump govee-ble to 0.33.0 ([@bdraco] - [#122004]) +- Make filter a helper ([@joostlek] - [#121994]) +- Bump uiprotect to 5.3.0 ([@bdraco] - [#122005]) +- Convert mopeka to use entry.runtime_data ([@bdraco] - [#121973]) +- Adjust issue description in automations fix flow ([@frenck] - [#122007]) +- Prevent removal of complete bridge when removing a device from Matter ([@agners] - [#121987]) +- Rename dsmr integration to be more generic ([@elupus] - [#121968]) +- Remove modbus codeowner, and downgrade to quality "No score" ([@janiversen] - [#122010]) +- Fix for Environment Canada date being wrong after midnight ([@gwww] - [#121850]) +- Bump incomfortclient to v0.6.3-1 ([@jbouwh] - [#122013]) +- Minor adjustment of recorder migration ([@emontnemery] - [#122020]) +- Improve tests/patch_time.py ([@emontnemery] - [#122017]) +- Add recorder migration test starting with schema version 9 ([@emontnemery] - [#122011]) +- Add support for adding model_id in device info ([@joostlek] - [#121989]) +- Log tools sent to OpenAI ([@HarvsG] - [#122024]) +- Bump govee-ble to 0.34.0 ([@bdraco] - [#122028]) +- Add JakeBosh as Knocki codeowner ([@joostlek] - [#122026]) +- Bump govee-ble to 0.36.1 ([@bdraco] - [#122030]) +- Bump govee-ble to 0.37.0 ([@bdraco] - [#122037]) +- Avoid mutating database schema definitions during schema migration ([@emontnemery] - [#122012]) +- Refactor function recorder.migration._apply_update ([@emontnemery] - [#122023]) +- Add fixture files to Enphase_Envoy tests ([@catsmanac] - [#121864]) +- Refactor recorder data migration ([@emontnemery] - [#121009]) +- Convert arcam_fmj to runtime data ([@elupus] - [#122047]) +- Fix flakey tibber tests ([@mib1185] - [#121993]) +- Use model_id in devolo_home_network ([@Shutgun] - [#122048]) +- Change model to model_id in LaMetric ([@frenck] - [#122044]) +- Drop spurious log messages in Matter bridge device removal ([@agners] - [#122036]) +- Add model_id to Tuya devices, mark services correctly ([@frenck] - [#122043]) +- Read color temperature range from Matter device if supported ([@agners] - [#122054]) +- Set `DeviceInfo.model_id` in Shelly integration ([@bieniu] - [#122040]) +- Require specifying extended address in otbr WS API calls ([@emontnemery] - [#108282]) +- Add created_at/modified_at for area registry ([@edenhaus] - [#122014]) +- Bump refoss to v1.2.4 ([@ashionky] - [#122063]) +- Move recorder data migration implementation to migrators ([@emontnemery] - [#122045]) +- Use model_id in devolo_home_control ([@Shutgun] - [#122066]) +- Remove dead code from script helper ([@emontnemery] - [#122074]) +- Add created_at/modified_at to floor registry ([@edenhaus] - [#122071]) +- Enable strict typing on script helper ([@emontnemery] - [#122075]) +- Bump tesla-fleet-api ([@Bre77] - [#122073]) +- Add switch platform test to enphase_envoy ([@catsmanac] - [#122068]) +- Enable strict typing on script integration ([@emontnemery] - [#122079]) +- Clean up old migration in HomeWizard ([@frenck] - [#122086]) +- Add created_at/modified_at to label registry ([@edenhaus] - [#122078]) +- Remove Markdown from service action descriptions ([@frenck] - [#122077]) +- Migrate HomeWizard to config entry runtime data ([@frenck] - [#122088]) +- Revert "Remove stale `template_topic` code for mqtt publish service" ([@jbouwh] - [#121758]) +- System Bridge coordinator and connector refactor ([@timmo001] - [#114896]) +- Split up tests to avoid CI timeouts ([@synesthesiam] - [#122096]) +- Bump govee-ble to 0.38.0 ([@bdraco] - [#122099]) +- Add timer support to mobile app ([@balloob] - [#121469]) +- Fix homekit_controller tests to avoid global aid generation ([@bdraco] - [#119852]) +- Raise repair issues when scripts can't be set up ([@emontnemery] - [#122087]) +- Skip poll of HKC accessory if reachable and chars are watchable ([@bdraco] - [#116200]) +- Platinum quality for Tessie ([@Bre77] - [#121962]) +- Update wled to 0.19.2 ([@frenck] - [#122101]) +- Add diagnostic information to DSMR ([@elupus] - [#122041]) +- Add binary_sensor platform test to enphase_envoy ([@catsmanac] - [#122120]) +- Add reconfigure step to tedee ([@zweckj] - [#122008]) +- Add select platform test to enphase_envoy ([@catsmanac] - [#122127]) +- Add number platform test to enphase_envoy ([@catsmanac] - [#122117]) +- Update pylint to 3.2.5 ([@cdce8p] - [#122126]) +- Add forecast service call for extra attributes for nws ([@MatthewFlamm] - [#117254]) +- Add support for Shelly `enum` virtual component ([@bieniu] - [#121997]) +- Revert "Add mac address as connection for matter device (#121257)" ([@marcelveldt] - [#122133]) +- Extend sensor platform tests for enphase_envoy ([@catsmanac] - [#122132]) +- Add some basic tests for doorbird ([@bdraco] - [#122135]) +- Opower: add date sensors ([@b3nj1] - [#122138]) +- Implement model_id in HomeWizard ([@DCSBL] - [#122130]) +- Add Tesla Fleet integration ([@Bre77] - [#122019]) +- Add coverage for doorbird button platform ([@bdraco] - [#122145]) +- Add missing coverage for doorbird config_flow ([@bdraco] - [#122146]) +- Update deprecation warning for data_entry_flow ([@davet2001] - [#122154]) +- Upgrade pycoolmasternet-async to 0.2.0 ([@ashalita] - [#122139]) +- Add binary sensors to TotalConnect ([@austinmroczek] - [#121888]) +- Add fallback for webmin systems without MAC address ([@autinerd] - [#113261]) +- Add default value for YoLink thermostat ([@matrixd2] - [#122114]) +- Add config flow to worldclock ([@gjohansson-ST] - [#121775]) +- Deprecate `topic_template` and `payload_template` for mqtt publish action ([@jbouwh] - [#122098]) +- Buienradar textual improvements ([@rrooggiieerr] - [#122095]) +- Remove use of deprecated set_aux_heat call from climate _async_reproduce_states ([@bjpetit] - [#121873]) +- Load correct Renson fan speed when breeze level is set ([@krmarien] - [#121960]) +- Add Sensors to Weatherflow Cloud ([@jeeftor] - [#111651]) +- Add static routes for frontend modern and legacy service workers ([@steverep] - [#120488]) +- Deprecate simulated integration ([@gjohansson-ST] - [#122166]) +- Add select platform to myuplink ([@astrandb] - [#118661]) +- Add TURN_OFF/TURN_ON feature flags for fan ([@gjohansson-ST] - [#121447]) +- Migrate Wiz to config entry runtime data ([@frenck] - [#122091]) +- Improve number platform test COV for enphase_envoy ([@catsmanac] - [#122163]) +- Bump Ruff to 0.5.3 ([@autinerd] - [#122167]) +- Add integration for iotty Smart Home ([@pburgio] - [#103073]) +- Add command_template option to mqtt switch schema ([@jbouwh] - [#122103]) +- Add YoLink YS8017 support ([@matrixd2] - [#122064]) +- Revert "Add static routes for frontend modern and legacy service workers" ([@bramkragten] - [#122172]) +- Replace unnecessary typing_extensions imports for Generator ([@cdce8p] - [#122169]) +- Use TypeVar defaults for Generator ([@cdce8p] - [#122170]) +- Fix deconz conftest typing ([@cdce8p] - [#122173]) +- Add string for value template description in switch Template ([@dougiteixeira] - [#121865]) +- Add `async_setup` method to `DataUpdateCoordinator` ([@zweckj] - [#116677]) +- Add static routes for frontend modern and legacy service workers (#120488) ([@bramkragten] - [#122174]) +- Fix invalid dict annotations in tests ([@cdce8p] - [#122178]) +- Fix test fixture annotations ([@cdce8p] - [#122180]) +- Use Generator as return type for fixtures ([@cdce8p] - [#122183]) +- Bump georss-qld-bushfire-alert-client to 0.8 ([@exxamalte] - [#122185]) +- Fix return type annotations in tests ([@cdce8p] - [#122184]) +- Use new 17track api library ([@shaiu] - [#121910]) +- Bump azure-kusto dependencies to 4.5.1 ([@marcelvriend] - [#121805]) +- Address post merge review changes in upnp ([@StevenLooman] - [#122189]) +- Ignore E3_TCU41_x04 gateway device in ViCare ([@CFenner] - [#122179]) +- Allow to add optional holiday categories in workday ([@gjohansson-ST] - [#121396]) +- Add data update coordinator to enigma2 ([@autinerd] - [#122046]) +- Remove filtering of user data in Habitica integration ([@tr4nt0r] - [#121759]) +- Avoid blocking I/O in gpsd ([@jrieger] - [#122176]) +- Tolerate integration removed device ([@agners] - [#120722]) +- Add options flow for force_poll setting in upnp ([@StevenLooman] - [#120843]) +- Add PrusaLink nozzle and mmu support ([@deimosfr] - [#120436]) +- Add tests for ring camera platform for 100% coverage ([@sdb9696] - [#122197]) +- Move constants to `const.py` in generic Thermostat ([@dougiteixeira] - [#120789]) +- Add timestamp sensor for observation ([@kamiyo] - [#121752]) +- Log timeouts for `assist_pipeline` end of speech detection ([@HarvsG] - [#122182]) +- Add config flow to Wake on LAN ([@gjohansson-ST] - [#121605]) +- Fix wrong deprecation date in Habitica integration ([@tr4nt0r] - [#122206]) +- Fix invalid Any annotations ([@cdce8p] - [#122212]) +- Improve vizio tests typing ([@cdce8p] - [#122213]) +- Update home_connect to v0.8.0 ([@Noltari] - [#121788]) +- Fix flaky recorder test ([@emontnemery] - [#122205]) +- Fix recorder datetime annotations ([@cdce8p] - [#122214]) +- Update freezegun to 1.5.1 ([@cdce8p] - [#122219]) +- Fix missing type[..] annotation in tests ([@cdce8p] - [#122217]) +- Improve HA snapshot serializer typing ([@cdce8p] - [#122218]) +- Fix incompatible signature overwrite async_turn_on + off ([@cdce8p] - [#122208]) +- Fix ConfigFlowResult annotations in tests ([@cdce8p] - [#122215]) +- Update import locations in tests ([@cdce8p] - [#122216]) +- Sonos tests snapshot and restore services ([@PeteRager] - [#122198]) +- Fix recorder setup hanging if non live schema migration fails ([@emontnemery] - [#122207]) +- Improve switch platform test COV for enphase_envoy ([@catsmanac] - [#122227]) +- Add diagnostics to Tesla Fleet ([@Bre77] - [#122223]) +- Improve fixture usage for light based deCONZ tests ([@Kane610] - [#122209]) +- Add binary sensor to Tesla Fleet ([@Bre77] - [#122225]) +- Revert "Fix recorder setup hanging if non live schema migration fails" ([@emontnemery] - [#122232]) +- Update Pillow to 10.4.0 ([@cdce8p] - [#122237]) +- Update coverage to 7.6.0 ([@cdce8p] - [#122238]) +- Update pipdeptree to 2.23.1 ([@cdce8p] - [#122239]) +- Update bcrypt to 4.1.3 ([@cdce8p] - [#122236]) +- Update pytest-asyncio to 0.23.8 ([@cdce8p] - [#122241]) +- Fix recorder setup hanging if non live schema migration fails ([@emontnemery] - [#122242]) +- Update pytest to 8.2.2 ([@cdce8p] - [#122244]) +- Update pytest-unordered to 0.6.1 ([@cdce8p] - [#122243]) +- Update uv to 0.2.27 ([@cdce8p] - [#122246]) +- Update pip-licenses to 4.5.1 ([@cdce8p] - [#122240]) +- Update types packages ([@cdce8p] - [#122245]) +- Improve contextmanager typing ([@cdce8p] - [#122250]) +- Add device tracker to Tesla Fleet ([@Bre77] - [#122222]) +- Add calendar for Rachio smart hose timer ([@brg468] - [#120030]) +- Upgrade CI to use ubuntu 24.04 ([@bdraco] - [#122254]) +- Improve shopping_list test typing ([@cdce8p] - [#122255]) +- Use correct enum in UnitSystem tests ([@cdce8p] - [#122256]) +- Improve tests.common typing ([@cdce8p] - [#122257]) +- Bump airgradient to 0.7.0 ([@joostlek] - [#122268]) +- Bump twitchAPI to 4.2.1 ([@joostlek] - [#122269]) +- Bump py-madvr to 1.6.29 ([@iloveicedgreentea] - [#122275]) +- Bump aiomealie to 0.7.0 ([@joostlek] - [#122278]) +- Bump uiprotect to 5.4.0 ([@bdraco] - [#122282]) +- Add model id to airgradient ([@joostlek] - [#122271]) +- Bump ruff to 0.5.4 ([@autinerd] - [#122289]) +- Add sensor platform to MadVR ([@iloveicedgreentea] - [#121617]) +- Use pyblu library in bluesound ([@LouisChrist] - [#117257]) +- Improve sensor test coverage for enphase_envoy ([@catsmanac] - [#122229]) +- Improve fixture usage for sensor based deCONZ tests ([@Kane610] - [#122297]) +- Fix to prevent Azure Data Explorer JSON serialization from failing ([@marcelvriend] - [#122300]) +- Make TemplateStateBase.entity_id a cached_property ([@bdraco] - [#122279]) +- Bump aiomealie to 0.8.0 ([@joostlek] - [#122295]) +- Add sensor platform to Mealie ([@joostlek] - [#122280]) +- Update xiaomi-ble to use entry.runtime_data ([@bdraco] - [#122306]) +- Update bthome to use entry.runtime_data ([@bdraco] - [#122304]) +- Migrate oncue to use entry.runtime_data ([@bdraco] - [#122307]) +- Migrate harmony to use entry.runtime_data ([@bdraco] - [#122312]) +- Convert sensorpush to use entry.runtime_data ([@bdraco] - [#122315]) +- Improve Hive typing ([@joostlek] - [#122314]) +- Set polling interval for airgradient to 1 minute ([@joostlek] - [#122266]) +- Clean up Mealie coordinator ([@joostlek] - [#122310]) +- Add event platform to govee-ble ([@bdraco] - [#122031]) +- Add sleepy device support to govee-ble ([@bdraco] - [#122085]) +- Add Mealie service to set a random mealplan ([@joostlek] - [#122313]) +- Add binary sensor platform to govee-ble ([@bdraco] - [#122111]) +- Clean up Mealie service tests ([@joostlek] - [#122316]) +- Fix test RuntimeWarning for upb ([@cdce8p] - [#122325]) +- Add config flow to Genius hub ([@GeoffAtHome] - [#116173]) +- Create, update and delete KNX entities from UI / WS-commands ([@farmio] - [#104079]) +- Bump renault-api to 2.0.5 ([@epenet] - [#122326]) +- Post merge review for Feedreader ([@mib1185] - [#122327]) +- Add support for grouping notify entities ([@joostlek] - [#122123]) +- APSystems - add configuration option 'port' in config flow ([@Lorzware] - [#122144]) +- Change OpenAI default recommended model to gpt-4o-mini ([@allenporter] - [#122333]) +- Update pylint to 3.2.6 ([@cdce8p] - [#122338]) +- Convert enphase_envoy to use entry.runtime_data ([@bdraco] - [#122345]) +- Bump aiorussound to 2.0.6 ([@noahhusby] - [#122354]) +- Add support for KNX UI to create light entities ([@farmio] - [#122342]) +- Bump github/codeql-action from 3.25.12 to 3.25.13 (@dependabot - [#122362]) +- Bump cryptography to 43.0.0 and pyOpenSSL to 24.2.1 and chacha20poly1305-reuseable >= 0.13.0 ([@bdraco] - [#122308]) +- Fix homewizard api close not being awaited on unload ([@cdce8p] - [#122324]) +- Update pytest to 8.3.1 ([@cdce8p] - [#122368]) +- Add Reolink model_id / item number ([@starkillerOG] - [#122371]) +- Add translations for xiaomi miio fan preset modes ([@piitaya] - [#122367]) +- Bumb python-homewizard-energy to 6.1.1 to embed model in upstream library ([@DCSBL] - [#122365]) +- Fix typo in recorder persistent notification ([@emontnemery] - [#122374]) +- Bump pyvesync to 2.1.12 ([@cdnninja] - [#122318]) +- Handle empty energy sites in Tesla integrations ([@Bre77] - [#122355]) +- Fix platforms on media pause and unpause intents ([@allenporter] - [#122357]) +- Fix missing translation key for august doorbells ([@bdraco] - [#122251]) +- Complete coverage for doorbird init ([@bdraco] - [#122272]) +- Frontend wants a timestamp for the created_at/modified_at attributes ([@edenhaus] - [#122377]) +- Fix group media player `play_media` not passing kwargs ([@PeteRager] - [#122258]) +- Improve language in loader error messages ([@emontnemery] - [#122387]) +- Add mealie service to set mealplan ([@joostlek] - [#122317]) +- Handle integration with missing dependencies ([@emontnemery] - [#122386]) +- Refactor recorder schema migration ([@emontnemery] - [#122372]) +- Remove SchemaValidationStatus.valid ([@emontnemery] - [#122394]) +- Bump aiorussound to 2.0.7 ([@noahhusby] - [#122389]) +- Improve error handling when recorder schema migration fails ([@emontnemery] - [#122397]) +- Add device info to Russound RIO ([@noahhusby] - [#122395]) +- Add created_at/modified_at to device registry ([@edenhaus] - [#122369]) +- Add recorder data migrator class to clean up states table ([@emontnemery] - [#122069]) +- Improve error handling when creating new SQLite database ([@emontnemery] - [#122406]) +- Avoid repeated calls to utc_from_timestamp(0).isoformat() when migrating ([@emontnemery] - [#122413]) +- Make device registry migration unconditional ([@emontnemery] - [#122414]) +- Deduplicate more fixture data related to deCONZ websocket sensor ([@Kane610] - [#122412]) +- Add DeviceInfo to OTP integration ([@tr4nt0r] - [#122392]) +- Continue transition from legacy dict to attr in dsmr ([@elupus] - [#121906]) +- Add async_update_data to emoncms coordinator ([@alexandrecuer] - [#122416]) +- Remove deprecated DALL-E image formats ([@Shulyaka] - [#122388]) +- Split recorder and frontend bootstrap steps ([@emontnemery] - [#122420]) +- Add missing binary sensors to Hive integration ([@ribbal] - [#122296]) +- Register WS command recorder/info early ([@emontnemery] - [#122425]) +- Remove recorder from websocket_api after dependencies ([@emontnemery] - [#122422]) +- Bump async-upnp-client to 0.40.0 ([@bdraco] - [#122427]) +- Correct off-by-one bug in recorder non live schema migration ([@emontnemery] - [#122428]) +- Remove loop shutdown indicator when done with test hass ([@emontnemery] - [#122432]) +- Freeze integration setup timeout for recorder during non-live migration ([@emontnemery] - [#122431]) +- Make frontend url and route a cached_property ([@bdraco] - [#122430]) +- Deduplicate light data with deCONZ websocket fixture ([@Kane610] - [#122421]) +- Bump docker/login-action from 3.2.0 to 3.3.0 (@dependabot - [#122440]) +- Update google tasks to return completed items ([@allenporter] - [#122437]) +- Extract Geniushub base entities in separate module ([@joostlek] - [#122331]) +- Remove incorrect use of Mock.assert_has_calls from recorder tests ([@emontnemery] - [#122439]) +- Update wled to 0.20.0 ([@frenck] - [#122441]) +- Fix several issues with the Matter Generic Switch Cluster ([@marcelveldt] - [#122191]) +- Use external temp if needed in Broadlink ([@fustom] - [#118375]) +- Improve API calls in Teslemetry ([@Bre77] - [#122449]) +- Add created_at/modified_at to entity registry ([@edenhaus] - [#122444]) +- Replace Reolink HDR switch by HDR select entity ([@starkillerOG] - [#122373]) +- Disable polling for Matter entities by default ([@agners] - [#122452]) +- Indicate database migration in /api/core/state response ([@emontnemery] - [#122445]) +- Add created_at/modified_at to category registry ([@edenhaus] - [#122454]) +- Use aiohttp.ClientTimeout for timeout ([@cdce8p] - [#122458]) +- Check for incompatible special chars in Reolink password ([@starkillerOG] - [#122461]) +- Add Matter update entities for devices with OTA requestor ([@agners] - [#120304]) +- Add model_id to Ecovacs integration ([@edenhaus] - [#122457]) +- Fix flaky Reolink tests ([@starkillerOG] - [#122451]) +- Changes for aiohttp 3.10.0 ([@cdce8p] - [#122463]) +- Update pytest warnings filter ([@cdce8p] - [#122459]) +- Add squeezebox server device with common init ([@pssc] - [#122396]) +- Update clientsession socket family typing ([@cdce8p] - [#122464]) +- Add coordinator to evohome and prune async_update code ([@zxdavb] - [#119432]) +- Use dispatcher for KNX GroupMonitor instead of custom HassJob ([@farmio] - [#122384]) +- Switch to official ollama library, update models ([@synesthesiam] - [#122471]) +- Add 100% test coverage to Madvr ([@iloveicedgreentea] - [#122350]) +- Add dynamic media player features to Russound ([@noahhusby] - [#122475]) +- Bump aiohttp to 3.10.0b1 ([@bdraco] - [#122409]) +- Create additional sensors in Hive integration ([@ribbal] - [#122453]) +- Tweak axis test fixtures ([@Kane610] - [#122469]) +- Improve Axis hub tests ([@Kane610] - [#122472]) +- Update AEMET-OpenData to v0.5.3 ([@Noltari] - [#122480]) +- Fix loading created_at/modified_at from entity registry store ([@edenhaus] - [#122486]) +- Update aioairzone to v0.8.1 ([@Noltari] - [#122481]) +- Tweak deCONZ init and hub tests ([@Kane610] - [#122484]) +- Use snapshot validation on Axis binary sensor ([@Kane610] - [#122483]) +- Update pylutron to 0.2.15 ([@cdce8p] - [#122455]) +- Update aioairzone-cloud to v0.5.5 ([@Noltari] - [#122482]) +- Remigrate device_registry created_at/modified_at ([@bdraco] - [#122490]) +- Bump aiorussound to 2.2.0 ([@noahhusby] - [#122500]) +- Use snapshot in deCONZ button tests ([@Kane610] - [#122505]) +- Bump aiolifx-themes to v0.5.0 ([@Djelibeybi] - [#122503]) +- Fix incorrect enum option in Hive heating sensor ([@ribbal] - [#122496]) +- Use runtime_data instead of hass.data for Jellyfin ([@j-stienstra] - [#122410]) +- Improve deCONZ fan tests ([@Kane610] - [#122493]) +- Use snapshot in deCONZ binary sensor tests ([@Kane610] - [#122507]) +- Rename recorder INTEGRATION_PLATFORMS_LOAD_IN_RECORDER_THREAD ([@emontnemery] - [#122511]) +- Extract Evohome base entities to separate module ([@joostlek] - [#122515]) +- Add volume step to Russound media player ([@noahhusby] - [#122523]) +- Convert oralb to use entry.runtime_data ([@bdraco] - [#122527]) +- Convert rainmachine to use entry.runtime_data ([@bdraco] - [#122532]) +- Use snapshot in deCONZ cover tests ([@Kane610] - [#122537]) +- Use snapshot in deCONZ climate tests ([@Kane610] - [#122535]) +- Use snapshot in deCONZ number tests ([@Kane610] - [#122538]) +- Use snapshot in deCONZ scene tests ([@Kane610] - [#122540]) +- Use snapshot in deCONZ sensor tests ([@Kane610] - [#122543]) +- Use snapshot in deCONZ select tests ([@Kane610] - [#122541]) +- Refactor NextBus integration to use new API ([@ViViDboarder] - [#121133]) +- Use snapshot in deCONZ alarm control panel tests ([@Kane610] - [#122551]) +- Use snapshot in deCONZ light tests ([@Kane610] - [#122548]) +- Matter event follow up ([@marcelveldt] - [#122553]) +- Add CCT support to WLED ([@Suxsem] - [#122488]) +- Add tests to emoncms ([@alexandrecuer] - [#122547]) +- Address Wake on Lan post-merge feedback ([@gjohansson-ST] - [#122549]) +- Use appropriate selector for homeassistant.update_entity ([@karwosts] - [#122497]) +- Convert homekit to use entry.runtime_data ([@bdraco] - [#122533]) +- Fix typo in conftest.py ([@emontnemery] - [#122583]) +- Bump govee-ble to 0.40.0 ([@bdraco] - [#122564]) +- Bump aioesphomeapi to 24.6.2 ([@bdraco] - [#122566]) +- Migrate switchbot to use entry.runtime_data ([@bdraco] - [#122530]) +- Convert qingping to use entry.runtime_data ([@bdraco] - [#122528]) +- Avoid nesting sessions in recorder statistics tests ([@emontnemery] - [#122582]) +- Add LinkPlay integration ([@dukeofphilberg] - [#113940]) +- Add support for govee H5124 vibration sensors ([@bdraco] - [#122562]) +- Deduplicate sensor recorder tests ([@emontnemery] - [#122516]) +- Avoid nesting sessions in recorder purge tests ([@emontnemery] - [#122581]) +- Update aioqsw to v0.4.0 ([@Noltari] - [#122586]) +- Add support for govee presence sensor h5127 ([@bdraco] - [#122568]) +- Add device to Worldclock ([@gjohansson-ST] - [#122557]) +- Add uncalibrated sensor for tedee ([@zweckj] - [#122594]) +- Avoid creating nested sessions in recorder migration ([@emontnemery] - [#122580]) +- Bump airgradient to 0.7.1 removing mashumaro direct dependency ([@allenporter] - [#122534]) +- Allow nightly Mealie versions to pass ([@andrew-codechimp] - [#121761]) +- Use snapshots in UniFi update tests ([@Kane610] - [#122599]) +- Run statistics on 5-minute intervals in tests ([@emontnemery] - [#122592]) +- Use snapshot in UniFi button tests ([@Kane610] - [#122602]) +- Use snapshot in UniFi device tracker tests ([@Kane610] - [#122603]) +- Avoid nesting sessions in recorder auto repairs tests ([@emontnemery] - [#122596]) +- Add shelly overcurrent sensor for switches ([@huettner94] - [#122494]) +- Set mode for Ecovacs clean count entity ([@edenhaus] - [#122611]) +- Update Ecovacs translations ([@edenhaus] - [#122610]) +- Fail tests if recorder creates nested sessions ([@emontnemery] - [#122579]) +- Update mypy-dev to 1.12.0a2 ([@cdce8p] - [#122613]) +- Remove obsolete string from openai_conversation strings.json ([@Shulyaka] - [#122623]) +- Speed up bluetooth matching ([@bdraco] - [#122626]) +- Replace ConfigEntry with MockConfigEntry in deCONZ tests ([@Kane610] - [#122631]) +- Add dynamic coordinator interval to Tesla Fleet ([@Bre77] - [#122234]) +- Remove unused fixtures in UniFi tests ([@Kane610] - [#122628]) +- Replace ConfigEntry with MockConfigEntry in Axis tests ([@Kane610] - [#122629]) +- Remove validation of state==UNAVAILABLE on config entry unload in deCONZ test ([@Kane610] - [#122558]) +- Log line wrap in Mealie integration ([@andrew-codechimp] - [#122635]) +- Clean up some fixtures not referenced within deCONZ tests ([@Kane610] - [#122637]) +- Remove last references to hass.data[UNIFI_DOMAIN] ([@Kane610] - [#122642]) +- Final steps to runtime_data in Axis integration ([@Kane610] - [#122641]) +- Update aioairzone-cloud to v0.6.0 ([@Noltari] - [#122647]) +- Add test coverage for doorbird events ([@bdraco] - [#122617]) +- Bump bring-api to v0.8.1 ([@tr4nt0r] - [#122653]) +- Add entity services to the Hydrawise integration ([@dknowles2] - [#120883]) +- Use snapshot in UniFi image tests ([@Kane610] - [#122608]) +- Add Airzone Cloud zone thermostat sensors ([@Noltari] - [#122648]) +- Add test coverage for doorbird cameras ([@bdraco] - [#122660]) +- Bump opower to 6.0.0 ([@SplicedNZ] - [#122658]) +- Update aioairzone-cloud to v0.6.1 ([@Noltari] - [#122661]) +- Less use of hass.data[DECONZ_DOMAIN] in deCONZ tests ([@Kane610] - [#122657]) +- Add Airzone Cloud WebServer CPU/Memory sensors ([@Noltari] - [#122667]) +- Add Airzone Cloud low thermostat battery binary sensor ([@Noltari] - [#122665]) +- Fix Airzone Cloud WebServer memory usage unit ([@Noltari] - [#122670]) +- Fix broken token caching for evohome ([@zxdavb] - [#122664]) +- Patch import where its used in Axis hub test ([@Kane610] - [#122674]) +- Yamaha device setup enhancement with unique id based on serial ([@pssc] - [#120764]) +- Add virtual integraion for "Mercury NZ Limited" (opower) ([@SplicedNZ] - [#122650]) +- Add typing to Comfoconnect ([@joostlek] - [#122669]) +- Fix yamaha uid where host in config is defined ([@pssc] - [#122676]) +- Cache unifi device_tracker properties that never change ([@bdraco] - [#122683]) +- Small speedups to unifi ([@bdraco] - [#122684]) +- Add AirTouch5 cover ([@Denifia] - [#122462]) +- Migrate Mastodon integration to config flow ([@andrew-codechimp] - [#122376]) +- Update nibe library to 2.11.0 ([@elupus] - [#122697]) +- Remove conditions from enphase_envoy test_switch ([@catsmanac] - [#122693]) +- Use snapshot in Axis light tests ([@Kane610] - [#122703]) +- Bump aiohomekit to 3.2.1 ([@bdraco] - [#122704]) +- Bump pyswitchbee to 1.8.3 ([@jafar-atili] - [#122713]) +- Bump ruff to 0.5.5 ([@autinerd] - [#122722]) +- Bump pyElectra to 1.2.4 ([@jafar-atili] - [#122724]) +- Create theme select entities on matrix devices ([@Djelibeybi] - [#122695]) +- Add yamaha platform retry if receiver unavailable at setup ([@pssc] - [#122679]) +- Add device info for legacy Ecovacs bots ([@mib1185] - [#122671]) +- Bump github/codeql-action from 3.25.13 to 3.25.14 (@dependabot - [#122632]) +- Bump mopeka-iot-ble to version 0.8.0 ([@cayossarian] - [#122717]) +- Add coverage for calling doorbird webhook with the wrong token ([@bdraco] - [#122700]) +- Unsubscribe event listeners on remove of Ecovacs legacy bot entities ([@mib1185] - [#122731]) +- Refactor asserts in enphase_envoy test_sensor ([@catsmanac] - [#122726]) +- Bump reolink-aio to 0.9.6 ([@starkillerOG] - [#122738]) +- Add config_flow to bluesound integration ([@LouisChrist] - [#115207]) +- Add LLM tools support for Ollama ([@Shulyaka] - [#120454]) +- Bump github/codeql-action from 3.25.14 to 3.25.15 (@dependabot - [#122753]) +- Fix bug in timeout util related to multiple global freezes ([@emontnemery] - [#122466]) +- Fix copy-paste errors in alarm_control_panel tests ([@emontnemery] - [#122755]) +- Revert unneeded type annotation in the api integration ([@emontnemery] - [#122757]) +- Don't block HA startup while set up legacy Ecovacs bot ([@mib1185] - [#122732]) +- Add Bryant Evolution Integration ([@danielsmyers] - [#119788]) +- Add coverage for fixing missing params in the doorbird schedule ([@bdraco] - [#122745]) +- Rename recorder INTEGRATION_PLATFORMS_RUN_IN_RECORDER_THREAD ([@emontnemery] - [#122758]) +- Adjust warning message when recorder is doing offline migration ([@emontnemery] - [#122509]) +- Do not use get_hub in deCONZ tests ([@Kane610] - [#122706]) +- Integration for IronOS (Pinecil V2) soldering irons ([@tr4nt0r] - [#120802]) +- Bump pyOverkiz to 1.13.14 ([@ALERTua] - [#122691]) +- Revert to using call_soon for event triggers and state changed event trackers ([@bdraco] - [#122735]) +- Add test of recorder platform with statistics support ([@emontnemery] - [#122754]) +- Bump bimmer_connected to 0.16.1 ([@rikroe] - [#122699]) +- Fix default turn_on without explicit preset or percentage in Matter Fan platform ([@marcelveldt] - [#122591]) +- Update LLM prompt to improve quality for local LLMs ([@allenporter] - [#122746]) +- Use HOMEASSISTANT_DOMAIN alias for core DOMAIN in tests ([@epenet] - [#122762]) +- Wait for initial scan to finish before setting up platforms ([@engrbm87] - [#122360]) +- Remove UE Smart Radio integration ([@andrew-codechimp] - [#122578]) +- Add Sonos tests for media_player volume ([@PeteRager] - [#122283]) +- Revert "Small refactor to cleanup unnecessary returns (#121653)" ([@epenet] - [#122756]) +- Use correct constant in rest tests ([@epenet] - [#122765]) +- Use HOMEASSISTANT_DOMAIN alias for core DOMAIN ([@epenet] - [#122760]) +- Fix device class of water consumption sensor in Overkiz ([@iMicknl] - [#122766]) +- Add Macedonian language ([@bramkragten] - [#122768]) +- Fix implicit-return rule in zha tests ([@epenet] - [#122772]) +- Remove support for live schema migration of old recorder databases ([@emontnemery] - [#122399]) +- Add missing variable 'energy_today' to Zeversolar diagnostics. ([@NECH2004] - [#122786]) +- Fix implicit-return in arcam_fmj tests ([@epenet] - [#122792]) +- Abstract SkyConnect firmware config flow to the hardware platform ([@puddly] - [#122140]) +- Fix implicit-return in unifiprotect tests ([@epenet] - [#122781]) +- Fix implicit-return in sonos tests ([@epenet] - [#122780]) +- Fix implicit-return in ipma tests ([@epenet] - [#122791]) +- Fix implicit-return in netatmo tests ([@epenet] - [#122789]) +- Bump aiohttp to 3.10.0rc0 ([@bdraco] - [#122793]) +- Fix implicit-return in enigma2 tests ([@epenet] - [#122790]) +- Fix implicit-return in xiaomi tests ([@epenet] - [#122778]) +- Fix implicit-return in nx584 tests ([@epenet] - [#122788]) +- Fix implicit-return in tplink_omada tests ([@epenet] - [#122776]) +- Fix implicit-return in surepetcare tests ([@epenet] - [#122785]) +- Fix incorrect Bang & Olufsen MDNS announcements ([@mj23000] - [#122782]) +- Add created_at/modified_at to config entries ([@edenhaus] - [#122456]) +- Fix implicit-return in season tests ([@epenet] - [#122784]) +- Enforce HOMEASSISTANT_DOMAIN alias for core DOMAIN ([@epenet] - [#122763]) +- Add support for ASIN Pool devices to ASEKO ([@milanmeu] - [#122773]) +- Remove unused constant in august ([@bdraco] - [#122804]) +- Adjust DOMAIN imports in homeassistant integration ([@epenet] - [#122774]) +- Fix implicit-return in websocket_api tests ([@epenet] - [#122779]) +- Fix implicit-return in test schema extractions ([@epenet] - [#122787]) +- Fix blocking stat() via is_file in image_upload ([@bdraco] - [#122808]) +- Add device _info to bluesound integration ([@LouisChrist] - [#122795]) +- Bump ZHA lib to 0.0.24 and universal-silabs-flasher to 0.0.22 ([@dmulcahey] - [#122812]) +- Enhance ZHA device removal ([@dmulcahey] - [#122815]) +- Fix supported_features for ZHA fans ([@dmulcahey] - [#122813]) +- Use snapshot in Axis switch tests ([@Kane610] - [#122680]) +- Fix implicit-return in command_line ([@epenet] - [#122838]) +- Bump voluptuous-openapi ([@Shulyaka] - [#122828]) +- Add 'use_custom_colors' to iOS Action configuration ([@bgoncal] - [#122767]) +- Add QBittorent switch to control alternative speed ([@Sebclem] - [#107637]) +- Add Foscam sleep switch ([@krmarien] - [#109491]) +- Add Airtouch5 cover tests ([@Denifia] - [#122769]) +- Fix implicit-return in denon ([@epenet] - [#122835]) +- Fix implicit-return in ddwrt ([@epenet] - [#122837]) +- Add UI to create KNX switch and light entities ([@farmio] - [#122630]) +- Fix implicit-return in whirlpool tests ([@epenet] - [#122775]) +- Fix qbittorent current_status key in strings.json ([@Sebclem] - [#122848]) +- Fix implicit-return in foursquare ([@epenet] - [#122843]) +- Fix implicit-return in forked_daapd ([@epenet] - [#122842]) +- Fix implicit-return in fixer ([@epenet] - [#122841]) +- Fix implicit-return in advantage_air ([@epenet] - [#122840]) +- Fix implicit-return in airtouch4 ([@epenet] - [#122839]) +- Fix implicit-return in dialogflow ([@epenet] - [#122834]) +- Fix implicit-return in dublin bus transport ([@epenet] - [#122833]) +- Fix implicit-return in ecobee ([@epenet] - [#122832]) +- Fix Axis tests affecting other tests ([@emontnemery] - [#122857]) +- Fix template binary sensor test ([@emontnemery] - [#122855]) +- Speed up slow tests in Husqvarna Automower ([@Thomas55555] - [#122854]) +- Fix template image test affecting other tests ([@emontnemery] - [#122849]) +- Fix generic IP camera tests affecting other tests ([@emontnemery] - [#122858]) +- Add mdi:alert-circle-outline to degrade status ([@Mariusthvdb] - [#122859]) +- Upgrade dsmr-parser to 1.4.2 ([@elupus] - [#121929]) +- Fix implicit-return in scripts ([@epenet] - [#122831]) +- Verify respx mock routes are cleaned up when tests finish ([@emontnemery] - [#122852]) +- Set parallel updates in devolo_home_network ([@Shutgun] - [#122847]) +- Ensure evohome leaves no lingering timers ([@zxdavb] - [#122860]) +- Add sensors for Unifi latency ([@kimdv] - [#116737]) +- Fix implicit-return in deconz ([@epenet] - [#122836]) +- Update selector converters for llm script tools ([@Shulyaka] - [#122830]) +- Add Traffic Rule switches to UniFi Network ([@bdowden] - [#118821]) +- Add apsystems power switch ([@CM000n] - [#122447]) +- Add number platform to IronOS integration ([@tr4nt0r] - [#122801]) +- Improve test coverage of the homeworks integration ([@emontnemery] - [#122865]) +- Unifi improve fixture typing ([@Kane610] - [#122864]) +- Bump pyhomeworks to 1.0.0 ([@emontnemery] - [#122867]) +- Add other medium types to Mopeka sensor ([@cayossarian] - [#122705]) +- Bump pyhomeworks to 1.1.0 ([@emontnemery] - [#122870]) +- Bump intents to 2024.7.29 ([@synesthesiam] - [#122811]) +- Bump aiohttp to 3.10.0 ([@bdraco] - [#122880]) +- Add SimpleFin sensor to show age of data ([@jeeftor] - [#122550]) +- Bump bluetooth-data-tools to 1.19.4 ([@bdraco] - [#122886]) +- Bump ulid-transform to 0.13.1 ([@bdraco] - [#122884]) +- Allow [##:##:##:##:##] type device address in homeworks ([@emontnemery] - [#122872]) +- Add generic URL handler to blueprint importer ([@lkstz] - [#110576]) +- Bump aioautomower to 2024.7.3 ([@Thomas55555] - [#121983]) +- Update xknx to 3.0.0 - more DPT definitions ([@farmio] - [#122891]) +- Evohome drops use of async_call_later to avoid lingering task ([@zxdavb] - [#122879]) +- Bump ollama to 0.3.1 ([@Shulyaka] - [#122866]) +- Update todo intent slot schema ([@Shulyaka] - [#122335]) +- Switch from WebRTC to microVAD ([@synesthesiam] - [#122861]) +- Fix matrix blocking call by running sync_forever in background_task ([@PaarthShah] - [#122800]) +- Fix blocking event loop call in matrix ([@PaarthShah] - [#122730]) +- Add support for login credentials to homeworks ([@emontnemery] - [#122877]) +- Log tests in test group ([@emontnemery] - [#122892]) +- KNX: use xknx 3.0.0 eager telegram decoding ([@farmio] - [#122896]) +- Bump pytrydan to 0.8.0 ([@dgomes] - [#122898]) +- Fix implicit-return in plant ([@epenet] - [#122903]) +- Add number entity for Ecovacs mower cut direction ([@adsmf] - [#122598]) +- Adds new sensors and configuration entities to V2C Trydan ([@dgomes] - [#122883]) +- Fix implicit-return in qnap ([@epenet] - [#122901]) +- Fix implicit-return in plaato ([@epenet] - [#122902]) +- Fix implicit-return in niko_home_control ([@epenet] - [#122904]) +- Fix implicit-return in maxcube ([@epenet] - [#122907]) +- Fix implicit-return in melissa ([@epenet] - [#122908]) +- Fix implicit-return in meraki ([@epenet] - [#122909]) +- Fix implicit-return in meteo_france ([@epenet] - [#122910]) +- Fix implicit-return in mystrom ([@epenet] - [#122911]) +- Fix implicit-return in landisgyr_heat_meter ([@epenet] - [#122912]) +- Bump velbusaio to 2024.07.06 ([@Cereal2nd] - [#122905]) +- Add graceful handling for LASTSTEST sensor in APCUPSD ([@yuxincs] - [#113125]) +- Fix implicit-return in kodi ([@epenet] - [#122914]) +- Fix implicit-return in homekit_controller ([@epenet] - [#122920]) +- Improve LLM tool quality by more clearly specifying device_class slots ([@allenporter] - [#122723]) +- Rename 'service' to 'action' in automations and scripts ([@frenck] - [#122845]) +- Improve quality of ollama tool calling by repairing arguments ([@allenporter] - [#122749]) +- Improve conversation agent tracing to help with eval and data collection ([@allenporter] - [#122542]) +- Fix implicit-return in transport_nsw ([@epenet] - [#122930]) +- Fix implicit-return in vera ([@epenet] - [#122934]) +- Fix implicit-return in shelly ([@epenet] - [#122926]) +- Fix implicit-return in time_date ([@epenet] - [#122929]) +- Add reconfigure step for here_travel_time ([@eifinger] - [#114667]) +- Warn that the minimum SQLite version will change to 3.40.1 as of 2025.2 ([@bdraco] - [#104298]) +- Move lifespan attributes into own sensors for legacy Ecovacs bots ([@mib1185] - [#122740]) +- Fix implicit-return in recorder ([@epenet] - [#122924]) +- Add enable_millisecond to duration selector ([@karwosts] - [#122821]) +- Add support for ventilation device to ViCare ([@CFenner] - [#114175]) +- Add Reolink chime support ([@starkillerOG] - [#122752]) +- Fix unnecessary-return-none in nest ([@epenet] - [#122951]) +- Update frontend to 20240731.0 ([@bramkragten] - [#122956]) +- Fix cleanup of orphan device entries in AVM Fritz!Box Tools ([@mib1185] - [#122937]) +- Switch to using update for headers middleware ([@bdraco] - [#122952]) +- Add default warning for installing matter device updates ([@marcelveldt] - [#122597]) +- Use pytest.mark.usefixtures in risco tests ([@epenet] - [#122955]) +- Fix implicit-return in hddtemp ([@epenet] - [#122919]) +- Simplify async_setup_entry in bluesound integration ([@LouisChrist] - [#122874]) +- Climate validate temperature(s) out of range ([@gjohansson-ST] - [#118649]) +- Add override for work areas in Husqvarna Automower ([@Thomas55555] - [#120427]) +- Fix handling of tplink light effects for scenes ([@sdb9696] - [#122965]) +- Fix unnecessary-return-none in telnet ([@epenet] - [#122949]) +- Fix unnecessary-return-none in iotty ([@epenet] - [#122947]) +- Bump python-kasa to 0.7.1 ([@sdb9696] - [#122967]) +- Extend Matter select entity ([@marcelveldt] - [#122513]) +- Fix Sonos media_player control may fail when grouping speakers ([@PeteRager] - [#121853]) +- Matter handle FeatureMap update ([@marcelveldt] - [#122544]) +- Use finished speaking detection in ESPHome/Wyoming ([@synesthesiam] - [#122962]) +- Fix implicit-return in garadget ([@epenet] - [#122923]) +- Rename variable in sensor tests ([@epenet] - [#122954]) +- Fix unnecessary-return-none in tradfri ([@epenet] - [#122950]) +- Remove aiohappyeyeballs license exception ([@bdraco] - [#122969]) +- Fix unnecessary-return-none in homematic ([@epenet] - [#122948]) +- Fix implicit-return in wyoming ([@epenet] - [#122946]) +- Drop unnecessary lambdas in the entity filter ([@bdraco] - [#122941]) +- Fix implicit-return in yamaha ([@epenet] - [#122942]) +- Fix implicit-return in xiaomi_aqara ([@epenet] - [#122940]) +- Fix implicit-return in xiaomi_miio ([@epenet] - [#122939]) +- Fix implicit-return in xiaomi ([@epenet] - [#122938]) +- Drop some unnecessary lambdas in powerwall ([@bdraco] - [#122936]) +- Fix implicit-return in wsdot ([@epenet] - [#122935]) +- Fix implicit-return in valve ([@epenet] - [#122933]) +- Fix implicit-return in uk_transport ([@epenet] - [#122932]) +- Fix implicit-return in twitter ([@epenet] - [#122931]) +- Fix implicit-return in smartthings ([@epenet] - [#122927]) +- Fix implicit-return in satel_integra ([@epenet] - [#122925]) +- Fix implicit-return in humidifier ([@epenet] - [#122921]) +- Fix implicit-return in itunes ([@epenet] - [#122917]) +- Fix implicit-return in irish_rail_transport ([@epenet] - [#122916]) +- Remove invalid type hint and assignment in number ([@epenet] - [#122906]) +- Add HVAC mode support for AtlanticPassAPCHeatPumpMainComponent (heati… ([@alexfp14] - [#122175]) +- Optionally return response data when calling services through the API ([@iamjackg] - [#115046]) +- Add Pinecil virtual integration supported by IronOS ([@tr4nt0r] - [#122803]) +- Add ElevenLabs text-to-speech integration ([@sorgfresser] - [#115645]) +- Bump pymicro-vad to 1.0.1 ([@synesthesiam] - [#122973]) +- Lyric: Properly tie room accessories to the data coordinator ([@dalinicus] - [#115902]) +- Velux use node id as fallback for unique id ([@DeerMaximum] - [#117508]) +- Fix translation key for power exchange sensor in ViCare ([@CFenner] - [#122339]) +- Add aliases to script llm tool description ([@Shulyaka] - [#122380]) +- Use text/multiple selector for input_select.set_options ([@karwosts] - [#122539]) +- Yolink device model adaptation ([@matrixd2] - [#122824]) +- Restrict nws.get_forecasts_extra selector to nws weather entities ([@karwosts] - [#122986]) +- Update doorbird error notification to be a repair flow ([@bdraco] - [#122987]) +- Fix yolink protocol changed ([@matrixd2] - [#122989]) +- Fix handling of directory type playlists in Plex ([@amccook] - [#122990]) +- Bump aioymaps to 1.2.5 ([@devbis] - [#123005]) +- Make the Android timer notification high priority ([@balloob] - [#123006]) +- Bump yolink api to 0.4.6 ([@matrixd2] - [#123012]) +- Fix and improve tedee lock states ([@edenhaus] - [#123022]) +- Standardize assist pipelines on 10ms chunk size ([@synesthesiam] - [#123024]) +- Make ZHA load quirks earlier ([@dmulcahey] - [#123027]) +- Fix doorbird models are missing the schedule API ([@bdraco] - [#123033]) +- Address post-merge reviews for KNX integration ([@farmio] - [#123038]) +- Mitigate breaking change for KNX climate schema ([@farmio] - [#123043]) +- Use freezer in KNX tests ([@farmio] - [#123044]) +- OpenAI make supported features reflect the config entry options ([@balloob] - [#123047]) +- Ollama implement CONTROL supported feature ([@balloob] - [#123049]) +- Correct type annotation for `EntityPlatform.async_register_entity_service` ([@emontnemery] - [#123054]) +- Add LinkPlay models ([@nagyrobi] - [#123056]) +- Add device class ([@Fabiann2205] - [#123059]) +- Correct squeezebox service ([@emontnemery] - [#123060]) +- LinkPlay: Bump python-linkplay to 0.0.6 ([@dukeofphilberg] - [#123062]) +- Add additional items to REPEAT_MAP in LinkPlay ([@dukeofphilberg] - [#123063]) +- Do not raise repair issue about missing integration in safe mode ([@joostlek] - [#123066]) +- Update frontend to 20240802.0 ([@bramkragten] - [#123072]) +- Update greeclimate to 2.0.0 ([@cmroche] - [#121030]) +- Add CONTROL supported feature to Google conversation when API access ([@balloob] - [#123046]) +- Change enum type to string for Google Generative AI Conversation ([@Shulyaka] - [#123069]) +- Catch exception in coordinator setup of IronOS integration ([@tr4nt0r] - [#123079]) +- Ignore Shelly IPv6 address in zeroconf ([@thecode] - [#123081]) +- Fix wrong DeviceInfo in bluesound integration ([@LouisChrist] - [#123101]) +- Bump pyenphase to 1.22.0 ([@catsmanac] - [#123103]) +- Use slugify to create id for UniFi WAN latency ([@kimdv] - [#123108]) +- Bump ZHA lib to 0.0.27 ([@dmulcahey] - [#123125]) +- Restore old service worker URL ([@steverep] - [#123131]) +- dsmr: migrate hourly_gas_meter_reading to mbus device ([@dupondje] - [#123149]) +- Bump aiohttp to 3.10.1 ([@bdraco] - [#123159]) +- Fix class attribute condition in Tesla Fleet ([@Bre77] - [#123162]) +- Add Govee H612B to the Matter transition blocklist ([@kepstin] - [#123163]) +- Use KNX UI entity platform controller class ([@farmio] - [#123128]) +- Add Matter Leedarson RGBTW Bulb to the transition blocklist ([@musapinar] - [#123182]) +- Fix MPD issue creation ([@joostlek] - [#123187]) +- Fix state icon for closed valve entities ([@Mariusthvdb] - [#123190]) +- Update frontend to 20240805.1 ([@bramkragten] - [#123196]) +- Mark tag to be an entity component ([@frenck] - [#123200]) +- Mark assist_pipeline as a system integration type ([@frenck] - [#123202]) +- Mark webhook as a system integration type ([@frenck] - [#123204]) +- Fix yamaha legacy receivers ([@Petro31] - [#122985]) +- Add support for ESPHome update entities to be checked on demand ([@jesserockz] - [#123161]) +- Show project version as `sw_version` in ESPHome ([@jesserockz] - [#123183]) +- Fix growatt server tlx battery api key ([@flopp999] - [#123191]) +- Update greeclimate to 2.1.0 ([@cmroche] - [#123210]) +- Update knx-frontend to 2024.8.6.85349 ([@farmio] - [#123226]) +- Bump yt-dlp to 2023.08.06 ([@joostlek] - [#123229]) +- Update frontend to 20240806.0 ([@frenck] - [#123230]) +- Mark Alexa integration as system type ([@frenck] - [#123232]) +- Mark Google Assistant integration as system type ([@frenck] - [#123233]) +- Fix Tami4 device name is None ([@Yehazkel] - [#123156]) +- Delete mobile_app cloudhook if not logged into the cloud ([@edenhaus] - [#123234]) +- Mark FFmpeg integration as system type ([@frenck] - [#123241]) +- Fix sense doing blocking I/O in the event loop ([@bdraco] - [#123247]) +- Bump deebot-client to 8.3.0 ([@edenhaus] - [#123249]) +- Bump mficlient to 0.5.0 ([@joostlek] - [#123250]) +- Update frontend to 20240806.1 ([@frenck] - [#123252]) +- Adapt static resource handler to aiohttp 3.10 ([@steverep] - [#123166]) +- Bump ZHA to 0.0.28 ([@puddly] - [#123259]) +- Update knx-frontend to 2024.8.6.211307 ([@farmio] - [#123261]) +- Bump reolink-aio to 0.9.7 ([@starkillerOG] - [#123263]) +- Allow non-admins to subscribe to newer registry update events ([@bdraco] - [#123267]) +- Update ESPHome voice assistant pipeline log warning ([@jesserockz] - [#123269]) +- Fix Google Cloud TTS not respecting config values ([@tronikos] - [#123275]) +- Tado change repair issue ([@erwindouna] - [#123256]) +- Reload conversation entries on update ([@balloob] - [#123279]) +- Fix typo on one of islamic_prayer_times calculation_method option ([@lunmay] - [#123281]) +- Add missing application credential to Tesla Fleet ([@Bre77] - [#123271]) +- Update wled to 0.20.1 ([@frenck] - [#123283]) +- Revert "Upgrade pycoolmasternet-async to 0.2.0" ([@ashalita] - [#123286]) +- Drop Matter Microwave Oven Mode select entity ([@agners] - [#123294]) +- Bump intents to 2024.8.7 ([@synesthesiam] - [#123295]) + +[#103073]: https://github.com/home-assistant/core/pull/103073 +[#104079]: https://github.com/home-assistant/core/pull/104079 +[#104298]: https://github.com/home-assistant/core/pull/104298 +[#105871]: https://github.com/home-assistant/core/pull/105871 +[#107637]: https://github.com/home-assistant/core/pull/107637 +[#108282]: https://github.com/home-assistant/core/pull/108282 +[#108336]: https://github.com/home-assistant/core/pull/108336 +[#109221]: https://github.com/home-assistant/core/pull/109221 +[#109491]: https://github.com/home-assistant/core/pull/109491 +[#109900]: https://github.com/home-assistant/core/pull/109900 +[#110576]: https://github.com/home-assistant/core/pull/110576 +[#111651]: https://github.com/home-assistant/core/pull/111651 +[#113125]: https://github.com/home-assistant/core/pull/113125 +[#113261]: https://github.com/home-assistant/core/pull/113261 +[#113940]: https://github.com/home-assistant/core/pull/113940 +[#114175]: https://github.com/home-assistant/core/pull/114175 +[#114665]: https://github.com/home-assistant/core/pull/114665 +[#114667]: https://github.com/home-assistant/core/pull/114667 +[#114896]: https://github.com/home-assistant/core/pull/114896 +[#115046]: https://github.com/home-assistant/core/pull/115046 +[#115207]: https://github.com/home-assistant/core/pull/115207 +[#115456]: https://github.com/home-assistant/core/pull/115456 +[#115645]: https://github.com/home-assistant/core/pull/115645 +[#115684]: https://github.com/home-assistant/core/pull/115684 +[#115802]: https://github.com/home-assistant/core/pull/115802 +[#115901]: https://github.com/home-assistant/core/pull/115901 +[#115902]: https://github.com/home-assistant/core/pull/115902 +[#116052]: https://github.com/home-assistant/core/pull/116052 +[#116102]: https://github.com/home-assistant/core/pull/116102 +[#116173]: https://github.com/home-assistant/core/pull/116173 +[#116198]: https://github.com/home-assistant/core/pull/116198 +[#116200]: https://github.com/home-assistant/core/pull/116200 +[#116267]: https://github.com/home-assistant/core/pull/116267 +[#116302]: https://github.com/home-assistant/core/pull/116302 +[#116655]: https://github.com/home-assistant/core/pull/116655 +[#116656]: https://github.com/home-assistant/core/pull/116656 +[#116677]: https://github.com/home-assistant/core/pull/116677 +[#116737]: https://github.com/home-assistant/core/pull/116737 +[#117254]: https://github.com/home-assistant/core/pull/117254 +[#117257]: https://github.com/home-assistant/core/pull/117257 +[#117508]: https://github.com/home-assistant/core/pull/117508 +[#117689]: https://github.com/home-assistant/core/pull/117689 +[#117791]: https://github.com/home-assistant/core/pull/117791 +[#117984]: https://github.com/home-assistant/core/pull/117984 +[#117987]: https://github.com/home-assistant/core/pull/117987 +[#118147]: https://github.com/home-assistant/core/pull/118147 +[#118335]: https://github.com/home-assistant/core/pull/118335 +[#118375]: https://github.com/home-assistant/core/pull/118375 +[#118613]: https://github.com/home-assistant/core/pull/118613 +[#118649]: https://github.com/home-assistant/core/pull/118649 +[#118661]: https://github.com/home-assistant/core/pull/118661 +[#118679]: https://github.com/home-assistant/core/pull/118679 +[#118821]: https://github.com/home-assistant/core/pull/118821 +[#118833]: https://github.com/home-assistant/core/pull/118833 +[#119170]: https://github.com/home-assistant/core/pull/119170 +[#119172]: https://github.com/home-assistant/core/pull/119172 +[#119196]: https://github.com/home-assistant/core/pull/119196 +[#119341]: https://github.com/home-assistant/core/pull/119341 +[#119432]: https://github.com/home-assistant/core/pull/119432 +[#119556]: https://github.com/home-assistant/core/pull/119556 +[#119769]: https://github.com/home-assistant/core/pull/119769 +[#119788]: https://github.com/home-assistant/core/pull/119788 +[#119805]: https://github.com/home-assistant/core/pull/119805 +[#119852]: https://github.com/home-assistant/core/pull/119852 +[#119932]: https://github.com/home-assistant/core/pull/119932 +[#120030]: https://github.com/home-assistant/core/pull/120030 +[#120190]: https://github.com/home-assistant/core/pull/120190 +[#120255]: https://github.com/home-assistant/core/pull/120255 +[#120262]: https://github.com/home-assistant/core/pull/120262 +[#120263]: https://github.com/home-assistant/core/pull/120263 +[#120267]: https://github.com/home-assistant/core/pull/120267 +[#120270]: https://github.com/home-assistant/core/pull/120270 +[#120304]: https://github.com/home-assistant/core/pull/120304 +[#120356]: https://github.com/home-assistant/core/pull/120356 +[#120382]: https://github.com/home-assistant/core/pull/120382 +[#120427]: https://github.com/home-assistant/core/pull/120427 +[#120434]: https://github.com/home-assistant/core/pull/120434 +[#120436]: https://github.com/home-assistant/core/pull/120436 +[#120454]: https://github.com/home-assistant/core/pull/120454 +[#120488]: https://github.com/home-assistant/core/pull/120488 +[#120517]: https://github.com/home-assistant/core/pull/120517 +[#120571]: https://github.com/home-assistant/core/pull/120571 +[#120577]: https://github.com/home-assistant/core/pull/120577 +[#120578]: https://github.com/home-assistant/core/pull/120578 +[#120580]: https://github.com/home-assistant/core/pull/120580 +[#120604]: https://github.com/home-assistant/core/pull/120604 +[#120606]: https://github.com/home-assistant/core/pull/120606 +[#120610]: https://github.com/home-assistant/core/pull/120610 +[#120611]: https://github.com/home-assistant/core/pull/120611 +[#120615]: https://github.com/home-assistant/core/pull/120615 +[#120620]: https://github.com/home-assistant/core/pull/120620 +[#120631]: https://github.com/home-assistant/core/pull/120631 +[#120641]: https://github.com/home-assistant/core/pull/120641 +[#120642]: https://github.com/home-assistant/core/pull/120642 +[#120645]: https://github.com/home-assistant/core/pull/120645 +[#120653]: https://github.com/home-assistant/core/pull/120653 +[#120654]: https://github.com/home-assistant/core/pull/120654 +[#120655]: https://github.com/home-assistant/core/pull/120655 +[#120664]: https://github.com/home-assistant/core/pull/120664 +[#120671]: https://github.com/home-assistant/core/pull/120671 +[#120674]: https://github.com/home-assistant/core/pull/120674 +[#120675]: https://github.com/home-assistant/core/pull/120675 +[#120676]: https://github.com/home-assistant/core/pull/120676 +[#120677]: https://github.com/home-assistant/core/pull/120677 +[#120679]: https://github.com/home-assistant/core/pull/120679 +[#120681]: https://github.com/home-assistant/core/pull/120681 +[#120683]: https://github.com/home-assistant/core/pull/120683 +[#120701]: https://github.com/home-assistant/core/pull/120701 +[#120708]: https://github.com/home-assistant/core/pull/120708 +[#120719]: https://github.com/home-assistant/core/pull/120719 +[#120722]: https://github.com/home-assistant/core/pull/120722 +[#120723]: https://github.com/home-assistant/core/pull/120723 +[#120725]: https://github.com/home-assistant/core/pull/120725 +[#120728]: https://github.com/home-assistant/core/pull/120728 +[#120729]: https://github.com/home-assistant/core/pull/120729 +[#120730]: https://github.com/home-assistant/core/pull/120730 +[#120731]: https://github.com/home-assistant/core/pull/120731 +[#120732]: https://github.com/home-assistant/core/pull/120732 +[#120733]: https://github.com/home-assistant/core/pull/120733 +[#120734]: https://github.com/home-assistant/core/pull/120734 +[#120735]: https://github.com/home-assistant/core/pull/120735 +[#120736]: https://github.com/home-assistant/core/pull/120736 +[#120738]: https://github.com/home-assistant/core/pull/120738 +[#120739]: https://github.com/home-assistant/core/pull/120739 +[#120749]: https://github.com/home-assistant/core/pull/120749 +[#120759]: https://github.com/home-assistant/core/pull/120759 +[#120761]: https://github.com/home-assistant/core/pull/120761 +[#120763]: https://github.com/home-assistant/core/pull/120763 +[#120764]: https://github.com/home-assistant/core/pull/120764 +[#120767]: https://github.com/home-assistant/core/pull/120767 +[#120768]: https://github.com/home-assistant/core/pull/120768 +[#120771]: https://github.com/home-assistant/core/pull/120771 +[#120772]: https://github.com/home-assistant/core/pull/120772 +[#120773]: https://github.com/home-assistant/core/pull/120773 +[#120789]: https://github.com/home-assistant/core/pull/120789 +[#120794]: https://github.com/home-assistant/core/pull/120794 +[#120795]: https://github.com/home-assistant/core/pull/120795 +[#120796]: https://github.com/home-assistant/core/pull/120796 +[#120799]: https://github.com/home-assistant/core/pull/120799 +[#120802]: https://github.com/home-assistant/core/pull/120802 +[#120803]: https://github.com/home-assistant/core/pull/120803 +[#120819]: https://github.com/home-assistant/core/pull/120819 +[#120824]: https://github.com/home-assistant/core/pull/120824 +[#120829]: https://github.com/home-assistant/core/pull/120829 +[#120830]: https://github.com/home-assistant/core/pull/120830 +[#120831]: https://github.com/home-assistant/core/pull/120831 +[#120832]: https://github.com/home-assistant/core/pull/120832 +[#120834]: https://github.com/home-assistant/core/pull/120834 +[#120837]: https://github.com/home-assistant/core/pull/120837 +[#120843]: https://github.com/home-assistant/core/pull/120843 +[#120844]: https://github.com/home-assistant/core/pull/120844 +[#120845]: https://github.com/home-assistant/core/pull/120845 +[#120847]: https://github.com/home-assistant/core/pull/120847 +[#120848]: https://github.com/home-assistant/core/pull/120848 +[#120849]: https://github.com/home-assistant/core/pull/120849 +[#120850]: https://github.com/home-assistant/core/pull/120850 +[#120851]: https://github.com/home-assistant/core/pull/120851 +[#120852]: https://github.com/home-assistant/core/pull/120852 +[#120853]: https://github.com/home-assistant/core/pull/120853 +[#120863]: https://github.com/home-assistant/core/pull/120863 +[#120864]: https://github.com/home-assistant/core/pull/120864 +[#120866]: https://github.com/home-assistant/core/pull/120866 +[#120874]: https://github.com/home-assistant/core/pull/120874 +[#120878]: https://github.com/home-assistant/core/pull/120878 +[#120882]: https://github.com/home-assistant/core/pull/120882 +[#120883]: https://github.com/home-assistant/core/pull/120883 +[#120884]: https://github.com/home-assistant/core/pull/120884 +[#120886]: https://github.com/home-assistant/core/pull/120886 +[#120889]: https://github.com/home-assistant/core/pull/120889 +[#120895]: https://github.com/home-assistant/core/pull/120895 +[#120899]: https://github.com/home-assistant/core/pull/120899 +[#120901]: https://github.com/home-assistant/core/pull/120901 +[#120902]: https://github.com/home-assistant/core/pull/120902 +[#120903]: https://github.com/home-assistant/core/pull/120903 +[#120904]: https://github.com/home-assistant/core/pull/120904 +[#120905]: https://github.com/home-assistant/core/pull/120905 +[#120906]: https://github.com/home-assistant/core/pull/120906 +[#120910]: https://github.com/home-assistant/core/pull/120910 +[#120911]: https://github.com/home-assistant/core/pull/120911 +[#120914]: https://github.com/home-assistant/core/pull/120914 +[#120915]: https://github.com/home-assistant/core/pull/120915 +[#120916]: https://github.com/home-assistant/core/pull/120916 +[#120917]: https://github.com/home-assistant/core/pull/120917 +[#120920]: https://github.com/home-assistant/core/pull/120920 +[#120921]: https://github.com/home-assistant/core/pull/120921 +[#120922]: https://github.com/home-assistant/core/pull/120922 +[#120923]: https://github.com/home-assistant/core/pull/120923 +[#120927]: https://github.com/home-assistant/core/pull/120927 +[#120928]: https://github.com/home-assistant/core/pull/120928 +[#120929]: https://github.com/home-assistant/core/pull/120929 +[#120930]: https://github.com/home-assistant/core/pull/120930 +[#120931]: https://github.com/home-assistant/core/pull/120931 +[#120932]: https://github.com/home-assistant/core/pull/120932 +[#120933]: https://github.com/home-assistant/core/pull/120933 +[#120934]: https://github.com/home-assistant/core/pull/120934 +[#120935]: https://github.com/home-assistant/core/pull/120935 +[#120936]: https://github.com/home-assistant/core/pull/120936 +[#120937]: https://github.com/home-assistant/core/pull/120937 +[#120938]: https://github.com/home-assistant/core/pull/120938 +[#120943]: https://github.com/home-assistant/core/pull/120943 +[#120944]: https://github.com/home-assistant/core/pull/120944 +[#120947]: https://github.com/home-assistant/core/pull/120947 +[#120948]: https://github.com/home-assistant/core/pull/120948 +[#120949]: https://github.com/home-assistant/core/pull/120949 +[#120951]: https://github.com/home-assistant/core/pull/120951 +[#120953]: https://github.com/home-assistant/core/pull/120953 +[#120954]: https://github.com/home-assistant/core/pull/120954 +[#120958]: https://github.com/home-assistant/core/pull/120958 +[#120966]: https://github.com/home-assistant/core/pull/120966 +[#120967]: https://github.com/home-assistant/core/pull/120967 +[#120968]: https://github.com/home-assistant/core/pull/120968 +[#120975]: https://github.com/home-assistant/core/pull/120975 +[#120983]: https://github.com/home-assistant/core/pull/120983 +[#120984]: https://github.com/home-assistant/core/pull/120984 +[#120986]: https://github.com/home-assistant/core/pull/120986 +[#120987]: https://github.com/home-assistant/core/pull/120987 +[#120988]: https://github.com/home-assistant/core/pull/120988 +[#120990]: https://github.com/home-assistant/core/pull/120990 +[#120991]: https://github.com/home-assistant/core/pull/120991 +[#120992]: https://github.com/home-assistant/core/pull/120992 +[#120994]: https://github.com/home-assistant/core/pull/120994 +[#120995]: https://github.com/home-assistant/core/pull/120995 +[#120996]: https://github.com/home-assistant/core/pull/120996 +[#120997]: https://github.com/home-assistant/core/pull/120997 +[#120998]: https://github.com/home-assistant/core/pull/120998 +[#120999]: https://github.com/home-assistant/core/pull/120999 +[#121000]: https://github.com/home-assistant/core/pull/121000 +[#121001]: https://github.com/home-assistant/core/pull/121001 +[#121002]: https://github.com/home-assistant/core/pull/121002 +[#121003]: https://github.com/home-assistant/core/pull/121003 +[#121004]: https://github.com/home-assistant/core/pull/121004 +[#121005]: https://github.com/home-assistant/core/pull/121005 +[#121009]: https://github.com/home-assistant/core/pull/121009 +[#121010]: https://github.com/home-assistant/core/pull/121010 +[#121012]: https://github.com/home-assistant/core/pull/121012 +[#121013]: https://github.com/home-assistant/core/pull/121013 +[#121014]: https://github.com/home-assistant/core/pull/121014 +[#121015]: https://github.com/home-assistant/core/pull/121015 +[#121017]: https://github.com/home-assistant/core/pull/121017 +[#121019]: https://github.com/home-assistant/core/pull/121019 +[#121020]: https://github.com/home-assistant/core/pull/121020 +[#121025]: https://github.com/home-assistant/core/pull/121025 +[#121028]: https://github.com/home-assistant/core/pull/121028 +[#121030]: https://github.com/home-assistant/core/pull/121030 +[#121034]: https://github.com/home-assistant/core/pull/121034 +[#121036]: https://github.com/home-assistant/core/pull/121036 +[#121041]: https://github.com/home-assistant/core/pull/121041 +[#121043]: https://github.com/home-assistant/core/pull/121043 +[#121047]: https://github.com/home-assistant/core/pull/121047 +[#121048]: https://github.com/home-assistant/core/pull/121048 +[#121050]: https://github.com/home-assistant/core/pull/121050 +[#121051]: https://github.com/home-assistant/core/pull/121051 +[#121052]: https://github.com/home-assistant/core/pull/121052 +[#121053]: https://github.com/home-assistant/core/pull/121053 +[#121054]: https://github.com/home-assistant/core/pull/121054 +[#121055]: https://github.com/home-assistant/core/pull/121055 +[#121056]: https://github.com/home-assistant/core/pull/121056 +[#121057]: https://github.com/home-assistant/core/pull/121057 +[#121060]: https://github.com/home-assistant/core/pull/121060 +[#121064]: https://github.com/home-assistant/core/pull/121064 +[#121066]: https://github.com/home-assistant/core/pull/121066 +[#121068]: https://github.com/home-assistant/core/pull/121068 +[#121069]: https://github.com/home-assistant/core/pull/121069 +[#121077]: https://github.com/home-assistant/core/pull/121077 +[#121079]: https://github.com/home-assistant/core/pull/121079 +[#121081]: https://github.com/home-assistant/core/pull/121081 +[#121083]: https://github.com/home-assistant/core/pull/121083 +[#121085]: https://github.com/home-assistant/core/pull/121085 +[#121086]: https://github.com/home-assistant/core/pull/121086 +[#121089]: https://github.com/home-assistant/core/pull/121089 +[#121093]: https://github.com/home-assistant/core/pull/121093 +[#121097]: https://github.com/home-assistant/core/pull/121097 +[#121098]: https://github.com/home-assistant/core/pull/121098 +[#121100]: https://github.com/home-assistant/core/pull/121100 +[#121101]: https://github.com/home-assistant/core/pull/121101 +[#121103]: https://github.com/home-assistant/core/pull/121103 +[#121104]: https://github.com/home-assistant/core/pull/121104 +[#121108]: https://github.com/home-assistant/core/pull/121108 +[#121112]: https://github.com/home-assistant/core/pull/121112 +[#121114]: https://github.com/home-assistant/core/pull/121114 +[#121116]: https://github.com/home-assistant/core/pull/121116 +[#121118]: https://github.com/home-assistant/core/pull/121118 +[#121121]: https://github.com/home-assistant/core/pull/121121 +[#121123]: https://github.com/home-assistant/core/pull/121123 +[#121125]: https://github.com/home-assistant/core/pull/121125 +[#121126]: https://github.com/home-assistant/core/pull/121126 +[#121127]: https://github.com/home-assistant/core/pull/121127 +[#121128]: https://github.com/home-assistant/core/pull/121128 +[#121133]: https://github.com/home-assistant/core/pull/121133 +[#121136]: https://github.com/home-assistant/core/pull/121136 +[#121137]: https://github.com/home-assistant/core/pull/121137 +[#121139]: https://github.com/home-assistant/core/pull/121139 +[#121140]: https://github.com/home-assistant/core/pull/121140 +[#121141]: https://github.com/home-assistant/core/pull/121141 +[#121142]: https://github.com/home-assistant/core/pull/121142 +[#121143]: https://github.com/home-assistant/core/pull/121143 +[#121144]: https://github.com/home-assistant/core/pull/121144 +[#121146]: https://github.com/home-assistant/core/pull/121146 +[#121148]: https://github.com/home-assistant/core/pull/121148 +[#121161]: https://github.com/home-assistant/core/pull/121161 +[#121162]: https://github.com/home-assistant/core/pull/121162 +[#121166]: https://github.com/home-assistant/core/pull/121166 +[#121167]: https://github.com/home-assistant/core/pull/121167 +[#121168]: https://github.com/home-assistant/core/pull/121168 +[#121169]: https://github.com/home-assistant/core/pull/121169 +[#121170]: https://github.com/home-assistant/core/pull/121170 +[#121171]: https://github.com/home-assistant/core/pull/121171 +[#121172]: https://github.com/home-assistant/core/pull/121172 +[#121173]: https://github.com/home-assistant/core/pull/121173 +[#121174]: https://github.com/home-assistant/core/pull/121174 +[#121175]: https://github.com/home-assistant/core/pull/121175 +[#121176]: https://github.com/home-assistant/core/pull/121176 +[#121180]: https://github.com/home-assistant/core/pull/121180 +[#121182]: https://github.com/home-assistant/core/pull/121182 +[#121184]: https://github.com/home-assistant/core/pull/121184 +[#121187]: https://github.com/home-assistant/core/pull/121187 +[#121189]: https://github.com/home-assistant/core/pull/121189 +[#121193]: https://github.com/home-assistant/core/pull/121193 +[#121196]: https://github.com/home-assistant/core/pull/121196 +[#121203]: https://github.com/home-assistant/core/pull/121203 +[#121204]: https://github.com/home-assistant/core/pull/121204 +[#121208]: https://github.com/home-assistant/core/pull/121208 +[#121210]: https://github.com/home-assistant/core/pull/121210 +[#121211]: https://github.com/home-assistant/core/pull/121211 +[#121212]: https://github.com/home-assistant/core/pull/121212 +[#121213]: https://github.com/home-assistant/core/pull/121213 +[#121217]: https://github.com/home-assistant/core/pull/121217 +[#121221]: https://github.com/home-assistant/core/pull/121221 +[#121223]: https://github.com/home-assistant/core/pull/121223 +[#121227]: https://github.com/home-assistant/core/pull/121227 +[#121236]: https://github.com/home-assistant/core/pull/121236 +[#121242]: https://github.com/home-assistant/core/pull/121242 +[#121244]: https://github.com/home-assistant/core/pull/121244 +[#121257]: https://github.com/home-assistant/core/pull/121257 +[#121260]: https://github.com/home-assistant/core/pull/121260 +[#121261]: https://github.com/home-assistant/core/pull/121261 +[#121262]: https://github.com/home-assistant/core/pull/121262 +[#121263]: https://github.com/home-assistant/core/pull/121263 +[#121265]: https://github.com/home-assistant/core/pull/121265 +[#121271]: https://github.com/home-assistant/core/pull/121271 +[#121273]: https://github.com/home-assistant/core/pull/121273 +[#121275]: https://github.com/home-assistant/core/pull/121275 +[#121278]: https://github.com/home-assistant/core/pull/121278 +[#121285]: https://github.com/home-assistant/core/pull/121285 +[#121286]: https://github.com/home-assistant/core/pull/121286 +[#121293]: https://github.com/home-assistant/core/pull/121293 +[#121294]: https://github.com/home-assistant/core/pull/121294 +[#121298]: https://github.com/home-assistant/core/pull/121298 +[#121302]: https://github.com/home-assistant/core/pull/121302 +[#121303]: https://github.com/home-assistant/core/pull/121303 +[#121305]: https://github.com/home-assistant/core/pull/121305 +[#121308]: https://github.com/home-assistant/core/pull/121308 +[#121309]: https://github.com/home-assistant/core/pull/121309 +[#121311]: https://github.com/home-assistant/core/pull/121311 +[#121312]: https://github.com/home-assistant/core/pull/121312 +[#121313]: https://github.com/home-assistant/core/pull/121313 +[#121320]: https://github.com/home-assistant/core/pull/121320 +[#121321]: https://github.com/home-assistant/core/pull/121321 +[#121323]: https://github.com/home-assistant/core/pull/121323 +[#121324]: https://github.com/home-assistant/core/pull/121324 +[#121330]: https://github.com/home-assistant/core/pull/121330 +[#121332]: https://github.com/home-assistant/core/pull/121332 +[#121333]: https://github.com/home-assistant/core/pull/121333 +[#121334]: https://github.com/home-assistant/core/pull/121334 +[#121346]: https://github.com/home-assistant/core/pull/121346 +[#121348]: https://github.com/home-assistant/core/pull/121348 +[#121349]: https://github.com/home-assistant/core/pull/121349 +[#121354]: https://github.com/home-assistant/core/pull/121354 +[#121356]: https://github.com/home-assistant/core/pull/121356 +[#121359]: https://github.com/home-assistant/core/pull/121359 +[#121360]: https://github.com/home-assistant/core/pull/121360 +[#121373]: https://github.com/home-assistant/core/pull/121373 +[#121374]: https://github.com/home-assistant/core/pull/121374 +[#121380]: https://github.com/home-assistant/core/pull/121380 +[#121381]: https://github.com/home-assistant/core/pull/121381 +[#121388]: https://github.com/home-assistant/core/pull/121388 +[#121392]: https://github.com/home-assistant/core/pull/121392 +[#121396]: https://github.com/home-assistant/core/pull/121396 +[#121399]: https://github.com/home-assistant/core/pull/121399 +[#121405]: https://github.com/home-assistant/core/pull/121405 +[#121407]: https://github.com/home-assistant/core/pull/121407 +[#121410]: https://github.com/home-assistant/core/pull/121410 +[#121413]: https://github.com/home-assistant/core/pull/121413 +[#121418]: https://github.com/home-assistant/core/pull/121418 +[#121425]: https://github.com/home-assistant/core/pull/121425 +[#121427]: https://github.com/home-assistant/core/pull/121427 +[#121428]: https://github.com/home-assistant/core/pull/121428 +[#121435]: https://github.com/home-assistant/core/pull/121435 +[#121439]: https://github.com/home-assistant/core/pull/121439 +[#121443]: https://github.com/home-assistant/core/pull/121443 +[#121444]: https://github.com/home-assistant/core/pull/121444 +[#121447]: https://github.com/home-assistant/core/pull/121447 +[#121448]: https://github.com/home-assistant/core/pull/121448 +[#121454]: https://github.com/home-assistant/core/pull/121454 +[#121461]: https://github.com/home-assistant/core/pull/121461 +[#121462]: https://github.com/home-assistant/core/pull/121462 +[#121463]: https://github.com/home-assistant/core/pull/121463 +[#121464]: https://github.com/home-assistant/core/pull/121464 +[#121465]: https://github.com/home-assistant/core/pull/121465 +[#121469]: https://github.com/home-assistant/core/pull/121469 +[#121470]: https://github.com/home-assistant/core/pull/121470 +[#121472]: https://github.com/home-assistant/core/pull/121472 +[#121476]: https://github.com/home-assistant/core/pull/121476 +[#121490]: https://github.com/home-assistant/core/pull/121490 +[#121491]: https://github.com/home-assistant/core/pull/121491 +[#121493]: https://github.com/home-assistant/core/pull/121493 +[#121498]: https://github.com/home-assistant/core/pull/121498 +[#121501]: https://github.com/home-assistant/core/pull/121501 +[#121504]: https://github.com/home-assistant/core/pull/121504 +[#121505]: https://github.com/home-assistant/core/pull/121505 +[#121506]: https://github.com/home-assistant/core/pull/121506 +[#121507]: https://github.com/home-assistant/core/pull/121507 +[#121508]: https://github.com/home-assistant/core/pull/121508 +[#121509]: https://github.com/home-assistant/core/pull/121509 +[#121510]: https://github.com/home-assistant/core/pull/121510 +[#121512]: https://github.com/home-assistant/core/pull/121512 +[#121514]: https://github.com/home-assistant/core/pull/121514 +[#121516]: https://github.com/home-assistant/core/pull/121516 +[#121517]: https://github.com/home-assistant/core/pull/121517 +[#121518]: https://github.com/home-assistant/core/pull/121518 +[#121519]: https://github.com/home-assistant/core/pull/121519 +[#121520]: https://github.com/home-assistant/core/pull/121520 +[#121523]: https://github.com/home-assistant/core/pull/121523 +[#121531]: https://github.com/home-assistant/core/pull/121531 +[#121534]: https://github.com/home-assistant/core/pull/121534 +[#121536]: https://github.com/home-assistant/core/pull/121536 +[#121539]: https://github.com/home-assistant/core/pull/121539 +[#121552]: https://github.com/home-assistant/core/pull/121552 +[#121555]: https://github.com/home-assistant/core/pull/121555 +[#121561]: https://github.com/home-assistant/core/pull/121561 +[#121569]: https://github.com/home-assistant/core/pull/121569 +[#121576]: https://github.com/home-assistant/core/pull/121576 +[#121578]: https://github.com/home-assistant/core/pull/121578 +[#121579]: https://github.com/home-assistant/core/pull/121579 +[#121585]: https://github.com/home-assistant/core/pull/121585 +[#121588]: https://github.com/home-assistant/core/pull/121588 +[#121589]: https://github.com/home-assistant/core/pull/121589 +[#121592]: https://github.com/home-assistant/core/pull/121592 +[#121593]: https://github.com/home-assistant/core/pull/121593 +[#121594]: https://github.com/home-assistant/core/pull/121594 +[#121598]: https://github.com/home-assistant/core/pull/121598 +[#121600]: https://github.com/home-assistant/core/pull/121600 +[#121602]: https://github.com/home-assistant/core/pull/121602 +[#121604]: https://github.com/home-assistant/core/pull/121604 +[#121605]: https://github.com/home-assistant/core/pull/121605 +[#121608]: https://github.com/home-assistant/core/pull/121608 +[#121613]: https://github.com/home-assistant/core/pull/121613 +[#121616]: https://github.com/home-assistant/core/pull/121616 +[#121617]: https://github.com/home-assistant/core/pull/121617 +[#121619]: https://github.com/home-assistant/core/pull/121619 +[#121623]: https://github.com/home-assistant/core/pull/121623 +[#121624]: https://github.com/home-assistant/core/pull/121624 +[#121627]: https://github.com/home-assistant/core/pull/121627 +[#121628]: https://github.com/home-assistant/core/pull/121628 +[#121631]: https://github.com/home-assistant/core/pull/121631 +[#121633]: https://github.com/home-assistant/core/pull/121633 +[#121637]: https://github.com/home-assistant/core/pull/121637 +[#121639]: https://github.com/home-assistant/core/pull/121639 +[#121640]: https://github.com/home-assistant/core/pull/121640 +[#121641]: https://github.com/home-assistant/core/pull/121641 +[#121642]: https://github.com/home-assistant/core/pull/121642 +[#121643]: https://github.com/home-assistant/core/pull/121643 +[#121644]: https://github.com/home-assistant/core/pull/121644 +[#121645]: https://github.com/home-assistant/core/pull/121645 +[#121646]: https://github.com/home-assistant/core/pull/121646 +[#121648]: https://github.com/home-assistant/core/pull/121648 +[#121650]: https://github.com/home-assistant/core/pull/121650 +[#121652]: https://github.com/home-assistant/core/pull/121652 +[#121653]: https://github.com/home-assistant/core/pull/121653 +[#121654]: https://github.com/home-assistant/core/pull/121654 +[#121655]: https://github.com/home-assistant/core/pull/121655 +[#121657]: https://github.com/home-assistant/core/pull/121657 +[#121674]: https://github.com/home-assistant/core/pull/121674 +[#121676]: https://github.com/home-assistant/core/pull/121676 +[#121677]: https://github.com/home-assistant/core/pull/121677 +[#121681]: https://github.com/home-assistant/core/pull/121681 +[#121690]: https://github.com/home-assistant/core/pull/121690 +[#121692]: https://github.com/home-assistant/core/pull/121692 +[#121693]: https://github.com/home-assistant/core/pull/121693 +[#121695]: https://github.com/home-assistant/core/pull/121695 +[#121697]: https://github.com/home-assistant/core/pull/121697 +[#121700]: https://github.com/home-assistant/core/pull/121700 +[#121701]: https://github.com/home-assistant/core/pull/121701 +[#121707]: https://github.com/home-assistant/core/pull/121707 +[#121710]: https://github.com/home-assistant/core/pull/121710 +[#121715]: https://github.com/home-assistant/core/pull/121715 +[#121716]: https://github.com/home-assistant/core/pull/121716 +[#121720]: https://github.com/home-assistant/core/pull/121720 +[#121723]: https://github.com/home-assistant/core/pull/121723 +[#121727]: https://github.com/home-assistant/core/pull/121727 +[#121732]: https://github.com/home-assistant/core/pull/121732 +[#121733]: https://github.com/home-assistant/core/pull/121733 +[#121735]: https://github.com/home-assistant/core/pull/121735 +[#121739]: https://github.com/home-assistant/core/pull/121739 +[#121742]: https://github.com/home-assistant/core/pull/121742 +[#121743]: https://github.com/home-assistant/core/pull/121743 +[#121745]: https://github.com/home-assistant/core/pull/121745 +[#121749]: https://github.com/home-assistant/core/pull/121749 +[#121750]: https://github.com/home-assistant/core/pull/121750 +[#121752]: https://github.com/home-assistant/core/pull/121752 +[#121755]: https://github.com/home-assistant/core/pull/121755 +[#121757]: https://github.com/home-assistant/core/pull/121757 +[#121758]: https://github.com/home-assistant/core/pull/121758 +[#121759]: https://github.com/home-assistant/core/pull/121759 +[#121761]: https://github.com/home-assistant/core/pull/121761 +[#121765]: https://github.com/home-assistant/core/pull/121765 +[#121767]: https://github.com/home-assistant/core/pull/121767 +[#121773]: https://github.com/home-assistant/core/pull/121773 +[#121775]: https://github.com/home-assistant/core/pull/121775 +[#121776]: https://github.com/home-assistant/core/pull/121776 +[#121777]: https://github.com/home-assistant/core/pull/121777 +[#121779]: https://github.com/home-assistant/core/pull/121779 +[#121780]: https://github.com/home-assistant/core/pull/121780 +[#121787]: https://github.com/home-assistant/core/pull/121787 +[#121788]: https://github.com/home-assistant/core/pull/121788 +[#121797]: https://github.com/home-assistant/core/pull/121797 +[#121802]: https://github.com/home-assistant/core/pull/121802 +[#121805]: https://github.com/home-assistant/core/pull/121805 +[#121809]: https://github.com/home-assistant/core/pull/121809 +[#121813]: https://github.com/home-assistant/core/pull/121813 +[#121815]: https://github.com/home-assistant/core/pull/121815 +[#121818]: https://github.com/home-assistant/core/pull/121818 +[#121820]: https://github.com/home-assistant/core/pull/121820 +[#121823]: https://github.com/home-assistant/core/pull/121823 +[#121825]: https://github.com/home-assistant/core/pull/121825 +[#121826]: https://github.com/home-assistant/core/pull/121826 +[#121827]: https://github.com/home-assistant/core/pull/121827 +[#121828]: https://github.com/home-assistant/core/pull/121828 +[#121830]: https://github.com/home-assistant/core/pull/121830 +[#121836]: https://github.com/home-assistant/core/pull/121836 +[#121843]: https://github.com/home-assistant/core/pull/121843 +[#121844]: https://github.com/home-assistant/core/pull/121844 +[#121846]: https://github.com/home-assistant/core/pull/121846 +[#121847]: https://github.com/home-assistant/core/pull/121847 +[#121848]: https://github.com/home-assistant/core/pull/121848 +[#121850]: https://github.com/home-assistant/core/pull/121850 +[#121853]: https://github.com/home-assistant/core/pull/121853 +[#121856]: https://github.com/home-assistant/core/pull/121856 +[#121860]: https://github.com/home-assistant/core/pull/121860 +[#121864]: https://github.com/home-assistant/core/pull/121864 +[#121865]: https://github.com/home-assistant/core/pull/121865 +[#121871]: https://github.com/home-assistant/core/pull/121871 +[#121872]: https://github.com/home-assistant/core/pull/121872 +[#121873]: https://github.com/home-assistant/core/pull/121873 +[#121876]: https://github.com/home-assistant/core/pull/121876 +[#121881]: https://github.com/home-assistant/core/pull/121881 +[#121884]: https://github.com/home-assistant/core/pull/121884 +[#121887]: https://github.com/home-assistant/core/pull/121887 +[#121888]: https://github.com/home-assistant/core/pull/121888 +[#121891]: https://github.com/home-assistant/core/pull/121891 +[#121894]: https://github.com/home-assistant/core/pull/121894 +[#121895]: https://github.com/home-assistant/core/pull/121895 +[#121900]: https://github.com/home-assistant/core/pull/121900 +[#121903]: https://github.com/home-assistant/core/pull/121903 +[#121906]: https://github.com/home-assistant/core/pull/121906 +[#121910]: https://github.com/home-assistant/core/pull/121910 +[#121929]: https://github.com/home-assistant/core/pull/121929 +[#121931]: https://github.com/home-assistant/core/pull/121931 +[#121938]: https://github.com/home-assistant/core/pull/121938 +[#121946]: https://github.com/home-assistant/core/pull/121946 +[#121960]: https://github.com/home-assistant/core/pull/121960 +[#121962]: https://github.com/home-assistant/core/pull/121962 +[#121963]: https://github.com/home-assistant/core/pull/121963 +[#121968]: https://github.com/home-assistant/core/pull/121968 +[#121973]: https://github.com/home-assistant/core/pull/121973 +[#121974]: https://github.com/home-assistant/core/pull/121974 +[#121975]: https://github.com/home-assistant/core/pull/121975 +[#121976]: https://github.com/home-assistant/core/pull/121976 +[#121983]: https://github.com/home-assistant/core/pull/121983 +[#121984]: https://github.com/home-assistant/core/pull/121984 +[#121986]: https://github.com/home-assistant/core/pull/121986 +[#121987]: https://github.com/home-assistant/core/pull/121987 +[#121989]: https://github.com/home-assistant/core/pull/121989 +[#121991]: https://github.com/home-assistant/core/pull/121991 +[#121992]: https://github.com/home-assistant/core/pull/121992 +[#121993]: https://github.com/home-assistant/core/pull/121993 +[#121994]: https://github.com/home-assistant/core/pull/121994 +[#121997]: https://github.com/home-assistant/core/pull/121997 +[#122004]: https://github.com/home-assistant/core/pull/122004 +[#122005]: https://github.com/home-assistant/core/pull/122005 +[#122007]: https://github.com/home-assistant/core/pull/122007 +[#122008]: https://github.com/home-assistant/core/pull/122008 +[#122010]: https://github.com/home-assistant/core/pull/122010 +[#122011]: https://github.com/home-assistant/core/pull/122011 +[#122012]: https://github.com/home-assistant/core/pull/122012 +[#122013]: https://github.com/home-assistant/core/pull/122013 +[#122014]: https://github.com/home-assistant/core/pull/122014 +[#122017]: https://github.com/home-assistant/core/pull/122017 +[#122019]: https://github.com/home-assistant/core/pull/122019 +[#122020]: https://github.com/home-assistant/core/pull/122020 +[#122023]: https://github.com/home-assistant/core/pull/122023 +[#122024]: https://github.com/home-assistant/core/pull/122024 +[#122026]: https://github.com/home-assistant/core/pull/122026 +[#122028]: https://github.com/home-assistant/core/pull/122028 +[#122030]: https://github.com/home-assistant/core/pull/122030 +[#122031]: https://github.com/home-assistant/core/pull/122031 +[#122036]: https://github.com/home-assistant/core/pull/122036 +[#122037]: https://github.com/home-assistant/core/pull/122037 +[#122040]: https://github.com/home-assistant/core/pull/122040 +[#122041]: https://github.com/home-assistant/core/pull/122041 +[#122043]: https://github.com/home-assistant/core/pull/122043 +[#122044]: https://github.com/home-assistant/core/pull/122044 +[#122045]: https://github.com/home-assistant/core/pull/122045 +[#122046]: https://github.com/home-assistant/core/pull/122046 +[#122047]: https://github.com/home-assistant/core/pull/122047 +[#122048]: https://github.com/home-assistant/core/pull/122048 +[#122054]: https://github.com/home-assistant/core/pull/122054 +[#122063]: https://github.com/home-assistant/core/pull/122063 +[#122064]: https://github.com/home-assistant/core/pull/122064 +[#122066]: https://github.com/home-assistant/core/pull/122066 +[#122068]: https://github.com/home-assistant/core/pull/122068 +[#122069]: https://github.com/home-assistant/core/pull/122069 +[#122071]: https://github.com/home-assistant/core/pull/122071 +[#122073]: https://github.com/home-assistant/core/pull/122073 +[#122074]: https://github.com/home-assistant/core/pull/122074 +[#122075]: https://github.com/home-assistant/core/pull/122075 +[#122077]: https://github.com/home-assistant/core/pull/122077 +[#122078]: https://github.com/home-assistant/core/pull/122078 +[#122079]: https://github.com/home-assistant/core/pull/122079 +[#122085]: https://github.com/home-assistant/core/pull/122085 +[#122086]: https://github.com/home-assistant/core/pull/122086 +[#122087]: https://github.com/home-assistant/core/pull/122087 +[#122088]: https://github.com/home-assistant/core/pull/122088 +[#122091]: https://github.com/home-assistant/core/pull/122091 +[#122095]: https://github.com/home-assistant/core/pull/122095 +[#122096]: https://github.com/home-assistant/core/pull/122096 +[#122098]: https://github.com/home-assistant/core/pull/122098 +[#122099]: https://github.com/home-assistant/core/pull/122099 +[#122101]: https://github.com/home-assistant/core/pull/122101 +[#122103]: https://github.com/home-assistant/core/pull/122103 +[#122111]: https://github.com/home-assistant/core/pull/122111 +[#122114]: https://github.com/home-assistant/core/pull/122114 +[#122117]: https://github.com/home-assistant/core/pull/122117 +[#122120]: https://github.com/home-assistant/core/pull/122120 +[#122123]: https://github.com/home-assistant/core/pull/122123 +[#122126]: https://github.com/home-assistant/core/pull/122126 +[#122127]: https://github.com/home-assistant/core/pull/122127 +[#122130]: https://github.com/home-assistant/core/pull/122130 +[#122132]: https://github.com/home-assistant/core/pull/122132 +[#122133]: https://github.com/home-assistant/core/pull/122133 +[#122135]: https://github.com/home-assistant/core/pull/122135 +[#122138]: https://github.com/home-assistant/core/pull/122138 +[#122139]: https://github.com/home-assistant/core/pull/122139 +[#122140]: https://github.com/home-assistant/core/pull/122140 +[#122144]: https://github.com/home-assistant/core/pull/122144 +[#122145]: https://github.com/home-assistant/core/pull/122145 +[#122146]: https://github.com/home-assistant/core/pull/122146 +[#122154]: https://github.com/home-assistant/core/pull/122154 +[#122163]: https://github.com/home-assistant/core/pull/122163 +[#122166]: https://github.com/home-assistant/core/pull/122166 +[#122167]: https://github.com/home-assistant/core/pull/122167 +[#122169]: https://github.com/home-assistant/core/pull/122169 +[#122170]: https://github.com/home-assistant/core/pull/122170 +[#122172]: https://github.com/home-assistant/core/pull/122172 +[#122173]: https://github.com/home-assistant/core/pull/122173 +[#122174]: https://github.com/home-assistant/core/pull/122174 +[#122175]: https://github.com/home-assistant/core/pull/122175 +[#122176]: https://github.com/home-assistant/core/pull/122176 +[#122178]: https://github.com/home-assistant/core/pull/122178 +[#122179]: https://github.com/home-assistant/core/pull/122179 +[#122180]: https://github.com/home-assistant/core/pull/122180 +[#122182]: https://github.com/home-assistant/core/pull/122182 +[#122183]: https://github.com/home-assistant/core/pull/122183 +[#122184]: https://github.com/home-assistant/core/pull/122184 +[#122185]: https://github.com/home-assistant/core/pull/122185 +[#122189]: https://github.com/home-assistant/core/pull/122189 +[#122191]: https://github.com/home-assistant/core/pull/122191 +[#122197]: https://github.com/home-assistant/core/pull/122197 +[#122198]: https://github.com/home-assistant/core/pull/122198 +[#122205]: https://github.com/home-assistant/core/pull/122205 +[#122206]: https://github.com/home-assistant/core/pull/122206 +[#122207]: https://github.com/home-assistant/core/pull/122207 +[#122208]: https://github.com/home-assistant/core/pull/122208 +[#122209]: https://github.com/home-assistant/core/pull/122209 +[#122212]: https://github.com/home-assistant/core/pull/122212 +[#122213]: https://github.com/home-assistant/core/pull/122213 +[#122214]: https://github.com/home-assistant/core/pull/122214 +[#122215]: https://github.com/home-assistant/core/pull/122215 +[#122216]: https://github.com/home-assistant/core/pull/122216 +[#122217]: https://github.com/home-assistant/core/pull/122217 +[#122218]: https://github.com/home-assistant/core/pull/122218 +[#122219]: https://github.com/home-assistant/core/pull/122219 +[#122222]: https://github.com/home-assistant/core/pull/122222 +[#122223]: https://github.com/home-assistant/core/pull/122223 +[#122225]: https://github.com/home-assistant/core/pull/122225 +[#122227]: https://github.com/home-assistant/core/pull/122227 +[#122229]: https://github.com/home-assistant/core/pull/122229 +[#122232]: https://github.com/home-assistant/core/pull/122232 +[#122234]: https://github.com/home-assistant/core/pull/122234 +[#122236]: https://github.com/home-assistant/core/pull/122236 +[#122237]: https://github.com/home-assistant/core/pull/122237 +[#122238]: https://github.com/home-assistant/core/pull/122238 +[#122239]: https://github.com/home-assistant/core/pull/122239 +[#122240]: https://github.com/home-assistant/core/pull/122240 +[#122241]: https://github.com/home-assistant/core/pull/122241 +[#122242]: https://github.com/home-assistant/core/pull/122242 +[#122243]: https://github.com/home-assistant/core/pull/122243 +[#122244]: https://github.com/home-assistant/core/pull/122244 +[#122245]: https://github.com/home-assistant/core/pull/122245 +[#122246]: https://github.com/home-assistant/core/pull/122246 +[#122250]: https://github.com/home-assistant/core/pull/122250 +[#122251]: https://github.com/home-assistant/core/pull/122251 +[#122254]: https://github.com/home-assistant/core/pull/122254 +[#122255]: https://github.com/home-assistant/core/pull/122255 +[#122256]: https://github.com/home-assistant/core/pull/122256 +[#122257]: https://github.com/home-assistant/core/pull/122257 +[#122258]: https://github.com/home-assistant/core/pull/122258 +[#122266]: https://github.com/home-assistant/core/pull/122266 +[#122268]: https://github.com/home-assistant/core/pull/122268 +[#122269]: https://github.com/home-assistant/core/pull/122269 +[#122271]: https://github.com/home-assistant/core/pull/122271 +[#122272]: https://github.com/home-assistant/core/pull/122272 +[#122275]: https://github.com/home-assistant/core/pull/122275 +[#122278]: https://github.com/home-assistant/core/pull/122278 +[#122279]: https://github.com/home-assistant/core/pull/122279 +[#122280]: https://github.com/home-assistant/core/pull/122280 +[#122282]: https://github.com/home-assistant/core/pull/122282 +[#122283]: https://github.com/home-assistant/core/pull/122283 +[#122289]: https://github.com/home-assistant/core/pull/122289 +[#122295]: https://github.com/home-assistant/core/pull/122295 +[#122296]: https://github.com/home-assistant/core/pull/122296 +[#122297]: https://github.com/home-assistant/core/pull/122297 +[#122300]: https://github.com/home-assistant/core/pull/122300 +[#122304]: https://github.com/home-assistant/core/pull/122304 +[#122306]: https://github.com/home-assistant/core/pull/122306 +[#122307]: https://github.com/home-assistant/core/pull/122307 +[#122308]: https://github.com/home-assistant/core/pull/122308 +[#122310]: https://github.com/home-assistant/core/pull/122310 +[#122312]: https://github.com/home-assistant/core/pull/122312 +[#122313]: https://github.com/home-assistant/core/pull/122313 +[#122314]: https://github.com/home-assistant/core/pull/122314 +[#122315]: https://github.com/home-assistant/core/pull/122315 +[#122316]: https://github.com/home-assistant/core/pull/122316 +[#122317]: https://github.com/home-assistant/core/pull/122317 +[#122318]: https://github.com/home-assistant/core/pull/122318 +[#122324]: https://github.com/home-assistant/core/pull/122324 +[#122325]: https://github.com/home-assistant/core/pull/122325 +[#122326]: https://github.com/home-assistant/core/pull/122326 +[#122327]: https://github.com/home-assistant/core/pull/122327 +[#122331]: https://github.com/home-assistant/core/pull/122331 +[#122333]: https://github.com/home-assistant/core/pull/122333 +[#122335]: https://github.com/home-assistant/core/pull/122335 +[#122338]: https://github.com/home-assistant/core/pull/122338 +[#122339]: https://github.com/home-assistant/core/pull/122339 +[#122342]: https://github.com/home-assistant/core/pull/122342 +[#122345]: https://github.com/home-assistant/core/pull/122345 +[#122350]: https://github.com/home-assistant/core/pull/122350 +[#122354]: https://github.com/home-assistant/core/pull/122354 +[#122355]: https://github.com/home-assistant/core/pull/122355 +[#122357]: https://github.com/home-assistant/core/pull/122357 +[#122360]: https://github.com/home-assistant/core/pull/122360 +[#122362]: https://github.com/home-assistant/core/pull/122362 +[#122365]: https://github.com/home-assistant/core/pull/122365 +[#122367]: https://github.com/home-assistant/core/pull/122367 +[#122368]: https://github.com/home-assistant/core/pull/122368 +[#122369]: https://github.com/home-assistant/core/pull/122369 +[#122371]: https://github.com/home-assistant/core/pull/122371 +[#122372]: https://github.com/home-assistant/core/pull/122372 +[#122373]: https://github.com/home-assistant/core/pull/122373 +[#122374]: https://github.com/home-assistant/core/pull/122374 +[#122376]: https://github.com/home-assistant/core/pull/122376 +[#122377]: https://github.com/home-assistant/core/pull/122377 +[#122380]: https://github.com/home-assistant/core/pull/122380 +[#122384]: https://github.com/home-assistant/core/pull/122384 +[#122386]: https://github.com/home-assistant/core/pull/122386 +[#122387]: https://github.com/home-assistant/core/pull/122387 +[#122388]: https://github.com/home-assistant/core/pull/122388 +[#122389]: https://github.com/home-assistant/core/pull/122389 +[#122392]: https://github.com/home-assistant/core/pull/122392 +[#122394]: https://github.com/home-assistant/core/pull/122394 +[#122395]: https://github.com/home-assistant/core/pull/122395 +[#122396]: https://github.com/home-assistant/core/pull/122396 +[#122397]: https://github.com/home-assistant/core/pull/122397 +[#122399]: https://github.com/home-assistant/core/pull/122399 +[#122406]: https://github.com/home-assistant/core/pull/122406 +[#122409]: https://github.com/home-assistant/core/pull/122409 +[#122410]: https://github.com/home-assistant/core/pull/122410 +[#122412]: https://github.com/home-assistant/core/pull/122412 +[#122413]: https://github.com/home-assistant/core/pull/122413 +[#122414]: https://github.com/home-assistant/core/pull/122414 +[#122416]: https://github.com/home-assistant/core/pull/122416 +[#122420]: https://github.com/home-assistant/core/pull/122420 +[#122421]: https://github.com/home-assistant/core/pull/122421 +[#122422]: https://github.com/home-assistant/core/pull/122422 +[#122425]: https://github.com/home-assistant/core/pull/122425 +[#122427]: https://github.com/home-assistant/core/pull/122427 +[#122428]: https://github.com/home-assistant/core/pull/122428 +[#122430]: https://github.com/home-assistant/core/pull/122430 +[#122431]: https://github.com/home-assistant/core/pull/122431 +[#122432]: https://github.com/home-assistant/core/pull/122432 +[#122437]: https://github.com/home-assistant/core/pull/122437 +[#122439]: https://github.com/home-assistant/core/pull/122439 +[#122440]: https://github.com/home-assistant/core/pull/122440 +[#122441]: https://github.com/home-assistant/core/pull/122441 +[#122444]: https://github.com/home-assistant/core/pull/122444 +[#122445]: https://github.com/home-assistant/core/pull/122445 +[#122447]: https://github.com/home-assistant/core/pull/122447 +[#122449]: https://github.com/home-assistant/core/pull/122449 +[#122451]: https://github.com/home-assistant/core/pull/122451 +[#122452]: https://github.com/home-assistant/core/pull/122452 +[#122453]: https://github.com/home-assistant/core/pull/122453 +[#122454]: https://github.com/home-assistant/core/pull/122454 +[#122455]: https://github.com/home-assistant/core/pull/122455 +[#122456]: https://github.com/home-assistant/core/pull/122456 +[#122457]: https://github.com/home-assistant/core/pull/122457 +[#122458]: https://github.com/home-assistant/core/pull/122458 +[#122459]: https://github.com/home-assistant/core/pull/122459 +[#122461]: https://github.com/home-assistant/core/pull/122461 +[#122462]: https://github.com/home-assistant/core/pull/122462 +[#122463]: https://github.com/home-assistant/core/pull/122463 +[#122464]: https://github.com/home-assistant/core/pull/122464 +[#122466]: https://github.com/home-assistant/core/pull/122466 +[#122469]: https://github.com/home-assistant/core/pull/122469 +[#122471]: https://github.com/home-assistant/core/pull/122471 +[#122472]: https://github.com/home-assistant/core/pull/122472 +[#122475]: https://github.com/home-assistant/core/pull/122475 +[#122480]: https://github.com/home-assistant/core/pull/122480 +[#122481]: https://github.com/home-assistant/core/pull/122481 +[#122482]: https://github.com/home-assistant/core/pull/122482 +[#122483]: https://github.com/home-assistant/core/pull/122483 +[#122484]: https://github.com/home-assistant/core/pull/122484 +[#122486]: https://github.com/home-assistant/core/pull/122486 +[#122488]: https://github.com/home-assistant/core/pull/122488 +[#122490]: https://github.com/home-assistant/core/pull/122490 +[#122493]: https://github.com/home-assistant/core/pull/122493 +[#122494]: https://github.com/home-assistant/core/pull/122494 +[#122496]: https://github.com/home-assistant/core/pull/122496 +[#122497]: https://github.com/home-assistant/core/pull/122497 +[#122500]: https://github.com/home-assistant/core/pull/122500 +[#122503]: https://github.com/home-assistant/core/pull/122503 +[#122505]: https://github.com/home-assistant/core/pull/122505 +[#122507]: https://github.com/home-assistant/core/pull/122507 +[#122509]: https://github.com/home-assistant/core/pull/122509 +[#122511]: https://github.com/home-assistant/core/pull/122511 +[#122513]: https://github.com/home-assistant/core/pull/122513 +[#122515]: https://github.com/home-assistant/core/pull/122515 +[#122516]: https://github.com/home-assistant/core/pull/122516 +[#122523]: https://github.com/home-assistant/core/pull/122523 +[#122527]: https://github.com/home-assistant/core/pull/122527 +[#122528]: https://github.com/home-assistant/core/pull/122528 +[#122530]: https://github.com/home-assistant/core/pull/122530 +[#122532]: https://github.com/home-assistant/core/pull/122532 +[#122533]: https://github.com/home-assistant/core/pull/122533 +[#122534]: https://github.com/home-assistant/core/pull/122534 +[#122535]: https://github.com/home-assistant/core/pull/122535 +[#122537]: https://github.com/home-assistant/core/pull/122537 +[#122538]: https://github.com/home-assistant/core/pull/122538 +[#122539]: https://github.com/home-assistant/core/pull/122539 +[#122540]: https://github.com/home-assistant/core/pull/122540 +[#122541]: https://github.com/home-assistant/core/pull/122541 +[#122542]: https://github.com/home-assistant/core/pull/122542 +[#122543]: https://github.com/home-assistant/core/pull/122543 +[#122544]: https://github.com/home-assistant/core/pull/122544 +[#122547]: https://github.com/home-assistant/core/pull/122547 +[#122548]: https://github.com/home-assistant/core/pull/122548 +[#122549]: https://github.com/home-assistant/core/pull/122549 +[#122550]: https://github.com/home-assistant/core/pull/122550 +[#122551]: https://github.com/home-assistant/core/pull/122551 +[#122553]: https://github.com/home-assistant/core/pull/122553 +[#122557]: https://github.com/home-assistant/core/pull/122557 +[#122558]: https://github.com/home-assistant/core/pull/122558 +[#122562]: https://github.com/home-assistant/core/pull/122562 +[#122564]: https://github.com/home-assistant/core/pull/122564 +[#122566]: https://github.com/home-assistant/core/pull/122566 +[#122568]: https://github.com/home-assistant/core/pull/122568 +[#122578]: https://github.com/home-assistant/core/pull/122578 +[#122579]: https://github.com/home-assistant/core/pull/122579 +[#122580]: https://github.com/home-assistant/core/pull/122580 +[#122581]: https://github.com/home-assistant/core/pull/122581 +[#122582]: https://github.com/home-assistant/core/pull/122582 +[#122583]: https://github.com/home-assistant/core/pull/122583 +[#122586]: https://github.com/home-assistant/core/pull/122586 +[#122591]: https://github.com/home-assistant/core/pull/122591 +[#122592]: https://github.com/home-assistant/core/pull/122592 +[#122594]: https://github.com/home-assistant/core/pull/122594 +[#122596]: https://github.com/home-assistant/core/pull/122596 +[#122597]: https://github.com/home-assistant/core/pull/122597 +[#122598]: https://github.com/home-assistant/core/pull/122598 +[#122599]: https://github.com/home-assistant/core/pull/122599 +[#122602]: https://github.com/home-assistant/core/pull/122602 +[#122603]: https://github.com/home-assistant/core/pull/122603 +[#122608]: https://github.com/home-assistant/core/pull/122608 +[#122610]: https://github.com/home-assistant/core/pull/122610 +[#122611]: https://github.com/home-assistant/core/pull/122611 +[#122613]: https://github.com/home-assistant/core/pull/122613 +[#122617]: https://github.com/home-assistant/core/pull/122617 +[#122623]: https://github.com/home-assistant/core/pull/122623 +[#122626]: https://github.com/home-assistant/core/pull/122626 +[#122628]: https://github.com/home-assistant/core/pull/122628 +[#122629]: https://github.com/home-assistant/core/pull/122629 +[#122630]: https://github.com/home-assistant/core/pull/122630 +[#122631]: https://github.com/home-assistant/core/pull/122631 +[#122632]: https://github.com/home-assistant/core/pull/122632 +[#122635]: https://github.com/home-assistant/core/pull/122635 +[#122637]: https://github.com/home-assistant/core/pull/122637 +[#122641]: https://github.com/home-assistant/core/pull/122641 +[#122642]: https://github.com/home-assistant/core/pull/122642 +[#122647]: https://github.com/home-assistant/core/pull/122647 +[#122648]: https://github.com/home-assistant/core/pull/122648 +[#122650]: https://github.com/home-assistant/core/pull/122650 +[#122653]: https://github.com/home-assistant/core/pull/122653 +[#122657]: https://github.com/home-assistant/core/pull/122657 +[#122658]: https://github.com/home-assistant/core/pull/122658 +[#122660]: https://github.com/home-assistant/core/pull/122660 +[#122661]: https://github.com/home-assistant/core/pull/122661 +[#122664]: https://github.com/home-assistant/core/pull/122664 +[#122665]: https://github.com/home-assistant/core/pull/122665 +[#122667]: https://github.com/home-assistant/core/pull/122667 +[#122669]: https://github.com/home-assistant/core/pull/122669 +[#122670]: https://github.com/home-assistant/core/pull/122670 +[#122671]: https://github.com/home-assistant/core/pull/122671 +[#122674]: https://github.com/home-assistant/core/pull/122674 +[#122676]: https://github.com/home-assistant/core/pull/122676 +[#122679]: https://github.com/home-assistant/core/pull/122679 +[#122680]: https://github.com/home-assistant/core/pull/122680 +[#122683]: https://github.com/home-assistant/core/pull/122683 +[#122684]: https://github.com/home-assistant/core/pull/122684 +[#122691]: https://github.com/home-assistant/core/pull/122691 +[#122693]: https://github.com/home-assistant/core/pull/122693 +[#122695]: https://github.com/home-assistant/core/pull/122695 +[#122697]: https://github.com/home-assistant/core/pull/122697 +[#122699]: https://github.com/home-assistant/core/pull/122699 +[#122700]: https://github.com/home-assistant/core/pull/122700 +[#122703]: https://github.com/home-assistant/core/pull/122703 +[#122704]: https://github.com/home-assistant/core/pull/122704 +[#122705]: https://github.com/home-assistant/core/pull/122705 +[#122706]: https://github.com/home-assistant/core/pull/122706 +[#122713]: https://github.com/home-assistant/core/pull/122713 +[#122717]: https://github.com/home-assistant/core/pull/122717 +[#122722]: https://github.com/home-assistant/core/pull/122722 +[#122723]: https://github.com/home-assistant/core/pull/122723 +[#122724]: https://github.com/home-assistant/core/pull/122724 +[#122726]: https://github.com/home-assistant/core/pull/122726 +[#122730]: https://github.com/home-assistant/core/pull/122730 +[#122731]: https://github.com/home-assistant/core/pull/122731 +[#122732]: https://github.com/home-assistant/core/pull/122732 +[#122735]: https://github.com/home-assistant/core/pull/122735 +[#122738]: https://github.com/home-assistant/core/pull/122738 +[#122740]: https://github.com/home-assistant/core/pull/122740 +[#122745]: https://github.com/home-assistant/core/pull/122745 +[#122746]: https://github.com/home-assistant/core/pull/122746 +[#122749]: https://github.com/home-assistant/core/pull/122749 +[#122752]: https://github.com/home-assistant/core/pull/122752 +[#122753]: https://github.com/home-assistant/core/pull/122753 +[#122754]: https://github.com/home-assistant/core/pull/122754 +[#122755]: https://github.com/home-assistant/core/pull/122755 +[#122756]: https://github.com/home-assistant/core/pull/122756 +[#122757]: https://github.com/home-assistant/core/pull/122757 +[#122758]: https://github.com/home-assistant/core/pull/122758 +[#122760]: https://github.com/home-assistant/core/pull/122760 +[#122762]: https://github.com/home-assistant/core/pull/122762 +[#122763]: https://github.com/home-assistant/core/pull/122763 +[#122765]: https://github.com/home-assistant/core/pull/122765 +[#122766]: https://github.com/home-assistant/core/pull/122766 +[#122767]: https://github.com/home-assistant/core/pull/122767 +[#122768]: https://github.com/home-assistant/core/pull/122768 +[#122769]: https://github.com/home-assistant/core/pull/122769 +[#122772]: https://github.com/home-assistant/core/pull/122772 +[#122773]: https://github.com/home-assistant/core/pull/122773 +[#122774]: https://github.com/home-assistant/core/pull/122774 +[#122775]: https://github.com/home-assistant/core/pull/122775 +[#122776]: https://github.com/home-assistant/core/pull/122776 +[#122778]: https://github.com/home-assistant/core/pull/122778 +[#122779]: https://github.com/home-assistant/core/pull/122779 +[#122780]: https://github.com/home-assistant/core/pull/122780 +[#122781]: https://github.com/home-assistant/core/pull/122781 +[#122782]: https://github.com/home-assistant/core/pull/122782 +[#122784]: https://github.com/home-assistant/core/pull/122784 +[#122785]: https://github.com/home-assistant/core/pull/122785 +[#122786]: https://github.com/home-assistant/core/pull/122786 +[#122787]: https://github.com/home-assistant/core/pull/122787 +[#122788]: https://github.com/home-assistant/core/pull/122788 +[#122789]: https://github.com/home-assistant/core/pull/122789 +[#122790]: https://github.com/home-assistant/core/pull/122790 +[#122791]: https://github.com/home-assistant/core/pull/122791 +[#122792]: https://github.com/home-assistant/core/pull/122792 +[#122793]: https://github.com/home-assistant/core/pull/122793 +[#122795]: https://github.com/home-assistant/core/pull/122795 +[#122800]: https://github.com/home-assistant/core/pull/122800 +[#122801]: https://github.com/home-assistant/core/pull/122801 +[#122803]: https://github.com/home-assistant/core/pull/122803 +[#122804]: https://github.com/home-assistant/core/pull/122804 +[#122808]: https://github.com/home-assistant/core/pull/122808 +[#122811]: https://github.com/home-assistant/core/pull/122811 +[#122812]: https://github.com/home-assistant/core/pull/122812 +[#122813]: https://github.com/home-assistant/core/pull/122813 +[#122815]: https://github.com/home-assistant/core/pull/122815 +[#122821]: https://github.com/home-assistant/core/pull/122821 +[#122824]: https://github.com/home-assistant/core/pull/122824 +[#122828]: https://github.com/home-assistant/core/pull/122828 +[#122830]: https://github.com/home-assistant/core/pull/122830 +[#122831]: https://github.com/home-assistant/core/pull/122831 +[#122832]: https://github.com/home-assistant/core/pull/122832 +[#122833]: https://github.com/home-assistant/core/pull/122833 +[#122834]: https://github.com/home-assistant/core/pull/122834 +[#122835]: https://github.com/home-assistant/core/pull/122835 +[#122836]: https://github.com/home-assistant/core/pull/122836 +[#122837]: https://github.com/home-assistant/core/pull/122837 +[#122838]: https://github.com/home-assistant/core/pull/122838 +[#122839]: https://github.com/home-assistant/core/pull/122839 +[#122840]: https://github.com/home-assistant/core/pull/122840 +[#122841]: https://github.com/home-assistant/core/pull/122841 +[#122842]: https://github.com/home-assistant/core/pull/122842 +[#122843]: https://github.com/home-assistant/core/pull/122843 +[#122845]: https://github.com/home-assistant/core/pull/122845 +[#122847]: https://github.com/home-assistant/core/pull/122847 +[#122848]: https://github.com/home-assistant/core/pull/122848 +[#122849]: https://github.com/home-assistant/core/pull/122849 +[#122852]: https://github.com/home-assistant/core/pull/122852 +[#122854]: https://github.com/home-assistant/core/pull/122854 +[#122855]: https://github.com/home-assistant/core/pull/122855 +[#122857]: https://github.com/home-assistant/core/pull/122857 +[#122858]: https://github.com/home-assistant/core/pull/122858 +[#122859]: https://github.com/home-assistant/core/pull/122859 +[#122860]: https://github.com/home-assistant/core/pull/122860 +[#122861]: https://github.com/home-assistant/core/pull/122861 +[#122864]: https://github.com/home-assistant/core/pull/122864 +[#122865]: https://github.com/home-assistant/core/pull/122865 +[#122866]: https://github.com/home-assistant/core/pull/122866 +[#122867]: https://github.com/home-assistant/core/pull/122867 +[#122870]: https://github.com/home-assistant/core/pull/122870 +[#122872]: https://github.com/home-assistant/core/pull/122872 +[#122874]: https://github.com/home-assistant/core/pull/122874 +[#122877]: https://github.com/home-assistant/core/pull/122877 +[#122879]: https://github.com/home-assistant/core/pull/122879 +[#122880]: https://github.com/home-assistant/core/pull/122880 +[#122883]: https://github.com/home-assistant/core/pull/122883 +[#122884]: https://github.com/home-assistant/core/pull/122884 +[#122886]: https://github.com/home-assistant/core/pull/122886 +[#122891]: https://github.com/home-assistant/core/pull/122891 +[#122892]: https://github.com/home-assistant/core/pull/122892 +[#122896]: https://github.com/home-assistant/core/pull/122896 +[#122898]: https://github.com/home-assistant/core/pull/122898 +[#122901]: https://github.com/home-assistant/core/pull/122901 +[#122902]: https://github.com/home-assistant/core/pull/122902 +[#122903]: https://github.com/home-assistant/core/pull/122903 +[#122904]: https://github.com/home-assistant/core/pull/122904 +[#122905]: https://github.com/home-assistant/core/pull/122905 +[#122906]: https://github.com/home-assistant/core/pull/122906 +[#122907]: https://github.com/home-assistant/core/pull/122907 +[#122908]: https://github.com/home-assistant/core/pull/122908 +[#122909]: https://github.com/home-assistant/core/pull/122909 +[#122910]: https://github.com/home-assistant/core/pull/122910 +[#122911]: https://github.com/home-assistant/core/pull/122911 +[#122912]: https://github.com/home-assistant/core/pull/122912 +[#122914]: https://github.com/home-assistant/core/pull/122914 +[#122916]: https://github.com/home-assistant/core/pull/122916 +[#122917]: https://github.com/home-assistant/core/pull/122917 +[#122919]: https://github.com/home-assistant/core/pull/122919 +[#122920]: https://github.com/home-assistant/core/pull/122920 +[#122921]: https://github.com/home-assistant/core/pull/122921 +[#122923]: https://github.com/home-assistant/core/pull/122923 +[#122924]: https://github.com/home-assistant/core/pull/122924 +[#122925]: https://github.com/home-assistant/core/pull/122925 +[#122926]: https://github.com/home-assistant/core/pull/122926 +[#122927]: https://github.com/home-assistant/core/pull/122927 +[#122929]: https://github.com/home-assistant/core/pull/122929 +[#122930]: https://github.com/home-assistant/core/pull/122930 +[#122931]: https://github.com/home-assistant/core/pull/122931 +[#122932]: https://github.com/home-assistant/core/pull/122932 +[#122933]: https://github.com/home-assistant/core/pull/122933 +[#122934]: https://github.com/home-assistant/core/pull/122934 +[#122935]: https://github.com/home-assistant/core/pull/122935 +[#122936]: https://github.com/home-assistant/core/pull/122936 +[#122937]: https://github.com/home-assistant/core/pull/122937 +[#122938]: https://github.com/home-assistant/core/pull/122938 +[#122939]: https://github.com/home-assistant/core/pull/122939 +[#122940]: https://github.com/home-assistant/core/pull/122940 +[#122941]: https://github.com/home-assistant/core/pull/122941 +[#122942]: https://github.com/home-assistant/core/pull/122942 +[#122946]: https://github.com/home-assistant/core/pull/122946 +[#122947]: https://github.com/home-assistant/core/pull/122947 +[#122948]: https://github.com/home-assistant/core/pull/122948 +[#122949]: https://github.com/home-assistant/core/pull/122949 +[#122950]: https://github.com/home-assistant/core/pull/122950 +[#122951]: https://github.com/home-assistant/core/pull/122951 +[#122952]: https://github.com/home-assistant/core/pull/122952 +[#122954]: https://github.com/home-assistant/core/pull/122954 +[#122955]: https://github.com/home-assistant/core/pull/122955 +[#122956]: https://github.com/home-assistant/core/pull/122956 +[#122962]: https://github.com/home-assistant/core/pull/122962 +[#122965]: https://github.com/home-assistant/core/pull/122965 +[#122967]: https://github.com/home-assistant/core/pull/122967 +[#122969]: https://github.com/home-assistant/core/pull/122969 +[#122973]: https://github.com/home-assistant/core/pull/122973 +[#122985]: https://github.com/home-assistant/core/pull/122985 +[#122986]: https://github.com/home-assistant/core/pull/122986 +[#122987]: https://github.com/home-assistant/core/pull/122987 +[#122989]: https://github.com/home-assistant/core/pull/122989 +[#122990]: https://github.com/home-assistant/core/pull/122990 +[#123005]: https://github.com/home-assistant/core/pull/123005 +[#123006]: https://github.com/home-assistant/core/pull/123006 +[#123012]: https://github.com/home-assistant/core/pull/123012 +[#123022]: https://github.com/home-assistant/core/pull/123022 +[#123024]: https://github.com/home-assistant/core/pull/123024 +[#123027]: https://github.com/home-assistant/core/pull/123027 +[#123033]: https://github.com/home-assistant/core/pull/123033 +[#123038]: https://github.com/home-assistant/core/pull/123038 +[#123043]: https://github.com/home-assistant/core/pull/123043 +[#123044]: https://github.com/home-assistant/core/pull/123044 +[#123046]: https://github.com/home-assistant/core/pull/123046 +[#123047]: https://github.com/home-assistant/core/pull/123047 +[#123049]: https://github.com/home-assistant/core/pull/123049 +[#123054]: https://github.com/home-assistant/core/pull/123054 +[#123056]: https://github.com/home-assistant/core/pull/123056 +[#123059]: https://github.com/home-assistant/core/pull/123059 +[#123060]: https://github.com/home-assistant/core/pull/123060 +[#123062]: https://github.com/home-assistant/core/pull/123062 +[#123063]: https://github.com/home-assistant/core/pull/123063 +[#123066]: https://github.com/home-assistant/core/pull/123066 +[#123069]: https://github.com/home-assistant/core/pull/123069 +[#123072]: https://github.com/home-assistant/core/pull/123072 +[#123079]: https://github.com/home-assistant/core/pull/123079 +[#123081]: https://github.com/home-assistant/core/pull/123081 +[#123101]: https://github.com/home-assistant/core/pull/123101 +[#123103]: https://github.com/home-assistant/core/pull/123103 +[#123108]: https://github.com/home-assistant/core/pull/123108 +[#123125]: https://github.com/home-assistant/core/pull/123125 +[#123128]: https://github.com/home-assistant/core/pull/123128 +[#123131]: https://github.com/home-assistant/core/pull/123131 +[#123149]: https://github.com/home-assistant/core/pull/123149 +[#123156]: https://github.com/home-assistant/core/pull/123156 +[#123159]: https://github.com/home-assistant/core/pull/123159 +[#123161]: https://github.com/home-assistant/core/pull/123161 +[#123162]: https://github.com/home-assistant/core/pull/123162 +[#123163]: https://github.com/home-assistant/core/pull/123163 +[#123166]: https://github.com/home-assistant/core/pull/123166 +[#123182]: https://github.com/home-assistant/core/pull/123182 +[#123183]: https://github.com/home-assistant/core/pull/123183 +[#123187]: https://github.com/home-assistant/core/pull/123187 +[#123190]: https://github.com/home-assistant/core/pull/123190 +[#123191]: https://github.com/home-assistant/core/pull/123191 +[#123196]: https://github.com/home-assistant/core/pull/123196 +[#123200]: https://github.com/home-assistant/core/pull/123200 +[#123202]: https://github.com/home-assistant/core/pull/123202 +[#123204]: https://github.com/home-assistant/core/pull/123204 +[#123210]: https://github.com/home-assistant/core/pull/123210 +[#123226]: https://github.com/home-assistant/core/pull/123226 +[#123229]: https://github.com/home-assistant/core/pull/123229 +[#123230]: https://github.com/home-assistant/core/pull/123230 +[#123232]: https://github.com/home-assistant/core/pull/123232 +[#123233]: https://github.com/home-assistant/core/pull/123233 +[#123234]: https://github.com/home-assistant/core/pull/123234 +[#123241]: https://github.com/home-assistant/core/pull/123241 +[#123247]: https://github.com/home-assistant/core/pull/123247 +[#123249]: https://github.com/home-assistant/core/pull/123249 +[#123250]: https://github.com/home-assistant/core/pull/123250 +[#123252]: https://github.com/home-assistant/core/pull/123252 +[#123256]: https://github.com/home-assistant/core/pull/123256 +[#123259]: https://github.com/home-assistant/core/pull/123259 +[#123261]: https://github.com/home-assistant/core/pull/123261 +[#123263]: https://github.com/home-assistant/core/pull/123263 +[#123267]: https://github.com/home-assistant/core/pull/123267 +[#123269]: https://github.com/home-assistant/core/pull/123269 +[#123271]: https://github.com/home-assistant/core/pull/123271 +[#123275]: https://github.com/home-assistant/core/pull/123275 +[#123279]: https://github.com/home-assistant/core/pull/123279 +[#123281]: https://github.com/home-assistant/core/pull/123281 +[#123283]: https://github.com/home-assistant/core/pull/123283 +[#123286]: https://github.com/home-assistant/core/pull/123286 +[#123294]: https://github.com/home-assistant/core/pull/123294 +[#123295]: https://github.com/home-assistant/core/pull/123295 +[@ALERTua]: https://github.com/ALERTua +[@Bre77]: https://github.com/Bre77 +[@CFenner]: https://github.com/CFenner +[@CM000n]: https://github.com/CM000n +[@Cereal2nd]: https://github.com/Cereal2nd +[@CrazyMan2000]: https://github.com/CrazyMan2000 +[@Cris-ET]: https://github.com/Cris-ET +[@DCSBL]: https://github.com/DCSBL +[@DHandspikerWade]: https://github.com/DHandspikerWade +[@DeerMaximum]: https://github.com/DeerMaximum +[@Denifia]: https://github.com/Denifia +[@Djelibeybi]: https://github.com/Djelibeybi +[@Fabiann2205]: https://github.com/Fabiann2205 +[@GeoffAtHome]: https://github.com/GeoffAtHome +[@HarvsG]: https://github.com/HarvsG +[@Jordi1990]: https://github.com/Jordi1990 +[@Kane610]: https://github.com/Kane610 +[@Lash-L]: https://github.com/Lash-L +[@Lorzware]: https://github.com/Lorzware +[@LouisChrist]: https://github.com/LouisChrist +[@Mariusthvdb]: https://github.com/Mariusthvdb +[@MatthewFlamm]: https://github.com/MatthewFlamm +[@Moustachauve]: https://github.com/Moustachauve +[@MrEbbinghaus]: https://github.com/MrEbbinghaus +[@NECH2004]: https://github.com/NECH2004 +[@Noltari]: https://github.com/Noltari +[@PaarthShah]: https://github.com/PaarthShah +[@PeteRager]: https://github.com/PeteRager +[@Petro31]: https://github.com/Petro31 +[@Sebclem]: https://github.com/Sebclem +[@SeraphicRav]: https://github.com/SeraphicRav +[@Shulyaka]: https://github.com/Shulyaka +[@Shutgun]: https://github.com/Shutgun +[@SplicedNZ]: https://github.com/SplicedNZ +[@StevenLooman]: https://github.com/StevenLooman +[@Suxsem]: https://github.com/Suxsem +[@Thomas55555]: https://github.com/Thomas55555 +[@ViViDboarder]: https://github.com/ViViDboarder +[@Yehazkel]: https://github.com/Yehazkel +[@adsmf]: https://github.com/adsmf +[@agners]: https://github.com/agners +[@albertogeniola]: https://github.com/albertogeniola +[@alexandrecuer]: https://github.com/alexandrecuer +[@alexfp14]: https://github.com/alexfp14 +[@allenporter]: https://github.com/allenporter +[@amccook]: https://github.com/amccook +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@angelnu]: https://github.com/angelnu +[@ashalita]: https://github.com/ashalita +[@ashionky]: https://github.com/ashionky +[@astrandb]: https://github.com/astrandb +[@atinsley]: https://github.com/atinsley +[@atlflyer]: https://github.com/atlflyer +[@austinmroczek]: https://github.com/austinmroczek +[@autinerd]: https://github.com/autinerd +[@b3nj1]: https://github.com/b3nj1 +[@balloob]: https://github.com/balloob +[@barryvdh]: https://github.com/barryvdh +[@bdowden]: https://github.com/bdowden +[@bdraco]: https://github.com/bdraco +[@beastie29a]: https://github.com/beastie29a +[@bgoncal]: https://github.com/bgoncal +[@bieniu]: https://github.com/bieniu +[@bjpetit]: https://github.com/bjpetit +[@bramkragten]: https://github.com/bramkragten +[@brg468]: https://github.com/brg468 +[@catsmanac]: https://github.com/catsmanac +[@cayossarian]: https://github.com/cayossarian +[@cdce8p]: https://github.com/cdce8p +[@cdnninja]: https://github.com/cdnninja +[@chamberlain2007]: https://github.com/chamberlain2007 +[@chemelli74]: https://github.com/chemelli74 +[@cmroche]: https://github.com/cmroche +[@cnico]: https://github.com/cnico +[@dalinicus]: https://github.com/dalinicus +[@danielsmyers]: https://github.com/danielsmyers +[@davet2001]: https://github.com/davet2001 +[@deimosfr]: https://github.com/deimosfr +[@devbis]: https://github.com/devbis +[@dgomes]: https://github.com/dgomes +[@djtimca]: https://github.com/djtimca +[@dknowles2]: https://github.com/dknowles2 +[@dmulcahey]: https://github.com/dmulcahey +[@dontinelli]: https://github.com/dontinelli +[@dougiteixeira]: https://github.com/dougiteixeira +[@dukeofphilberg]: https://github.com/dukeofphilberg +[@dupondje]: https://github.com/dupondje +[@edenhaus]: https://github.com/edenhaus +[@eifinger]: https://github.com/eifinger +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@engrbm87]: https://github.com/engrbm87 +[@epenet]: https://github.com/epenet +[@erwindouna]: https://github.com/erwindouna +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@flopp999]: https://github.com/flopp999 +[@flz]: https://github.com/flz +[@fopina]: https://github.com/fopina +[@frenck]: https://github.com/frenck +[@fustom]: https://github.com/fustom +[@gingermike]: https://github.com/gingermike +[@giulianoriccio]: https://github.com/giulianoriccio +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@gwww]: https://github.com/gwww +[@huettner94]: https://github.com/huettner94 +[@iMicknl]: https://github.com/iMicknl +[@iamjackg]: https://github.com/iamjackg +[@iloveicedgreentea]: https://github.com/iloveicedgreentea +[@j-stienstra]: https://github.com/j-stienstra +[@jafar-atili]: https://github.com/jafar-atili +[@janiversen]: https://github.com/janiversen +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jjlawren]: https://github.com/jjlawren +[@joostlek]: https://github.com/joostlek +[@jrieger]: https://github.com/jrieger +[@jvmahon]: https://github.com/jvmahon +[@kamiyo]: https://github.com/kamiyo +[@karwosts]: https://github.com/karwosts +[@kepstin]: https://github.com/kepstin +[@kimdv]: https://github.com/kimdv +[@kingy444]: https://github.com/kingy444 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kotope]: https://github.com/kotope +[@krmarien]: https://github.com/krmarien +[@leosperry]: https://github.com/leosperry +[@lkstz]: https://github.com/lkstz +[@llamafilm]: https://github.com/llamafilm +[@luca-angemi]: https://github.com/luca-angemi +[@ludeeus]: https://github.com/ludeeus +[@lunmay]: https://github.com/lunmay +[@madpilot]: https://github.com/madpilot +[@maniek335]: https://github.com/maniek335 +[@marcelveldt]: https://github.com/marcelveldt +[@marcelvriend]: https://github.com/marcelvriend +[@matrixd2]: https://github.com/matrixd2 +[@meichthys]: https://github.com/meichthys +[@mib1185]: https://github.com/mib1185 +[@milanmeu]: https://github.com/milanmeu +[@mj23000]: https://github.com/mj23000 +[@mkmer]: https://github.com/mkmer +[@musapinar]: https://github.com/musapinar +[@nagyrobi]: https://github.com/nagyrobi +[@noahhusby]: https://github.com/noahhusby +[@pburgio]: https://github.com/pburgio +[@piitaya]: https://github.com/piitaya +[@pkoenig10]: https://github.com/pkoenig10 +[@pssc]: https://github.com/pssc +[@puddly]: https://github.com/puddly +[@rappenze]: https://github.com/rappenze +[@ribbal]: https://github.com/ribbal +[@rikroe]: https://github.com/rikroe +[@rrooggiieerr]: https://github.com/rrooggiieerr +[@sander1988]: https://github.com/sander1988 +[@sarabveer]: https://github.com/sarabveer +[@sdb9696]: https://github.com/sdb9696 +[@shaiu]: https://github.com/shaiu +[@sorgfresser]: https://github.com/sorgfresser +[@srwareham]: https://github.com/srwareham +[@starkillerOG]: https://github.com/starkillerOG +[@steverep]: https://github.com/steverep +[@synesthesiam]: https://github.com/synesthesiam +[@tanchu]: https://github.com/tanchu +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@tsvi]: https://github.com/tsvi +[@upsuper]: https://github.com/upsuper +[@xLarry]: https://github.com/xLarry +[@yuxincs]: https://github.com/yuxincs +[@zinuzoid]: https://github.com/zinuzoid +[@zmc]: https://github.com/zmc +[@zweckj]: https://github.com/zweckj +[@zxdavb]: https://github.com/zxdavb \ No newline at end of file diff --git a/source/common-tasks/os.markdown b/source/common-tasks/os.markdown index b46e13f1d1d..258b1250e02 100644 --- a/source/common-tasks/os.markdown +++ b/source/common-tasks/os.markdown @@ -77,12 +77,11 @@ You can manually define that the previous boot slot is used. This can be useful ### Updating Home Assistant Core {% include common-tasks/update.md %} + {% include common-tasks/network_storage.md %} -{% include common-tasks/commandline.md %} {% include common-tasks/lost_password.md %} {% include common-tasks/third-party-addons.md %} {% include common-tasks/configuration_check.md %} -{% include common-tasks/enable_i2c.md %} ## Home Assistant versions @@ -94,3 +93,8 @@ To see which version your system is running, go to {% my info title="**Settings* {% include common-tasks/data_disk.md %} + +{% include common-tasks/commandline.md %} + + +{% include common-tasks/enable_i2c.md %} diff --git a/source/common-tasks/supervised.markdown b/source/common-tasks/supervised.markdown index 74a9c6101fa..ca6781d7151 100644 --- a/source/common-tasks/supervised.markdown +++ b/source/common-tasks/supervised.markdown @@ -15,7 +15,6 @@ related: {% include common-tasks/update.md %} {% include common-tasks/network_storage.md %} -{% include common-tasks/commandline.md %} {% include common-tasks/lost_password.md %} {% include common-tasks/third-party-addons.md %} {% include common-tasks/configuration_check.md %} @@ -26,4 +25,6 @@ To see which version your system is running, go to {% my info title="**Settings* {% include common-tasks/specific_version.md %} {% include common-tasks/beta_version.md %} -{% include common-tasks/development_version.md %} \ No newline at end of file +{% include common-tasks/development_version.md %} + +{% include common-tasks/commandline.md %} \ No newline at end of file diff --git a/source/dashboards/badges.markdown b/source/dashboards/badges.markdown index b7ff3d54d29..e4688ab7cc7 100644 --- a/source/dashboards/badges.markdown +++ b/source/dashboards/badges.markdown @@ -10,6 +10,26 @@ Badges are widgets that sit at the top of a panel, above all the cards. Badges at the top of a panel.

+## Adding a badge to your dashboard + +1. Go to {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}. +2. If you have multiple [views](/dashboards/views/), open the view to which you want to add a badge. +3. In the top right of the screen, select the edit {% icon "mdi:edit" %} button. +4. To add a badge, select the plus {% icon "mdi:plus" %}button. + + ![Screenshot showing how to add a badge](/images/dashboards/badge_add.png) + +5. Select the entity for which you want to display a badge. +6. Configure your badge. + - The available options depend on the entity. + - Add the states you want to see. + - If you want, add a **Name**. + + ![Screenshot showing how to configure a badge](/images/dashboards/badge_configure.png) +7. Under **Interactions**, you can define the tap behavior. +8. If you want this badge to be visible only to specific users or under a certain condition, open the **Visibility** tab to [define those conditions](/dashboards/cards/#showing-or-hiding-a-card-conditionally). +9. Select **Save**. + ## Entity badge The Entity badge allows you to display the state of an entity on a badge. This badge supports [actions](/dashboards/actions/). diff --git a/source/dashboards/cards.markdown b/source/dashboards/cards.markdown index 4fbf8ed25dd..ef5c991d038 100644 --- a/source/dashboards/cards.markdown +++ b/source/dashboards/cards.markdown @@ -84,9 +84,9 @@ This method is useful if you are on the **Device** page and want to create a car 8. If you like, define [card actions, features, header and footer widgets](#card-actions-features-header-and-footer-widgets). - Not all cards support these elements. Refer to the documentation of the specific card type. -## Showing or hiding a card conditionally +## Showing or hiding a card or badge conditionally -You can choose to show or hide certain cards based on different conditions. The [available conditions](/dashboards/conditional/#card-conditions) are the same as the ones for the conditional card. +You can choose to show or hide certain cards or [badges](/dashboards/badges/) based on different conditions. The [available conditions](/dashboards/conditional/#card-conditions) are the same as the ones for the conditional card. 1. On the **Visibility** tab, select **Add condition**. - Don't see a **Visibility** tab? diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown index 2b8c5a96eca..6d9f2122323 100644 --- a/source/getting-started/automation.markdown +++ b/source/getting-started/automation.markdown @@ -47,7 +47,8 @@ This tutorial assumes the following: ![A new automation with the action set up to turn on the lights in the living room.](/images/getting-started/action.png) -6. To save the automation, select **Save**. Give the automation a name and **Save** again. +6. To save the automation, select **Save**. Give the automation a name, add a **Description**, and **Save** again. + - When choosing a name, be specific, so that you can find it even when you have many automations. For example, `Turn on living room table light at sunset`. - Now wait until it's 30 minutes before sunset and see your automation magic! - Or follow these steps to [test your automation](/docs/automation/troubleshooting/#testing-your-automation) right away. @@ -99,7 +100,7 @@ This tutorial assumes the following: ![Screenshot showing the then section of an if-then action](/images/getting-started/automation_if-then-action_then.png) -6. To save the automation, select **Save**. Give the automation a name and **Save** again. +6. To save the automation, select **Save**. Give the automation a name (for example, `dim living room table light night before workday`), add a **Description**, and **Save** again. 7. [Test your automation](/docs/automation/troubleshooting/#testing-your-automation). {% include getting-started/next_step.html step="Presence detection" link="/getting-started/presence-detection/" %} diff --git a/source/getting-started/concepts-terminology.markdown b/source/getting-started/concepts-terminology.markdown index 7441a55fae0..c9e9fa14cda 100644 --- a/source/getting-started/concepts-terminology.markdown +++ b/source/getting-started/concepts-terminology.markdown @@ -24,6 +24,8 @@ Once an {% term integration %} has been added, the hardware and/or data are repr Entities are the basic building blocks to hold data in Home Assistant. An {% term entity %} represents a {% term sensor %}, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other {% term entities %}. An {% term entity %} is usually part of a {% term device %} or a {% term service %}. Entities have {% term states %}. +

Screenshot showing the Entities tableScreenshot of the Entities table. Each line represents an entity.

+ ## Devices Devices are a logical grouping for one or more {% term entities %}. A {% term device %} may represent a physical {% term device %}, which can have one or more sensors. The sensors appear as entities associated with the {% term device %}. For example, a motion sensor is represented as a {% term device %}. It may provide motion detection, temperature, and light levels as {% term entities %}. Entities have states such as *detected* when motion is detected and *clear* when there is no motion. @@ -72,8 +74,12 @@ To learn how to use {% term scenes %}, refer to the [scene](/integrations/scene/ ## Add-ons -Depending on your [installation type](/installation), you can install third party add-ons. Add-ons are usually apps that can be run with Home Assistant but provide a quick and easy way to install, configure, and run within Home Assistant. Add-ons provide additional functionality whereas {% term integrations %} connect Home Assistant to other apps. +Add-ons are third-party applications that provide additional functionality in Home Assistant. Add-ons run directly alongside Home Assistant, whereas {% term integrations %} connect Home Assistant to other apps. Add-ons are only supported by the {% term "Home Assistant Operating System" %} and {% term "Home Assistant Supervised" %} [installation type](/installation). -![Add-ons](/images/getting-started/add-ons.png) +Add-ons are installed from the add-on store under {% my supervisor title="**Settings** > **Add-ons**" %}. If you are curious now and feel like installing every add-on that looks interesting: beware that add-ons can use quite a bit of resources in terms of disk space, memory, and additional load on the processor. + +Among the most used add-ons are the ones that provide [file access and edit files](/docs/configuration/#to-set-up-access-to-the-files-and-prepare-an-editor) in Home Assistant. + +

Screenshot of the add-on pageScreenshot of the add-on page, showing all the installed add-ons on a test system.

{% include getting-started/next_step.html step="Edit the dashboard" link="/getting-started/onboarding_dashboard/" %} diff --git a/source/getting-started/configuration.markdown b/source/getting-started/configuration.markdown index 1a4348acc72..7ee91082b73 100644 --- a/source/getting-started/configuration.markdown +++ b/source/getting-started/configuration.markdown @@ -18,9 +18,21 @@ related: The onboarding process takes you through the initial setup for Home Assistant, such as getting the system up and running, naming your home and selecting your location. This section points you to further documentation helping you with the next steps. +## Adding other persons to Home Assistant + +You can add other people to Home Assistant. They can have their own login, use Home Assistant on their devices and create their own dashboards. To add other people, refer to [Adding a person to Home Assistant](/integrations/person/#adding-a-person-to-home-assistant). + +## Apps for Android and iOS + +You can use Home Assistant on your phone, smartwatch, and even in your car. + +- To learn how to install Home Assistant on Android or iOS, refer to the [documentation for the Companion Apps](https://companion.home-assistant.io/). +- Want to use your voice to control Home Assistant? + - Refer to the documentation on using [Assist on Android](/voice_control/android/). + ## Changing the basic settings -To change basic settings such as location, unit system and language, refer to [Changing basic settings](/docs/configuration/basic/). +To change basic settings such as location, unit system, and language, refer to [Changing basic settings](/docs/configuration/basic/). ## Creating a backup @@ -43,6 +55,3 @@ If you need more space to store data, you can configure a [network storage](/com If you want to get started with a voice assistant, refer to the documentation on [Assist](/voice_control/). -## Apps for Android and iOS - -If you are looking for information on Home Assistant for Android or iOS, refer to the [documentation for the Companion Apps](https://companion.home-assistant.io/). diff --git a/source/getting-started/onboarding.markdown b/source/getting-started/onboarding.markdown index 1979cebfacc..74d608175f9 100644 --- a/source/getting-started/onboarding.markdown +++ b/source/getting-started/onboarding.markdown @@ -30,9 +30,10 @@ After Home Assistant has been [installed](/installation/) on your device, there - If you have a Home Assistant Green, start with the [Green documentation on restoring from backup](https://green.home-assistant.io/guides/restore-backup/). 3. Enter the location of your home. - - The location is used to configure the time zone, unit system, and currency. - - It is also used for automations such as showing the weather, opening the shades at sunrise, or starting the vacuum when you leave the home. + - The home location is used to configure the time zone, unit system, and currency. + - It is also used to create the home [zone](/integrations/zone/), which designates the area of your home with a default radius of 100 m. - You can always change this information later in the settings. + - This home zone can be used for automations such as showing the weather, opening the shades at sunrise, or starting the vacuum when you leave the home. - After finding your location, select **Next**. ![Define your location.](/images/getting-started/onboarding_location.png) diff --git a/source/getting-started/presence-detection.markdown b/source/getting-started/presence-detection.markdown index a206c6e1a47..5ef07b83cf1 100644 --- a/source/getting-started/presence-detection.markdown +++ b/source/getting-started/presence-detection.markdown @@ -1,32 +1,68 @@ --- title: "Setting up presence detection" -description: "Instructions on how to setup presence detection within Home Assistant." +description: "Instructions on how to set up zone presence detection within Home Assistant." --- -Presence detection detects if people are home, which can be valuable input for automation. Knowing who is home or where they are, will open a whole range of other automation options: +Zone presence detection detects if people are within a certain zone, which can be valuable input for automation. Knowing who is home or where they are opens a range of automation options: - Send me a notification when my child arrives at school - Turn on the AC when I leave work -![Screenshot of Home Assistant showing a school, work and home zone and two people.](/images/screenshots/map.png) +

+ Screenshot of a map dashboard in Home Assistant showing a school, work and home zone and two people. + Map dashboard showing a school, work, and a home zone and the location of two people. +

-### Adding presence detection +## About setting up zone presence detection -There are different ways of setting up presence detection. Usually the easiest way to detect presence is by checking which {% term devices %} are connected to the network. You can do that if you have one of our [supported routers][routers]. By leveraging what your router already knows, you can easily detect if people are at home. +There are different ways of setting up zone presence detection. One way is to run an app on your phone to send detailed location information to your Home Assistant instance. Another way to detect presence is by checking which {% term devices %} are connected to the network. You can do that if you have one of our [supported routers][routers]. By leveraging what your router already knows, you can detect if people are at home. -It's also possible to run an app on your phone to provide detailed location information to your Home Assistant instance. For iOS and Android, we suggest using the [Home Assistant Companion app][companion]. +## Adding zone presence detection with a mobile phone -During the setup of Home Assistant Companion on your mobile device, the app will ask for permission to allow the device's location to be provided to Home Assistant. Allowing this will create a `device_tracker` entity for that device which can be used in automations and conditions. +### Prerequisites -### Zones +- [Home Assistant installed](/installation/) +- [Onboarding steps](/getting-started/onboarding/) completed +- [Remote access enabled](/docs/configuration/remote/) + - The easiest way to do this is by enabling + - [Home Assistant Cloud](https://nabucasa.com/config/) +- Mobile phone: + - Android (Android 5 or later) or iPhone (iOS 15 or later) + - Phone plan with Internet access + - Access to your local network where Home Assistant is running +- [Home Assistant Companion app installed](https://companion.home-assistant.io/docs/getting_started/) on your phone. + - During the setup procedure, make sure to grant **Location access**. + - Location access creates a `device_tracker` entity for that device. This entity can be used in automations and conditions. -![Map with zones](/images/screenshots/badges-zone.png) +### To add zone presence detection with a mobile phone -{% term Zones %} allow you to name areas on a map. These areas can then be used to name the location a tracked user is, or use entering/leaving a zone as an automation {% term trigger %} or {% term condition %}. See [Zones integration](/integrations/zone/) page for more details like creating zones. +1. Open the Home Assistant Companion app on your phone and log in to your Home Assistant instance. +2. On the screen to **Connect to Home Assistant**, make sure you activate **Enable location tracking**. + - Select **Continue**. +3. Go to {% my integrations title="**Settings** > **Devices** & **Services**" %} and look for the new integration that was added: **Mobile App**. + - On the integration card, select **1 Device**. This opens the device info page. + - You now see your phone name and its entities. +4. To view the location of your phone on the map, open the **Map** dashboard. + - You now see a circle on that map with your initial. + - It shows the current location of your phone. + - To view the details, select that initial. + - Open the **Attributes** list to see the phone's **Latitude**, **Longitude**, and the **Source** of information. + - The source is the `device_tracker` entity for that device, for example `device_tracker.pixel_7_pro`. +5. To view the entity details and the history, go to {% my entities title="**Settings** > **Devices & services** > **Entities**" %} and in the search field, enter `devi` and select your `device_tracker` entity from the list. +6. Check your [Zones](/integrations/zone/) to prepare them for automations. + - Your home zone was set up during onboarding, but you can edit it. + - You can add other zones if you want to automate on them. + - For example, if you want the heating to start when you leave your office, you can add a zone called **Office**. + - In this case, leaving the office zone would be an automation {% term trigger %}. + - You could also use the location information as an automation {% term condition %}, for example, when you have an automation to turn on the light at sunset, but only when you are home. -{% note %} -The map dashboard will hide all devices that are home. -{% endnote %} +## Adding presence detection for other persons in your home + +1. For each person you want to have presence detection, add a device tracker (for example, their phone). + - You can also use a smartwatch for presence detection. To do this, install the [Home Assistant Companion app](https://companion.home-assistant.io/docs/getting_started/) on the device. Make sure to allow location tracking. + - To use it for zone presence detection outside your home, the smartwatch requires a mobile plan. +2. Go to {% my people title="**Settings** > **People**" %} and select the person. +3. Scroll down and under **Select the devices that belong to this person**, select the device. [routers]: /integrations/#presence-detection [nmap]: /integrations/nmap_tracker diff --git a/source/images/blog/2024-08-yellow-lineup/art.jpg b/source/images/blog/2024-08-yellow-lineup/art.jpg new file mode 100644 index 00000000000..c9434c8ab29 Binary files /dev/null and b/source/images/blog/2024-08-yellow-lineup/art.jpg differ diff --git a/source/images/blog/2024-08-yellow-lineup/green-meets-yellow.jpg b/source/images/blog/2024-08-yellow-lineup/green-meets-yellow.jpg new file mode 100644 index 00000000000..ef04df3348c Binary files /dev/null and b/source/images/blog/2024-08-yellow-lineup/green-meets-yellow.jpg differ diff --git a/source/images/blog/2024-08/actions-developers-tools.png b/source/images/blog/2024-08/actions-developers-tools.png new file mode 100644 index 00000000000..60c2edef548 Binary files /dev/null and b/source/images/blog/2024-08/actions-developers-tools.png differ diff --git a/source/images/blog/2024-08/badges-add-visibility.png b/source/images/blog/2024-08/badges-add-visibility.png new file mode 100644 index 00000000000..8b7471906e8 Binary files /dev/null and b/source/images/blog/2024-08/badges-add-visibility.png differ diff --git a/source/images/blog/2024-08/data-tables-created-modified-columns-sorting.png b/source/images/blog/2024-08/data-tables-created-modified-columns-sorting.png new file mode 100644 index 00000000000..c54034a2f4a Binary files /dev/null and b/source/images/blog/2024-08/data-tables-created-modified-columns-sorting.png differ diff --git a/source/images/blog/2024-08/knx-panel-for-creating-entities.png b/source/images/blog/2024-08/knx-panel-for-creating-entities.png new file mode 100644 index 00000000000..0c7107ef33d Binary files /dev/null and b/source/images/blog/2024-08/knx-panel-for-creating-entities.png differ diff --git a/source/images/blog/2024-08/matter-updates.png b/source/images/blog/2024-08/matter-updates.png new file mode 100644 index 00000000000..aa07a619a30 Binary files /dev/null and b/source/images/blog/2024-08/matter-updates.png differ diff --git a/source/images/blog/2024-08/ollama-model-performance.png b/source/images/blog/2024-08/ollama-model-performance.png new file mode 100644 index 00000000000..b1257512dfa Binary files /dev/null and b/source/images/blog/2024-08/ollama-model-performance.png differ diff --git a/source/images/blog/2024-08/optimized-information-density.png b/source/images/blog/2024-08/optimized-information-density.png new file mode 100644 index 00000000000..bb26f8d2439 Binary files /dev/null and b/source/images/blog/2024-08/optimized-information-density.png differ diff --git a/source/images/blog/2024-08/social.jpg b/source/images/blog/2024-08/social.jpg new file mode 100644 index 00000000000..4cd13982d3b Binary files /dev/null and b/source/images/blog/2024-08/social.jpg differ diff --git a/source/images/blog/2024-08/yaml-integration-listed.png b/source/images/blog/2024-08/yaml-integration-listed.png new file mode 100644 index 00000000000..1d4003eb5b5 Binary files /dev/null and b/source/images/blog/2024-08/yaml-integration-listed.png differ diff --git a/source/images/dashboards/badge_add.png b/source/images/dashboards/badge_add.png new file mode 100644 index 00000000000..6cc99f14f20 Binary files /dev/null and b/source/images/dashboards/badge_add.png differ diff --git a/source/images/dashboards/badge_configure.png b/source/images/dashboards/badge_configure.png new file mode 100644 index 00000000000..c0d9942e103 Binary files /dev/null and b/source/images/dashboards/badge_configure.png differ diff --git a/source/images/getting-started/add_workday_integration.png b/source/images/getting-started/add_workday_integration.png index b0fa8ca0632..18aaf6107db 100644 Binary files a/source/images/getting-started/add_workday_integration.png and b/source/images/getting-started/add_workday_integration.png differ diff --git a/source/images/getting-started/entities.png b/source/images/getting-started/entities.png new file mode 100644 index 00000000000..9cb2ef30fc0 Binary files /dev/null and b/source/images/getting-started/entities.png differ diff --git a/source/images/getting-started/integrations.png b/source/images/getting-started/integrations.png index 457d238bb58..8054e4bec17 100644 Binary files a/source/images/getting-started/integrations.png and b/source/images/getting-started/integrations.png differ diff --git a/source/images/getting-started/integrations_page_discovered.png b/source/images/getting-started/integrations_page_discovered.png index 5b67b2715b4..557c2efe34e 100644 Binary files a/source/images/getting-started/integrations_page_discovered.png and b/source/images/getting-started/integrations_page_discovered.png differ diff --git a/source/images/getting-started/workday_select_integration.png b/source/images/getting-started/workday_select_integration.png index c5e1f3334e3..f808c15d9cb 100644 Binary files a/source/images/getting-started/workday_select_integration.png and b/source/images/getting-started/workday_select_integration.png differ diff --git a/source/images/getting-started/yaml-icon.png b/source/images/getting-started/yaml-icon.png index 3b1ed53d752..47a818a1904 100644 Binary files a/source/images/getting-started/yaml-icon.png and b/source/images/getting-started/yaml-icon.png differ diff --git a/source/images/hassio/screenshots/add-ons-community_example.png b/source/images/hassio/screenshots/add-ons-community_example.png new file mode 100644 index 00000000000..92044534ba9 Binary files /dev/null and b/source/images/hassio/screenshots/add-ons-community_example.png differ diff --git a/source/images/hassio/screenshots/adding_repositories.png b/source/images/hassio/screenshots/adding_repositories.png index 09fd9e2ce15..dd9a05fc386 100644 Binary files a/source/images/hassio/screenshots/adding_repositories.png and b/source/images/hassio/screenshots/adding_repositories.png differ diff --git a/source/images/hassio/screenshots/dashboard.png b/source/images/hassio/screenshots/dashboard.png deleted file mode 100644 index bd8f2ec9576..00000000000 Binary files a/source/images/hassio/screenshots/dashboard.png and /dev/null differ diff --git a/source/images/integrations/zone/zone_edit_ui.png b/source/images/integrations/zone/zone_edit_ui.png index 622dc608e18..f8a28300bd1 100644 Binary files a/source/images/integrations/zone/zone_edit_ui.png and b/source/images/integrations/zone/zone_edit_ui.png differ diff --git a/source/images/organizing/area_assign_devices.png b/source/images/organizing/area_assign_devices.png new file mode 100644 index 00000000000..d3511dfd90a Binary files /dev/null and b/source/images/organizing/area_assign_devices.png differ diff --git a/source/images/organizing/area_delete.png b/source/images/organizing/area_delete.png new file mode 100644 index 00000000000..de387cf44e1 Binary files /dev/null and b/source/images/organizing/area_delete.png differ diff --git a/source/images/organizing/customize_columns.webp b/source/images/organizing/customize_columns.webp index 44fc4fce8bb..3be83cb6d9b 100644 Binary files a/source/images/organizing/customize_columns.webp and b/source/images/organizing/customize_columns.webp differ diff --git a/source/images/screenshots/storage_view_free-diskspace.png b/source/images/screenshots/storage_view_free-diskspace.png new file mode 100644 index 00000000000..e2a22ec75e0 Binary files /dev/null and b/source/images/screenshots/storage_view_free-diskspace.png differ diff --git a/source/more-info/free-space.markdown b/source/more-info/free-space.markdown index d6f62245b53..f737abfaf62 100644 --- a/source/more-info/free-space.markdown +++ b/source/more-info/free-space.markdown @@ -21,15 +21,27 @@ There are several things you can do to free up some space: - [Uninstall unused add-ons](#uninstalling-unused-add-ons) - [Expand storage](#expanding-storage) +## Viewing the available disk space + +Follow these steps to check the available free disk space. + +1. Go to **{% my storage title="Settings > System > Storage" %}**. +2. Under disk metrics, hover over the status bar to view the details. + - {% icon "mdi:information-outline" %} The **Network storage** section only shows if you have [added network storage](/common-tasks/os/#network-storage). + + ![Screenshot of the "Move datadisk" feature](/images/screenshots/storage_view_free-diskspace.png) + ## Cleaning the database -The Home Assistant database can get huge! +The Home Assistant database can become very large. Follow these steps to reduce the size of the database. -Luckily, there is a tool you can use to [purge the contents of the database](/integrations/recorder/#action-purge) - -You can [filter](/integrations/recorder/#configure-filter) what you send to -the database, and even change how long it stores the data -[with the `purge_keep_days` setting](/integrations/recorder/#purge_keep_days) +1. To view the size of the current database, go to {% my system_health title="**Settings** > **System** > **Repairs**" %}. + - Select the three dots {% icon "mdi:dots-vertical" %} menu and select **System information**. + - Scroll down to the **Recorder**, and check the **Estimated database size (MiB)**. +2. [Purge the contents of the database](/integrations/recorder/#service-purge). +3. To slow down the growth of the database, [filter](/integrations/recorder/#configure-filter) what you send to +the database. +4. Change how long it stores the data, using the [`purge_keep_days` setting](/integrations/recorder/#purge_keep_days). ## Reducing space used for backups diff --git a/source/voice_control/s3_box_voice_assistant.markdown b/source/voice_control/s3_box_voice_assistant.markdown index 581255f0e33..1df94499daf 100644 --- a/source/voice_control/s3_box_voice_assistant.markdown +++ b/source/voice_control/s3_box_voice_assistant.markdown @@ -52,7 +52,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - **For advanced users**: The configuration files are available on GitHub: - - [ESP32-S3-BOX config on GitHub](https://github.com/esphome/firmware/blob/main/wake-word-voice-assistant/esp32-s3-box.yaml) + - [ESP32-S3-BOX config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box/esp32-s3-box.yaml) 2. To connect the ESP32-S3-BOX to your computer, follow these steps: - In the pop-up window, view the available ports. @@ -90,7 +90,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - **For advanced users**: The configuration files are available on GitHub: - - [ESP32-S3-BOX-3 config on GitHub](https://github.com/esphome/firmware/blob/main/wake-word-voice-assistant/esp32-s3-box-3.yaml) + - [ESP32-S3-BOX-3 config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-3/esp32-s3-box-3.yaml) 2. To connect the ESP32-S3-BOX-3 to your computer, follow these steps: - In the pop-up window, view the available ports. @@ -135,7 +135,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - **For advanced users**: The configuration files are available on GitHub: - - [ESP32-S3-BOX-Lite config on GitHub](https://github.com/esphome/firmware/blob/main/wake-word-voice-assistant/esp32-s3-box-lite.yaml) + - [ESP32-S3-BOX-Lite config on GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/esp32-s3-box-lite/esp32-s3-box-lite.yaml) 2. To connect the ESP32-S3-BOX-Lite to your computer, follow these steps: - In the pop-up window, view the available ports. diff --git a/source/voice_control/thirteen-usd-voice-remote.markdown b/source/voice_control/thirteen-usd-voice-remote.markdown index 51dd0207719..8fe07aa7687 100644 --- a/source/voice_control/thirteen-usd-voice-remote.markdown +++ b/source/voice_control/thirteen-usd-voice-remote.markdown @@ -45,8 +45,8 @@ Before you can use this device with Home Assistant, you need to install a bit of - Select the **Connect** button below. If your browser does not support web serial, you will see a warning instead of a button. - - - **For advanced users**: The configuration file is available on [GitHub](https://github.com/esphome/firmware/blob/main/voice-assistant/m5stack-atom-echo.yaml). + + - **For advanced users**: The configuration file is available on [GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/m5stack-atom-echo/m5stack-atom-echo.yaml). {% include voice_assistant/install_esp_firmware.md %} 9. Select the **ESPHome** integration. Under **Devices**, you should see the **M5Stack Atom Echo** listed. diff --git a/source/yellow/index.html b/source/yellow/index.html index 8a9780250ca..e3f73fb341b 100644 --- a/source/yellow/index.html +++ b/source/yellow/index.html @@ -154,11 +154,6 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg Zigbee & Thread Comes with Zigbee out of the box. Thread to power your Matter network is coming soon. -
- Ready - Zero Setup - Comes with Home Assistant. -