diff --git a/CODEOWNERS b/CODEOWNERS index 6fccd50d732..709df8de59f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -41,6 +41,7 @@ source/_integrations/analytics.markdown @home-assistant/core @ludeeus source/_integrations/android_ip_webcam.markdown @engrbm87 source/_integrations/androidtv.markdown @JeffLIrion @ollo69 source/_integrations/anthemav.markdown @hyralex +source/_integrations/anwb_energie.markdown @klaasnicolaas source/_integrations/apache_kafka.markdown @bachya source/_integrations/apcupsd.markdown @yuxincs source/_integrations/api.markdown @home-assistant/core @@ -84,6 +85,7 @@ source/_integrations/bluemaestro.markdown @bdraco source/_integrations/blueprint.markdown @home-assistant/core source/_integrations/bluesound.markdown @thrawnarn 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 @@ -152,6 +154,7 @@ source/_integrations/digital_ocean.markdown @fabaff source/_integrations/discogs.markdown @thibmaek source/_integrations/discord.markdown @tkdrob source/_integrations/discovery.markdown @home-assistant/core +source/_integrations/dlink.markdown @tkdrob source/_integrations/dlna_dmr.markdown @StevenLooman @chishm source/_integrations/dlna_dms.markdown @chishm source/_integrations/dnsip.markdown @gjohansson-ST @@ -178,7 +181,9 @@ source/_integrations/emoncms.markdown @borpin source/_integrations/emonitor.markdown @bdraco source/_integrations/emulated_hue.markdown @bdraco source/_integrations/emulated_kasa.markdown @kbickar +source/_integrations/energie_vanons.markdown @klaasnicolaas source/_integrations/energy.markdown @home-assistant/core +source/_integrations/energyzero.markdown @klaasnicolaas source/_integrations/enigma2.markdown @fbradyirl source/_integrations/enocean.markdown @bdurrer source/_integrations/enphase_envoy.markdown @gtdiehl @@ -203,6 +208,7 @@ source/_integrations/file.markdown @fabaff source/_integrations/file_upload.markdown @home-assistant/core source/_integrations/filesize.markdown @gjohansson-ST source/_integrations/filter.markdown @dgomes +source/_integrations/fire_tv.markdown @JeffLIrion @ollo69 source/_integrations/fireservicerota.markdown @cyberjunky source/_integrations/firmata.markdown @DaAwesomeP source/_integrations/fivem.markdown @Sander0542 @@ -248,6 +254,7 @@ source/_integrations/google.markdown @allenporter source/_integrations/google_assistant.markdown @home-assistant/cloud source/_integrations/google_assistant_sdk.markdown @tronikos source/_integrations/google_cloud.markdown @lufton +source/_integrations/google_mail.markdown @tkdrob source/_integrations/google_sheets.markdown @tkdrob source/_integrations/google_travel_time.markdown @eifinger source/_integrations/govee_ble.markdown @bdraco @PierreAronnax @@ -284,7 +291,7 @@ source/_integrations/homekit.markdown @bdraco source/_integrations/homekit_controller.markdown @Jc2k @bdraco source/_integrations/homematic.markdown @pvizeli @danielperna84 source/_integrations/homewizard.markdown @DCSBL -source/_integrations/honeywell.markdown @rdfurman +source/_integrations/honeywell.markdown @rdfurman @mkmer source/_integrations/http.markdown @home-assistant/core source/_integrations/huawei_lte.markdown @scop @fphammerle source/_integrations/hue.markdown @balloob @marcelveldt @@ -303,6 +310,7 @@ source/_integrations/icloud.markdown @Quentame @nzapponi source/_integrations/ign_sismologia.markdown @exxamalte source/_integrations/image_processing.markdown @home-assistant/core source/_integrations/image_upload.markdown @home-assistant/core +source/_integrations/imap.markdown @engrbm87 source/_integrations/incomfort.markdown @zxdavb source/_integrations/influxdb.markdown @mdegat01 source/_integrations/inkbird.markdown @bdraco @@ -340,6 +348,7 @@ source/_integrations/kef.markdown @basnijholt source/_integrations/kegtron.markdown @Ernst79 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/knx.markdown @Julius2342 @farmio @marvin-w source/_integrations/kodi.markdown @OnFreund @cgtobi @@ -383,7 +392,6 @@ source/_integrations/lyric.markdown @timmo001 source/_integrations/marantz.markdown @ol-iver @starkillerOG source/_integrations/martec.markdown @starkillerOG source/_integrations/mastodon.markdown @fabaff -source/_integrations/matrix.markdown @tinloaf source/_integrations/mazda.markdown @bdr99 source/_integrations/meater.markdown @Sotolotl @emontnemery source/_integrations/media_player.markdown @home-assistant/core @@ -398,6 +406,7 @@ source/_integrations/meteo_france.markdown @hacf-fr @oncleben31 @Quentame source/_integrations/meteoalarm.markdown @rolfberkenbosch source/_integrations/meteoclimatic.markdown @adrianmo source/_integrations/metoffice.markdown @MrHarcombe @avee87 +source/_integrations/mijndomein_energie.markdown @klaasnicolaas source/_integrations/mikrotik.markdown @engrbm87 source/_integrations/mill.markdown @danielhiversen source/_integrations/min_max.markdown @gjohansson-ST @@ -411,6 +420,7 @@ source/_integrations/modern_forms.markdown @wonderslug source/_integrations/moehlenhoff_alpha2.markdown @j-a-n source/_integrations/monoprice.markdown @etsinko @OnFreund source/_integrations/moon.markdown @fabaff @frenck +source/_integrations/mopeka.markdown @bdraco source/_integrations/motion_blinds.markdown @starkillerOG source/_integrations/motioneye.markdown @dermotduffy source/_integrations/mqtt.markdown @emontnemery @jbouwh @@ -469,6 +479,7 @@ source/_integrations/ondilo_ico.markdown @JeromeHXP source/_integrations/onewire.markdown @garbled1 @epenet source/_integrations/onvif.markdown @hunterjm source/_integrations/open_meteo.markdown @frenck +source/_integrations/openai_conversation.markdown @balloob source/_integrations/openerz.markdown @misialq source/_integrations/openexchangerates.markdown @MartinHjelmare source/_integrations/opengarage.markdown @danielhiversen @@ -477,8 +488,9 @@ source/_integrations/opentherm_gw.markdown @mvn23 source/_integrations/openuv.markdown @bachya source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi source/_integrations/opnsense.markdown @mtreinish -source/_integrations/oralb.markdown @bdraco +source/_integrations/oralb.markdown @bdraco @Lash-L source/_integrations/oru.markdown @bvlaicu +source/_integrations/otbr.markdown @home-assistant/core source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev source/_integrations/ovo_energy.markdown @timmo001 source/_integrations/p1_monitor.markdown @klaasnicolaas @@ -497,7 +509,7 @@ source/_integrations/plugwise.markdown @CoMPaTech @bouwew @brefra @frenck source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa source/_integrations/point.markdown @fredrike source/_integrations/poolsense.markdown @haemishkyd -source/_integrations/powerwall.markdown @bdraco @jrester +source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson source/_integrations/profiler.markdown @bdraco source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/prometheus.markdown @knyar @@ -535,6 +547,7 @@ source/_integrations/recorder.markdown @home-assistant/core source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/remote.markdown @home-assistant/core source/_integrations/renault.markdown @epenet +source/_integrations/reolink.markdown @starkillerOG source/_integrations/repairs.markdown @home-assistant/core source/_integrations/repetier.markdown @MTrab @ShadowBr0ther source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev @@ -553,7 +566,9 @@ source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/rss_feed_template.markdown @home-assistant/core source/_integrations/rtsp_to_webrtc.markdown @allenporter source/_integrations/ruckus_unleashed.markdown @gabe565 +source/_integrations/ruuvi_gateway.markdown @akx source/_integrations/ruuvitag_ble.markdown @akx +source/_integrations/rympro.markdown @OnFreund source/_integrations/sabnzbd.markdown @shaiu source/_integrations/safe_mode.markdown @home-assistant/core source/_integrations/saj.markdown @fredericvl @@ -580,6 +595,7 @@ source/_integrations/sentry.markdown @dcramer @frenck source/_integrations/senz.markdown @milanmeu source/_integrations/serial.markdown @fabaff source/_integrations/seven_segments.markdown @fabaff +source/_integrations/sfr_box.markdown @epenet source/_integrations/sharkiq.markdown @JeffResc @funkybunch @AritroSaha10 source/_integrations/shell_command.markdown @home-assistant/core source/_integrations/shelly.markdown @balloob @bieniu @thecode @chemelli74 @bdraco @@ -631,11 +647,13 @@ source/_integrations/sql.markdown @dgomes @gjohansson-ST source/_integrations/squeezebox.markdown @rajlaud source/_integrations/srp_energy.markdown @briglx source/_integrations/starline.markdown @anonym-tsk +source/_integrations/starlink.markdown @boswelja source/_integrations/statistics.markdown @fabaff @ThomDietrich source/_integrations/steam_online.markdown @tkdrob source/_integrations/steamist.markdown @bdraco source/_integrations/stiebel_eltron.markdown @fucm source/_integrations/stookalert.markdown @fwestenberg @frenck +source/_integrations/stookwijzer.markdown @fwestenberg source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter source/_integrations/stt.markdown @pvizeli source/_integrations/subaru.markdown @G-Two @@ -673,6 +691,7 @@ source/_integrations/thermobeacon.markdown @bdraco source/_integrations/thermoplus.markdown @bdraco source/_integrations/thermopro.markdown @bdraco source/_integrations/thethingsnetwork.markdown @fabaff +source/_integrations/thread.markdown @home-assistant/core source/_integrations/threshold.markdown @fabaff source/_integrations/tibber.markdown @danielhiversen source/_integrations/tile.markdown @bachya @@ -736,10 +755,10 @@ source/_integrations/watttime.markdown @bachya source/_integrations/waze_travel_time.markdown @eifinger source/_integrations/weather.markdown @home-assistant/core source/_integrations/webhook.markdown @home-assistant/core -source/_integrations/webostv.markdown @bendavid @thecode +source/_integrations/webostv.markdown @thecode source/_integrations/websocket_api.markdown @home-assistant/core source/_integrations/wemo.markdown @esev -source/_integrations/whirlpool.markdown @abmantis +source/_integrations/whirlpool.markdown @abmantis @mkmer source/_integrations/whois.markdown @frenck source/_integrations/wiffi.markdown @mampfes source/_integrations/wilight.markdown @leofig-rj @@ -771,9 +790,10 @@ source/_integrations/zamg.markdown @killer0071234 source/_integrations/zengge.markdown @emontnemery source/_integrations/zeroconf.markdown @bdraco source/_integrations/zerproc.markdown @emlove +source/_integrations/zeversolar.markdown @kvanzuijlen source/_integrations/zha.markdown @dmulcahey @adminiuga @puddly source/_integrations/zodiac.markdown @JulienTant source/_integrations/zone.markdown @home-assistant/core source/_integrations/zoneminder.markdown @rohankapoorcom source/_integrations/zwave_js.markdown @home-assistant/z-wave -source/_integrations/zwave_me.markdown @lawfulchaos @Z-Wave-Me +source/_integrations/zwave_me.markdown @lawfulchaos @Z-Wave-Me @PoltoS diff --git a/Gemfile b/Gemfile index 080046e9cd8..ac33e7b7c38 100644 --- a/Gemfile +++ b/Gemfile @@ -20,7 +20,7 @@ group :jekyll_plugins do end gem 'sinatra', '3.0.5' -gem 'nokogiri', '1.14.1' +gem 'nokogiri', '1.14.2' # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem # and associated library diff --git a/Gemfile.lock b/Gemfile.lock index 5767bda7d27..dc96dd735a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -27,8 +27,8 @@ GEM ffi (1.15.5) ffi (1.15.5-x64-mingw32) forwardable-extended (2.6.0) - google-protobuf (3.21.12) - google-protobuf (3.21.12-x64-mingw32) + google-protobuf (3.22.0) + google-protobuf (3.22.0-x64-mingw32) http_parser.rb (0.8.0) i18n (1.12.0) concurrent-ruby (~> 1.0) @@ -73,10 +73,10 @@ GEM multi_json (1.15.0) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) - nokogiri (1.14.1) + nokogiri (1.14.2) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.14.1-x64-mingw32) + nokogiri (1.14.2-x64-mingw32) racc (~> 1.4) pathutil (0.16.2) forwardable-extended (~> 2.6) @@ -90,14 +90,14 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.5) - rouge (4.0.1) + rouge (4.1.0) ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.57.1) + sass-embedded (1.58.2) google-protobuf (~> 3.21) rake (>= 10.0.0) - sass-embedded (1.57.1-x64-mingw32) + sass-embedded (1.58.2-x64-mingw32) google-protobuf (~> 3.21) sass-globbing (1.1.5) sass (>= 3.1) @@ -132,7 +132,7 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.18.0) - nokogiri (= 1.14.1) + nokogiri (= 1.14.2) rake (= 13.0.6) sass-globbing (= 1.1.5) sassc (= 2.1.0) diff --git a/_config.yml b/_config.yml index 8ffe790fcf5..be5f8daca0f 100644 --- a/_config.yml +++ b/_config.yml @@ -109,9 +109,9 @@ social: # Home Assistant release details current_major_version: 2023 -current_minor_version: 1 -current_patch_version: 7 -date_released: 2023-01-22 +current_minor_version: 2 +current_patch_version: 5 +date_released: 2023-02-15 # 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 dc24fd24a4a..f10a83274cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^13.1.0", + "textlint": "^13.3.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" @@ -228,59 +228,59 @@ "dev": true }, "node_modules/@textlint/ast-node-types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.1.0.tgz", - "integrity": "sha512-Lees6mOme6qP8vDcsM/VskiPeHi+z8Tb6LKBb3F0Y/0UBsFo6X7+njDIjtXvO4T48R57srxpa1hyNnjHop4Uog==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.3.0.tgz", + "integrity": "sha512-5PGZhAxOJ987c311SayvjGNkcVuX/Dr3k+H/FJDmS/wDcgZ0lEAdJzjCKn9USXXf2r+i14kZCbhzg8V01KSyKg==", "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.1.0.tgz", - "integrity": "sha512-4xkKQpBC1MyHz4B1YgQfYIdxJLZhpfXgdgIYc9WDC2AESnhM75I7LUElY3bDUDMGhP99E4H1Ix5C+CftYqvIHA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.3.0.tgz", + "integrity": "sha512-LwGd7JjHNXekgCA4BmE39S9fQrgDHJLk2MSf5+uPdUWQM2ojL/RQiyucghxwGdKib+1DutcPrbJSM4SdT1HWSQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-traverse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.1.0.tgz", - "integrity": "sha512-253DKapEjr6L9kx2npNvhaJTmoOJBw38w0D2cvUuHAZv9sx7U5G1aej9ScnIIyIcSotIcDFAVt3B+afA5KMCTA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.3.0.tgz", + "integrity": "sha512-bF0OeKlOtE8f9pNKRlgXqCdApZPYCj7n2Ty3DHvGbumC+rC5tapQuIioxwKKC11deQY1nsYTf2gaYV52SdFS6Q==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "node_modules/@textlint/config-loader": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.1.0.tgz", - "integrity": "sha512-hQmGt9H9ozeLo2PGETTNrvEYGsA7c+svtldpUT2fBQ9uclWruUK1h8+BPOIqzH0YjTyvMTTajtGhibbu1bZ3/A==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.3.0.tgz", + "integrity": "sha512-CZ088hUWjY360MOGDIZkVw2Ln8zLc/3BlMCE4FDsPX1ojKXcJX2vL+9YRVK5gDZYL3+W4mFHGJUkvEmTnroG9g==", "dev": true, "dependencies": { - "@textlint/kernel": "^13.1.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/kernel": "^13.3.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" } }, "node_modules/@textlint/feature-flag": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.1.0.tgz", - "integrity": "sha512-YolfMMWZ+8bJWVFl7gu+SgiZT/b9Q+QS6HyAco6o2zDE09GbDofu/MLGNmYqTst4YBPkuyEJ5oGlv395CT23FQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.3.0.tgz", + "integrity": "sha512-GhMH0UiwQPPjyngvmybw637g6GHdwFVnZj0XpQBKG6W+bQO5ubsc/jsox2E+PgNwRYwlaSOf/hR69BuHtCZyZg==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.1.0.tgz", - "integrity": "sha512-gb+GPnddmniGpJPC8dQI2iqOciiseQBjHbpmqc1vzrDa+BGsRglcFP6MD24Jak6xwDhsDJtyjvCSRTTvSvkV8g==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.3.0.tgz", + "integrity": "sha512-zVZHjnUVCL1yuW7dBwGwPJmyM1xZXBzkC3ADvB9n0Sz9EYSF0903bg0cXy3oZtdbllIXDxuMkUHbhfJReZOYeA==", "dev": true, "dependencies": { - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -292,18 +292,18 @@ } }, "node_modules/@textlint/kernel": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.1.0.tgz", - "integrity": "sha512-t/imOABHI6SicIBvGqMONjRustBoCJtuZgD8fYdelsxdcaO07ukbv/puYSYwNQepQ9KXcWSfeTLy+7zgbFW/hg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.3.0.tgz", + "integrity": "sha512-vrFpvuNlqDxA9uNvkw43FZs9DKRRWejCzo3iIL7QGIqXoEVa2yQyKgi4rjsfkUQlU7NW8McPL0lUEKkwH0XD2w==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0", - "@textlint/ast-tester": "^13.1.0", - "@textlint/ast-traverse": "^13.1.0", - "@textlint/feature-flag": "^13.1.0", - "@textlint/source-code-fixer": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", + "@textlint/ast-tester": "^13.3.0", + "@textlint/ast-traverse": "^13.3.0", + "@textlint/feature-flag": "^13.3.0", + "@textlint/source-code-fixer": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" @@ -325,15 +325,15 @@ } }, "node_modules/@textlint/linter-formatter": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.1.0.tgz", - "integrity": "sha512-JaAUTsuPDoMmFUravEDP2pCyB8npr8q0bjbrYJWVZqTDHAPRWxdU0HFtOhc6cprb6DOkSkbioq/ojj2DjYx3gQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.3.0.tgz", + "integrity": "sha512-ngf17z3ugKpnZ5oGcvVACrM/LZi/Mgj6iZl3ZdzyR91bIayBA1wzi9aty2XO+M0TVpOnKyBAfNg1VY4iO33pdQ==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -349,12 +349,12 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.1.0.tgz", - "integrity": "sha512-pPzxLuAOv0luOh4uUG/H/dq77/C5SiLiUx2qMAEaOZrfF6dl46bIDXUSbtryFBV8Nrpj3kUE3s4al9vPTOUFWA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.3.0.tgz", + "integrity": "sha512-TCw8HN9vwVuo7oXb9NSwSjnCfM2TB0IgLxF75CU90R4MrsQYZ7HZTJxPXhYqQFzAYxFyHZrzEhxodYCry2EChw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -684,61 +684,61 @@ } }, "node_modules/@textlint/module-interop": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.1.0.tgz", - "integrity": "sha512-j3nJZ5rU6U+mxjAWXLAdGJyVuLs0RpHFQKVXapeKVt0JNhix+VDXTCGPw3eSRlno1BPSoxgmQhEHdal3/PeH9w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.3.0.tgz", + "integrity": "sha512-3u5gZR8NL3yKHCh7QDttTNYmKMyfx55NmRfS1HalGFTIgaHwAFCz95KX7JA3WhpIa9Hu7zKlaxA1WGUnJDHLyA==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.1.0.tgz", - "integrity": "sha512-zMDPhouqnp2ey8bGKbMaK3+kNsLa0r6eA41w+8LBKbDUY+vhuw6cQ99BeZfAD9tehMuAuI/kQLIgVvwPchU6qw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.3.0.tgz", + "integrity": "sha512-zLTmp8XyuksW90u0Y24wNALKd2xuieI/Vc40RKAYMEJL+sYyL0O2gYllnjcgQtLMz1wzy7rEXHMxvp/dvPX6/w==", "dev": true, "dependencies": { - "@textlint/types": "^13.1.0", + "@textlint/types": "^13.3.0", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.1.0.tgz", - "integrity": "sha512-5Gzg0CCl5F2ckyhbyRYf2yyBuXZEA7P3UVvRS0Zc/Tr6I/jtOROAZPTlsDrG1HwNd7iR+NqT3PtfKmL5gLt/AA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.3.0.tgz", + "integrity": "sha512-d8eN3WDWC27Pd8DpREMIWGEAp4GNiIzDQRezL4az3OLwS4yUsqUh3g2Q9cj7Vm7l3kmrs/0LFl+yxEaklk64Kw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.1.0.tgz", - "integrity": "sha512-CqqOORpmxdFkN6ZguQV+sMJ/uFOIVAps9IbeF3zkygQcHzD3/scojBdIM5GEDG1gdRZvdNeAfbcZNVyUEIK3Rg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.3.0.tgz", + "integrity": "sha512-p6+dOuLKo05ZvujnhQcQc95PIPevF8gqvzb2/7iNsJH1BhH2IjJXVZzEalIMBNnP8ieOb8Fhee51OBkzI0gEGw==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^13.1.0" + "@textlint/markdown-to-ast": "^13.3.0" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.1.0.tgz", - "integrity": "sha512-TPxF8rvg/VE9qnNKznNRDc0NV+vVKP25q1tI8WfmkYPH3SRFGqg9UaCnIe0hSXeZKXUpBJfor8uDHcfd6e7T9w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.3.0.tgz", + "integrity": "sha512-j/I+g4IRBbeswRN4H4swQosEQUQUp1D9PBYE0amya9qthP7LviJKWgN8eGjvGFsNMLZIdxsG+DUiN5qlyrRY0g==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^13.1.0" + "@textlint/text-to-ast": "^13.3.0" } }, "node_modules/@textlint/types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.1.0.tgz", - "integrity": "sha512-H0oETFHYayeXwFHxlr5wFtwVpOcodZcFp5X3AZDCE6XbCY195exrnKlZsAfj+oEjRnjffahEZ6P5oOIh8Dt65w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.3.0.tgz", + "integrity": "sha512-Xr3BBKbCClux2GDFvXDNMDXo4Q/weo0JaRaqUq6dPp2wYQ5UmZA3XhFdIY69hZPiaUIP6mAycZK8VHro9AMp+g==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "node_modules/@textlint/utils": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.1.0.tgz", - "integrity": "sha512-DJxYdyH00uWLzYK1IB6UYum3H6Gx/uDcLzAsr+2WhhkO3voosPqig1zd00zrY5RPyaVqYVkucN+Ulp8HqGjyXw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.3.0.tgz", + "integrity": "sha512-hJ57KmY6C4LTWPoi1VkSJczIVm6Gc1lo0caK9rEy19AsYoKrqjZY4yh5i/9wUZ1CruGfuomI4TDlM1OT5aKELg==", "dev": true }, "node_modules/@types/concat-stream": { @@ -5183,23 +5183,23 @@ "dev": true }, "node_modules/textlint": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.1.0.tgz", - "integrity": "sha512-QXOT4rVH6j71f9sMO66bRdO6T/K75+hcPkxEjRueScdSTdy9rqMGSNLhj5R14I76mjtGuE+le+wKp6msHkMXAw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.3.0.tgz", + "integrity": "sha512-1JFbDHWBZiqM/NaA875IlX3GuHk7pt6L4ApFFZHiFIqDnj77XzqhG+tPiitnBC/vhngZiGVXclIM9klLGmfoFg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^13.1.0", - "@textlint/ast-traverse": "^13.1.0", - "@textlint/config-loader": "^13.1.0", - "@textlint/feature-flag": "^13.1.0", - "@textlint/fixer-formatter": "^13.1.0", - "@textlint/kernel": "^13.1.0", - "@textlint/linter-formatter": "^13.1.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/textlint-plugin-markdown": "^13.1.0", - "@textlint/textlint-plugin-text": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", + "@textlint/ast-traverse": "^13.3.0", + "@textlint/config-loader": "^13.3.0", + "@textlint/feature-flag": "^13.3.0", + "@textlint/fixer-formatter": "^13.3.0", + "@textlint/kernel": "^13.3.0", + "@textlint/linter-formatter": "^13.3.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/textlint-plugin-markdown": "^13.3.0", + "@textlint/textlint-plugin-text": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", @@ -5220,7 +5220,7 @@ "textlint": "bin/textlint.js" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.0.0" } }, "node_modules/textlint-filter-rule-comments": { @@ -6281,59 +6281,59 @@ "dev": true }, "@textlint/ast-node-types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.1.0.tgz", - "integrity": "sha512-Lees6mOme6qP8vDcsM/VskiPeHi+z8Tb6LKBb3F0Y/0UBsFo6X7+njDIjtXvO4T48R57srxpa1hyNnjHop4Uog==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.3.0.tgz", + "integrity": "sha512-5PGZhAxOJ987c311SayvjGNkcVuX/Dr3k+H/FJDmS/wDcgZ0lEAdJzjCKn9USXXf2r+i14kZCbhzg8V01KSyKg==", "dev": true }, "@textlint/ast-tester": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.1.0.tgz", - "integrity": "sha512-4xkKQpBC1MyHz4B1YgQfYIdxJLZhpfXgdgIYc9WDC2AESnhM75I7LUElY3bDUDMGhP99E4H1Ix5C+CftYqvIHA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.3.0.tgz", + "integrity": "sha512-LwGd7JjHNXekgCA4BmE39S9fQrgDHJLk2MSf5+uPdUWQM2ojL/RQiyucghxwGdKib+1DutcPrbJSM4SdT1HWSQ==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", "debug": "^4.3.4" } }, "@textlint/ast-traverse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.1.0.tgz", - "integrity": "sha512-253DKapEjr6L9kx2npNvhaJTmoOJBw38w0D2cvUuHAZv9sx7U5G1aej9ScnIIyIcSotIcDFAVt3B+afA5KMCTA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.3.0.tgz", + "integrity": "sha512-bF0OeKlOtE8f9pNKRlgXqCdApZPYCj7n2Ty3DHvGbumC+rC5tapQuIioxwKKC11deQY1nsYTf2gaYV52SdFS6Q==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "@textlint/config-loader": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.1.0.tgz", - "integrity": "sha512-hQmGt9H9ozeLo2PGETTNrvEYGsA7c+svtldpUT2fBQ9uclWruUK1h8+BPOIqzH0YjTyvMTTajtGhibbu1bZ3/A==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.3.0.tgz", + "integrity": "sha512-CZ088hUWjY360MOGDIZkVw2Ln8zLc/3BlMCE4FDsPX1ojKXcJX2vL+9YRVK5gDZYL3+W4mFHGJUkvEmTnroG9g==", "dev": true, "requires": { - "@textlint/kernel": "^13.1.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/kernel": "^13.3.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "rc-config-loader": "^4.1.2", "try-resolve": "^1.0.1" } }, "@textlint/feature-flag": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.1.0.tgz", - "integrity": "sha512-YolfMMWZ+8bJWVFl7gu+SgiZT/b9Q+QS6HyAco6o2zDE09GbDofu/MLGNmYqTst4YBPkuyEJ5oGlv395CT23FQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.3.0.tgz", + "integrity": "sha512-GhMH0UiwQPPjyngvmybw637g6GHdwFVnZj0XpQBKG6W+bQO5ubsc/jsox2E+PgNwRYwlaSOf/hR69BuHtCZyZg==", "dev": true }, "@textlint/fixer-formatter": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.1.0.tgz", - "integrity": "sha512-gb+GPnddmniGpJPC8dQI2iqOciiseQBjHbpmqc1vzrDa+BGsRglcFP6MD24Jak6xwDhsDJtyjvCSRTTvSvkV8g==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.3.0.tgz", + "integrity": "sha512-zVZHjnUVCL1yuW7dBwGwPJmyM1xZXBzkC3ADvB9n0Sz9EYSF0903bg0cXy3oZtdbllIXDxuMkUHbhfJReZOYeA==", "dev": true, "requires": { - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^4.0.2", @@ -6345,18 +6345,18 @@ } }, "@textlint/kernel": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.1.0.tgz", - "integrity": "sha512-t/imOABHI6SicIBvGqMONjRustBoCJtuZgD8fYdelsxdcaO07ukbv/puYSYwNQepQ9KXcWSfeTLy+7zgbFW/hg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.3.0.tgz", + "integrity": "sha512-vrFpvuNlqDxA9uNvkw43FZs9DKRRWejCzo3iIL7QGIqXoEVa2yQyKgi4rjsfkUQlU7NW8McPL0lUEKkwH0XD2w==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0", - "@textlint/ast-tester": "^13.1.0", - "@textlint/ast-traverse": "^13.1.0", - "@textlint/feature-flag": "^13.1.0", - "@textlint/source-code-fixer": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", + "@textlint/ast-tester": "^13.3.0", + "@textlint/ast-traverse": "^13.3.0", + "@textlint/feature-flag": "^13.3.0", + "@textlint/source-code-fixer": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" @@ -6380,15 +6380,15 @@ } }, "@textlint/linter-formatter": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.1.0.tgz", - "integrity": "sha512-JaAUTsuPDoMmFUravEDP2pCyB8npr8q0bjbrYJWVZqTDHAPRWxdU0HFtOhc6cprb6DOkSkbioq/ojj2DjYx3gQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.3.0.tgz", + "integrity": "sha512-ngf17z3ugKpnZ5oGcvVACrM/LZi/Mgj6iZl3ZdzyR91bIayBA1wzi9aty2XO+M0TVpOnKyBAfNg1VY4iO33pdQ==", "dev": true, "requires": { "@azu/format-text": "^1.0.1", "@azu/style-format": "^1.0.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/types": "^13.1.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/types": "^13.3.0", "chalk": "^4.1.2", "debug": "^4.3.4", "is-file": "^1.0.0", @@ -6404,12 +6404,12 @@ } }, "@textlint/markdown-to-ast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.1.0.tgz", - "integrity": "sha512-pPzxLuAOv0luOh4uUG/H/dq77/C5SiLiUx2qMAEaOZrfF6dl46bIDXUSbtryFBV8Nrpj3kUE3s4al9vPTOUFWA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.3.0.tgz", + "integrity": "sha512-TCw8HN9vwVuo7oXb9NSwSjnCfM2TB0IgLxF75CU90R4MrsQYZ7HZTJxPXhYqQFzAYxFyHZrzEhxodYCry2EChw==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "remark-footnotes": "^3.0.0", @@ -6627,61 +6627,61 @@ } }, "@textlint/module-interop": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.1.0.tgz", - "integrity": "sha512-j3nJZ5rU6U+mxjAWXLAdGJyVuLs0RpHFQKVXapeKVt0JNhix+VDXTCGPw3eSRlno1BPSoxgmQhEHdal3/PeH9w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.3.0.tgz", + "integrity": "sha512-3u5gZR8NL3yKHCh7QDttTNYmKMyfx55NmRfS1HalGFTIgaHwAFCz95KX7JA3WhpIa9Hu7zKlaxA1WGUnJDHLyA==", "dev": true }, "@textlint/source-code-fixer": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.1.0.tgz", - "integrity": "sha512-zMDPhouqnp2ey8bGKbMaK3+kNsLa0r6eA41w+8LBKbDUY+vhuw6cQ99BeZfAD9tehMuAuI/kQLIgVvwPchU6qw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.3.0.tgz", + "integrity": "sha512-zLTmp8XyuksW90u0Y24wNALKd2xuieI/Vc40RKAYMEJL+sYyL0O2gYllnjcgQtLMz1wzy7rEXHMxvp/dvPX6/w==", "dev": true, "requires": { - "@textlint/types": "^13.1.0", + "@textlint/types": "^13.3.0", "debug": "^4.3.4" } }, "@textlint/text-to-ast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.1.0.tgz", - "integrity": "sha512-5Gzg0CCl5F2ckyhbyRYf2yyBuXZEA7P3UVvRS0Zc/Tr6I/jtOROAZPTlsDrG1HwNd7iR+NqT3PtfKmL5gLt/AA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.3.0.tgz", + "integrity": "sha512-d8eN3WDWC27Pd8DpREMIWGEAp4GNiIzDQRezL4az3OLwS4yUsqUh3g2Q9cj7Vm7l3kmrs/0LFl+yxEaklk64Kw==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "@textlint/textlint-plugin-markdown": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.1.0.tgz", - "integrity": "sha512-CqqOORpmxdFkN6ZguQV+sMJ/uFOIVAps9IbeF3zkygQcHzD3/scojBdIM5GEDG1gdRZvdNeAfbcZNVyUEIK3Rg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.3.0.tgz", + "integrity": "sha512-p6+dOuLKo05ZvujnhQcQc95PIPevF8gqvzb2/7iNsJH1BhH2IjJXVZzEalIMBNnP8ieOb8Fhee51OBkzI0gEGw==", "dev": true, "requires": { - "@textlint/markdown-to-ast": "^13.1.0" + "@textlint/markdown-to-ast": "^13.3.0" } }, "@textlint/textlint-plugin-text": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.1.0.tgz", - "integrity": "sha512-TPxF8rvg/VE9qnNKznNRDc0NV+vVKP25q1tI8WfmkYPH3SRFGqg9UaCnIe0hSXeZKXUpBJfor8uDHcfd6e7T9w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.3.0.tgz", + "integrity": "sha512-j/I+g4IRBbeswRN4H4swQosEQUQUp1D9PBYE0amya9qthP7LviJKWgN8eGjvGFsNMLZIdxsG+DUiN5qlyrRY0g==", "dev": true, "requires": { - "@textlint/text-to-ast": "^13.1.0" + "@textlint/text-to-ast": "^13.3.0" } }, "@textlint/types": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.1.0.tgz", - "integrity": "sha512-H0oETFHYayeXwFHxlr5wFtwVpOcodZcFp5X3AZDCE6XbCY195exrnKlZsAfj+oEjRnjffahEZ6P5oOIh8Dt65w==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.3.0.tgz", + "integrity": "sha512-Xr3BBKbCClux2GDFvXDNMDXo4Q/weo0JaRaqUq6dPp2wYQ5UmZA3XhFdIY69hZPiaUIP6mAycZK8VHro9AMp+g==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0" + "@textlint/ast-node-types": "^13.3.0" } }, "@textlint/utils": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.1.0.tgz", - "integrity": "sha512-DJxYdyH00uWLzYK1IB6UYum3H6Gx/uDcLzAsr+2WhhkO3voosPqig1zd00zrY5RPyaVqYVkucN+Ulp8HqGjyXw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.3.0.tgz", + "integrity": "sha512-hJ57KmY6C4LTWPoi1VkSJczIVm6Gc1lo0caK9rEy19AsYoKrqjZY4yh5i/9wUZ1CruGfuomI4TDlM1OT5aKELg==", "dev": true }, "@types/concat-stream": { @@ -9841,23 +9841,23 @@ "dev": true }, "textlint": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.1.0.tgz", - "integrity": "sha512-QXOT4rVH6j71f9sMO66bRdO6T/K75+hcPkxEjRueScdSTdy9rqMGSNLhj5R14I76mjtGuE+le+wKp6msHkMXAw==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-13.3.0.tgz", + "integrity": "sha512-1JFbDHWBZiqM/NaA875IlX3GuHk7pt6L4ApFFZHiFIqDnj77XzqhG+tPiitnBC/vhngZiGVXclIM9klLGmfoFg==", "dev": true, "requires": { - "@textlint/ast-node-types": "^13.1.0", - "@textlint/ast-traverse": "^13.1.0", - "@textlint/config-loader": "^13.1.0", - "@textlint/feature-flag": "^13.1.0", - "@textlint/fixer-formatter": "^13.1.0", - "@textlint/kernel": "^13.1.0", - "@textlint/linter-formatter": "^13.1.0", - "@textlint/module-interop": "^13.1.0", - "@textlint/textlint-plugin-markdown": "^13.1.0", - "@textlint/textlint-plugin-text": "^13.1.0", - "@textlint/types": "^13.1.0", - "@textlint/utils": "^13.1.0", + "@textlint/ast-node-types": "^13.3.0", + "@textlint/ast-traverse": "^13.3.0", + "@textlint/config-loader": "^13.3.0", + "@textlint/feature-flag": "^13.3.0", + "@textlint/fixer-formatter": "^13.3.0", + "@textlint/kernel": "^13.3.0", + "@textlint/linter-formatter": "^13.3.0", + "@textlint/module-interop": "^13.3.0", + "@textlint/textlint-plugin-markdown": "^13.3.0", + "@textlint/textlint-plugin-text": "^13.3.0", + "@textlint/types": "^13.3.0", + "@textlint/utils": "^13.3.0", "debug": "^4.3.4", "file-entry-cache": "^5.0.1", "get-stdin": "^5.0.1", diff --git a/package.json b/package.json index 2e85ea57dc3..c1707b53175 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "remark-lint-fenced-code-flag": "^3.1.1", "remark-lint-no-shell-dollars": "^3.1.1", "remark-stringify": "^10.0.2", - "textlint": "^13.1.0", + "textlint": "^13.3.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^3.0.4" diff --git a/source/_dashboards/picture-elements.markdown b/source/_dashboards/picture-elements.markdown index 25be07e6f3d..fa7e49903f9 100644 --- a/source/_dashboards/picture-elements.markdown +++ b/source/_dashboards/picture-elements.markdown @@ -413,8 +413,6 @@ style: # Positioning of the element left: 50% top: 50% - # Overwrite color for icons - "--paper-item-icon-color": pink ``` ### How to use state_image diff --git a/source/_dashboards/tile.markdown b/source/_dashboards/tile.markdown index 06fd1756391..20d2711589e 100644 --- a/source/_dashboards/tile.markdown +++ b/source/_dashboards/tile.markdown @@ -41,6 +41,11 @@ show_entity_picture: description: If your entity has a picture, it will replace the icon. type: boolean default: false +vertical: + required: false + description: Displays the icon above the name and state. + type: boolean + default: false tap_action: required: false description: Action taken on card tap. See [action documentation](/dashboards/actions/#tap-action). By default, it will show the "more-info" dialog. @@ -77,6 +82,12 @@ entity: person.anne_therese show_entity_picture: true ``` +```yaml +type: tile +entity: person.anne_therese +vertical: true +``` + ```yaml type: tile entity: vacuum.ground_floor diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 4ff24ee1ca0..2b058199c05 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -19,7 +19,11 @@ If you decide to use `trusted_networks` as your `auth_provider` there won't be a -Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block. You can supply more than one, for example: +Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block. +If you are moving configuration to packages, this particular configuration must stay within 'configuration.yaml'. See Issue 16441 in the warning block at the bottom of this page. + + +You can supply more than one, for example: ```yaml homeassistant: diff --git a/source/_docs/automation/troubleshooting.markdown b/source/_docs/automation/troubleshooting.markdown index c03c13aca1b..8d2301c7ffe 100644 --- a/source/_docs/automation/troubleshooting.markdown +++ b/source/_docs/automation/troubleshooting.markdown @@ -24,7 +24,7 @@ trace: stored_traces: 1 ``` -[template]: /topics/templating/ +[template]: /docs/configuration/templating/ ## Testing your automation diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown index a47f9921dfb..8d62662467a 100644 --- a/source/_docs/automation/yaml.markdown +++ b/source/_docs/automation/yaml.markdown @@ -3,7 +3,7 @@ title: "Automation YAML" description: "How to use the automation integration with YAML." --- -Automations are created in Home Assistant via the UI, but are stored in a YAML format. If you want to edit the YAML of an automation, go to edit the automation, click on the menu button in the top right and turn on YAML mode. +Automations are created in Home Assistant via the UI, but are stored in a YAML format. If you want to edit the YAML of an automation, select the automation, click on the menu button in the top right then on **Edit in YAML**. The UI will write your automations to `automations.yaml`. This file is managed by the UI and should not be edited manually. diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index b5164732616..72236982e9b 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -11,7 +11,7 @@ This is an advanced feature of Home Assistant. You'll need a basic understanding Templating is a powerful feature that allows you to control information going into and out of the system. It is used for: - Formatting outgoing messages in, for example, the [notify](/integrations/notify/) platforms and [Alexa](/integrations/alexa/) component. -- Process incoming data from sources that provide raw data, like [MQTT](/integrations/mqtt/), [`rest` sensor](/integrations/rest/) or the [`command_line` sensor](/integrations/sensor.command_line/). +- Process incoming data from sources that provide raw data, like [MQTT](/docs/configuration/templating/#using-templates-with-the-mqtt-integration), [`rest` sensor](/integrations/rest/) or the [`command_line` sensor](/integrations/sensor.command_line/). - [Automation Templating](/docs/automation/templating/). ## Building templates @@ -154,7 +154,7 @@ Other state examples: {{ states('sensor.expires') | as_datetime }} # Make a list of states -{{ ['light.kitchen', 'light.dinig_room'] | map('states') | list }} +{{ ['light.kitchen', 'light.dining_room'] | map('states') | list }} ``` {% endraw %} diff --git a/source/_docs/scripts/conditions.markdown b/source/_docs/scripts/conditions.markdown index 00d0c66cce3..c2fbf1c0322 100644 --- a/source/_docs/scripts/conditions.markdown +++ b/source/_docs/scripts/conditions.markdown @@ -514,7 +514,7 @@ It's also supported in script or automation `condition` actions: {% endraw %} -[template]: /topics/templating/ +[template]: /docs/configuration/templating/ [automation-templating]: /getting-started/automation-templating/ ## Time condition diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown index d2312056b28..9db2bc754de 100644 --- a/source/_docs/scripts/service-calls.markdown +++ b/source/_docs/scripts/service-calls.markdown @@ -136,7 +136,7 @@ There are four `homeassistant` services that aren't tied to any single domain, t Complete service details and examples can be found on the [Home Assistant integration][homeassistant-integration-services] page. -[templating]: /topics/templating/ +[templating]: /docs/configuration/templating/ [google travel time]: /integrations/google_travel_time/ [template sensor]: /integrations/template/ [light]: /integrations/light/ diff --git a/source/_integrations/airzone.markdown b/source/_integrations/airzone.markdown index d9dbeae37a5..a0e0644de48 100644 --- a/source/_integrations/airzone.markdown +++ b/source/_integrations/airzone.markdown @@ -62,7 +62,7 @@ For each Airzone zone (Thermostat) a *climate entity* is created. **HVAC mode can only be changed on a *parent zone*.** -*Slave zones* can only enable/disable the current HVAC mode selected on the corresponding *parent zone*. Attempting to change the HVAC mode on a *child zone* will result on a Home Assistant error. +*Child zones* can only enable/disable the current HVAC mode selected on the corresponding *parent zone*. Attempting to change the HVAC mode on a *child zone* will result on a Home Assistant error. ## Select diff --git a/source/_integrations/alexa.flash_briefings.markdown b/source/_integrations/alexa.flash_briefings.markdown index 146cc641ef1..faf76f281ce 100644 --- a/source/_integrations/alexa.flash_briefings.markdown +++ b/source/_integrations/alexa.flash_briefings.markdown @@ -84,7 +84,7 @@ Please refer to the [Amazon documentation][flash-briefing-api-docs] for more inf [flash-briefing-api-docs]: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/flash-briefing-skill-api-feed-reference [large-icon]: /images/integrations/alexa/alexa-512x512.png [small-icon]: /images/integrations/alexa/alexa-108x108.png -[templates]: /topics/templating/ +[templates]: /docs/configuration/templating/ [zero-three-one]: /blog/2016/10/22/flash-briefing-updater-hacktoberfest/ [alexa-settings-site]: https://alexa.amazon.com/ [emulated-hue-component]: /integrations/emulated_hue/ diff --git a/source/_integrations/alexa.intent.markdown b/source/_integrations/alexa.intent.markdown index 0fedaf2a496..3fa8b049d11 100644 --- a/source/_integrations/alexa.intent.markdown +++ b/source/_integrations/alexa.intent.markdown @@ -70,7 +70,7 @@ Next you need to create a Lambda function. - Click your Lambda Function icon in the middle of the diagram and scroll down, you will see a `Function code` window. - Clear the example code and copy the Python script from this [GitHub Gist](https://gist.github.com/lpomfrey/97381cf4316553b03622c665ae3a47da). - Click the `Deploy` button of the `Function code` window. -- Scroll down again and you will find `Environment variables`, click on `Edit` button and add the following environment variables as needed: +- Scroll down again and pick the `Configuration' tab, select it and on the left you will now find `Environment variables`, click on `Edit` button and add the following environment variables as needed: - BASE_URL *(required)*: your Home Assistant instance's Internet accessible URL with port if needed. *Do not include the trailing `/`*. - NOT_VERIFY_SSL *(optional)*: set to *True* to ignore the SSL issue, if you don't have a valid SSL certificate or you are using self-signed certificate. - DEBUG *(optional)*: set to *True* to log debugging messages. @@ -394,5 +394,5 @@ Alexa will now respond with a random phrase each time. You can use the include f [amazon-dev-console]: https://developer.amazon.com [large-icon]: /images/integrations/alexa/alexa-512x512.png [small-icon]: /images/integrations/alexa/alexa-108x108.png -[templates]: /topics/templating/ +[templates]: /docs/configuration/templating/ [generate-long-lived-access-token]: https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 7220337de3f..6494b979379 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -83,7 +83,6 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant: - [Equalizer Mode](#equalizer-mode) - [Inputs](#inputs) - [Playback State](#playback-state) - - [Seek](#seek) - [Scene](#scene) - [Script](#script) - [Sensor](#sensor) @@ -501,7 +500,6 @@ The following integrations are currently supported: - [Equalizer Mode](#equalizer-mode) - [Inputs](#inputs) - [Playback State](#playback-state) - - [Seek](#seek) - [Scene](#scene) - [Script](#script) - [Sensor](#sensor) @@ -979,10 +977,9 @@ Home Assistant will attempt to translate the `media_player` `source_list` into a Requires [Proactive Events](#proactive-events) enabled. -#### Seek - -- _"Alexa, skip 30 seconds on device."_ -- _"Alexa, go back 10 seconds on device."_ +
+Intents to seek forwards (skip) or to rewind (go back) are not supported at the moment. +
### Scene diff --git a/source/_integrations/anwb_energie.markdown b/source/_integrations/anwb_energie.markdown index 043cab048cc..626f1b905aa 100644 --- a/source/_integrations/anwb_energie.markdown +++ b/source/_integrations/anwb_energie.markdown @@ -1,20 +1,20 @@ --- title: ANWB Energie -description: Get the energy market prices from ANWB Energie using the EnergyZero integration. +description: Connect and control your ANWB Energie devices using the EnergyZero integration ha_category: - Energy - - Sensor ha_domain: anwb_energie ha_release: 2023.2 ha_integration_type: virtual ha_supporting_domain: energyzero -ha_supporting_integration: energyzero +ha_supporting_integration: EnergyZero ha_codeowners: - '@klaasnicolaas' ha_config_flow: true ha_platforms: + - diagnostics - sensor ha_iot_class: Cloud Polling --- -{% include integrations/supported_brand.md %} \ No newline at end of file +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/aquostv.markdown b/source/_integrations/aquostv.markdown index 3eee746c185..ee429c7e12f 100644 --- a/source/_integrations/aquostv.markdown +++ b/source/_integrations/aquostv.markdown @@ -81,5 +81,6 @@ Also, with **power_on_enabled** as True, the Aquos logo on your TV will stay on - LC-50US40 (no volume control, not fully tested) - LC-70LE650U - LC-70LE747E (no volume control) +- LC-60LE650U If your model is not on the list, give it a test. If everything works correctly, then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io/blob/current/source/_integrations/aquostv.markdown). diff --git a/source/_integrations/bluetooth.markdown b/source/_integrations/bluetooth.markdown index c12d7ecd52a..750e487c37e 100644 --- a/source/_integrations/bluetooth.markdown +++ b/source/_integrations/bluetooth.markdown @@ -81,14 +81,17 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext #### Cambridge Silicon Radio (CSR) Based adapters +- ANNE PRO CSR 4.0 (CSR8510A10) - Avantree BTDG-40S (CSR8510A10) - Enbiawit BT403 (CSR8510A10) - Feasycom FSC-BP119 (CSR8510A10) 📶 - HIDEEZ BT0015-01 (CSR8510A10) +- Maxesla CSR 4.0 (CSR8510A10) - Nuu You BT40 (CSR8510A10) - ORICO BTA-403 (CSR8510A10) - ORICO BTA-409 (CSR8510A10) - Panda Wireless PBU40 (CSR8510A10) +- PlanexCOMM BT-Micro4 (CSR8510A10) - QGOO BT-06A (CSR8510A10) - ROCKETEK BT4Y (CSR8510A10) - SABRENT BT-UB40 (CSR8510A10) @@ -179,6 +182,7 @@ These adapters do not have a reset pin. If they stop responding, there is curren - XDO BT802 (RTL8761BU) 📶 - ZEXMTE BT-505 (RTL8761BU) 📶 - ZEXMTE BT-DG54 (RTL8761BU) 📶 +- ZEXMTE Z01 (RTL8761BU) 📶 - ZETSAGE BH451A (RTL8761BU) 📶 📶 Denotes external antenna @@ -188,9 +192,13 @@ These adapters do not have a reset pin. If they stop responding, there is curren - Alfa AWUS036EACS (RTL8821CU) - Frequent connection failures and drop outs - BASEUS BR8651A01 BA04 - Advertisement drops out - Belkin F8T003 ver 2. - Fails to setup and add successfully +- Bluegiga BLED112 - No driver available yet for USB id 2458:0001 - EDIMAX EW-7611ULB (RTL8723BU) - Frequent connection failures and drop outs - EDUP EP-AC1661 (RTL8821CU) - Frequent connection failures and drop outs - eppfun AK3040G (ATS2851) - No driver available yet for USB id 10d7:b012 +- eppfun AK3040A (ATS2851) - No driver available yet for USB id 10d7:b012 +- KOAMTAC KBD 401G (CSR8510A10) - Adapter is unstable and drops out +- TRIPP-LITE CU885A/U261-001-BT4 (CSR8510A10) - Adapter is unstable and drops out - QUMOX Bluetooth 5.0 (Barrot 8041A02) - No working driver - UGREEEN CM591 (ATS2851) - No driver available yet for USB id 10d7:b012 - tp-link UB400 (CSR4) - Frequent connection failures with active connections diff --git a/source/_integrations/bluetooth_adapters.markdown b/source/_integrations/bluetooth_adapters.markdown index 6c1a2be3a1c..3ab04c4b213 100644 --- a/source/_integrations/bluetooth_adapters.markdown +++ b/source/_integrations/bluetooth_adapters.markdown @@ -8,6 +8,8 @@ ha_codeowners: - '@bdraco' ha_domain: bluetooth_adapters ha_integration_type: system +ha_quality_scale: internal +ha_iot_class: Local Push --- Bluetooth Adapters provides access to local and remote Bluetooth Adapters to integrations that use Bluetooth. diff --git a/source/_integrations/bmw_connected_drive.markdown b/source/_integrations/bmw_connected_drive.markdown index c5d9a32266b..200d5ef6d5c 100644 --- a/source/_integrations/bmw_connected_drive.markdown +++ b/source/_integrations/bmw_connected_drive.markdown @@ -20,6 +20,7 @@ ha_platforms: - binary_sensor - button - device_tracker + - diagnostics - lock - notify - sensor diff --git a/source/_integrations/bswitch.markdown b/source/_integrations/bswitch.markdown index cab36d9ac62..e03e7672aae 100644 --- a/source/_integrations/bswitch.markdown +++ b/source/_integrations/bswitch.markdown @@ -21,7 +21,7 @@ ha_platforms: - cover - light - switch -ha_iot_class: Local Polling +ha_iot_class: Local Push --- {% include integrations/supported_brand.md %} diff --git a/source/_integrations/calendar.markdown b/source/_integrations/calendar.markdown index 174bc570baf..fe98688f191 100644 --- a/source/_integrations/calendar.markdown +++ b/source/_integrations/calendar.markdown @@ -178,4 +178,4 @@ data: summary: "Example" start_date: "2022-10-01" end_date: "2022-10-02" -``` \ No newline at end of file +``` diff --git a/source/_integrations/coolmaster.markdown b/source/_integrations/coolmaster.markdown index beea19ed093..7c5456f9fc6 100644 --- a/source/_integrations/coolmaster.markdown +++ b/source/_integrations/coolmaster.markdown @@ -10,7 +10,10 @@ ha_codeowners: - '@OnFreund' ha_domain: coolmaster ha_platforms: + - binary_sensor + - button - climate + - sensor ha_integration_type: integration --- diff --git a/source/_integrations/cpuspeed.markdown b/source/_integrations/cpuspeed.markdown index d0afb00ffa3..6e0ed899255 100644 --- a/source/_integrations/cpuspeed.markdown +++ b/source/_integrations/cpuspeed.markdown @@ -23,4 +23,4 @@ The CPU Speed integration allows you to monitor the current CPU speed. ## Known issues and limitations Not all CPUs are supported. For example, some [ARM CPUs](https://github.com/workhorsy/py-cpuinfo/#cpu-support) -are known not to work with this integration. \ No newline at end of file +are known not to work with this integration. diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index ef48dfd0121..ea60ab4ff32 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -85,8 +85,10 @@ Known supported devices: - Marantz SR8015 - Marantz NR1504 - Marantz NR1506 +- Marantz NR1509 - Marantz NR1510 - Marantz NR1602 +- Marantz NR1603 - Marantz NR1604 - Marantz NR1606 - Marantz NR1607 diff --git a/source/_integrations/devolo_home_network.markdown b/source/_integrations/devolo_home_network.markdown index 98a43c8803d..eec59bdbd29 100755 --- a/source/_integrations/devolo_home_network.markdown +++ b/source/_integrations/devolo_home_network.markdown @@ -17,6 +17,7 @@ ha_quality_scale: platinum ha_platforms: - binary_sensor - device_tracker + - diagnostics - sensor - switch ha_zeroconf: true diff --git a/source/_integrations/directv.markdown b/source/_integrations/directv.markdown index c66b8e1d9bb..c69177a701b 100644 --- a/source/_integrations/directv.markdown +++ b/source/_integrations/directv.markdown @@ -8,7 +8,7 @@ ha_release: 0.25 ha_iot_class: Local Polling ha_domain: directv ha_config_flow: true -ha_quality_scale: gold +ha_quality_scale: silver ha_ssdp: true ha_platforms: - media_player diff --git a/source/_integrations/energie_vanons.markdown b/source/_integrations/energie_vanons.markdown index f5754bfc434..a9a2304c3e5 100644 --- a/source/_integrations/energie_vanons.markdown +++ b/source/_integrations/energie_vanons.markdown @@ -1,20 +1,20 @@ --- title: Energie VanOns -description: Get the energy market prices from Energie VanOns using the EnergyZero integration. +description: Connect and control your Energie VanOns devices using the EnergyZero integration ha_category: - Energy - - Sensor ha_domain: energie_vanons ha_release: 2023.2 ha_integration_type: virtual ha_supporting_domain: energyzero -ha_supporting_integration: energyzero +ha_supporting_integration: EnergyZero ha_codeowners: - '@klaasnicolaas' ha_config_flow: true ha_platforms: + - diagnostics - sensor ha_iot_class: Cloud Polling --- -{% include integrations/supported_brand.md %} \ No newline at end of file +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/energyzero.markdown b/source/_integrations/energyzero.markdown index 4bf6d1dc2f4..687f0179a70 100644 --- a/source/_integrations/energyzero.markdown +++ b/source/_integrations/energyzero.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@klaasnicolaas' ha_domain: energyzero ha_platforms: + - diagnostics - sensor ha_quality_scale: platinum ha_integration_type: integration @@ -50,4 +51,4 @@ Every day around **14:00 UTC time**, the new prices are published for the follow For the dynamic gas prices, only entities are created that display the `current` and `next hour` price because the price is always fixed for -24 hours; new prices are published every morning at **05:00 UTC time**. \ No newline at end of file +24 hours; new prices are published every morning at **05:00 UTC time**. diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index c06a41e91c7..68c0c3b1fd5 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -24,4 +24,4 @@ A sensor platform for the [Enphase Envoy](https://enphase.com/en-us/products-and For newer models, the username `envoy` without a password will grant access to the device. For older models, the password for the `installer` user can be obtained with this: [tool](https://thecomputerperson.wordpress.com/2016/08/28/reverse-engineering-the-enphase-installer-toolkit/). -In some cases, you need to use the username `envoy` with the last 6 digits of the unit's serial number as password. See [the enphase documentation](https://www4.enphase.com/en-us/support/faq/what-username-and-password-administration-page-envoy-local-interface) for more details on other units. +In some cases, you need to use the username `envoy` with the last 6 digits of the unit's serial number as password. See [the enphase documentation](https://support.enphase.com/s/article/What-is-the-Username-and-Password-for-the-Administration-page-of-the-Envoy-local-interface) for more details on other units. diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown index f61d37e7aba..533fac13554 100644 --- a/source/_integrations/esphome.markdown +++ b/source/_integrations/esphome.markdown @@ -4,6 +4,7 @@ description: Support for ESPHome devices using the native ESPHome API. featured: true ha_category: - DIY + - Update ha_release: 0.85 ha_iot_class: Local Push ha_config_flow: true @@ -27,6 +28,7 @@ ha_platforms: - select - sensor - switch + - update ha_integration_type: device ha_dhcp: true works_with: diff --git a/source/_integrations/eufylife_ble.markdown b/source/_integrations/eufylife_ble.markdown index c58e4999bf0..42304630353 100644 --- a/source/_integrations/eufylife_ble.markdown +++ b/source/_integrations/eufylife_ble.markdown @@ -11,7 +11,7 @@ ha_codeowners: ha_domain: eufylife_ble ha_platforms: - sensor -ha_integration_type: integration +ha_integration_type: device --- The EufyLife integration allows you to integrate Eufy smart scales with Home Assistant. diff --git a/source/_integrations/fire_tv.markdown b/source/_integrations/fire_tv.markdown index 3c9a2693791..9243c6a73ca 100644 --- a/source/_integrations/fire_tv.markdown +++ b/source/_integrations/fire_tv.markdown @@ -1,6 +1,6 @@ --- title: Amazon Fire TV -description: Instructions on how to integrate Amazon Fire TV devices into Home Assistant. +description: Connect and control your Amazon Fire TV devices using the Android TV integration ha_category: - Media Player ha_domain: fire_tv diff --git a/source/_integrations/forked_daapd.markdown b/source/_integrations/forked_daapd.markdown index ef829a445bd..1bb0f498415 100644 --- a/source/_integrations/forked_daapd.markdown +++ b/source/_integrations/forked_daapd.markdown @@ -1,6 +1,6 @@ --- -title: Owntone -description: Instructions on how to integrate an Owntone server into Home Assistant. +title: OwnTone +description: Instructions on how to integrate an OwnTone server into Home Assistant. ha_category: - Media Player ha_release: '0.110' @@ -15,26 +15,26 @@ ha_platforms: ha_integration_type: integration --- -The Owntone integration allows you to control your [OwnTone (previously forked-daapd)](https://github.com/owntone/owntone-server) server from Home Assistant. This integration can control the Owntone outputs (zones) with limited playback control (play/pause, previous/next track) and media info support. Playlist manipulation is not supported. +The OwnTone integration allows you to control your [OwnTone (previously forked-daapd)](https://github.com/owntone/owntone-server) server from Home Assistant. This integration can control the OwnTone outputs (zones) with limited playback control (play/pause, previous/next track) and media info support. Playlist manipulation is not supported. ## Requirements -The Owntone integration requires an OwnTone server built with libwebsockets enabled, version >= 27.0. +The OwnTone integration requires an OwnTone server built with libwebsockets enabled, version >= 27.0. {% include integrations/config_flow.md %} ## Outputs -Once the Owntone integration is set up, outputs will automatically be loaded from the server and added to HA in real-time. +Once the OwnTone integration is set up, outputs will automatically be loaded from the server and added to HA in real-time. ## Pipes -As OwnTone supports playing audio input via a pipe, this integration supports the forwarding of basic player controls (play, pause, next track, previous track) directly to the pipe's source. Currently, only the pipe source librespot-java is supported. To use this, configure your Owntone server to autostart pipes and name your librespot-java pipe "librespot-java" (accompanying metadata is also supported through Owntone via a metadata pipe named "librespot-java.metadata"). The Owntone integration will find the librespot-java pipe in the database and will set it up as a source. +As OwnTone supports playing audio input via a pipe, this integration supports the forwarding of basic player controls (play, pause, next track, previous track) directly to the pipe's source. Currently, only the pipe source librespot-java is supported. To use this, configure your OwnTone server to autostart pipes and name your librespot-java pipe "librespot-java" (accompanying metadata is also supported through OwnTone via a metadata pipe named "librespot-java.metadata"). The OwnTone integration will find the librespot-java pipe in the database and will set it up as a source. ## Playlists -The Owntone integration will treat playlists in the database as sources. The number of playlists shown as sources can be set in the integration's configuration options. +The OwnTone integration will treat playlists in the database as sources. The number of playlists shown as sources can be set in the integration's configuration options. ## Spotify -The Owntone integration supports media browsing via the [Spotify integration](/integrations/spotify). However, to play Spotify content, your Owntone instance must be logged in with Spotify. This can be done through Owntone's own web interface. For more details, see [Owntone's notes on Spotify](https://owntone.github.io/owntone-server/integrations/spotify/#spotify). You should log in with the same Spotify account for both the Owntone server and the Home Assistant [Spotify integration](/integrations/spotify). +The OwnTone integration supports media browsing via the [Spotify integration](/integrations/spotify). However, to play Spotify content, your OwnTone instance must be logged in with Spotify. This can be done through OwnTone's own web interface. For more details, see [OwnTone's notes on Spotify](https://owntone.github.io/owntone-server/integrations/spotify/#spotify). You should log in with the same Spotify account for both the OwnTone server and the Home Assistant [Spotify integration](/integrations/spotify). diff --git a/source/_integrations/generic.markdown b/source/_integrations/generic.markdown index fe87c49dce2..d4a4dfe70bf 100644 --- a/source/_integrations/generic.markdown +++ b/source/_integrations/generic.markdown @@ -24,13 +24,13 @@ Home Assistant will serve the images via its server, making it possible to view You must enter a URL in at least one of the fields **Still Image URL** or **Stream Source URL**, the others are optional. -[Templates](/topics/templating/) are allowed in the URL fields, which can be used to select different images or parameterize the URL depending on the status of sensors. Template validity and network access are checked during the configuration steps. +[Templates](/docs/configuration/templating/) are allowed in the URL fields, which can be used to select different images or parameterize the URL depending on the status of sensors. Template validity and network access are checked during the configuration steps. {% configuration_basic %} Still Image URL: - description: "The URL your camera serves the image on, e.g., `http://192.168.1.21:2112/`. Can be a [template](/topics/templating/). Usernames and passwords are allowed in the URL, but if none are provided, the `Username` and `Password` settings will be used during authentication. At least one of still_image_url or stream_source must be provided." + description: "The URL your camera serves the image on, e.g., `http://192.168.1.21:2112/`. Can be a [template](/docs/configuration/templating/). Usernames and passwords are allowed in the URL, but if none are provided, the `Username` and `Password` settings will be used during authentication. At least one of still_image_url or stream_source must be provided." Stream Source: - description: "The URL your camera serves the live stream on, e.g., `rtsp://192.168.1.21:554/`. Can be a [template](/topics/templating/). Usernames and passwords are allowed in the URL, but if none are provided, the `Username` and `Password` settings will be used during authentication. At least one of still_image_url or stream_source must be provided. Note that a stream_source without a still_image_url can only be used if the [stream integration](/integrations/stream/) is configured." + description: "The URL your camera serves the live stream on, e.g., `rtsp://192.168.1.21:554/`. Can be a [template](/docs/configuration/templating/). Usernames and passwords are allowed in the URL, but if none are provided, the `Username` and `Password` settings will be used during authentication. At least one of still_image_url or stream_source must be provided. Note that a stream_source without a still_image_url can only be used if the [stream integration](/integrations/stream/) is configured." Username: description: The username for accessing your camera. Note that this applies to both still_image_url and stream_source. Password: diff --git a/source/_integrations/google.markdown b/source/_integrations/google.markdown index 733802270cb..17c0a7cbb13 100644 --- a/source/_integrations/google.markdown +++ b/source/_integrations/google.markdown @@ -40,7 +40,7 @@ This section explains how to generate a Client ID and Client Secret on 13. Click **Credentials** in the menu on the left hand side of the screen, then click **Create credentials** (at the top of the screen), then select *OAuth client ID*. 14. Set the Application type to *TV and Limited Input* and give this credential set a name (like "Home Assistant Credentials") then click **Create**. 15. You will then be presented with a pop-up saying *OAuth client created* showing *Your Client ID* and *Your Client Secret*. Make a note of these (for example, copy and paste them into a text editor) as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point then simply navigate to *APIs & Services > Credentials* and you will see *Home Assistant Credentials* (or whatever you named them in the previous step) under *OAuth 2.0 Client IDs*. To view both the *Client ID* and *Client secret*, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page. -16. Double check that the *Google Calendar API* has been automatically enabled. To do this, select **Library** from the menu, then search for *Google Calendar API*. If it is enabled, you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it. +16. You must also enable the *Google Calendar API*. To do this, select **Library** from the menu, then search for *Google Calendar API*. If it is enabled, you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it. {% enddetails %} diff --git a/source/_integrations/google_assistant_sdk.markdown b/source/_integrations/google_assistant_sdk.markdown index 6ee45742f9e..96dfa3ac802 100644 --- a/source/_integrations/google_assistant_sdk.markdown +++ b/source/_integrations/google_assistant_sdk.markdown @@ -8,7 +8,7 @@ ha_release: 2023.1 ha_config_flow: true ha_domain: google_assistant_sdk ha_codeowners: - - "@tronikos" + - '@tronikos' ha_integration_type: service ha_platforms: - notify @@ -130,6 +130,7 @@ service: google_assistant_sdk.send_text_command data: command: "tell me a joke" media_player: media_player.living_room_speaker +``` You can also send multiple commands in the same conversation context which is useful to unlock doors or open covers that need a PIN. Example: @@ -171,7 +172,7 @@ data: ## Conversation agent -In the configure options of the integration, enable the conversation agent and then you can converse with Google Assistant by pressing the microphone in the frontend (supported browsers only): +In the configure options of the integration, enable the conversation agent and then you can converse with Google Assistant by tapping the Assist icon at the top right of your dashboard: ![Screenshot Conversation](/images/integrations/google_assistant_sdk/conversation.png) diff --git a/source/_integrations/google_mail.markdown b/source/_integrations/google_mail.markdown index 1a41ac5c9ee..e3ab58a9733 100644 --- a/source/_integrations/google_mail.markdown +++ b/source/_integrations/google_mail.markdown @@ -12,7 +12,7 @@ ha_platforms: - sensor ha_codeowners: - '@tkdrob' -ha_integration_type: device +ha_integration_type: service --- The Google Mail integration allows you to connect your [Google Mail](https://mail.google.com) to Home Assistant. The integration adds a service to allow you to set an email auto-response for when you go on vacation. A `notify` service is also added, allowing you to draft or send emails in plain text. @@ -28,9 +28,9 @@ If you have already set up credentials, you can do step 1 and then skip to step This section explains how to generate a Client ID and Client Secret on [Google Developers Console](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=home-assistant-17698). -1. First, go to the Google Developers Console to enable [Google Mail API](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=home-assistant-17698) +1. First, go to the Google Developers Console to enable [Gmail API](https://console.cloud.google.com/apis/library/gmail.googleapis.com?project=home-assistant-17698) 2. The wizard will ask you to choose a project to manage your application. Select a project and click continue. -3. Verify that your drive API was enabled and click 'Go to credentials' +3. Verify that your Gmail API was enabled and click 'Go to credentials' 4. Navigate to APIs & Services (left sidebar) > [Credentials](https://console.cloud.google.com/apis/credentials) 5. Click on the field on the left of the screen, **OAuth Consent Screen**. 6. Select **External** and **Create**. @@ -45,7 +45,7 @@ This section explains how to generate a Client ID and Client Secret on 15. Set the Application type to *Web application* and give this credential set a name (like "Home Assistant Credentials"). 16. Add https://my.home-assistant.io/redirect/oauth to *Authorized redirect URIs* then click **Create**. 17. You will then be presented with a pop-up saying *OAuth client created* showing *Your Client ID* and *Your Client Secret*. Make a note of these (for example, copy and paste them into a text editor), as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point, then navigate to *APIs & Services > Credentials*, and you will see *Home Assistant Credentials* (or whatever you named them in the previous step) under *OAuth 2.0 Client IDs*. To view both the *Client ID* and *Client secret*, click on the pencil icon; this will take you to the settings page for these credentials, and the information will be on the right-hand side of the page. -18. Double-check that the *Google Drive API* has been automatically enabled. To do this, select **Library** from the menu, then search for *Google Drive API*. If it is enabled you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it. +18. Double-check that the *Gmail API* has been automatically enabled. To do this, select **Library** from the menu, then search for *Gmail API*. If it is enabled you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it. {% enddetails %} diff --git a/source/_integrations/gpsd.markdown b/source/_integrations/gpsd.markdown index 9d928042c6e..d2bed43001c 100644 --- a/source/_integrations/gpsd.markdown +++ b/source/_integrations/gpsd.markdown @@ -13,7 +13,7 @@ ha_platforms: ha_integration_type: integration --- -The `gpsd` integration is using the GPS information collected by [gpsd](http://catb.org/gpsd/) and a GPS receiver. +The `gpsd` integration is using the GPS information collected by [gpsd](https://gpsd.gitlab.io/gpsd/index.html) and a GPS receiver. ## Setup diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown index ed398a281c5..cf8c3fff578 100644 --- a/source/_integrations/history_stats.markdown +++ b/source/_integrations/history_stats.markdown @@ -80,7 +80,7 @@ duration: You have to provide **exactly 2** of `start`, `end` and `duration`.
- You can use [template extensions](/topics/templating/#home-assistant-template-extensions) such as `now()` or `as_timestamp()` to handle dynamic dates, as shown in the examples below. + You can use [template extensions](/docs/configuration/templating/#home-assistant-template-extensions) such as `now()` or `as_timestamp()` to handle dynamic dates, as shown in the examples below. diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown index 877ec429bff..5515d65328f 100644 --- a/source/_integrations/homematicip_cloud.markdown +++ b/source/_integrations/homematicip_cloud.markdown @@ -14,7 +14,7 @@ ha_category: ha_iot_class: Cloud Push ha_release: 0.66 ha_config_flow: true -ha_quality_scale: platinum +ha_quality_scale: silver ha_domain: homematicip_cloud ha_platforms: - alarm_control_panel diff --git a/source/_integrations/homewizard.markdown b/source/_integrations/homewizard.markdown index 025395ddcb4..29a2be1a722 100644 --- a/source/_integrations/homewizard.markdown +++ b/source/_integrations/homewizard.markdown @@ -17,20 +17,21 @@ ha_platforms: - switch ha_zeroconf: true ha_integration_type: integration +ha_quality_scale: platinum --- Integration for the [HomeWizard Energy](https://www.homewizard.nl/energy) platform. It can collect data locally from the HomeWizard Energy products and create them as sensors in Home Assistant. **Supported devices** -- [Wi-Fi P1 Meter](https://www.homewizard.nl/p1-meter): Depending on the connected DSMR meter: sensors for power import/export, energy consumption (single or three phases) and gas. (Model: `HWE-P1`) +- [Wi-Fi P1 Meter](https://www.homewizard.nl/p1-meter): Sensors for power import/export, energy consumption (single or three phases). information about your smart meter and gas. (Model: `HWE-P1`) - [Wi-Fi Energy Socket](https://www.homewizard.nl/energy-socket): Sensors for power import/export and energy consumption and switches for controlling the outlet (model: `HWE-SKT`) - [Wi-Fi Watermeter](https://www.homewizard.com/watermeter): Sensors for active and total water usage (model: `HWE-WTR`) - [Wi-Fi kWh Meter](https://www.homewizard.nl/kwh-meter): Sensors for power import/export and energy consumption. (Models: `SDM230-wifi`, `SDM630-wifi`)
-The Wi-Fi Watermeter can be powered via a USB-C cable and with batteries. When using batteries they only connect to Wi-Fi every couple of hours. Because of this, the API can only be used when powered via the USB-C cable. It is not possible to add use this integration when the water meter is powered by batteries. +The Watermeter can be powered via a USB-C cable and with batteries. When using batteries they only connect to Wi-Fi every couple of hours. Because of this, the API can only be used when powered via the USB-C cable. It is not possible to use this integration when the water meter is powered by batteries.
@@ -70,21 +71,20 @@ Sensors for Water meter: ## Energy Socket -The Wifi Energy Socket (`HWE-SKT`) outlet state and status light can be controlled. There are two switches: +The Energy Socket outlet state and status light can be controlled. There are two switches: -- **Switch**: Controls the outlet state of the Energy Socket. This switch is locked out when `Switch Lock` is turned on. -- **Switch lock**: Forces the outlet state in the `on` position and disables the physical button. This option is useful when the socket is used for a device that must not be turned off, such as a refrigerator. +- **Switch**: Controls the outlet state of the Energy Socket. This switch is locked out when _Switch Lock_ is turned on. +- **Switch lock**: Forces the outlet state in the _on_ position and disables the physical button. This option is useful when the socket is used for a device that must not be turned off, such as a refrigerator. You can also control the green status light brightness with **Status light brightness**. This light turns on when the switch is on. ## Identify The identify button can be pressed to let the status light blink for a few seconds. -This feature is currently only available for the Wifi P1 meter and the Wifi Energy Socket. +This feature is currently only available for the P1 meter and the Energy Socket. ## Cloud communication -The HomeWizard Energy devices are designed to work with the HomeWizard Energy app and require communication with the HomeWizard cloud to make them function with the app. The "Cloud connection" configuration toggle can be used to turn off all communication with the HomeWizard cloud, making the device fully local. The device cannot communicate with the app, and the device won't receive any future firmware updates. +The HomeWizard Energy devices are designed to work with the HomeWizard Energy app and require communication with the HomeWizard cloud to make them function with the app. The "Cloud connection" configuration toggle can be used to turn off all communication with the HomeWizard cloud, making the device fully local. The device cannot communicate with the app, and the device won't receive any future firmware updates. This feature is currently not available for the Water meter. Cloud communication is restored when the switch is turned on again. Cloud communications are also restored after a factory reset, or when the device is put in pairing mode. -This feature is currently not available for the Wifi Water meter. diff --git a/source/_integrations/honeywell.markdown b/source/_integrations/honeywell.markdown index 7939c120fb2..b058a6a6a84 100644 --- a/source/_integrations/honeywell.markdown +++ b/source/_integrations/honeywell.markdown @@ -9,6 +9,7 @@ ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@rdfurman' + - '@mkmer' ha_domain: honeywell ha_platforms: - climate diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown index 924520fbcc2..33709ad478e 100644 --- a/source/_integrations/hue.markdown +++ b/source/_integrations/hue.markdown @@ -13,7 +13,6 @@ ha_codeowners: - '@balloob' - '@marcelveldt' ha_domain: hue -ha_ssdp: true ha_homekit: true ha_platforms: - binary_sensor diff --git a/source/_integrations/imap.markdown b/source/_integrations/imap.markdown index bac642c00d3..ded3321b505 100644 --- a/source/_integrations/imap.markdown +++ b/source/_integrations/imap.markdown @@ -48,4 +48,3 @@ Below is an example for setting up the integration to connect to your Microsoft - Username: Your full email address - Password: Your password - Charset: `US-ASCII` - diff --git a/source/_integrations/imap_email_content.markdown b/source/_integrations/imap_email_content.markdown index d47f05e5d8c..f045047edeb 100644 --- a/source/_integrations/imap_email_content.markdown +++ b/source/_integrations/imap_email_content.markdown @@ -71,7 +71,7 @@ value_template: body: description: The body of the email. subject: - description: The subject of the email.git. + description: The subject of the email. date: description: The date and time the email was sent. verify_ssl: diff --git a/source/_integrations/influxdb.markdown b/source/_integrations/influxdb.markdown index 2b6178fa625..dcbc4dd1ebc 100644 --- a/source/_integrations/influxdb.markdown +++ b/source/_integrations/influxdb.markdown @@ -506,27 +506,27 @@ The example configuration entry below create two request to your local InfluxDB ```yaml sensor: - platform: influxdb - host: localhost - username: home-assistant - password: password - queries: - - name: last value of foo - unit_of_measurement: °C - value_template: '{{ value | round(1) }}' - group_function: last - where: '"name" = ''foo''' - measurement: '"°C"' - field: value - database: db1 - - name: Min for last hour - unit_of_measurement: "%" - value_template: '{{ value | round(1) }}' - group_function: min - where: '"entity_id" = ''salon'' and time > now() - 1h' - measurement: '"%"' - field: tmp - database: db2 + - platform: influxdb + host: localhost + username: home-assistant + password: password + queries: + - name: last value of foo + unit_of_measurement: °C + value_template: '{{ value | round(1) }}' + group_function: last + where: '"name" = ''foo''' + measurement: '"°C"' + field: value + database: db1 + - name: Min for last hour + unit_of_measurement: "%" + value_template: '{{ value | round(1) }}' + group_function: min + where: '"entity_id" = ''salon'' and time > now() - 1h' + measurement: '"%"' + field: tmp + database: db2 ``` {% endraw %} diff --git a/source/_integrations/intellifire.markdown b/source/_integrations/intellifire.markdown index 97a6d72e41b..f1cdd9e5e4a 100644 --- a/source/_integrations/intellifire.markdown +++ b/source/_integrations/intellifire.markdown @@ -18,8 +18,8 @@ ha_config_flow: true ha_platforms: - binary_sensor - climate - - light - fan + - light - number - sensor - switch diff --git a/source/_integrations/iotawatt.markdown b/source/_integrations/iotawatt.markdown index a90625e8668..66d2ec16ef7 100644 --- a/source/_integrations/iotawatt.markdown +++ b/source/_integrations/iotawatt.markdown @@ -51,4 +51,4 @@ If you have two solar sensors named `Solar1` and `Solar2` you would use: In the Grid Consumption settings, select `MainsConsumption.wh` In the Return to grid settings, select `MainsExport.wh` -In the Solar production settings, select `Solar.wh` +In the Solar production settings, select `Solar.wh` diff --git a/source/_integrations/keymitt_ble.markdown b/source/_integrations/keymitt_ble.markdown index 79ce5191680..51a855adf22 100644 --- a/source/_integrations/keymitt_ble.markdown +++ b/source/_integrations/keymitt_ble.markdown @@ -15,7 +15,7 @@ ha_config_flow: true ha_integration_type: integration --- -This integration allows you to locally control a MicroBot Push (previously manufactured by Naran but now under the Keymitt brand). +This integration allows you to locally control a [MicroBot Push](https://keymitt.com/products/microbot-push) (previously manufactured by Naran but now under the Keymitt brand). ### Prerequisites diff --git a/source/_integrations/kitchen_sink.markdown b/source/_integrations/kitchen_sink.markdown index 9500242c3db..26c4ac62e28 100644 --- a/source/_integrations/kitchen_sink.markdown +++ b/source/_integrations/kitchen_sink.markdown @@ -10,6 +10,8 @@ ha_codeowners: ha_domain: kitchen_sink ha_iot_class: Calculated ha_platforms: + - lock + - sensor ha_integration_type: integration --- diff --git a/source/_integrations/ld2410_ble.markdown b/source/_integrations/ld2410_ble.markdown index 5c2f0318577..92faaca31ba 100644 --- a/source/_integrations/ld2410_ble.markdown +++ b/source/_integrations/ld2410_ble.markdown @@ -2,8 +2,8 @@ title: LD2410 BLE description: Instructions on how to integrate LD2410 BLE devices into Home Assistant. ha_category: - - Sensor - Presence Detection + - Sensor ha_bluetooth: true ha_release: 2023.2 ha_iot_class: Local Push @@ -12,8 +12,9 @@ ha_codeowners: ha_domain: ld2410_ble ha_config_flow: true ha_platforms: + - binary_sensor - sensor -ha_integration_type: integration +ha_integration_type: device --- Integrates LD2410 BLE sensors from [Hi-Link](http://www.hlktech.net/) into Home Assistant. diff --git a/source/_integrations/litejet.markdown b/source/_integrations/litejet.markdown index caa25577f4b..14aa49a501e 100644 --- a/source/_integrations/litejet.markdown +++ b/source/_integrations/litejet.markdown @@ -10,6 +10,7 @@ ha_release: 0.32 ha_domain: litejet ha_config_flow: true ha_platforms: + - diagnostics - light - scene - switch diff --git a/source/_integrations/litterrobot.markdown b/source/_integrations/litterrobot.markdown index 67aef645b8d..3227ad93d1f 100644 --- a/source/_integrations/litterrobot.markdown +++ b/source/_integrations/litterrobot.markdown @@ -39,18 +39,18 @@ You will need a Litter-Robot account as well as a Wi-Fi-enabled Litter-Robot or | Entity | Domain | Description | | ----------------------------- | -------- | -------------------------------------------------------------------------------- | -| Litter Box | `vacuum` | Main entity that represents a Litter-Robot unit. | -| Night Light Mode | `switch` | When turned on, automatically turns on the night light in darker settings. | -| Panel Lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | -| Last Seen | `sensor` | Displays the time the unit was last seen / reported an update. | +| Litter box | `vacuum` | Main entity that represents a Litter-Robot unit. | +| Night light mode | `switch` | When turned on, automatically turns on the night light in darker settings. | +| Panel lockout | `switch` | When turned on, disables the buttons on the unit to prevent changes to settings. | +| Last seen | `sensor` | Displays the time the unit was last seen / reported an update. | | Litter level | `sensor` | Displays the litter level, only for Litter-Robot 4. | | Pet weight | `sensor` | Displays the last measured pet weight, only for Litter-Robot 4. | -| Sleep Mode Start Time | `sensor` | When sleep mode is enabled, displays the current or next sleep mode start time. | -| Sleep Mode End Time | `sensor` | When sleep mode is enabled, displays the current or last sleep mode end time. | -| Status Code | `sensor` | Displays the status code (Clean Cycle in Progress, Ready, Drawer Full, etc). | -| Waste Drawer | `sensor` | Displays the current waste drawer level. | -| Clean Cycle Wait Time Minutes | `select` | View and select the clean cycle wait time. | -| Reset Waste Drawer | `button` | Button to reset the waste drawer level to 0%, only for Litter-Robot 3. | +| Sleep mode start time | `sensor` | When sleep mode is enabled, displays the current or next sleep mode start time. | +| Sleep mode end time | `sensor` | When sleep mode is enabled, displays the current or last sleep mode end time. | +| Status code | `sensor` | Displays the status code (Clean Cycle in Progress, Ready, Drawer Full, etc). | +| Waste drawer | `sensor` | Displays the current waste drawer level. | +| Clean cycle wait time minutes | `select` | View and select the clean cycle wait time. | +| Reset waste drawer | `button` | Button to reset the waste drawer level to 0%, only for Litter-Robot 3. | | Firmware | `update` | View and update to the latest firmware, only for Litter-Robot 4. | ### Feeder-Robot diff --git a/source/_integrations/lock.mqtt.markdown b/source/_integrations/lock.mqtt.markdown index c64b9512b0d..7a494761678 100644 --- a/source/_integrations/lock.mqtt.markdown +++ b/source/_integrations/lock.mqtt.markdown @@ -193,7 +193,7 @@ payload_open: type: string default: OPEN qos: - description: The maximum QoS level of the state topic. + description: The maximum QoS level of the state topic. It will also be used for messages published to command topic. required: false type: integer default: 0 diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index 42acc57d268..b3c2937daf7 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -18,6 +18,7 @@ The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver no ### Setup Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application. +If you want to grant only required accesses, uncheck all checkboxes then check only **read:accounts** and **write:statuses**. ### Configuration diff --git a/source/_integrations/matrix.markdown b/source/_integrations/matrix.markdown index 8d6d1b62228..fbe30367f05 100644 --- a/source/_integrations/matrix.markdown +++ b/source/_integrations/matrix.markdown @@ -6,8 +6,6 @@ ha_category: - Notifications ha_iot_class: Cloud Push ha_release: 0.69 -ha_codeowners: - - '@tinloaf' ha_domain: matrix ha_platforms: - notify diff --git a/source/_integrations/matter.markdown b/source/_integrations/matter.markdown new file mode 100644 index 00000000000..154fb765ff6 --- /dev/null +++ b/source/_integrations/matter.markdown @@ -0,0 +1,203 @@ +--- +title: Matter +description: Instructions on how to integrate Matter with Home Assistant. +ha_category: + - Binary Sensor + - Light + - Sensor + - Switch +ha_release: '2022.12' +ha_iot_class: Local Push +ha_config_flow: true +ha_codeowners: + - '@marcelveldt' + - '@MartinHjelmare' +ha_domain: matter +ha_platforms: + - binary_sensor + - light + - sensor + - switch +ha_integration_type: integration +--- + +The Matter integration allows you to control Matter devices on your local WiFi or Thread network. + +Matter is [the new standard for home automation](https://en.wikipedia.org/wiki/Matter_(standard)) which has just been released. It is in the process of being adopted by the tech industry. Matter is a local protocol, device control is done without the need of any cloud. You can use a Matter compatible device with Home Assistant without having to connect to a vendor specific cloud. + +Matter devices are available using either WiFi based communication or [Thread](/integrations/thread/), both are supported by Home Assistant. Bluetooth is used for adding new devices to your Matter network. + +Home Assistant only supports control of Matter devices. Home Assistant is not a bridge itself and it cannot turn devices within Home Assistant into Matter compatible devices. + +At this time there are only a few devices available that are compatible with the standard and some of them require you to join a beta/developer program. It is to be expected that more devices will hit the market during the 2nd quarter of 2023 and beyond. + +

+Both the Matter standard itself and its implementation within Home Assistant are in a very early stage where only the basics are working and/or breaking changes can still happen. Using it in production is not recommended yet until it matures a bit more. +

+ +One of the great features of Matter is the so called _Multi Fabric_ feature: you can join the same device to multiple controllers. For example: add it to Google Home, Apple Home, and Home Assistant at the same time. + +For devices where Home Assistant provides an native integration (with local API), Matter may not be the best option. Matter, being a universal standard, might not have the nitty-gritty features that come with a product specific protocol. A good example is Philips Hue: the communication over Matter only provides the basic controls over lights, the official integration brings all Hue unique features like (dynamic) scenes, entertainment mode, etc. + +

+The Matter protocol relies on (local) IPv6 and mDNS (multicast traffic) which should be able to travel freely in your network. Matter devices (and any Thread Border routers) must be on the same LAN/VLAN as Home Assistant. Implementations like mDNS reflectors usually do more harm than good. +

+ +{% include integrations/config_flow.md %} + +_If you run Home Assistant Container, Home Assistant Core, or you don’t want to use the built-in Matter Server add-on, please see the [advanced installation instructions](#advanced-installation-instructions)._ + +## Current state of the integration + +While the support for Matter is evolving, we will regularly update the Matter integration with new features or device support. Because it might be hard to track what's supported and what not, we list the current state here and try to update this information as often as possible. + +Platform support in Home Assistant is currently limited to switches, lights, and (binary) sensors. The light platform is limited to _on/off_ and _brightness_ control only, support for _color_ and _color temperature_ control will be added soon. + +### Known issues + +- Support for bridges (e.g. Hue bridge) is NOT working yet. Please do not try to add a bridge as it will break the integration. +- Door/window sensors show up reversed (closed instead of open) + +_Both issues will be fixed in Home Assistant 2023.3._ + +## Adding Matter devices to Home Assistant + +Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own fabric. You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below. + +### Add a device using the iOS Companion app + +This will use the Bluetooth connection of your phone to add the device. + +1) Open The Home Assistant app on your phone. +2) Go to Settings, Devices & Services. +3) On the Devices tab, press the `Add device` button. +4) Choose `Add Matter device` as the top of the list. +5) Scan the QR-code of the Matter device with your phone camera or press `More options...` to manually enter the Commission code. +6) Press the `Add to Home Assistant` button which will start the commissioning process which may take up to a few minutes. +7) If you're adding a test board or beta device you might get a prompt about an Uncertified Accessory". In this dialog press `Add Anyway`. +8) Once prompted you can enter a custom Accessory Name, this is just an internal reference and not visible in Home Assistant so you can type whatever you like here. +9) Once the process is complete and you pressed the `Done` button, you are redirected to the Device within Home Assistant and its ready for use. + + + +### Add a device using the Android Companion app + +This will use the Bluetooth connection of your phone to add the device. + +1) Open The Home Assistant app on your phone. +2) Go to Settings, Devices & Services. +3) On the Devices tab, press the `Add device` button. +4) Choose `Add Matter device` as the top of the list. +5) Scan the QR-code of the Matter device with your phones camera or press the `Setup without QR-code` button to manually enter the Commission code. +6) The process will start adding the device which takes up to a few minutes. +7) 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. +8) Once the process is complete and you pressed the `Done` button, you are redirected to the Device within Home Assistant and its ready for use. + + + +### Share a device from Apple Home + +This method will allow you to select a Matter device from Apple Home and share it to Home Assistant. The result is that the device can be controlled from both Apple Home and Home Assistant at the same time. + +1) Find your device in Apple Home and press the jogwheel to edit it. In the page with detailed descriptions and settings for the device, scroll all the way down and press the button `Turn On Pairing Mode`. +2) You are now given a Setup code, copy this to the clipboard. +3) Follow the [Add a device using the iOS Companion app](#add-a-device-using-the-ios-companion-app) directions above to add the device to Home Assistant where you paste the code you just received from Apple Home. + + + +### Share a device from Google Home + +This method will allow you to share a device that was added to Google Home to Home Assistant. The result is that the device can be controlled from both Google Home and Home Assistant at the same time. + +1) Open the device in Google Home and press the settings button (jog wheel) in the top right. +2) Click `Linked Matter apps and services`. +3) Press the button `Link apps and services` to link the device to Home Assistant. +4) Choose Home Assistant from the list, you are redirected to the Home Assistant Companion app now. Press `Add device`. +5) Your device will now be added to Home Assistant. When the process finishes, you're redirected to the device page in Home Assistant. + + + +## Device specific instructions + +Because availability of actual Matter devices is sparse and proper HOWTO documentation even more, we provide a few step by step instructions for devices we have currently tested. + +### TP-Link Tapo P125M (power plug) + +This device runs Matter out of the box, so you can add it directly to the controller(s) of your choice! + +Look for the M addition in the model name, a device without the M (regular P125) is not Matter compliant. This device is available in the US only. + +[TP-Link Tapo P125M on Amazon](https://amzn.to/3RILJah) + +### ESP32 dev board running Matter example app + +This is the most convenient and easy way to start playing with Matter. We have [prepared a page for you](https://nabucasa.github.io/matter-example-apps/) where you can easily flash Matter firmware to a supported ESP32 development board. We actually recommend the M5 Stamp C3 device running the Lightning app. + +NOTE for Android users: You need to follow the instructions at the bottom of the page to add the test device to the Google developer console, otherwise commissioning will fail. iOS users will not have this issue but they will get a prompt during commissioning asking if you trust the development device. + +1) Make sure you are using the Google Chrome or Microsoft Edge browser. +2) Open https://nabucasa.github.io/matter-example-apps/ +3) Attach the ESP32 device using an USB cable. +4) Click the radiobutton next to the example you like to setup, in case of an M5 Stamp, click `Lightning app for M5STAMP C3`. +5) Press `Connect`. +6) In the popup dialog that appears choose the correct serial device, in most cases this will be something like "cu-usbserial" or alike. +7) Click `Install Matter Lightning app example` and let it install the firmware on the device, this will take a few minutes. +8) Once the device is flashed with the Matter firmware, connect to the device again but this time choose `Logs & console`. +9) You are presented with a console interface where you see live logging of events. This is actually an interactive shell where you can type commands. For a list of all commands, type `matter help` and press enter. +10) To add the device, we need the QR code. In the console type in `matter onboardingcodes ble` and copy/paste the URL in your browser. +11) Use the QR code to add the device using one of the above instructions on your phone, e.g. using the Home Assistant Companion app. + +### Eve Energy (power plug), Eve Door & Window (contact sensor), Eve Motion (motion sensor) + +1) Look for the Thread logo on the box to ensure you have the new device which is compatible with Matter. +2) The Eve device runs on HomeKit by default, you will need an iOS device to set it up out of the box. +3) The Eve device uses Thread for communication, therefore you will need to have a Thread Border Router configured in your network setup, such as the Apple TV 4K (2021/2022), Homepod Mini, or Homepod V2. +4) You need to join the [Eve Beta program here](https://www.evehome.com/en/meet-matter) and wait for instructions per email. +5) Update the firmware of your Eve device using the Eve beta app to Matter. +6) During the update process the Eve app will create a new QR code for you to save somewhere safe. This QR code is required when you want to add the device to a Matter controller. The normal QR code attached to the device will no longer work! +7) During the upgrade process, the Eve app will join the device to Apple Home using Matter. +8) Confirm that the device is working properly within Apple Home. +9) Follow our instructions above to share the device from Apple Home to Home Assistant. + +Once the initial firmware upgrade to Matter is complete, the device can also be paired to non-Apple based Thread networks, like Google Home or later Home Assistant's own Thread implementation based on OTBR but you do need an Apple ecosystem running (iOS phone + Border router) for the first time setup. + +- [Eve Energy on Amazon](https://amzn.to/3YuO62P) +- [Eve Door & Window on Amazon](https://amzn.to/3RIU6ml) +- [Eve Motion on Amazon](https://amzn.to/3jDujiP) + +## Troubleshooting + +### I do not see the option to add a Matter device in the settings +We've added the option to **Add a Matter device** from the **Settings**>**Devices** in a recent version of the Home Assistant frontend, available from version 2023.3 and upwards or if you're running the Home Assistant nightly channel. If you are on a previous version of Home Assistant, you should see a button **Configure** on the Matter integration card within **Settings**>**Devices & Services**>**Integrations**. Click that **Configure** button and you should be able to see the **Commission** button on the Companion app. + +### I do not see the button "Commission using the Companion app" +This button will only be visible within the Home Assistant Companion App (so not in the browser) and your device meets all requirements for Matter support. +- For iOS, minimum version is iOS 16 (minimal 16.3 is preferred) and the most recent version of the HA companion app. +- For Android, minimum version is 8.1 and the most recent version of both the Google Home app and the (full) HA Companion app, downloaded from the app store. + +### When I'm trying to commission using the Android app, I get an error stating "Matter is currently unavailable" +See above, make sure your device meets all requirements to support Matter. Update Android to the latest version and the Google Home and Home Assistant Companion app. To quickly verify if your device meets all requirements to support Matter, on your Android device go to **Settings**>**Google**>**Devices & Sharing**. There should be an entry there for **Matter devices**. + +### Unable to commission devices, it keeps giving errors or stops working randomly +We've seen cases (e.g. on UniFi hardware) where IPv6 derived from the Internet Provider causes issues with the discovery of Matter devices. Keep this in mind when you experience issues trying to add or control Matter devices. Protocols like Matter are designed for regular residential network setups and do not play nice with enterprise solutions like VLAN's, Multicast filtering, and IGMP snooping. To avoid issues, try to keep your network as simple and flat as possible. + +## Advanced installation instructions + +If you are using Home Assistant Container, Home Assistant Core, or you don't want to use the built-in Matter Server add-on, you will need to run the Matter Server yourself, to which the Matter integration will connect. + +### Running Matter Server + +This application provides the connection between your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a websocket connection. You need to run the Matter Server before you can use the integration. + +There are multiple ways to run the server: + +**Option 1: The official Matter Server add-on, as described above** + +_This option is only available for Home Assistant OS (the recommended installation type) and Home Assistant Supervised installations._ + +**Option 2: Run the Matter server yourself** + +This option is considered a very advanced setup and only for experienced users. You can find instructions on how to run the Matter Server in the [project repository](https://github.com/home-assistant-libs/python-matter-server). + +_Disclaimer: Some links on this page are affiliate links._ + diff --git a/source/_integrations/matter.md b/source/_integrations/matter.md deleted file mode 100644 index 1efecacd627..00000000000 --- a/source/_integrations/matter.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Matter -description: Instructions on how to integrate Matter with Home Assistant. -ha_category: - - Binary Sensor - - Light - - Sensor - - Switch -ha_release: '2022.12' -ha_iot_class: Local Push -ha_config_flow: true -ha_codeowners: - - '@marcelveldt' - - '@MartinHjelmare' -ha_domain: matter -ha_platforms: - - binary_sensor - - light - - sensor - - switch -ha_integration_type: integration ---- - -This integration allows you to communicate with and control Matter devices on your local WiFi or Thread network. - -

-Both Matter and the implementation within Home Assistant are in early (v1) state and features may be missing or could be improved. -

- -{% include integrations/config_flow.md %} - -If you run Home Assistant Container, Home Assistant Core, or you don’t want to use the built-in Matter Server add-on, please see the [advanced installation instructions](#advanced-installation-instructions). - - -## Advanced installation instructions - -If you are using Home Assistant Container, Home Assistant Core, or you don't want to use the built-in Matter Server add-on, you will need to run the Matter Server yourself, to which the Matter integration will connect. - -### Running Matter Server - -This application provides the connection between your Matter network (called Fabric in technical terms) and Home Assistant. The Home Assistant Matter integration connects to this server via a websocket connection. You need to run the Matter Server before you can use the integration. - -There are multiple ways to run the server: - -**Option 1: The official Matter Server add-on, as described above** - -_This option is only available for Home Assistant OS (the recommended installation type) and Home Assistant Supervised installations._ - -**Option 2: Run the Matter server yourself** - -This option is considered a very advanced setup and only for experienced users. You can find instructions on how to run the Matter Server in the [project repository](https://github.com/home-assistant-libs/python-matter-server). - diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown index 796f37b2185..e61b1d67397 100644 --- a/source/_integrations/media_player.markdown +++ b/source/_integrations/media_player.markdown @@ -147,7 +147,7 @@ Currently only supported on [Denon AVR](/integrations/denonavr/) and [Songpal]( #### Service `media_player.shuffle_set` -Currently only supported on [Sonos](/integrations/sonos), [Spotify](/integrations/spotify), [MPD](/integrations/mpd), [Kodi](/integrations/kodi), [Roon](/integrations/roon), [Owntone](/integrations/forked_daapd), [Squeezebox](/integrations/squeezebox) and [Universal](/integrations/universal). +Currently only supported on [Sonos](/integrations/sonos), [Spotify](/integrations/spotify), [MPD](/integrations/mpd), [Kodi](/integrations/kodi), [Roon](/integrations/roon), [OwnTone](/integrations/forked_daapd), [Squeezebox](/integrations/squeezebox) and [Universal](/integrations/universal). | Service data attribute | Optional | Description | | ---------------------- | -------- | ---------------------------------------------------- | diff --git a/source/_integrations/mijndomein_energie.markdown b/source/_integrations/mijndomein_energie.markdown index 13c3c1d1ffc..f09057a1d50 100644 --- a/source/_integrations/mijndomein_energie.markdown +++ b/source/_integrations/mijndomein_energie.markdown @@ -1,20 +1,20 @@ --- title: Mijndomein Energie -description: Get the energy market prices from Mijndomein Energie using the EnergyZero integration. +description: Connect and control your Mijndomein Energie devices using the EnergyZero integration ha_category: - Energy - - Sensor ha_domain: mijndomein_energie ha_release: 2023.2 ha_integration_type: virtual ha_supporting_domain: energyzero -ha_supporting_integration: energyzero +ha_supporting_integration: EnergyZero ha_codeowners: - '@klaasnicolaas' ha_config_flow: true ha_platforms: + - diagnostics - sensor ha_iot_class: Cloud Polling --- -{% include integrations/supported_brand.md %} \ No newline at end of file +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 5fd0885e61f..2daea266304 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -1157,7 +1157,7 @@ logger: default: warning logs: homeassistant.components.modbus: debug - pymodbus.client: debug + pymodbus: debug ``` and restart Home Assistant, reproduce the problem, and include the log in the issue. diff --git a/source/_integrations/moehlenhoff_alpha2.markdown b/source/_integrations/moehlenhoff_alpha2.markdown index 2fa58dfe909..fd477bc63ac 100644 --- a/source/_integrations/moehlenhoff_alpha2.markdown +++ b/source/_integrations/moehlenhoff_alpha2.markdown @@ -11,9 +11,9 @@ ha_codeowners: ha_domain: moehlenhoff_alpha2 ha_platforms: - binary_sensor + - button - climate - sensor - - button ha_integration_type: integration --- diff --git a/source/_integrations/mopeka.markdown b/source/_integrations/mopeka.markdown index 1bb82c38d2c..67f3ee8a637 100644 --- a/source/_integrations/mopeka.markdown +++ b/source/_integrations/mopeka.markdown @@ -12,7 +12,7 @@ ha_domain: mopeka ha_config_flow: true ha_platforms: - sensor -ha_integration_type: integration +ha_integration_type: device --- Integrates [Mopeka](https://www.mopekaiot.com/) devices into Home Assistant. diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 58837871d63..154bf857407 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -23,6 +23,7 @@ ha_platforms: - diagnostics - fan - humidifier + - light - lock - number - scene @@ -31,7 +32,9 @@ ha_platforms: - siren - switch - text + - tag - update + - vacuum ha_integration_type: integration ha_quality_scale: gold --- @@ -514,6 +517,7 @@ The following software has built-in support for MQTT discovery: - [Arilux AL-LC0X LED controllers](https://github.com/smrtnt/Arilux_AL-LC0X) - [ebusd](https://github.com/john30/ebusd) - [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt) +- [EMS-ESP32 (and EMS-ESP)](https://github.com/emsesp/EMS-ESP32) - [ESPHome](https://esphome.io) - [ESPurna](https://github.com/xoseperez/espurna) - [HASS.Agent](https://github.com/LAB02-Research/HASS.Agent) @@ -523,6 +527,7 @@ The following software has built-in support for MQTT discovery: - [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0) - [SmartHome](https://github.com/roncoa/SmartHome) - [SpeedTest-CLI MQTT](https://github.com/adorobis/speedtest-CLI2mqtt) +- [SwitchBot-MQTT-BLE-ESP32](https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32) - [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted) - [Teleinfo MQTT](https://fmartinou.github.io/teleinfo2mqtt) (starting with 3.0.0) - [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/) @@ -747,7 +752,7 @@ script: ## Publish & Dump services -The MQTT integration will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/topics/templating/) that will be rendered to generate the payload. +The MQTT integration will register the service `mqtt.publish` which allows publishing messages to MQTT topics. There are two ways of specifying your payload. You can either use `payload` to hard-code a payload or use `payload_template` to specify a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that will be rendered to generate the payload. ### Service `mqtt.publish` diff --git a/source/_integrations/notify.markdown b/source/_integrations/notify.markdown index 4fe50b792a7..1287ada6a29 100644 --- a/source/_integrations/notify.markdown +++ b/source/_integrations/notify.markdown @@ -26,7 +26,7 @@ Once loaded, the `notify` platform will expose a service that can be called to s | `target` | yes | Some platforms allow specifying a recipient that will receive the notification. See your platform page if it is supported. | `data` | yes | On platforms who have extended functionality. See your platform page if it is supported. -The notify integration supports specifying [templates](/topics/templating/). This will allow you to use the current state of Home Assistant in your notifications. +The notify integration supports specifying [templates](/docs/configuration/templating/). This will allow you to use the current state of Home Assistant in your notifications. In an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this with a customized subject. diff --git a/source/_integrations/openai_conversation.markdown b/source/_integrations/openai_conversation.markdown index 87196f9d5ca..044815ac082 100644 --- a/source/_integrations/openai_conversation.markdown +++ b/source/_integrations/openai_conversation.markdown @@ -1,5 +1,5 @@ --- -title: OpenAI conversation agent +title: OpenAI Conversation description: Instructions on how to integrate OpenAI as a conversation agent ha_category: - Voice diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown index 1024d443c59..24837fc29f1 100644 --- a/source/_integrations/openuv.markdown +++ b/source/_integrations/openuv.markdown @@ -193,4 +193,3 @@ provided by OpenUV. So, this strategy is followed: If you receive a re-authentication notification and are certain that your key has merely reached its daily call limit, you can safely ignore it. - diff --git a/source/_integrations/oralb.markdown b/source/_integrations/oralb.markdown index fd78d674d23..97170cb1d7e 100644 --- a/source/_integrations/oralb.markdown +++ b/source/_integrations/oralb.markdown @@ -20,7 +20,9 @@ Integrates [Oral-B](https://oralb.com/) devices into Home Assistant. {% include integrations/config_flow.md %} -The Oral-B integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. +The Oral-B integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. + +The integration can discover most Bluetooth-enabled Oral-B toothbrushes. Brushes not listed as supported below may not be correctly identified or have some modes missing. ## Supported devices @@ -34,7 +36,9 @@ The Oral-B integration will automatically discover devices once the [Bluetooth]( - [Smart Series 7000](https://oralb.com/en-us/products/electric-toothbrushes/smart-7000-rechargeable-electric-toothbrush/) - Smart Series 8000 - [Genius Series 9000](https://oralb.com/en-us/products/electric-toothbrushes/genius-9600-rechargeable-electric-toothbrush-white/) +- Genius Series 10000 - Triumph V2 +- [Genius X](https://www.service.oralb.com/us/en/products/3771/) ## Sensor diff --git a/source/_integrations/otbr.markdown b/source/_integrations/otbr.markdown index 98d802a9c4e..b2905551e82 100644 --- a/source/_integrations/otbr.markdown +++ b/source/_integrations/otbr.markdown @@ -3,13 +3,12 @@ title: Open Thread Border Router ha_category: - Other ha_release: 2023.2 -ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: otbr ha_iot_class: Local Polling -ha_platforms: -ha_integration_type: integration +ha_integration_type: service +ha_config_flow: true --- The Open Thread Border Router integration allows calling an Open Thread Border Router's REST API from Python and via WebSocket. diff --git a/source/_integrations/persistent_notification.markdown b/source/_integrations/persistent_notification.markdown index 3b46f16919f..610734a847f 100644 --- a/source/_integrations/persistent_notification.markdown +++ b/source/_integrations/persistent_notification.markdown @@ -24,8 +24,8 @@ The service `persistent_notification.create` takes in `message`, `title`, and `n | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | -| `message` | no | Body of the notification. Accepts [templates](/topics/templating/). -| `title` | yes | Title of the notification. Accepts [templates](/topics/templating/). +| `message` | no | Body of the notification. Accepts [templates](/docs/configuration/templating/). +| `title` | yes | Title of the notification. Accepts [templates](/docs/configuration/templating/). | `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID. Here is how an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) with static content could look like. @@ -38,7 +38,7 @@ action: title: "Custom subject" ``` -If you want to show some runtime information, you have to use [templates](/topics/templating/). +If you want to show some runtime information, you have to use [templates](/docs/configuration/templating/). {% raw %} diff --git a/source/_integrations/person.markdown b/source/_integrations/person.markdown index 2409e047824..939e123147b 100644 --- a/source/_integrations/person.markdown +++ b/source/_integrations/person.markdown @@ -20,7 +20,7 @@ Let's say, for example, that you have three trackers: `tracker_gps`, `tracker_ro 1. You're at home, all three devices show state `home` - the state of your Person entity will be `home` with source `tracker_router` or `tracker_ble`, whichever was most recently updated. 2. You just left home. `tracker_gps` shows state `not_home`, but the other two trackers show state `home` (they may not have yet updated due to their `consider_home` setting see [device_tracker](/integrations/device_tracker/#configuring-a-device_tracker-platform)). Since the stationary trackers have priority, you are considered `home`. -3. After some time, both stationary trackers show state `not_home`. Now your Person entity has state 'not_home' with source `tracker_gps`. +3. After some time, both stationary trackers show state `not_home`. Now your Person entity has state `not_home` with source `tracker_gps`. 4. While you are away from home, your Home Assistant instance is restarted. Until the `tracker_gps` receives an update, your status will be determined by the stationary trackers, since they will have the most recent update after a restart. Obviously, the state will be `not_home`. 5. Then you're going into a zone you have defined as `zone1`, `tracker_gps` sends an update, and now your state is `zone1` with source `tracker_gps`. 6. You've returned home and your mobile device has connected to the router, but `tracker_gps` hasn't updated yet. Your state will be `home` with source `tracker_router`. diff --git a/source/_integrations/qnap_qsw.markdown b/source/_integrations/qnap_qsw.markdown index 08d9d797c56..e5d2c43d4e5 100644 --- a/source/_integrations/qnap_qsw.markdown +++ b/source/_integrations/qnap_qsw.markdown @@ -39,10 +39,16 @@ Password: The following *binary sensors* are created: -| Condition | Description | +| Binary Sensor | Description | | :------------------ | :--------------------------------- | | anomaly | Device anomaly. | +The following *binary sensors* are created for each port (or LACP): + +| Binary Sensor | Description | +| :------------------ | :--------------------------------- | +| link | Link status. | + ## Buttons The following *buttons* are created: @@ -55,16 +61,22 @@ The following *buttons* are created: The following *sensors* are created: -| Condition | Description | +| Sensors | Description | | :------------------ | :--------------------------------- | | fan_1_speed | Fan 1 Speed. | | fan_2_speed | Fan 2 Speed. | +| ports | Number of used ports. | +| rx | Total RX bytes. | +| rx_errors | Total number of RX errors. | +| rx_speed | Total RX speed. | | temperature | Switch temperature. | +| tx | Total TX bytes. | +| tx_speed | Total TX speed. | | uptime | Uptime seconds. | -The following sensors are created for each port (or LACP): +The following *sensors* are created for each port (or LACP): -| Condition | Description | +| Sensors | Description | | :------------------ | :--------------------------------- | | link_speed | Link speed. | | rx | RX bytes. | diff --git a/source/_integrations/rainbird.markdown b/source/_integrations/rainbird.markdown index e7b606e0c77..cff1d64f344 100644 --- a/source/_integrations/rainbird.markdown +++ b/source/_integrations/rainbird.markdown @@ -2,8 +2,8 @@ title: Rain Bird description: Instructions on how to integrate your Rain Bird LNK WiFi Module within Home Assistant. ha_category: - - Irrigation - Binary Sensor + - Irrigation - Sensor - Switch ha_config_flow: true @@ -15,6 +15,7 @@ ha_codeowners: ha_domain: rainbird ha_platforms: - binary_sensor + - number - sensor - switch ha_integration_type: integration @@ -74,4 +75,4 @@ automation: data: entity_id: switch.rain_bird_sprinkler_1 duration: 5 -``` \ No newline at end of file +``` diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index 2305d922295..463d47ebf92 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -1,17 +1,19 @@ --- -title: Reolink NVR/camera +title: Reolink IP NVR/camera description: Instructions on how to integrate Reolink devices (NVR/cameras) into Home Assistant. ha_category: - Camera -ha_iot_class: Local Polling +ha_iot_class: Local Push ha_release: 2023.1 ha_domain: reolink ha_codeowners: - - "@starkillerOG" + - '@starkillerOG' ha_config_flow: true ha_platforms: - - Camera + - binary_sensor + - camera ha_integration_type: integration +ha_dhcp: true --- The integration allows you to control [Reolink](https://reolink.com/) NVRs or cameras. @@ -63,6 +65,7 @@ The following models have been tested and confirmed to work: - RLC-410W - RLC-411 - RLC-420 +- RLC-510A - RLC-511 - RLC-511W - RLC-520 @@ -73,7 +76,9 @@ The following models have been tested and confirmed to work: - RLC-820A - RLC-823A - RLN8-410 NVR +- RLN16-410 NVR - Reolink Duo Floodlight PoE +- Reolink TrackMix PoE - Reolink Video Doorbell (PoE and Wi-Fi) Battery-powered cameras are not yet supported. @@ -82,8 +87,12 @@ The following models are lacking the HTTP webserver API and can therfore not wor - E1 Pro +## Troubleshooting + +- Older firmware versions do not expose the necessary information the integration needs to function. Ensure the camera is updated to the [latest firmware](https://reolink.com/download-center/) prior to setting up the integration. Note that Reolink auto update and check for update functions in the app/windows/web client often do not show the latest available firmware version. Therefore check the version in the [Reolink download center](https://reolink.com/download-center/) online. +- Ensure at least one of the HTTP/HTTPS ports is enabled in the [windows](https://reolink.com/software-and-manual/)/web client under `Settings`->`Network`->`Advanced`->`Port Settings`, see [additional instructions](https://support.reolink.com/hc/en-us/articles/900004435763-How-to-Set-up-Reolink-Ports-Settings-via-Reolink-Client-New-Client-) on the Reolink site. + ## Reolink firmware limitations -- The Reolink NVR only sends event-notifications if motion happens on the camera connected to the first (index "0") channel, therefore the binary sensors of all channels will only be updated when the first channel sees motion. -- Reolink doorbell presses only generate ONVIF event notifications when the doorbell is directly connected to your network. The doorbell visitor binary sensor will not work when connecting the Reolink doorbell to an NVR. -- Older firmware versions do not expose the necessary information the integration needs to function. Ensure the camera is updated to the [latest firmware](https://reolink.com/download-center/) prior to setting up the integration. +- The Reolink NVR only sends event-notifications if motion happens on the camera connected to the first (index "0") channel, therefore the binary sensors of all channels will only be updated when the first channel sees motion. Beta NVR firmware v3.0.0.211_23011204 fixes this issue, you can request beta firmware from reolink support, release firmware is expected in a few weeks. +- Reolink doorbell presses only generate ONVIF event notifications when the doorbell is directly connected to your network. The doorbell visitor binary sensor will not work when connecting the Reolink doorbell to an NVR. Beta NVR firmware v3.0.0.211_23011204 fixes this issue, you can request beta firmware from reolink support, release firmware is expected in a few weeks. diff --git a/source/_integrations/rss_feed_template.markdown b/source/_integrations/rss_feed_template.markdown index b09c2b38329..5db2cffe80f 100644 --- a/source/_integrations/rss_feed_template.markdown +++ b/source/_integrations/rss_feed_template.markdown @@ -44,7 +44,7 @@ feed_id: required: true type: string title: - description: The title of the feed, which is parsed as [template](/topics/templating/). + description: The title of the feed, which is parsed as [template](/docs/configuration/templating/). required: false type: template items: @@ -53,11 +53,11 @@ items: type: list keys: title: - description: The title of the item, which is parsed as [template](/topics/templating/). + description: The title of the item, which is parsed as [template](/docs/configuration/templating/). required: false type: template description: - description: The description of the item, which is parsed as [template](/topics/templating/). + description: The description of the item, which is parsed as [template](/docs/configuration/templating/). required: false type: template {% endconfiguration %} diff --git a/source/_integrations/scrape.markdown b/source/_integrations/scrape.markdown index ff141ca7da6..7ea61e881f9 100644 --- a/source/_integrations/scrape.markdown +++ b/source/_integrations/scrape.markdown @@ -253,10 +253,10 @@ This example tries to retrieve the price for electricity. ```yaml # Example configuration.yaml entry scrape: - - resource: https://elen.nu/timpriser-pa-el-for-elomrade-se3-stockholm/ + - resource: https://elen.nu/dagens-spotpris/se3-stockholm/ sensor: - name: Electricity price - select: ".text-lg:is(span)" + select: ".text-lg.font-bold" index: 1 value_template: '{{ value | replace (",", ".") | float }}' unit_of_measurement: "öre/kWh" diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index 4b7a037f542..e1dc768d273 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -7,7 +7,7 @@ ha_release: 0.7 ha_quality_scale: internal ha_domain: sensor ha_codeowners: - - "@home-assistant/core" + - '@home-assistant/core' ha_integration_type: entity --- diff --git a/source/_integrations/sfr_box.markdown b/source/_integrations/sfr_box.markdown index 4d3c46af7cf..09ca3788f71 100644 --- a/source/_integrations/sfr_box.markdown +++ b/source/_integrations/sfr_box.markdown @@ -12,6 +12,7 @@ ha_domain: sfr_box ha_platforms: - binary_sensor - button + - diagnostics - sensor ha_integration_type: device --- diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index d8842a33574..10a4245e2c8 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -289,4 +289,3 @@ Please check from the device Web UI that the configured server is reachable. - Generation 1 "Shelly 4Pro" and "Shelly Sense" are not supported (devices based on old CoAP v1 protocol) - Before set up, battery-powered devices must be woken up by pressing the button on the device. - OTA update service does not support battery-powered devices - diff --git a/source/_integrations/sql.markdown b/source/_integrations/sql.markdown index 0da077cca3a..54aca6e6fcf 100644 --- a/source/_integrations/sql.markdown +++ b/source/_integrations/sql.markdown @@ -136,7 +136,7 @@ Use `db_size` as column for value. Change `table_schema="homeassistant"` to the name that you use as the database name, to ensure that your sensor will work properly. ```sql -SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema; +SELECT table_schema "database", Round(Sum(data_length + index_length) / POWER(1024,2), 1) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema; ``` Use `value` as column for value. diff --git a/source/_integrations/starlink.markdown b/source/_integrations/starlink.markdown index 316b096c134..ba26ea55308 100644 --- a/source/_integrations/starlink.markdown +++ b/source/_integrations/starlink.markdown @@ -2,11 +2,11 @@ title: Starlink description: Instructions on how to integrate Starlink into Home Assistant. ha_category: - - Sensor - Binary Sensor - Button - - Switch - Network + - Sensor + - Switch ha_release: 2023.2 ha_iot_class: Local Polling ha_config_flow: true @@ -14,16 +14,17 @@ ha_codeowners: - '@boswelja' ha_domain: starlink ha_platforms: - - sensor - binary_sensor - - switch - button + - sensor + - switch ha_integration_type: integration +ha_quality_scale: silver --- The Starlink integration allows you to integrate your [Starlink](https://www.starlink.com/) into Home Assistant. -**Important:** Your Starlink must **not** be in bypass mode. In this mode, the local API is unavailable, and this integration will not work. +**Important:** If your Starlink is in bypass mode, you will need to open a route to it so that the local API can be accessed. Otherwise this integration will not work. {% include integrations/config_flow.md %} @@ -32,8 +33,8 @@ The Starlink integration allows you to integrate your [Starlink](https://www.sta - Ping - The ping that Starlink has measured, in ms - Azimuth - The direction Dishy is facing in degrees - Elevation - Dishy's current elevation in degrees -- Uplink throughput - The amount of data being uploaded through Starlink in Mbit/s -- Downlink throughput - The amount of data being downloaded through Starlink in Mbit/s +- Uplink throughput - The amount of data being uploaded through Starlink in Bit/s +- Downlink throughput - The amount of data being downloaded through Starlink in Bit/s - Last boot time - The time Starlink was last turned on ### Binary Sensor diff --git a/source/_integrations/stookwijzer.markdown b/source/_integrations/stookwijzer.markdown index 22a02798f68..4b8837d7181 100644 --- a/source/_integrations/stookwijzer.markdown +++ b/source/_integrations/stookwijzer.markdown @@ -2,8 +2,8 @@ title: Stookwijzer description: Instructions on how to use Stookwijzer data within Home Assistant ha_category: - - Sensor - Environment + - Sensor ha_release: 2023.2 ha_iot_class: Cloud Polling ha_codeowners: @@ -11,8 +11,8 @@ ha_codeowners: ha_domain: stookwijzer ha_config_flow: true ha_platforms: - - sensor - diagnostics + - sensor ha_integration_type: service --- diff --git a/source/_integrations/switch.rest.markdown b/source/_integrations/switch.rest.markdown index 1c85b923508..d1b17c3e127 100644 --- a/source/_integrations/switch.rest.markdown +++ b/source/_integrations/switch.rest.markdown @@ -50,12 +50,12 @@ timeout: type: integer default: 10 body_on: - description: "The body of the POST request that commands the switch to become enabled. This value can be a [template](/topics/templating/)." + description: "The body of the POST request that commands the switch to become enabled. This value can be a [template](/docs/configuration/templating/)." required: false type: string default: "ON" body_off: - description: "The body of the POST request that commands the switch to become disabled. This value can also be a [template](/topics/templating/)." + description: "The body of the POST request that commands the switch to become disabled. This value can also be a [template](/docs/configuration/templating/)." required: false type: string default: "OFF" @@ -94,7 +94,7 @@ Make sure that the URL matches exactly your endpoint or resource. ### Switch with templated value -This example shows a switch that uses a [template](/topics/templating/) to allow Home Assistant to determine its state. In this example, the REST endpoint returns this JSON response with true indicating the switch is on. +This example shows a switch that uses a [template](/docs/configuration/templating/) to allow Home Assistant to determine its state. In this example, the REST endpoint returns this JSON response with true indicating the switch is on. ```json {"is_active": "true"} diff --git a/source/_integrations/switchbee.markdown b/source/_integrations/switchbee.markdown index 489a2ee6151..769a0bc66de 100644 --- a/source/_integrations/switchbee.markdown +++ b/source/_integrations/switchbee.markdown @@ -8,7 +8,7 @@ ha_category: - Light - Switch ha_release: '2022.10' -ha_iot_class: Local Polling +ha_iot_class: Local Push ha_config_flow: true ha_codeowners: - '@jafar-atili' diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 3ea76769f54..351ad448f69 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -5,9 +5,9 @@ ha_category: - Binary Sensor - Cover - Light + - Lock - Sensor - Switch - - Lock ha_release: 0.78 ha_iot_class: Local Push ha_codeowners: @@ -27,7 +27,6 @@ ha_platforms: - lock - sensor - switch - - lock ha_config_flow: true ha_integration_type: integration --- diff --git a/source/_integrations/synology_dsm.markdown b/source/_integrations/synology_dsm.markdown index 8ed6c549f18..0f1625639dd 100644 --- a/source/_integrations/synology_dsm.markdown +++ b/source/_integrations/synology_dsm.markdown @@ -23,9 +23,10 @@ ha_platforms: - switch - update ha_integration_type: integration +ha_zeroconf: true --- -The Synology DSM integration provides access to various statistics from your [Synology NAS](https://www.synology.com) (_DSM 5.x and higher_) as well as cameras from the [Surveillance Station](https://www.synology.com/en-us/surveillance). +The Synology DSM integration provides access to various statistics from your [Synology NAS](https://www.synology.com) (_DSM 5.x and higher_) as well as cameras from the [Surveillance Station](https://www.synology.com/surveillance). {% include integrations/config_flow.md %} @@ -52,7 +53,7 @@ Due to the nature of the Synology DSM API, it is required to grant the user admi When creating the user, it is possible to deny access to all locations and applications. By doing this, the user will not be able to login to the web interface or view any of the files on the Synology NAS. It is still able to read the utilization and storage information using the API. -If you want to add cameras from [Surveillance Station](https://www.synology.com/en-us/surveillance), the user needs application permission for [Surveillance Station](https://www.synology.com/en-us/surveillance). +If you want to add cameras from [Surveillance Station](https://www.synology.com/surveillance), the user needs application permission for [Surveillance Station](https://www.synology.com/surveillance). ### If you utilize 2-Step Verification or Two Factor Authentication (2FA) with your Synology NAS @@ -110,11 +111,11 @@ Similar to the [normal disk sensors](#disk-sensors), there are binary sensors re ## Switch -A switch is available to enable/disable the [Surveillance Station](https://www.synology.com/en-us/surveillance) Home mode. +A switch is available to enable/disable the [Surveillance Station](https://www.synology.com/surveillance) Home mode. ## Cameras -For each camera added in [Surveillance Station](https://www.synology.com/en-us/surveillance), a camera will be created in Home Assistant. +For each camera added in [Surveillance Station](https://www.synology.com/surveillance), a camera will be created in Home Assistant. ## Buttons diff --git a/source/_integrations/synology_srm.markdown b/source/_integrations/synology_srm.markdown index 9ad193bcb40..7149a8f4259 100644 --- a/source/_integrations/synology_srm.markdown +++ b/source/_integrations/synology_srm.markdown @@ -13,7 +13,7 @@ ha_platforms: ha_integration_type: integration --- -This platform allows you to detect presence by looking at connected devices to a [Synology SRM](https://www.synology.com/en-us/srm) router. +This platform allows you to detect presence by looking at connected devices to a [Synology SRM](https://www.synology.com/srm) router. ## Configuration diff --git a/source/_integrations/thread.markdown b/source/_integrations/thread.markdown index c7c54743b43..118d689e06b 100644 --- a/source/_integrations/thread.markdown +++ b/source/_integrations/thread.markdown @@ -3,14 +3,20 @@ title: Thread ha_category: - Other ha_release: 2023.2 -ha_quality_scale: internal ha_codeowners: - '@home-assistant/core' ha_domain: thread ha_iot_class: Local Polling -ha_platforms: -ha_integration_type: integration +ha_integration_type: service +ha_config_flow: true --- -The Thread integration is currently a placheolder, but will manage Thread network credentials in a future release. -The integration is automatically setup when the "Silicon Labs Multiprotocol" add-on is installed. +The Thread integration helps you track the different Thread networks in your home and helps you manage their credentials. It is currently a work in progress. + +Thread is a low-power mesh networking standard which allows users to connect their devices within a home network. It uses the same RF technology as Zigbee, but provides IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread does not allow to control devices directly: It is just a communication protocol. A higher level protocol such as Matter or HomeKit is required to control Thread enabled devices. Thread allows devices to communicate with each other without the need for a central gateway or router. This makes it ideal for home automation, where a large number of devices may need to be connected. + +To connect a Thread network to Home Assistant, Thread Border Routers (TBRs) are used. TBRs are devices that bridge the Thread network to a local Wi-Fi or Ethernet network. To add a TBR to Home Assistant, you can use our [Home Assistant Yellow](/yellow/) hub or the [Home Assistant SkyConnect](/skyconnect/) Zigbee/Thread stick. + +Home Assistant communicates with TBRs over the local network. This means that TBRs do not have to be physically attached to Home Assistant to be used. You might already have a TBR as part of other products in your home, like a Google Nest Hub Gen 2 or Apple HomePod Mini. Each vendor forms their own network when you start using their products, so you can end up having a Home Assistant, an Apple, and a Google Thread network in your home. These are all separate networks using different credentials, which prevents devices to roam between TBRs. + +It is possible to align credentials for TBRs from different vendors and have them form a single network together. This allows you to freely move devices between rooms without losing connectivity. To do this, you need to make sure that all TBRs use the same credentials. diff --git a/source/_integrations/torque.markdown b/source/_integrations/torque.markdown index 59362f055d9..5015d4c64ff 100644 --- a/source/_integrations/torque.markdown +++ b/source/_integrations/torque.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate Torque sensors into Home Assistant ha_category: - Car ha_release: '0.10' -ha_iot_class: Cloud Polling +ha_iot_class: Local Push ha_domain: torque ha_platforms: - sensor diff --git a/source/_integrations/universal.markdown b/source/_integrations/universal.markdown index a74f58b05ab..fcc49c78256 100644 --- a/source/_integrations/universal.markdown +++ b/source/_integrations/universal.markdown @@ -71,7 +71,7 @@ children: required: false type: list state_template: - description: "A [template](/topics/templating/) can be specified to render the state of the media player. In this way, the state may depend on entities that are not themselves media players, like switches or input booleans." + description: "A [template](/docs/configuration/templating/) can be specified to render the state of the media player. In this way, the state may depend on entities that are not themselves media players, like switches or input booleans." required: false type: template commands: diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index fa0eb95ef2f..c6af67994ed 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -86,7 +86,7 @@ charging_topic: required: false type: string cleaning_template: - description: Defines a [template](/topics/templating/) to define the cleaning state of the vacuum. This is required if `cleaning_topic` is set. + description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the cleaning state of the vacuum. This is required if `cleaning_topic` is set. required: false type: string cleaning_topic: @@ -98,7 +98,7 @@ command_topic: required: false type: string docked_template: - description: Defines a [template](/topics/templating/) to define the docked state of the vacuum. This is required if `docked_topic` is set. + description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the docked state of the vacuum. This is required if `docked_topic` is set. required: false type: string docked_topic: @@ -121,7 +121,7 @@ entity_category: type: string default: None error_template: - description: Defines a [template](/topics/templating/) to define potential error messages emitted by the vacuum. This is required if `error_topic` is set. + description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define potential error messages emitted by the vacuum. This is required if `error_topic` is set. required: false type: string error_topic: @@ -133,7 +133,7 @@ fan_speed_list: required: false type: [string, list] fan_speed_template: - description: Defines a [template](/topics/templating/) to define the fan speed of the vacuum. This is required if `fan_speed_topic` is set. + description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the fan speed of the vacuum. This is required if `fan_speed_topic` is set. required: false type: string fan_speed_topic: diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown index 13dc3b5d31b..bba9429e366 100644 --- a/source/_integrations/webostv.markdown +++ b/source/_integrations/webostv.markdown @@ -7,7 +7,6 @@ ha_category: ha_iot_class: Local Push ha_release: 0.18 ha_codeowners: - - '@bendavid' - '@thecode' ha_domain: webostv ha_config_flow: true diff --git a/source/_integrations/whirlpool.markdown b/source/_integrations/whirlpool.markdown index a2b90950050..18423811f09 100644 --- a/source/_integrations/whirlpool.markdown +++ b/source/_integrations/whirlpool.markdown @@ -9,11 +9,12 @@ ha_iot_class: Cloud Push ha_config_flow: true ha_codeowners: - '@abmantis' + - '@mkmer' ha_domain: whirlpool ha_platforms: - climate - sensor -ha_integration_type: integration +ha_integration_type: hub --- The `whirlpool` integration integrates Whirlpool 6th Sense Live, and Whirlpool/Maytag Washer and Dryer appliances into Home Assistant. diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 117272d51b0..8efa95fe3d4 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -1615,7 +1615,7 @@ Sensor Dirty Left*: Current Clean Time: description: The current cleaning time of the vacuum. If the vacuum is not cleaning, this sensor will have the same value as the "Last Clean Duration" sensor. Current Clean Area: - description: The current area that has been cleaned. If the vacuum is not cealning, this sensor will have the same value as the "Last Clean Area" sensor. + description: The current area that has been cleaned. If the vacuum is not cleaning, this sensor will have the same value as the "Last Clean Area" sensor. Last Clean Area*: description: The last cleaned area in square meters Last Clean Duration*: diff --git a/source/_integrations/zeversolar.markdown b/source/_integrations/zeversolar.markdown index b853e562c07..e738e2bc642 100644 --- a/source/_integrations/zeversolar.markdown +++ b/source/_integrations/zeversolar.markdown @@ -9,7 +9,7 @@ ha_domain: zeversolar ha_platforms: - sensor ha_config_flow: true -ha_integration_type: integration +ha_integration_type: device ha_codeowners: - '@kvanzuijlen' --- diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index e3ac18ed057..0f1adb04cb9 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -144,7 +144,7 @@ a new pop-up asking for a radio type. In the pop-up: | Radio Type | Zigbee Radio Hardware | | ------------- | ------------- | -| `ezsp` | Silicon Labs EmberZNet protocol (e.g., Elelabs, HUSBZB-1, Telegesis) | +| `ezsp` | Silicon Labs EmberZNet protocol (e.g., Home Assistant SkyConnect, Elelabs, HUSBZB-1, Telegesis) | | `deconz` | dresden elektronik deCONZ protocol (e.g., ConBee I/II, RaspBee I/II) | | `znp` | Texas Instruments (e.g., CC253x, CC26x2, CC13x2) | | `zigate` | ZiGate Serial protocol (e.g., ZiGate USB-TTL, PiZiGate, ZiGate WiFi) | @@ -234,10 +234,11 @@ zha: ledvance_provider: true # Auto update LEDVANCE/OSRAM devices salus_provider: true # Auto update SALUS/Computime devices inovelli_provider: true # Auto update INOVELLI devices + thirdreality_provider: true # Auto update 3REALITY devices #otau_directory: /path/to/your/ota/folder # Utilize .ota files to update everything else ``` -You can choose if the IKEA, LEDVANCE, SALUS, or INOVELLI provider should be set to enabled (`true`) or disabled (`false`) individually. After the OTA firmware upgrades are finished, you can set these to `false` again if you do not want ZHA to automatically download and perform OTA firmware upgrades in the future. +You can choose if the IKEA, LEDVANCE, SALUS, INOVELLI or THIRDREALITY provider should be set to enabled (`true`) or disabled (`false`) individually. After the OTA firmware upgrades are finished, you can set these to `false` again if you do not want ZHA to automatically download and perform OTA firmware upgrades in the future. Note that the `otau_directory` setting is optional and can be used for any firmware files you have downloaded yourself, for any device type and manufacturer. For example, Philips Hue firmwares manually downloaded from [here](https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/OTA-Image-Types---Firmware-versions) and/or [here](https://github.com/Koenkk/zigbee-OTA/blob/a02a4cb33f7c46b4d2916805bfcad582124ec975/index.json) added to the `otau_directory` can be flashed, although a manual `zha.issue_zigbee_cluster_command` command currently (as of 2021.3.3) must be issued against the IEEE of the Philips Hue device under Developer Tools->Services, e.g.: @@ -433,11 +434,11 @@ Tip to new users is that, while there is no official list of supported devices, ### ZHA exception and deviation handling -The ZHA implementation in Home Assistant relies on a library called "[ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers)" to resolve issues with Zigbee devices that do not fully conform with the Zigbee standards. The few devices that deviate from the Zigbee specifications set by the [Zigbee Alliance](https://zigbeealliance.org) may therefore require proper bug reports with debug logs from users to assistant the developers in writing custom [ZHA Device Handlers](https://github.com/zigpy/zha-device-handlers/blob/dev/README.md) for all of a device functions to work properly with the ZHA integration. +Home Assistant's ZHA integration already supports most standard device types out-of-the-box as long as they follow the official Zigbee specifications, but for devices that manufacturers have not properly not fully Zigbee compatible, the ZHA integration has implemented a library called "[ZHA Device Handlers (also known as "zha-quirk")](https://github.com/zigpy/zha-device-handlers)" that handle and resolve compliance issues via custom conversion/translation of Zigbee parameters (clusters and attributes) for specific devices which do not conform with the Zigbee standards. + +The few devices that will, for example, not join/pair properly or, while joined/paired, do not present all attributes in the ZHA integration likely deviate from the Zigbee specifications set by the [CSA (Connectivity Standards Alliance)](https://csa-iot.org/all-solutions/zigbee/). These devices may therefore require the creation of a bug report by a device owner, supplying debug logs. The device owner may need to actively assist in troubleshooting by providing the information developers need to create custom ZHA Device Handlers. -Such a custom "ZHA Device Handler" are Python scripts that internally are also referred to as a "quirk" because they fix "quirks", like deviations from the standard specifications. ZHA Device Handles do this by transparently, acting as a translator, translating and converting non-compliant device messages and instead present them to the application as coming from a virtual compliant device. These ZHA Device Handlers for Home Assistant can thus be used to parse custom messages to and from Zigbee devices. The ZHA Device Handlers that are made can then be reused by all users in future versions of Home Assistant. -The custom quirks implementations for zigpy implemented as ZHA Device Handlers for Home Assistant are a similar concept to that of [Hub-connected Device Handlers for the SmartThings Classics platform](https://docs.smartthings.com/en/latest/device-type-developers-guide/) as well as that of [Zigbee-Herdsman Converters (formerly Zigbee-Shepherd Converters) as used by Zigbee2mqtt](https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html), meaning they are each virtual representations of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms. ### Reporting issues diff --git a/source/_integrations/zwave_me.markdown b/source/_integrations/zwave_me.markdown index 7be7c64fd06..27654fbd574 100644 --- a/source/_integrations/zwave_me.markdown +++ b/source/_integrations/zwave_me.markdown @@ -20,6 +20,7 @@ ha_config_flow: true ha_codeowners: - '@lawfulchaos' - '@Z-Wave-Me' + - '@PoltoS' ha_domain: zwave_me ha_platforms: - binary_sensor diff --git a/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown b/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown index c27d93d22a5..d973f3bc039 100644 --- a/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown +++ b/source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown @@ -42,7 +42,7 @@ We want to make it as easy as possible to use Assist. To enable this for Android [Assist on Android Wear documentation.](https://next.home-assistant.io/docs/assist/android/) -_The new tile is currently available in the [Android beta](https://play.google.com/apps/testing/io.homeassistant.companion.android) and will be part of the next Android release._ +_The tile is available in [Home Assistant Companion for Android 2023.1.1](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1)._ @@ -52,7 +52,7 @@ For Apple devices we have been able to create a fully hands-free experience by i [Assist via Siri and Apple Shortcuts documentation.](https://next.home-assistant.io/docs/assist/apple/) -_The Assist shortcut will be available in the Mac and iOS beta channel today and will be part of the next release for iOS and Mac._ +_The Assist shortcut is available in [Home Assistant Companion for iOS 2023.2](https://apps.apple.com/us/app/home-assistant/id1099568401?itsct=apps_box_badge&itscg=30200). Mac version is awaiting approval._ diff --git a/source/_posts/2023-02-01-release-20232.markdown b/source/_posts/2023-02-01-release-20232.markdown new file mode 100644 index 00000000000..1e60a072aaa --- /dev/null +++ b/source/_posts/2023-02-01-release-20232.markdown @@ -0,0 +1,1245 @@ +--- +layout: post +title: "2023.2: How can I Assist?" +description: "Meet: Assist! Our new assistant! Furthermore, an even tighter integration with ESPHome, streaming history graphs, sensor groups, and more than 15 new integrations!" +date: 2023-02-01 00:00:00 +date_formatted: "February 1, 2023" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2023-02/social.png +--- + + + +Home Assistant Core 2023.2! 🎉 + +This release covers the first month of development of 2023, and it is setting +one heck of a high bar for the rest of the year! 😅 + +Undoubtedly, the most spectacular features are related to the +[first chapter of Year of the Voice](/blog/2023/01/26/year-of-the-voice-chapter-1/). 🎙️ +It is hard to sum up all of this in this release blog, so I'm not even going +to try doing it in this introduction, but holy mother of smart homes: this is +exciting stuff! 😮 + +My personal favorite this release: huge steps into an even tighter integration +with our amazing sister project: [ESPHome](https://esphome.io). Creating +and maintaining your own secure DIY IoT devices just became a lot easier. + +And since we are talking about awesomeness, have you noticed the large amount +of logos in the release image above? So many new integrations! 🤩 + +Enjoy the release! + +../Frenck + +_PS: Just a reminder that valentine's day is coming up. Be sure to share the love! ❤️_ + + + +- [Meet: Assist!](#meet-assist) +- [Streaming history](#streaming-history) +- [Grouping sensors](#grouping-sensors) +- [Now even tighter integrated with ESPHome](#now-even-tighter-integrated-with-esphome) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New Integrations](#new-integrations) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [Release 2023.2.1 - February 2](#release-202321---february-2) +- [Release 2023.2.2 - February 4](#release-202322---february-4) +- [Release 2023.2.3 - February 7](#release-202323---february-7) +- [Release 2023.2.4 - February 13](#release-202324---february-13) +- [Release 2023.2.5 - February 15](#release-202325---february-15) +- [Need help? Join the community!](#need-help-join-the-community) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=S3XRVsqRX9k) 1 February 2023, at 12:00 PST / 21:00 CET! + + + +## Meet: Assist! + +It's [Home Assistant's Year of the Voice](/blog/2022/12/20/year-of-voice/), and +it's our goal to let users control Home Assistant in their own language. +Together with the Home Assistant community, we have been hard at work building +the foundation for this. + +Today we like you to meet: + +Screenshot showing the new assist feature being used to turn on lights + +Assist icon Assist +allows you to use natural language to control Home Assistant. It is powered by +[Hassil](https://github.com/home-assistant/hassil) and the sentences +(contributed by 112! people) from the +[Home Assistant Intents](https://home-assistant.github.io/intents/) project. + +We believe technology is meant to be played with, and projects should be +usable as soon as possible. Together with the community, we can then iterate +and refine. That's why today, we're delivering a basic experience supporting +a stunning 22! languages that work with Assist. + +Go ahead, it is enabled by default; just tap the new Assist icon +Assist icon +at the top right of your dashboard to start using it. + +Oh, and we are also releasing some fun stuff we've cooked up along the way! +[Read more about Assist](/docs/assist/) and other released voice features in the +[Chapter 1: Assist](/blog/2023/01/26/year-of-the-voice-chapter-1/) blogpost +and a [video presentation (including live demos) on YouTube](https://www.youtube.com/live/ixgNT3RETPg). + + + +## Streaming history + +History cards now update live! We now stream the state changes while they are +happening and update the graphs in real-time 😲 + +

+Screenshot showing a history card presenting the power usage of a kitchen coffeemaker, updating live while brewing coffee +These history cards now show live power usage, while I'm brewing a cup of coffee. +

+ +But this isn't just limited to history cards, your +{% my history title="history dashboard" %} is now live too! + +As a result of this all, we can now write less frequently to the database in our +recorder. It took years of changes to get us to this point (thanks [@bdraco] 🙏). +It greatly reduces resource usage and increases storage lifetimes significantly. +The previously introduced live logbook and now the live history were the +last pieces that made this possible. + +As a side-effect, it should also resolve the authentication errors some people +experienced re-opening the iOS companion app when using history cards. + +## Grouping sensors + +The [group helper](/integrations/group) now supports sensors too! Sensor groups +can combine entities with a numeric state, like [sensors](/integrations/sensor), +[number](/integrations/number), and [number helpers](/integrations/input_number) +entities. + +Screenshot showing the process of adding a new sensor group + +{% my config_flow_start badge domain="group" %} + +This feature is a revised, improved, and more logical version of the +"Min/Max" integration / "Combine the state of several sensors" helper. +It is likely we are going to replace those with this new sensor group +in the future. + +Compared to those previously mentioned methods, the sensor groups have the +additional options to hide their member entities and the option to ignore +sensors that currently are not in a numeric state (i.e., currently "unavailable" +or "unknown"). + +## Now even tighter integrated with ESPHome + +[ESPHome](https://esphome.io) already works really well with Home Assistant. +Yet, this release makes it even better! + +If you are using the ESPHome add-on, we have some great improvements for you. +The add-on and Home Assistant will now communicate with each other, bringing +in many new features. + +When you set up a new device in ESPHome and next add it to Home Assistant, +they will be able to exchange encryption keys. Removing the need for you to +find, copy & paste those. Just a single click and the setup is done! 🚀 + +But that is not all. What is really mind-blowing, is that the ESPHome +integration will now provide update entities when using the add-on! + +Screenshots, left one showing pending updates for ESPHome devices. Right one: an ESPHome device installing an update straight from Home Assistant + +Right now, the update entities will only indicate if a device needs updating. +However, when the next major release of ESPHome (2023.2) becomes available, +it will support updating them too! Yes, at that point, you can update your +ESPHome devices directly from Home Assistant and even automate it! + +Also, ESPHome is deprecating the old password-based authentication for its +API in favor of the more secure encryption key. If one of your ESPHome devices +is still using a plain password, Home Assistant will notify you by creating +an issue in your {% my repairs title="Repairs dashboard" %}. + +Screenshot showing a raised repair issue for an ESPHome device still using the deprecated API password instead of an API encryption key + +We've also prepared for the next release of ESPHome (2023.2), in which you can +add a friendly, more human name to your ESPHome devices. Home Assistant will +pick those up, making your ESPHome devices look better out-of-the-box! + +## Other noteworthy changes + +There is much more juice in this release; here are some of the other +noteworthy changes this release: + +- You can now add aliases to your areas too! Our new Assist feature + leverages this. +- Got an energy sensor in `Wh`, but you'd like it to be `kWh`? You can now + change the units of energy sensors in the entity settings. +- Each entity in the frontend has its own color, which is based on the current + entity state. We now have [officially added support](/integrations/frontend/#state-color) + for themes to customize these. +- The most awesome integration of all, got even better. [@Lash-L] added support + for the battery state of your [Oral-B] toothbrush! +- The automations & scripts UI now support selecting other entities for + above/below in the numeric state conditions & triggers. Thanks, [@karwosts]! +- The [Reolink] integration now supports FLV streams, cameras can be discovered + on the network, but more importantly: binary sensors! For things + like motion, person, vehicle detection, and... Doorbell presses! + Thanks, [@starkillerOG]! +- There is now a [service] that allows for the creation of calendar events. So, + you can now automate events to be added to your calendars! Amazing, [@allenporter]! +- When selecting multiple entities from a list in the UI, it will now exclude + already added entities. No more accidentally added duplicates! Thanks, [@piitaya]! +- [@Kane610] added PoE power sensors to the [UniFi Network] integrations, nice! +- The [Tile card] now has a vertical option! Great, [@TheZoker]! +- [Jellyfin] now works with TV shows in the media browser. Thanks, [@j-stienstra]! +- We have bumped the CHIP/Matter SDK version used by our [Matter] implementation + to 1.0.0.2, which [contains many fixes]. +- From the Month of "What the heck?": Old-style [groups] can now remove entities + from the group using the `group.set` service. Thanks, [@gjohansson-ST]! +- You might have noticed a [Thread] and an [Open Thread Border Router] integration + being added to this release. These are currently not for active use but for + initial early development. +- The experimental multi-pan feature has been enabled again. Allowing to run + both Zigbee and Thread using the single radio found in both Home Assistant + Yellow and Home Assistant SkyConnect. +- The following integrations now reached a [Platinum] level on the + [integration quality scale]: + - [Renault] excellent job [@epenet]! + - [HomeWizard Energy] awesome work [@DCSBL]! + +[@allenporter]: https://github.com/allenporter +[@DCSBL]: https://github.com/DCSBL +[@epenet]: https://github.com/epenet +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@j-stienstra]: https://github.com/j-stienstra +[@Kane610]: https://github.com/Kane610 +[@karwosts]: https://github.com/karwosts +[@Lash-L]: https://github.com/Lash-L +[@piitaya]: https://github.com/piitaya +[@starkillerOG]: https://github.com/starkillerOG +[@TheZoker]: https://github.com/TheZoker +[groups]: /integrations/group#old-style-groups +[HomeWizard Energy]: /integrations/homewizard +[integration quality scale]: /docs/quality_scale/ +[Jellyfin]: /integrations/jellyfin +[Matter]: /integrations/matter +[Open Thread Border Router]: /integrations/otbr +[Oral-B]: /integrations/oralb +[Platinum]: /docs/quality_scale/#platinum- +[Renault]: /integrations/renault +[Reolink]: /integrations/reolink +[service]: /integrations/calendar/#services +[contains many fixes]: https://github.com/project-chip/connectedhomeip/releases/tag/v1.0.0.2 +[Thread]: /integrations/thread +[Tile card]: /dashboards/tile/ +[UniFi Network]: /integrations/unifi + +## New Integrations + +We welcome the following new integrations in this release: + +- **[EnergyZero]**, added by [@klaasnicolaas]
+ Retrieves dynamic (hourly) energy & gas prices from the Dutch utility company + EnergyZero. + +- **[EufyLife]**, added by [@bdr99]
+ Integrate Eufy smart scales over Bluetooth. + +- **[Everything but the Kitchen Sink]**, added by [@emontnemery]
+ This is a test integration, which provides various odd and obscure entities. + It can be helpful for development purposes, but generally no use otherwise. + +- **[Google Mail]**, added by [@tkdrob]
+ Provides services to manage your Google Mail auto-response and provides + a notification service to send (or draft) emails. + +- **[LD2410 BLE]**, added by [@930913]
+ Integrates a [$4 LD2410 Bluetooth mmWave sensor], which works with our + Bluetooth proxies! + +- **[Mopeka]**, added by [@bdraco]
+ Works with your Mopeka BLE propane tank monitors. + +- **[OpenAI Conversation]**, added by [@balloob]
+ OpenAI integration that uses GPT-3 to showcase replacing the Home Assistant + conversation agent. Note: It cannot control anything in your home. + +- **[Read Your Meter Pro]**, added by [@OnFreund]
+ Pull in your water usage/meter readings from your Read Your Meter Pro account. + +- **[Ruuvi Gateway]**, added by [@akx]
+ Integrates the Ruuvi Gateway that reads your Ruuvi sensors. + +- **[SFR Box]**, added by [@epenet]
+ Offers integration with the SFR broadband routers. + +- **[Starlink]**, added by [@boswelja]
+ Starlink is a satellite internet constellation operated by SpaceX. + Integrate your Starlink dish with Home Assistant. + +- **[Stookwijzer]**, added by [@fwestenberg]
+ Stookwijzer advises wether to burn pallets or wood, or to + use the barbecue. This can prevent health problems for people in the area + (NL only). + +- **[Zeversolar]**, added by [@kvanzuijlen]
+ Get power and energy information from your Zeversolar solar inverter locally. + +This release also has some new virtual integrations. Virtual integrations +are stubs that are handled by other (existing) integrations to help with +findability. These are new: + +- **[ANWB Energie]** provided by [EnergyZero], added by [@klaasnicolaas] +- **[Energie VanOns]** provided by [EnergyZero], added by [@klaasnicolaas] +- **[Mijndomein Energie]** provided by [EnergyZero], added by [@klaasnicolaas] +- **[Fire TV]** provided by [Android TV], added by [@jrieger] + +[@930913]: https://github.com/930913 +[@akx]: https://github.com/akx +[@balloob]: https://github.com/balloob +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@boswelja]: https://github.com/boswelja +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@fwestenberg]: https://github.com/fwestenberg +[@jrieger]: https://github.com/jrieger +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@OnFreund]: https://github.com/OnFreund +[@tkdrob]: https://github.com/tkdrob +[$4 LD2410 Bluetooth mmWave sensor]: https://www.aliexpress.com/item/1005004351593073.html +[Android TV]: /integrations/androidtv +[ANWB Energie]: /integrations/anwb_energie +[Energie VanOns]: /integrations/energie_vanons +[EnergyZero]: /integrations/energyzero +[EufyLife]: /integrations/eufylife_ble +[Everything but the Kitchen Sink]: /integrations/kitchen_sink +[Fire TV]: /integrations/fire_tv +[Google Mail]: /integrations/google_mail +[LD2410 BLE]: /integrations/ld2410_ble +[Mijndomein Energie]: /integrations/mijndomein_energie +[Mopeka]: /integrations/mopeka +[OpenAI Conversation]: /integrations/openai_conversation +[Read Your Meter Pro]: /integrations/rympro +[Ruuvi Gateway]: /integrations/ruuvi_gateway +[SFR Box]: /integrations/sfr_box +[Starlink]: /integrations/starlink +[Stookwijzer]: /integrations/stookwijzer +[Zeversolar]: /integrations/zeversolar + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- **[Rain Bird]**, done by [@allenporter] +- **[IMAP]**, done by [@engrbm87] +- **[D-Link]**, done by [@tkdrob] + +[@allenporter]: https://github.com/allenporter +[@engrbm87]: https://github.com/engrbm87 +[@tkdrob]: https://github.com/tkdrob +[D-Link]: /integrations/dlink +[IMAP]: /integrations/imap +[Rain Bird]: /integrations/rainbird + +## Release 2023.2.1 - February 2 + +- Support ISY994 Z-Wave motorized blinds as cover ([@shbatm] - [#87102]) ([isy994 docs]) +- Bump reolink_aio to 0.3.1 ([@starkillerOG] - [#87118]) ([reolink docs]) +- Bump reolink-aio to 0.3.2 ([@starkillerOG] - [#87121]) ([reolink docs]) +- Fix invalid state class in renault ([@epenet] - [#87135]) ([renault docs]) +- Add missing converters to recorder statistics ([@epenet] - [#87137]) ([recorder docs]) +- Add missing supported features to Z-Wave.Me siren ([@lawfulchaos] - [#87141]) ([zwave_me docs]) +- Reolink unsubscribe webhook when first refresh fails ([@starkillerOG] - [#87147]) ([reolink docs]) +- Fix statistics graphs not loading with data_rate, electric_current, voltage, information, and unitless units ([@bdraco] - [#87202]) ([recorder docs]) +- Add Reauth config flow to honeywell ([@mkmer] - [#86170]) ([honeywell docs]) +- Bump AIOSomecomfort to 0.0.6 ([@mkmer] - [#87203]) ([honeywell docs]) +- Update frontend to 20230202.0 ([@bramkragten] - [#87208]) ([frontend docs]) +- Bump py-synologydsm-api to 2.1.1 ([@mib1185] - [#87211]) ([synology_dsm docs]) +- Fix disabled condition within an automation action ([@karliemeads] - [#87213]) (breaking-change) + +[#86170]: https://github.com/home-assistant/core/pull/86170 +[#87101]: https://github.com/home-assistant/core/pull/87101 +[#87102]: https://github.com/home-assistant/core/pull/87102 +[#87118]: https://github.com/home-assistant/core/pull/87118 +[#87121]: https://github.com/home-assistant/core/pull/87121 +[#87135]: https://github.com/home-assistant/core/pull/87135 +[#87137]: https://github.com/home-assistant/core/pull/87137 +[#87141]: https://github.com/home-assistant/core/pull/87141 +[#87147]: https://github.com/home-assistant/core/pull/87147 +[#87202]: https://github.com/home-assistant/core/pull/87202 +[#87203]: https://github.com/home-assistant/core/pull/87203 +[#87208]: https://github.com/home-assistant/core/pull/87208 +[#87211]: https://github.com/home-assistant/core/pull/87211 +[#87213]: https://github.com/home-assistant/core/pull/87213 +[@bdraco]: https://github.com/bdraco +[@bramkragten]: https://github.com/bramkragten +[@epenet]: https://github.com/epenet +[@frenck]: https://github.com/frenck +[@karliemeads]: https://github.com/karliemeads +[@lawfulchaos]: https://github.com/lawfulchaos +[@mib1185]: https://github.com/mib1185 +[@mkmer]: https://github.com/mkmer +[@shbatm]: https://github.com/shbatm +[@starkillerOG]: https://github.com/starkillerOG +[abode docs]: /integrations/abode/ +[frontend docs]: /integrations/frontend/ +[honeywell docs]: /integrations/honeywell/ +[isy994 docs]: /integrations/isy994/ +[recorder docs]: /integrations/recorder/ +[renault docs]: /integrations/renault/ +[reolink docs]: /integrations/reolink/ +[synology_dsm docs]: /integrations/synology_dsm/ +[zwave_me docs]: /integrations/zwave_me/ + +## Release 2023.2.2 - February 4 + +- Add missing mopeka translations ([@bdraco] - [#87421]) ([mopeka docs]) +- Fix call values in Aussie Broadband ([@Bre77] - [#87229]) ([aussie_broadband docs]) +- Handle failed Sonos subscriptions better ([@jjlawren] - [#87240]) ([sonos docs]) +- Filesize timestamp remove state class ([@gjohansson-ST] - [#87247]) ([filesize docs]) +- Bump reolink-aio to 0.3.4 ([@starkillerOG] - [#87272]) ([reolink docs]) +- Fix volume state class in renault ([@epenet] - [#87280]) ([renault docs]) +- Bump sfrbox-api to 0.0.6 ([@epenet] - [#87281]) ([sfr_box docs]) +- Extend state class sensor warnings with expected values ([@frenck] - [#87294]) ([sensor docs]) +- Fix incorrect description in sensor group config flow ([@frenck] - [#87298]) ([group docs]) +- Don't override icon in sensor group when device class is set ([@frenck] - [#87304]) ([group docs]) +- Fix Bravia TV refreshing zero volume level ([@Drafteed] - [#87318]) ([braviatv docs]) +- Fixed parser for zeversolar hardware version M10 ([@kvanzuijlen] - [#87319]) ([zeversolar docs]) +- Fix code format issue in Yale Smart Alarm ([@gjohansson-ST] - [#87323]) ([yale_smart_alarm docs]) +- Bump py-synologydsm-api to 2.1.2 ([@mib1185] - [#87324]) ([synology_dsm docs]) +- Bump oralb-ble to 0.17.2 ([@Lash-L] - [#87355]) ([oralb docs]) +- Update pylutron-caseta to 0.18.1 ([@mdonoughe] - [#87361]) ([lutron_caseta docs]) +- Fix exception when trying to poll a HomeKit device over Thread with no active encryption context ([@Jc2k] - [#87379]) ([homekit_controller docs]) +- Fix Ruuvi Gateway data being ignored when system is not using UTC time ([@akx] - [#87384]) ([ruuvi_gateway docs]) +- Fix state class in Enphase Envoy ([@vpathuis] - [#87397]) ([enphase_envoy docs]) +- Ignore invalid zeroconf names from devices with broken firmwares ([@bdraco] - [#87414]) ([zeroconf docs]) +- Disable mopeka accelerometer sensors by default ([@bdraco] - [#87420]) ([mopeka docs]) +- Bump aiohomekit to 2.4.6 ([@bdraco] - [#87427]) ([homekit_controller docs]) +- Update black to 23.1.0 ([@frenck] - [#87188]) + +[#87188]: https://github.com/home-assistant/core/pull/87188 +[#87101]: https://github.com/home-assistant/core/pull/87101 +[#87221]: https://github.com/home-assistant/core/pull/87221 +[#87229]: https://github.com/home-assistant/core/pull/87229 +[#87240]: https://github.com/home-assistant/core/pull/87240 +[#87247]: https://github.com/home-assistant/core/pull/87247 +[#87272]: https://github.com/home-assistant/core/pull/87272 +[#87280]: https://github.com/home-assistant/core/pull/87280 +[#87281]: https://github.com/home-assistant/core/pull/87281 +[#87294]: https://github.com/home-assistant/core/pull/87294 +[#87298]: https://github.com/home-assistant/core/pull/87298 +[#87304]: https://github.com/home-assistant/core/pull/87304 +[#87318]: https://github.com/home-assistant/core/pull/87318 +[#87319]: https://github.com/home-assistant/core/pull/87319 +[#87323]: https://github.com/home-assistant/core/pull/87323 +[#87324]: https://github.com/home-assistant/core/pull/87324 +[#87355]: https://github.com/home-assistant/core/pull/87355 +[#87361]: https://github.com/home-assistant/core/pull/87361 +[#87379]: https://github.com/home-assistant/core/pull/87379 +[#87384]: https://github.com/home-assistant/core/pull/87384 +[#87397]: https://github.com/home-assistant/core/pull/87397 +[#87414]: https://github.com/home-assistant/core/pull/87414 +[#87420]: https://github.com/home-assistant/core/pull/87420 +[#87421]: https://github.com/home-assistant/core/pull/87421 +[#87427]: https://github.com/home-assistant/core/pull/87427 +[@Bre77]: https://github.com/Bre77 +[@Drafteed]: https://github.com/Drafteed +[@Jc2k]: https://github.com/Jc2k +[@Lash-L]: https://github.com/Lash-L +[@akx]: https://github.com/akx +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@epenet]: https://github.com/epenet +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@jjlawren]: https://github.com/jjlawren +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@mdonoughe]: https://github.com/mdonoughe +[@mib1185]: https://github.com/mib1185 +[@starkillerOG]: https://github.com/starkillerOG +[@vpathuis]: https://github.com/vpathuis +[abode docs]: /integrations/abode/ +[aussie_broadband docs]: /integrations/aussie_broadband/ +[braviatv docs]: /integrations/braviatv/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[filesize docs]: /integrations/filesize/ +[group docs]: /integrations/group/ +[homekit_controller docs]: /integrations/homekit_controller/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[mopeka docs]: /integrations/mopeka/ +[oralb docs]: /integrations/oralb/ +[renault docs]: /integrations/renault/ +[reolink docs]: /integrations/reolink/ +[ruuvi_gateway docs]: /integrations/ruuvi_gateway/ +[sensor docs]: /integrations/sensor/ +[sfr_box docs]: /integrations/sfr_box/ +[sonos docs]: /integrations/sonos/ +[synology_dsm docs]: /integrations/synology_dsm/ +[yale_smart_alarm docs]: /integrations/yale_smart_alarm/ +[zeroconf docs]: /integrations/zeroconf/ +[zeversolar docs]: /integrations/zeversolar/ + +## Release 2023.2.3 - February 7 + +- Speed up purge time with newer MariaDB versions ([@bdraco] - [#87409]) ([recorder docs]) +- Add missing name field to emulated_hue config ([@gregoryhaynes] - [#87456]) ([emulated_hue docs]) +- Bump lupupy to 0.2.7 ([@majuss] - [#87469]) ([lupusec docs]) +- Bump py-synologydsm-api to 2.1.4 ([@mib1185] - [#87471]) ([synology_dsm docs]) +- Disable uptime sensor by default in Unifi ([@tkdrob] - [#87484]) ([unifi docs]) +- Add the correct loggers to velbus manifest.json ([@Cereal2nd] - [#87488]) ([velbus docs]) +- Fix recorder run history during schema migration and startup ([@bdraco] - [#87492]) ([recorder docs]) +- Bump xiaomi-ble to 0.16.1 ([@Ernst79] - [#87496]) ([xiaomi_ble docs]) +- Bump jaraco.abode to 3.3.0 ([@zim514] - [#87498]) ([abode docs]) +- Bump bimmer_connected to 0.12.1 ([@rikroe] - [#87506]) ([bmw_connected_drive docs]) +- Add LD2410BLE support for new firmware version ([@bencorrado] - [#87507]) ([ld2410_ble docs]) +- Bump env_canada to 0.5.28 ([@michaeldavie] - [#87509]) ([environment_canada docs]) +- Optimize history.get_last_state_changes query ([@bdraco] - [#87554]) ([recorder docs]) +- OpenAI: Ignore devices without a name ([@balloob] - [#87558]) ([openai_conversation docs]) +- Bump oralb-ble to 0.17.4 ([@Lash-L] - [#87570]) ([oralb docs]) +- Fix matter remove config entry device ([@MartinHjelmare] - [#87571]) ([matter docs]) +- Fix indent on slow_range_in_select for MySQL/MariaDB ([@bdraco] - [#87581]) ([recorder docs]) +- Fix LD2410 BLE detection with passive scans ([@bdraco] - [#87584]) ([ld2410_ble docs]) +- Bump inkbird-ble to 0.5.6 ([@bdraco] - [#87590]) ([inkbird docs]) +- Bump sensorpro-ble to 0.5.3 ([@bdraco] - [#87591]) ([sensorpro docs]) +- Bump thermopro-ble to 0.4.5 ([@bdraco] - [#87592]) ([thermopro docs]) +- Bump bluemaestro-ble to 0.2.3 ([@bdraco] - [#87594]) ([bluemaestro docs]) +- Bump sensorpush-ble to 1.5.5 ([@bdraco] - [#87595]) ([sensorpush docs]) +- Improve rainbird device reliability by sending requests serially ([@allenporter] - [#87603]) ([rainbird docs]) +- Do not return cached values for entity states in emulated_hue ([@Tho85] - [#87642]) ([emulated_hue docs]) +- Bump pyrainbird to 2.0.0 ([@allenporter] - [#86851]) ([rainbird docs]) +- Bump PyISY to 3.1.13, check portal for network buttons ([@shbatm] - [#87650]) ([isy994 docs]) + +[#86851]: https://github.com/home-assistant/core/pull/86851 +[#87101]: https://github.com/home-assistant/core/pull/87101 +[#87221]: https://github.com/home-assistant/core/pull/87221 +[#87409]: https://github.com/home-assistant/core/pull/87409 +[#87433]: https://github.com/home-assistant/core/pull/87433 +[#87456]: https://github.com/home-assistant/core/pull/87456 +[#87469]: https://github.com/home-assistant/core/pull/87469 +[#87471]: https://github.com/home-assistant/core/pull/87471 +[#87484]: https://github.com/home-assistant/core/pull/87484 +[#87488]: https://github.com/home-assistant/core/pull/87488 +[#87492]: https://github.com/home-assistant/core/pull/87492 +[#87496]: https://github.com/home-assistant/core/pull/87496 +[#87498]: https://github.com/home-assistant/core/pull/87498 +[#87506]: https://github.com/home-assistant/core/pull/87506 +[#87507]: https://github.com/home-assistant/core/pull/87507 +[#87509]: https://github.com/home-assistant/core/pull/87509 +[#87554]: https://github.com/home-assistant/core/pull/87554 +[#87558]: https://github.com/home-assistant/core/pull/87558 +[#87570]: https://github.com/home-assistant/core/pull/87570 +[#87571]: https://github.com/home-assistant/core/pull/87571 +[#87581]: https://github.com/home-assistant/core/pull/87581 +[#87584]: https://github.com/home-assistant/core/pull/87584 +[#87590]: https://github.com/home-assistant/core/pull/87590 +[#87591]: https://github.com/home-assistant/core/pull/87591 +[#87592]: https://github.com/home-assistant/core/pull/87592 +[#87594]: https://github.com/home-assistant/core/pull/87594 +[#87595]: https://github.com/home-assistant/core/pull/87595 +[#87603]: https://github.com/home-assistant/core/pull/87603 +[#87642]: https://github.com/home-assistant/core/pull/87642 +[#87650]: https://github.com/home-assistant/core/pull/87650 +[@Cereal2nd]: https://github.com/Cereal2nd +[@Ernst79]: https://github.com/Ernst79 +[@Lash-L]: https://github.com/Lash-L +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Tho85]: https://github.com/Tho85 +[@allenporter]: https://github.com/allenporter +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bencorrado]: https://github.com/bencorrado +[@frenck]: https://github.com/frenck +[@gregoryhaynes]: https://github.com/gregoryhaynes +[@majuss]: https://github.com/majuss +[@mib1185]: https://github.com/mib1185 +[@michaeldavie]: https://github.com/michaeldavie +[@rikroe]: https://github.com/rikroe +[@shbatm]: https://github.com/shbatm +[@tkdrob]: https://github.com/tkdrob +[@zim514]: https://github.com/zim514 +[abode docs]: /integrations/abode/ +[bluemaestro docs]: /integrations/bluemaestro/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[emulated_hue docs]: /integrations/emulated_hue/ +[environment_canada docs]: /integrations/environment_canada/ +[inkbird docs]: /integrations/inkbird/ +[isy994 docs]: /integrations/isy994/ +[ld2410_ble docs]: /integrations/ld2410_ble/ +[lupusec docs]: /integrations/lupusec/ +[matter docs]: /integrations/matter/ +[openai_conversation docs]: /integrations/openai_conversation/ +[oralb docs]: /integrations/oralb/ +[rainbird docs]: /integrations/rainbird/ +[recorder docs]: /integrations/recorder/ +[sensorpro docs]: /integrations/sensorpro/ +[sensorpush docs]: /integrations/sensorpush/ +[synology_dsm docs]: /integrations/synology_dsm/ +[thermopro docs]: /integrations/thermopro/ +[unifi docs]: /integrations/unifi/ +[velbus docs]: /integrations/velbus/ +[xiaomi_ble docs]: /integrations/xiaomi_ble/ + +## Release 2023.2.4 - February 13 + +- Netgear ssdp discovery abort if no serial ([@starkillerOG] - [#87532]) ([netgear docs]) +- Reolink unregistered webhook on unexpected error ([@starkillerOG] - [#87538]) ([reolink docs]) +- Correct sensor restore entity in modbus ([@janiversen] - [#87563]) ([modbus docs]) +- Upgrading volvooncall to 0.10.2 ([@Gollam] - [#87572]) ([volvooncall docs]) +- Keep sleepy xiaomi-ble devices that don't broadcast regularly available ([@Ernst79] - [#87654]) ([xiaomi_ble docs]) +- Bump oralb-ble to 0.17.5 ([@Lash-L] - [#87657]) ([oralb docs]) +- Bump cryptography to 39.0.1 for CVE-2023-23931 ([@bdraco] - [#87658]) +- Bump yalexs_ble to 1.12.12 to fix reconnect when services fail to resolve ([@bdraco] - [#87664]) ([august docs]) ([yalexs_ble docs]) +- Fix bad battery sense in ambient_station ([@jpettitt] - [#87668]) ([ambient_station docs]) +- Bump reolink-aio to 0.4.0 ([@starkillerOG] - [#87733]) ([reolink docs]) +- Bump aiolifx to 0.8.9 ([@Djelibeybi] - [#87790]) ([lifx docs]) +- Ensure recorder still shuts down if the final commit fails ([@bdraco] - [#87799]) ([recorder docs]) +- Bump pyipma to 3.0.6 ([@dgomes] - [#87867]) ([ipma docs]) +- Fix unbound variable in Group sensor ([@gjohansson-ST] - [#87878]) ([group docs]) +- Retrigger Bluetooth discovery when calling async_rediscover_address ([@bdraco] - [#87884]) ([bluetooth docs]) +- Fix iaqualink exception handling after switch to httpx ([@flz] - [#87898]) ([iaqualink docs]) +- Bump aioesphomeapi to 13.3.1 ([@bdraco] - [#87969]) ([esphome docs]) + +[#87101]: https://github.com/home-assistant/core/pull/87101 +[#87221]: https://github.com/home-assistant/core/pull/87221 +[#87433]: https://github.com/home-assistant/core/pull/87433 +[#87532]: https://github.com/home-assistant/core/pull/87532 +[#87538]: https://github.com/home-assistant/core/pull/87538 +[#87563]: https://github.com/home-assistant/core/pull/87563 +[#87572]: https://github.com/home-assistant/core/pull/87572 +[#87652]: https://github.com/home-assistant/core/pull/87652 +[#87654]: https://github.com/home-assistant/core/pull/87654 +[#87657]: https://github.com/home-assistant/core/pull/87657 +[#87658]: https://github.com/home-assistant/core/pull/87658 +[#87664]: https://github.com/home-assistant/core/pull/87664 +[#87668]: https://github.com/home-assistant/core/pull/87668 +[#87733]: https://github.com/home-assistant/core/pull/87733 +[#87790]: https://github.com/home-assistant/core/pull/87790 +[#87799]: https://github.com/home-assistant/core/pull/87799 +[#87867]: https://github.com/home-assistant/core/pull/87867 +[#87878]: https://github.com/home-assistant/core/pull/87878 +[#87884]: https://github.com/home-assistant/core/pull/87884 +[#87898]: https://github.com/home-assistant/core/pull/87898 +[#87969]: https://github.com/home-assistant/core/pull/87969 +[@Djelibeybi]: https://github.com/Djelibeybi +[@Ernst79]: https://github.com/Ernst79 +[@Gollam]: https://github.com/Gollam +[@Lash-L]: https://github.com/Lash-L +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@dgomes]: https://github.com/dgomes +[@flz]: https://github.com/flz +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@janiversen]: https://github.com/janiversen +[@jpettitt]: https://github.com/jpettitt +[@starkillerOG]: https://github.com/starkillerOG +[abode docs]: /integrations/abode/ +[ambient_station docs]: /integrations/ambient_station/ +[august docs]: /integrations/august/ +[bluetooth docs]: /integrations/bluetooth/ +[esphome docs]: /integrations/esphome/ +[group docs]: /integrations/group/ +[iaqualink docs]: /integrations/iaqualink/ +[ipma docs]: /integrations/ipma/ +[lifx docs]: /integrations/lifx/ +[modbus docs]: /integrations/modbus/ +[netgear docs]: /integrations/netgear/ +[oralb docs]: /integrations/oralb/ +[recorder docs]: /integrations/recorder/ +[reolink docs]: /integrations/reolink/ +[volvooncall docs]: /integrations/volvooncall/ +[xiaomi_ble docs]: /integrations/xiaomi_ble/ +[yalexs_ble docs]: /integrations/yalexs_ble/ + +## Release 2023.2.5 - February 15 + +- Update tibber lib 0.26.13 ([@Danielhiversen] - [#88018]) ([tibber docs]) +- Bump `pyopenuv` to 2023.02.0 ([@bachya] - [#88039]) ([openuv docs]) +- Honeywell disable detergent level by default ([@mkmer] - [#88040]) ([whirlpool docs]) +- Bump AIOAladdinConnect 0.1.56 ([@mkmer] - [#88041]) ([aladdin_connect docs]) +- Handle device reg fields not being valid data in openai conversion ([@balloob] - [#88047]) ([openai_conversation docs]) +- Bump pyoctoprintapi to 0.1.11 ([@rfleming71] - [#88052]) ([octoprint docs]) +- Fixed float number validation in sensor component ([@gertjanstulp] - [#88074]) ([sensor docs]) +- Statistics component fix device_class for incremental source sensors ([@ThomDietrich] - [#88096]) ([statistics docs]) +- Update orjson to resolve segmentation fault during JSON serialisation ([@mgjbroadbent] - [#88119]) +- Blebox fix thermobox reporting wrong state ([@riokuu] - [#88169]) ([blebox docs]) +- Bump reolink-aio to 0.4.2 ([@starkillerOG] - [#88175]) ([reolink docs]) +- Bump python-matter-server to 2.1.0 ([@marcelveldt] - [#88192]) ([matter docs]) + +[#88192]: https://github.com/home-assistant/core/pull/88192 +[@marcelveldt]: https://github.com/marcelveldt +[matter docs]: /integrations/matter/ +[#87101]: https://github.com/home-assistant/core/pull/87101 +[#87221]: https://github.com/home-assistant/core/pull/87221 +[#87433]: https://github.com/home-assistant/core/pull/87433 +[#87652]: https://github.com/home-assistant/core/pull/87652 +[#88007]: https://github.com/home-assistant/core/pull/88007 +[#88018]: https://github.com/home-assistant/core/pull/88018 +[#88039]: https://github.com/home-assistant/core/pull/88039 +[#88040]: https://github.com/home-assistant/core/pull/88040 +[#88041]: https://github.com/home-assistant/core/pull/88041 +[#88047]: https://github.com/home-assistant/core/pull/88047 +[#88052]: https://github.com/home-assistant/core/pull/88052 +[#88074]: https://github.com/home-assistant/core/pull/88074 +[#88096]: https://github.com/home-assistant/core/pull/88096 +[#88119]: https://github.com/home-assistant/core/pull/88119 +[#88169]: https://github.com/home-assistant/core/pull/88169 +[#88175]: https://github.com/home-assistant/core/pull/88175 +[@Danielhiversen]: https://github.com/Danielhiversen +[@ThomDietrich]: https://github.com/ThomDietrich +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@frenck]: https://github.com/frenck +[@gertjanstulp]: https://github.com/gertjanstulp +[@mgjbroadbent]: https://github.com/mgjbroadbent +[@mkmer]: https://github.com/mkmer +[@rfleming71]: https://github.com/rfleming71 +[@riokuu]: https://github.com/riokuu +[@starkillerOG]: https://github.com/starkillerOG +[abode docs]: /integrations/abode/ +[aladdin_connect docs]: /integrations/aladdin_connect/ +[blebox docs]: /integrations/blebox/ +[octoprint docs]: /integrations/octoprint/ +[openai_conversation docs]: /integrations/openai_conversation/ +[openuv docs]: /integrations/openuv/ +[reolink docs]: /integrations/reolink/ +[sensor docs]: /integrations/sensor/ +[statistics docs]: /integrations/statistics/ +[tibber docs]: /integrations/tibber/ +[whirlpool docs]: /integrations/whirlpool/ + +## Need help? Join the community! + +Home Assistant has a great community of users who are all more than willing +to help each other out. So, join us! + +Our very active [Discord chat server](/join-chat) is an excellent place to be +at, and don't forget to join our amazing [forums](https://community.home-assistant.io/). + +Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues), +to get it fixed! Or, check [our help page](/help) for guidance for more +places you can go. + +Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter) +to get the latest news about features, things happening in our community and +other news about building an Open Home; straight into your inbox. + +## Breaking Changes + +{% details "Python 3.9 support has been removed" %} + +Python 3.9 support has previously been deprecated and has now been removed. +Home Assistant now requires Python 3.10 to run. + +If you are using Home Assistant OS, Home Assistant Container, or Home Assistant +Supervised installation method, you don’t have to do anything. In those cases, +we handle this all for you. + +Your system has been using Python 3.10 for quite some time already. + +([@frenck] - [#85456]) + +[@frenck]: https://github.com/frenck +[#85456]: https://github.com/home-assistant/core/pull/85456 + +{% enddetails %} + +{% details "MariaDB" %} + +If you are using MariaDB with Home Assistant recorder, please make sure +you run `10.5.17` , `10.6.9`, `10.7.5`, `10.8.4` (depending on which major +release you are using). If you are using the MariaDB core add-on, +make sure to update it to the latest version: `2.5.2`. + +Older versions of MariaDB suffer from a significant performance regression +when retrieving history data or purging the database. + +([@bdraco] - [#87040]) + +[@bdraco]: https://github.com/bdraco +[#87040]: https://github.com/home-assistant/core/pull/87040 + +{% enddetails %} + +{% details "Automations & Scripts" %} + +A disabled condition, for example, in an automation or script, will no longer +always be a pass/`True` within an `OR` condition. Instead, in those +cases, the condition will now have no effect when disabled. + +([@karliemeads] - [#79718]) ([documentation](/integrations/automations)) + +[@karliemeads]: https://github.com/karliemeads +[#79718]: https://github.com/home-assistant/core/pull/79718 + +{% enddetails %} + +{% details "AccuWeather" %} + +For the precipitation entity, the unit was changed from `mm` to `mm/h` +(`in` to `in/h`), resulting in the need to fix the unit for long-term +statistics. You can do that in `Developer Tools` -> `Stats`. + +([@bieniu] - [#86088]) ([documentation](/integrations/accuweather)) + +[@bieniu]: https://github.com/bieniu +[#86088]: https://github.com/home-assistant/core/pull/86088 + +{% enddetails %} + +{% details "Airly" %} + +If the language in the Home Assistant settings is set to Polish, the language +of the `advice` and `description` attributes of the CAQI entity will change +from English to Polish. + +If you are using these in your automations or scripts, you might need to adjust +them to match this change. + +([@bieniu] - [#85655]) ([documentation](/integrations/airly)) + +[@bieniu]: https://github.com/bieniu +[#85655]: https://github.com/home-assistant/core/pull/85655 + +{% enddetails %} + +{% details "Fitbit" %} + +The state values of the Fitbit sensor entities will change to remove any +thousands delimiters. For example, `1,500` will become `1500`. + +If you're using the state of these entities in automations or scripts, +you need to update them to handle the new state format. + +([@sw-carlos-cristobal] - [#85251]) ([documentation](/integrations/fitbit)) + +[@sw-carlos-cristobal]: https://github.com/sw-carlos-cristobal +[#85251]: https://github.com/home-assistant/core/pull/85251 + +{% enddetails %} + +{% details "Flume" %} + +The scan/update interval for water values has been restored to match the Flume +app. + +To stay under Flume's API limits, the device connection is now checked hourly, +and notifications are checked every 5 minutes. + +([@bdraco] - [#86354]) ([documentation](/integrations/flume)) + +[@bdraco]: https://github.com/bdraco +[#86354]: https://github.com/home-assistant/core/pull/86354 + +{% enddetails %} + +{% details "History" %} + +The `use_include_order` YAML configuration option has been removed. + +This option was used to sort the history on the original history panel which, +is no longer used. As it no longer has a function and only serves to +slow down the response, it has been removed. + +([@bdraco] - [#86365]) ([documentation](/integrations/history)) + +[@bdraco]: https://github.com/bdraco +[#86365]: https://github.com/home-assistant/core/pull/86365 + +{% enddetails %} + +{% details "IoTaWatt" %} + +The IoTAWatt integration no longer provides sensors with the "Accumulated" +suffix. The accumulated sensors have been introduced to support net energy +export/import metering. + +Newer versions of IoTaWatt provide "Integrators", which allow achieving the +same more efficiently and with higher accuracy. + +You should configure [Integrators](https://docs.iotawatt.com/en/master/integrators.html) +to calculate the net energy export and import. + +([@agners] - [#86611]) ([documentation](/integrations/iotawatt)) + +[@agners]: https://github.com/agners +[#86611]: https://github.com/home-assistant/core/pull/86611 + +{% enddetails %} + +{% details "Matter" %} + +The Matter integration now requires running Matter Server version `2.0.0`. + +If you're using the Matter Server add-on to run the Matter Server, +you will need version `3.0.0` of the add-on. + +We had to change our vendor ID in the add-on; as a result, all devices +need to be recommissioned. + +([@MartinHjelmare] - [#86470]) ([documentation](/integrations/matter)) + +[@MartinHjelmare]: https://github.com/MartinHjelmare +[#86470]: https://github.com/home-assistant/core/pull/86470 + +{% enddetails %} + +{% details "Nettigo Air Monitor" %} + +The states of air quality sensors have been standardized to match Home Assistant +core rules. This affects two states of the sensors that NAM can provide: + +- `very low`, which now became `very_low` +- `very high`, which now became `very_high` + +If you used those states directly in your automations, scripts, or templates; +you would need to adjust those to match these changes. + +([@frenck] - [#85245]) ([documentation](/integrations/nam)) + +[@frenck]: https://github.com/frenck +[#85245]: https://github.com/home-assistant/core/pull/85245 + +{% enddetails %} + +{% details "Pentair ScreenLogic" %} + +The Pentair ScreenLogic integration now correctly categorizes all known lights. +Removing any lights that were previously incorrectly created as switch entities +may be necessary. + +([@dieselrabbit] - [#86608]) ([documentation](/integrations/screenlogic)) + +[@dieselrabbit]: https://github.com/dieselrabbit +[#86608]: https://github.com/home-assistant/core/pull/86608 + +{% enddetails %} + +{% details "Pi-hole" %} + +The previously deprecated YAML configuration of the Pi-hole +integration has been removed. + +Pi-hole is now configured via the UI. Any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@mib1185] - [#84803]) ([documentation](/integrations/pi_hole)) + +[@mib1185]: https://github.com/mib1185 +[#84803]: https://github.com/home-assistant/core/pull/84803 + +--- + +The extra state attribute "Domains blocked" has been removed from all sensors. +It is already exposed as its own dedicated sensor. + +If you used the state attribute in your automations or scripts, you would +need to adjust them to use the dedicated sensor instead. + +([@mib1185] - [#85424]) ([documentation](/integrations/pi_hole)) + +[@mib1185]: https://github.com/mib1185 +[#85424]: https://github.com/home-assistant/core/pull/85424 + +{% enddetails %} + +{% details "Rain Bird" %} + +Rainbird is now configured via the UI, and configuration from YAML has been +imported automatically. + +However, there are a few notable changes: + +- Custom per zone overrides for irrigation time are no longer supported. +- The Rain delay `binary_sensor` that duplicates the Rain delay time `sensor` + has been removed. You should move all uses to the `sensor` value and check + for a non-zero value to get equivalent behavior. +- The Rain `sensor` that duplicates the Rain `binary_sensor` has been removed. + You may check the `binary_sensor` state to get equivalent behavior. + +Also, the way the "Rain Delay" is managed has changed. The Rain Delay, which +pauses irrigation for a specified number of days, is now managed with a `number` +entity which can be controlled directly from the UI. + +The existing service call `rainbird.set_rain_delay` and the Raindelay sensor +have been deprecated. Any existing automations or scripts that make service +calls to `rainbird.set_rain_delay` will need to be replaced with a call +to `number.set_value`. Additionally, the existing service call was updated to +require an integration entry configuration since it previously had undefined +behavior, so it is recommended to move directly to the new number service call. + +([@allenporter] - [#85271] [#86208]) ([documentation](/integrations/rainbird)) + +[@allenporter]: https://github.com/allenporter +[#85271]: https://github.com/home-assistant/core/pull/85271 +[#86208]: https://github.com/home-assistant/core/pull/86208 + +{% enddetails %} + +{% details "Recorder" %} + +The recorder's default commit interval has been increased to 5 seconds to +reduce disk I/O and increase storage longevity. + +As the history and logbook integrations both support live streaming, which +avoids the need to read the database after the initial sync, there is no +remaining core functionality that needs a lower commit interval. + +The [`commit_interval`](/integrations/recorder/#commit_interval) can be adjusted +to a lower value in the event an integration has not been updated to watch for +events instead of reading the database and needs to read the database sooner. + +([@bdraco] - [#86115]) ([documentation](/integrations/recorder)) + +[@bdraco]: https://github.com/bdraco +[#86115]: https://github.com/home-assistant/core/pull/86115 + +{% enddetails %} + +{% details "Renault" %} + +The previously deprecated `renault.charge_start` service has been removed. +Please use the dedicated start charge button entity to start the charge instead. + +([@epenet] - [#86070]) ([documentation](/integrations/renault)) + +[@epenet]: https://github.com/epenet +[#86070]: https://github.com/home-assistant/core/pull/86070 + +{% enddetails %} + +{% details "Sony Bravia TV" %} + +Sony Bravia TV media players no longer have fake (assumed) `playing` or `paused` +states, and those are replaced with the `on` state. + +If you have automations or scripts that use the `playing` or `paused` state, +please update them to be compatible with this change. + +([@Drafteed] - [#84885]) ([documentation](/integrations/braviatv)) + +[@Drafteed]: https://github.com/Drafteed +[#84885]: https://github.com/home-assistant/core/pull/84885 + +--- + +The `source_list` no longer contains a list of applications and TV channels. +Apps and channels have been separated from the input list and moved +to the Media Browser. + +If you have automations or scripts that use `media_player.select_source` to +switch apps or channels on the Bravia TV, the automations need to be +updated to use `media_player.play_media` service instead. + +The options flow has been removed from the integration, as the only +configurable setting `ignored_sources` was no longer relevant +and incompatible with this change. + +([@Drafteed] - [#85288]) ([documentation](/integrations/braviatv)) + +[@Drafteed]: https://github.com/Drafteed +[#85288]: https://github.com/home-assistant/core/pull/85288 + +{% enddetails %} + +{% details "Spain electricity hourly pricing (PVPC)" %} + +The previously deprecated YAML configuration of the Spain electricity hourly +pricing (PVPC) integration has been removed. + +Spain electricity hourly pricing (PVPC) is now configured via the UI. Any +existing YAML configuration has been imported in previous releases and can now +be safely removed from your YAML configuration files. + +([@azogue] - [#85614]) ([documentation](/integrations/pvpc_hourly_pricing)) + +[@azogue]: https://github.com/azogue +[#85614]: https://github.com/home-assistant/core/pull/85614 + +{% enddetails %} + +{% details "Tado" %} + +The swing modes of Tado have changed. This is to standardize with other +integrations, and so it can support translations. + +- `ON` became the lowercase `on` +- `OFF` became the lowercase `off` + +If you used these swing modes in your automations or scripts, you might +need to adjust those to this change. + +([@emontnemery] - [#84278]) ([documentation](/integrations/tado)) + +[@emontnemery]: https://github.com/emontnemery +[#84278]: https://github.com/home-assistant/core/pull/84278 + +{% enddetails %} + +{% details "Twinkly" %} + +All extra state attributes from Twinkly light entities have been removed. + +They mostly added information about the device, +not the actual light state itself. + +([@frenck] - [#84986]) ([documentation](/integrations/twinkly)) + +[@frenck]: https://github.com/frenck +[#84986]: https://github.com/home-assistant/core/pull/84986 + +{% enddetails %} + +{% details "Universal Devices ISY/IoX" %} + +ISY/IoX Variables have been moved from `sensor` entities to `number` entities; +the existing `sensor` entities are deprecated and will be removed in a future +release. + +The `isy994.set_variable` service has been deprecated in favor of using +the `number` entities to directly set the variable values. + +Please update any dashboards, scripts, and automations that may be using these +entities or service. + +([@shbatm] - [#85511]) ([documentation](/integrations/isy994)) + +[@shbatm]: https://github.com/frenshbatmck +[#85511]: https://github.com/home-assistant/core/pull/85511 + +--- + +Entities for INSTEON Aux Properties and Device Communication Errors have been +removed for nodes that are not the main (load) node. + +On Level and Ramp Rate sensors have been removed for non-dimmable (non-`light.`) +devices. Only load devices receive communication error updates and only +dimmable devices support `OL` and `RR` commands. + +The other entities were previously added but did not receive valid states from +the ISY or end-devices. These sensors were disabled by default. + +([@shbatm] - [#85744]) ([documentation](/integrations/isy994)) + +[@shbatm]: https://github.com/shbatm +[#85744]: https://github.com/home-assistant/core/pull/85744 + +{% enddetails %} + +{% details "Uptime" %} + +The previously deprecated YAML configuration of the Uptime +integration has been removed. + +Uptime is now configured via the UI. Any existing YAML configuration has been +imported in previous releases and can now be safely removed from your YAML +configuration files. + +([@frenck] - [#86292]) ([documentation](/integrations/uptime)) + +[@frenck]: https://github.com/frenck +[#86292]: https://github.com/home-assistant/core/pull/86292 + +{% enddetails %} + +{% details "Yamaha Network Receivers" %} + +When there is a connection error with the receiver, the device will now +go into an unavailable state until the connection has been restored. + +([@sredna] - [#85018]) ([documentation](/integrations/yamaha)) + +[@sredna]: https://github.com/sredna +[#85018]: https://github.com/home-assistant/core/pull/85018 + +{% enddetails %} + +{% details "Yamaha MusicCast" %} + +The raw state/option values of the Yamaha MusicCast zone sleep `select` entities +have been standardized to match Home Assistant core rules. + +The following states/options have been changed + +- `120 min`, which now became `120_min` +- `90 min`, which now became `90_min` +- `60 min`, which now became `60_min` +- `30 min`, which now became `30_min` + +If you used those states/options directly in your automations, scripts, +or templates; you will need to adjust those to match these changes. + +([@frenck] - [#85292]) ([documentation](/integrations/yamaha_musiccast)) + +[@frenck]: https://github.com/frenck +[#85292]: https://github.com/home-assistant/core/pull/85292 + +{% enddetails %} + +{% details "Zentralanstalt für Meteorologie und Geodynamik (ZAMG)" %} + +The previously deprecated YAML configuration of the Zentralanstalt für +Meteorologie und Geodynamik (ZAMG) integration has been removed. + +Zentralanstalt für Meteorologie und Geodynamik (ZAMG) is now configured via the +UI. Any existing YAML configuration has been imported in previous releases and +can now be safely removed from your YAML configuration files. + +([@killer0071234] - [#86113]) ([documentation](/integrations/zamg)) + +[@killer0071234]: https://github.com/killer0071234 +[#86113]: https://github.com/home-assistant/core/pull/86113 + +{% enddetails %} + +{% details "Zigbee Home Automation" %} + +The `AnalogInput` sensor entities for certain Xiaomi plugs have been removed +from ZHA. + +Properly working "Active power" and "Summation delivered" sensors are available +to replace the older entities. These newer sensor entities can also be used in +Home Assistant Energy dashboard. + +([@TheJulianJES] - [#86261]) ([documentation](/integrations/zha)) + +[@TheJulianJES]: https://github.com/TheJulianJES +[#86261]: https://github.com/home-assistant/core/pull/86261 + +{% enddetails %} + +If you are a custom integration developer and want to learn about breaking +changes and new features available for your integration: Be sure to follow our +[developer blog][devblog]. The following are the most notable for this release: + +[devblog]: https://developers.home-assistant.io/blog/ + +- [Bluetooth updates for 2023.2 and later](https://developers.home-assistant.io/blog/2023/01/12/bluetooth-adapters) +- [Cover intents deprecated](https://developers.home-assistant.io/blog/2023/01/20/cover-intent-deprecated) +- [Database schema v32 updates](https://developers.home-assistant.io/blog/2023/01/02/db-schema-v32) +- [Future proofing the Conversation integration](https://developers.home-assistant.io/blog/2023/01/24/conversation-updates) +- [Sensor entity can now do rounding of numerical values](https://developers.home-assistant.io/blog/2023/01/25/sensor_rounding) + +## Farewell to the following + +The following integrations are also no longer available as of this release: + +- **Almond** has been removed. It is in a non-working state, and the services + have been shut down. +- **OpenALPR Local** was previously deprecated and has now been removed. It + doesn't work correctly and has no usage, according to our public analytics. + +## All changes + +Of course, there is a lot more in this release. You can find a list of +all changes made here: [Full changelog for Home Assistant Core 2023.2](/changelogs/core-2023.2) diff --git a/source/_posts/2023-02-08-state-of-matter-and-thread.markdown b/source/_posts/2023-02-08-state-of-matter-and-thread.markdown new file mode 100644 index 00000000000..d7180d22762 --- /dev/null +++ b/source/_posts/2023-02-08-state-of-matter-and-thread.markdown @@ -0,0 +1,137 @@ +--- +layout: post +title: "Matter & Thread: where we’re at" +description: "Update on the current state of Matter & Thread, and what we’re planning next" +date: 2023-02-08 00:00:00 +date_formatted: "February 8, 2023" +author: Paulus Schoutsen +comments: true +categories: Technology +--- + +A lot is happening in Home Assistant around Matter and Thread. It can be hard to keep track of it all, so we wanted to take a moment to write an update on the current state, and what we’re planning next. + +Summary: + +- Matter works, including Thread devices via Thread border routers from Apple and Google. +- The Thread border router in Home Assistant is operational but not integrated until the next release, Home Assistant 2023.3. +- We’ve expanded the documentation for Matter and Thread to cover most asked questions and include videos on how to add Matter devices to Home Assistant. +- Users using a [Home Assistant Yellow][yellow] hub can enable an experimental Thread border router. +- Users on other systems can get a Thread Border Router using a [Home Assistant SkyConnect][skyconnect]. +- Announcing [SL Web Tools][sl-web-tools]. It allows users to use their browser to update Zigbee/Thread sticks based on SiLabs chips, like the Home Assistant SkyConnect. +- We’re open sourcing our [automated build scripts][sl-builder] to create reproducible firmware builds for Zigbee/Thread sticks based on SiLabs chips. + + + +## Matter + +[Matter][matter] is a new smart home standard which works locally. Its first release was at the end of last year, and is in the process of being adopted throughout the industry. We’ve been working hard on making it work with Home Assistant. + +Today Home Assistant can control the basic operation of most Matter devices. You can add both Wi-Fi and Thread based devices, and the most common device types work. Matter bridges do not work yet – this will be added in Home Assistant 2023.3. + + + +The Matter implementation in Home Assistant is built on-top of the open source Matter SDK developed by members of the Connectivity Standards Alliance (CSA). This is the same SDK that powers Matter for Google and Apple products. As a member of this alliance, we are collaborating to further improve this Matter SDK making it a solid base for our Matter support. + +Together with this blog post, we’ve released a big update to [our Matter documentation][matter]. We have added instructions with accompanying videos on how to pair Matter devices with Home Assistant and how to share Matter devices from Apple Home/Google Home to Home Assistant. + + + +## Thread + +[Thread][thread] is a low-power mesh networking standard which allows users to connect their devices within a home network. It uses the same RF technology as Zigbee but provides IP connectivity similar to Wi-Fi. Matter supports Thread as a connectivity option for low-power and battery-operated devices. + +Together with this blog post, we’ve released an update to [our Thread documentation][thread]. We explain the different parts that make up a Thread network and how you can create one at home. + +

+Screenshot of a Google prompt if Home Assistant can access network credentials. +Google Android asks if you want to share their Google Thread credentials with Home Assistant. +

+ +As users acquire more products with Thread in their home, they might end up with multiple Thread networks. Since a Thread device can only communicate with a single Thread network, it is important to be able to unify your Thread networks. + +The goal of the upcoming Home Assistant Thread panel is to allow you to manage your Thread networks and help you to merge them into a single one. This is done in collaboration with the Home Assistant Companion apps, allowing us to synchronize Thread networks between Apple/Google and Home Assistant. + +We’ve created a mockup of this panel that you can [try out here][thread-mockup]. + +

+Screenshot of a Thread panel mockup. +Screenshot of the mockup for the Thread panel. Open mockup +

+ +## Hardware to use Thread & Matter + +Both Matter and Thread are technologies that are entering mainstream markets. There are a lot of moving parts in both technologies. We’ve been relying heavily on the work done by Google, Apple, and other members of the CSA to make these technologies accessible to Home Assistant users (thanks!). + +Google and Apple updated their products to support Matter and Thread. However, it is important that we can operate independently. Home Assistant Yellow and Home Assistant SkyConnect include radio chips that are capable of running Zigbee and Thread at the same time. We are working on making this multiprotocol support available to all Home Assistant users. + +### Home Assistant Yellow + +[Home Assistant Yellow][yellow] is our take on a perfect home automation hub. It’s powered by a Raspberry Pi Compute Module 4 (CM4), which you can upgrade if you want more memory. And if you run out of storage, it has space to plug in a hard drive. [And it’s open hardware.][yellow-docs] + +

+Overview of Home Assistant Yellow features. +

+ + +For radio connectivity, it includes a module by Silicon Labs, which is set up out of the box, to provide Zigbee. With the latest Home Assistant 2023.2 release, it is possible to turn your Home Assistant Yellow into a Thread border router. This can be done by enabling our experimental multiprotocol support in {% my hardware title="Settings -> Hardware" %} and by clicking Configure. + +Currently, it is not possible to disable multiprotocol support once enabled. We will be offering a way to disable multiprotocol support soon, allowing users to rollback if they run into issues. + +The Home Assistant Yellow was originally crowd funded in October 2021. We’ve been busy with production and last month have fulfilled all original backers and most of the pre-orders. + +That’s why today, we’re happy to announce that RaspberryPi.dk will be our first distributor, outside of Crowd Supply, to start selling the Home Assistant Yellow. They have already been produced and are currently on a boat on their way to them. All variants can be [pre-ordered on their website][rpidk]. + +More distributors will follow as soon as the chip shortage allows! + +### Home Assistant SkyConnect + +Home Assistant is about choice. You’re not limited to running it on official hardware, you can bring your own. In fact, Raspberry Pi devices are by far the most popular platform to run Home Assistant on, but there is a catch: they lack any smart home radio connectivity. + +We created the [Home Assistant SkyConnect][skyconnect] to provide the missing smart home connectivity. It contains a chip from the same family as the Home Assistant Yellow. It is set out of the box to provide Zigbee. With the latest Home Assistant 2023.2 and when using Home Assistant OS, it is possible to turn your Home Assistant SkyConnect into a Thread border router. This can be done by enabling our experimental multiprotocol support in {% my hardware title="Settings -> Hardware" %} and by clicking Configure. + +

+Picture of a Home Assistant SkyConnect. +

+ +Home Assistant SkyConnect was introduced at the end of 2022 via our distributor network (hit “buy” on [our website][skyconnect]). Many distributors sold out right away but most should be receiving new stock soon. + +Together with today’s blog post, we’ve pushed a big update to [the SkyConnect documentation website][skyconnect-docs], including tutorials on how to migrate from a different Zigbee stick. + +## SiLabs multi-flasher & SL Web Tools + +It’s our mission to build the Open Home: a smart home that offers privacy, choice, and durability. Part of our efforts is to build tooling that helps other creators to make projects and products to help further the Open Home cause. + +As part of this effort, two years ago, we built ESP Web Tools. It revolutionized the DIY firmware world by allowing any ESP32/ESP8266 project to offer an easy web installer on their homepage, allowing users to get started directly from their browser. It has been adopted by all the great projects, including [Tasmota], [WLED], and [ESPresense]. Ever since the introduction of ESP Web Tools, we have wanted to expand this to more devices. + +Today we’re announcing [SL Web Tools][sl-web-tools]. It allows users to manage the firmware on Zigbee/Thread sticks using SiLabs chips directly from their browser, no terminals or compilation necessary. This allows any creator to offer easy firmware updates to their users and make experimental updates available to test bug fixes quickly. + +To see it in action, SL Web Tools has been added to [the Home Assistant SkyConnect documentation][skyconnect-docs]. + +SL Web Tools is powered by our new open source Python package [`silabs-universal-flasher`][sl-flasher]. We run this in the browser using [Pyodide]. + + + +## Building firmware for Silicon Labs chips + +It can be a pain to compile firmware for SiLabs chips. It’s hard to track different versions, your patch sets, and different chips. We’re fans of automation, so we have created an automated build system to create reproducible firmware builds for the Home Assistant Yellow and Home Assistant SkyConnect. + +We’re open sourcing this to make it easier for other creators to provide their users with up-to-date firmware. In combination with SL Web Tools, we offer a complete package that empowers other creators to provide their users with the latest firmware updates. + +[Find the repository on GitHub.][sl-builder] + +[matter]: /integrations/matter +[rpidk]: https://raspberrypi.dk/en/?s=home+assistant+yellow&post_type=product +[skyconnect-docs]: https://skyconnect.home-assistant.io +[skyconnect]: /skyconnect +[sl-builder]: https://github.com/NabuCasa/silabs-firmware-builder +[sl-flasher]: https://github.com/NabuCasa/universal-silabs-flasher +[sl-web-tools]: https://github.com/NabuCasa/sl-web-tools +[thread-mockup]: https://www.figma.com/proto/DDz0MNwzzxjJdeEHCamQi1/Thread?node-id=68:2863&scaling=scale-down&page-id=68:2862&starting-point-node-id=68:2863 +[thread]: /integrations/thread +[yellow-docs]: https://yellow.home-assistant.io/documentation/ +[yellow]: /yellow +[Pyodide]: https://pyodide.org/en/stable/ +[Tasmota]: https://tasmota.github.io/install/ +[WLED]: https://install.wled.me/ +[ESPresense]: https://espresense.com/firmware diff --git a/source/changelogs/core-2023.2.markdown b/source/changelogs/core-2023.2.markdown new file mode 100644 index 00000000000..985cc9dd0b2 --- /dev/null +++ b/source/changelogs/core-2023.2.markdown @@ -0,0 +1,2141 @@ +--- +title: Full Changelog for Home Assistant Core 2023.2 +description: Detailed changelog for the Home Assistant Core 2023.2 release +--- + +These are all the changes included in the Home Assistant Core 2023.2 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2023/02/01/release-20232/). + +## Full Changelog + +- Reduce number of asyncio tasks created by bond ([@bdraco] - [#84668]) +- Bump version to 2023.2.0dev0 ([@frenck] - [#84707]) +- Use built in polling for litterrobot update entity ([@natekspencer] - [#84678]) +- Remove additional `airvisual_pro` references in `airvisual` ([@bachya] - [#84724]) +- Avoid logging increase during tests ([@elupus] - [#84672]) +- Rework UniFi device tracker to utilizing entity description ([@Kane610] - [#81979]) +- Improve `syncthru` generic typing ([@cdce8p] - [#84648]) +- Avoid running final writes in executor in test ([@elupus] - [#84679]) +- Improve DataUpdateCoordinator typing in integrations (5) ([@cdce8p] - [#84740]) +- Improve `youless` generic typing ([@cdce8p] - [#84739]) +- Set Yamaha unique_id ([@sredna] - [#84730]) +- Improve DataUpdateCoordinator typing in integrations (6) ([@cdce8p] - [#84741]) +- Remove myself as a code owner ([@tinloaf] - [#84701]) +- Improve `freedompro` generic typing ([@cdce8p] - [#84736]) +- Improve `ondilo_ico` generic typing ([@cdce8p] - [#84738]) +- Improve `iqvia` typing ([@cdce8p] - [#84734]) +- Improve `brunt` generic typing ([@cdce8p] - [#84735]) +- Improve `upnp` typing ([@cdce8p] - [#84652]) +- Improve `here_travel_time` generic typing ([@cdce8p] - [#84631]) +- Update coverage to 7.0.1 ([@frenck] - [#84764]) +- Improve `oncue` generic typing ([@cdce8p] - [#84761]) +- Improve `modbus` generic typing ([@cdce8p] - [#84737]) +- Update holidays to 0.18.0 ([@frenck] - [#84770]) +- Update pre-commit to 2.21.0 ([@frenck] - [#84768]) +- Fix MQTT test logging level after default pytest logging capture change ([@jbouwh] - [#84773]) +- Update attrs to 22.2.0 ([@frenck] - [#84772]) +- Improve `opengarage` generic typing ([@cdce8p] - [#84640]) +- Improve code quality Time of Day ([@gjohansson-ST] - [#79412]) +- Add distance sensor device class to Mazda integration ([@bdr99] - [#84659]) +- Do not depend MQTT CI tests on debug logs ([@jbouwh] - [#84783]) +- Fix code quality issues for HomeWizard ([@DCSBL] - [#84134]) +- Add PoE power sensor to UniFi integration ([@Kane610] - [#84314]) +- Add mysensors text platform ([@MartinHjelmare] - [#84667]) +- Add support for US in the Whirlpool integration ([@abmantis] - [#77237]) +- Cleanup pytest.approx in unit conversion tests ([@epenet] - [#84810]) +- Mark required fields in FlowResult typedict ([@frenck] - [#84811]) +- Refactor mysensors device tracker ([@MartinHjelmare] - [#84747]) +- Allow None connector for BaseHaRemoteScanner ([@akx] - [#84847]) +- Update todoist integration to use new official rest api library ([@boralyl] - [#79481]) +- Add `state_class` to the sensor entity descriptions for apcupsd integration ([@yuxincs] - [#84829]) +- Enable strict typing for apcupsd ([@yuxincs] - [#84861]) +- Move add Update entities to UniFi controller ([@Kane610] - [#84477]) +- Make device tracker use common UniFi entity class ([@Kane610] - [#84786]) +- Update orjson to 3.8.3 ([@frenck] - [#84878]) +- Renovate Ambient PWS config flow tests ([@bachya] - [#84879]) +- Improve `shelly` generic typing ([@cdce8p] - [#84889]) +- Add SFR Box integration ([@epenet] - [#84780]) +- Remove redundant Guardian handler unsub logic ([@bachya] - [#84905]) +- Fix handling of empty google_calendars.yaml file ([@allenporter] - [#84909]) +- Use entity descriptions in mysensors binary sensor ([@MartinHjelmare] - [#84897]) +- Add device info to transmission ([@avee87] - [#84660]) +- Renovate Notion config flow tests ([@bachya] - [#84906]) +- Renovate ReCollect Waste config flow tests ([@bachya] - [#84908]) +- Tiny clean up of the ESPHome config flow ([@balloob] - [#84903]) +- Use generator instead of single-list-unpack in PurpleAir config flow ([@bachya] - [#84922]) +- Update description to guide user to find ESPHome encryption key. ([@balloob] - [#84928]) +- Bump velbus-aio to 2022.12.0 ([@Cereal2nd] - [#83278]) +- Simplify AirVisual Pro sensor implementation ([@bachya] - [#84898]) +- Change ISY994 group device assignments ([@shbatm] - [#84933]) +- Assumed state in Bravia TV media player ([@Drafteed] - [#84885]) +- Remove legacy constant from UniFi ([@Kane610] - [#84947]) +- Bump whirlpool-sixth-sense to 0.18.0 ([@mkmer] - [#84945]) +- Fix Whirlpool type error in get_brand_for_region ([@mkmer] - [#84944]) +- Remove unused PurpleAir sensor constant ([@bachya] - [#84953]) +- Fix Whirlpool register_attr_callback ([@mkmer] - [#84962]) +- Improve roon volume translation logic ([@pavoni] - [#84916]) +- Fix some typos in ZHA comments ([@TheJulianJES] - [#84881]) +- Remove deprecated PI-Hole YAML config ([@mib1185] - [#84803]) +- Add optimistic option for MQTT climate ([@jbouwh] - [#84777]) +- Improve device automation tests ([@emontnemery] - [#84972]) +- Renovate PurpleAir tests ([@bachya] - [#84894]) +- Improve DataUpdateCoordinator typing in integrations (7) ([@cdce8p] - [#84890]) +- Update Pillow to 9.4.0 ([@frenck] - [#84974]) +- Update watchdog to 2.2.1 ([@frenck] - [#84982]) +- Move sensor constants and define public names from this module ([@frenck] - [#84973]) +- Add Whirlpool device_info and has_entity_name ([@mkmer] - [#84946]) +- Remove attributes from Twinkly lights ([@frenck] - [#84986]) +- Bump axis to v45 ([@Kane610] - [#84992]) +- Add initial test for nibe buttons ([@elupus] - [#84950]) +- Only run garbage collection per module ([@elupus] - [#84681]) +- Bump pytradfri to 9.0.1 ([@MartinHjelmare] - [#85001]) +- Bump AIOAladdinConnect to 0.1.50 ([@mkmer] - [#85006]) +- Adjust stale bot action to be more performant ([@frenck] - [#84999]) +- Disable sky connect config entry if USB stick is not plugged in ([@emontnemery] - [#84975]) +- Improve performance of fetching and storing history and events with the database ([@bdraco] - [#84870]) +- Update coverage to 7.0.2 ([@frenck] - [#85020]) +- Improve typing of SelectorConfig ([@frenck] - [#85022]) +- Update ISY994 integration to be model agnostic ([@shbatm] - [#85017]) +- Bump sqlalchemy to 1.4.45 ([@bdraco] - [#85021]) +- Improve `bluetooth` generic typing ([@cdce8p] - [#84891]) +- Update stale strings in repairs tests ([@emontnemery] - [#85046]) +- Clarify SensorDeviceClass.PRECIPITATION docstring ([@emontnemery] - [#85045]) +- Address late feedback in SFR Box sensors ([@epenet] - [#85038]) +- Correct return type of two raise-only methods in recorder ([@frenck] - [#85048]) +- Address late feedback in SFR Box config flow ([@epenet] - [#85037]) +- Clarify NumberDeviceClass.PRECIPITATION docstring ([@epenet] - [#85051]) +- Add hs_command_template and xy_command_template to mqtt light default schema ([@orosam] - [#84988]) +- Add bitcoin to strict typing ([@epenet] - [#85049]) +- Address late feedback in SFR Box coordinator ([@epenet] - [#85039]) +- Bump blebox_uniapi to 2.1.4 ([@riokuu] - [#85059]) +- Improve renault tests ([@epenet] - [#85065]) +- Improve onewire tests ([@epenet] - [#85064]) +- Improve SFR Box test coverage ([@epenet] - [#85054]) +- Bump pycoolmasternet-async and add filter and error code support to CoolMastetNet ([@amitfin] - [#84548]) +- Add services for transitioning snooz volume on or off ([@AustinBrunkhorst] - [#83515]) +- Bump pycoolmasternet-async and add coolmaster swing mode ([@amitfin] - [#82809]) +- Add door, opening and motion sensors to Xiaomi-ble ([@Ernst79] - [#84990]) +- Fix incorrectly return type on bad_identifier in UniFi Protect ([@frenck] - [#85050]) +- Zeversolar integration ([@kvanzuijlen] - [#84887]) +- Import mqtt and recorder locally in test fixtures ([@emontnemery] - [#85067]) +- Fix double time conversion in async_track_point_in_utc_time ([@bdraco] - [#85036]) +- Move add Device tracker entities to UniFi controller ([@Kane610] - [#84883]) +- Ruuvi Gateway integration ([@akx] - [#84853]) +- Add EnergyZero integration ([@klaasnicolaas] - [#83886]) +- Bump scapy to 2.5.0 ([@bdraco] - [#85074]) +- Add MQTT climate setting for current humidity ([@Stonos] - [#84592]) +- Make switch platform use common UniFi entity class ([@Kane610] - [#84458]) +- Fix multi inheritance with CoordinatorEntity ([@cdce8p] - [#85053]) +- Add translation key for IPP printer integration ([@piitaya] - [#84441]) +- ISY994: Add dhcp support for eisy ([@shbatm] - [#85083]) +- Correct initial config of MQTT climate ([@jbouwh] - [#85097]) +- Add ANWB Energie (virtual) integration ([@klaasnicolaas] - [#85077]) +- Revert "Disable sky connect config entry if USB stick is not plugged in" ([@emontnemery] - [#85103]) +- Sensibo select platform translations ([@gjohansson-ST] - [#82743]) +- Remove unnecessary `title` kwarg in options flows ([@bachya] - [#85131]) +- Add last timestamp to Tile attributes ([@jcconnell] - [#85095]) +- Renovate Airvisual tests ([@bachya] - [#84892]) +- Renovate Ridwell config flow tests ([@bachya] - [#85135]) +- Fix humidifier enforce type hints ([@MartinHjelmare] - [#85148]) +- Clean up pylint warning in zwave_js light ([@MartinHjelmare] - [#85149]) +- Fix typo in Tuya climate ([@o951753o] - [#85185]) +- Adjust set_humidity type hints ([@epenet] - [#85176]) +- Allow SensorDeviceClass.POWER_FACTOR unit None ([@emontnemery] - [#85181]) +- Add Mijndomein Energie virtual integration ([@klaasnicolaas] - [#85165]) +- Generalize a base ReCollect Waste entity ([@bachya] - [#85166]) +- Bump pybravia to 0.3.0 ([@Drafteed] - [#85127]) +- Bumb python-homewizard-energy to 1.4.0 ([@DCSBL] - [#85114]) +- Update orjson to 3.8.4 ([@frenck] - [#85195]) +- Add econet device and state classes ([@davidflypei] - [#84201]) +- Add WS endpoint config/entity_registry/get_entries ([@emontnemery] - [#85063]) +- Remove unneeded type checking from Sensibo ([@gjohansson-ST] - [#85231]) +- Add Airzone Select platform support ([@Noltari] - [#76415]) +- Assign ISY994 program entities to hub device, simplify device info ([@shbatm] - [#85224]) +- Fix translation keys for NAM sensors ([@frenck] - [#85245]) +- Update coverage to 7.0.3 ([@frenck] - [#85197]) +- Add support for `WetDry`, `WindHeading`, and `Flex` fields in LaCrosse View ([@IceBotYT] - [#79062]) +- Bump devolo_plc_api to 1.0.0 ([@Shutgun] - [#85235]) +- Remove redundant CONF_PATH from sabnzbd config flow ([@shaiu] - [#85214]) +- Bump steamodd to 4.23 ([@tkdrob] - [#85071]) +- Restore low battery state on ISY994 Insteon heartbeat nodes ([@shbatm] - [#85209]) +- Avoid some data merges in the bluetooth remote scanners when nothing has changed ([@bdraco] - [#85270]) +- Add additional device classes and units to ISY994 aux sensors ([@shbatm] - [#85274]) +- Add LD2410 BLE integration ([@930913] - [#83883]) +- Improve weather Forecast typing ([@frenck] - [#85019]) +- Bump bluetooth-data-tools to 0.3.1 for ld2410-ble ([@cgarwood] - [#85278]) +- Use async with timeout ([@balloob] - [#85281]) +- Bump actions/checkout from 3.2.0 to 3.3.0 (@dependabot - [#85285]) +- Add diagnostics to EnergyZero integration ([@klaasnicolaas] - [#85164]) +- Fix some pytest warning for helpers ([@balloob] - [#85283]) +- Renovate OpenUV config flow tests ([@bachya] - [#85150]) +- Address late feedback in SFR Box enum sensors ([@epenet] - [#84977]) +- lacrosse_view: Set entity availablity depending on the data ([@nijel] - [#85303]) +- Bump sfrbox-api to 0.0.2 ([@epenet] - [#85302]) +- Complete test coverage for SFR Box ([@epenet] - [#85068]) +- Make sensor platform use common UniFi entity class ([@Kane610] - [#84818]) +- Increase Netgear speedtest period to 2 hours ([@starkillerOG] - [#85299]) +- Mark Yamaha media player as unavailable when unresponsive ([@sredna] - [#85018]) +- Renovate Tile config flow tests ([@bachya] - [#85154]) +- Update debugpy to 1.6.5 ([@frenck] - [#85297]) +- Fix Fitbit state for values over 999 ([@sw-carlos-cristobal] - [#85251]) +- Add EasyBaby support to Tuya ([@frenck] - [#85298]) +- Add addtional device classes to ISY994 sensors and bump PyISY to 3.0.11 ([@shbatm] - [#85315]) +- Add Whirlpool washer and dryer to Whirlpool integration ([@mkmer] - [#85066]) +- Drop ChainMap in translation cache ([@bdraco] - [#85260]) +- Use Platform enum and remove DOMAIN as X imports in ISY994 ([@shbatm] - [#85341]) +- Add query button entities to ISY994 devices and hub ([@shbatm] - [#85337]) +- Bump aioesphomeapi to 13.0.3 ([@bdraco] - [#85356]) +- Bump pyrainbird to 1.1.0 ([@allenporter] - [#85358]) +- Correct memory leak for rfxtrx lighting4 devices ([@elupus] - [#85354]) +- Validate length of rfxtrx identifier ([@elupus] - [#85352]) +- Make API key mandatory for PI-Hole ([@mib1185] - [#85264]) +- Move platform related stuff out of const.py in PI-Hole integration ([@mib1185] - [#85237]) +- Bump volkszahler to 0.4.0 ([@bbr111] - [#85335]) +- Bump accuweather package to 0.5.0 ([@bieniu] - [#85326]) +- Remove own sensor description in PI-Hole ([@mib1185] - [#85371]) +- Improve `flume` generic typing ([@cdce8p] - [#85329]) +- Improve `devolo_home_network` generic typing ([@cdce8p] - [#85328]) +- Improve `sleepiq` generic typing ([@cdce8p] - [#85330]) +- Improve DataUpdateCoordinator typing in integrations (9) ([@cdce8p] - [#85332]) +- Improve DataUpdateCoordinator typing in integrations (8) ([@cdce8p] - [#85331]) +- Switch to attr use in philips js ([@elupus] - [#85345]) +- Add config flow for Rain Bird ([@allenporter] - [#85271]) +- EZVIZ: Add mac to device info ([@RenierM26] - [#85378]) +- Add beep button entity to ISY994 Insteon devices ([@shbatm] - [#85367]) +- Add Google Mail integration ([@tkdrob] - [#82637]) +- Add Starlink Integration ([@boswelja] - [#77091]) +- Add QNAP QSW sensors for each port ([@Noltari] - [#76811]) +- Hassil intents ([@synesthesiam] - [#85156]) +- Fix unit of illuminance in Plugwise illuminance sensor ([@bouwew] - [#85392]) +- Mark repo as safe directory to git config ([@RoboMagus] - [#83755]) +- Avoid pattern search entry when there are no patterns in the entity filter ([@bdraco] - [#85404]) +- Update copyright year to 2023 ([@davet2001] - [#85396]) +- SQL reintroduce yaml support ([@gjohansson-ST] - [#75205]) +- Plugwise: add support for 3-phase DSMR's ([@bouwew] - [#85421]) +- Remove obsolete "Domains blocked" extra attribute from PI-Hole sensors ([@mib1185] - [#85424]) +- Add Nuki battery percentage sensor ([@Savjee] - [#84968]) +- Limit Whirlpool timestamp changes to +/- 60 seconds ([@mkmer] - [#85368]) +- Small speed up to frequently called datetime functions ([@bdraco] - [#85399]) +- Use subscription callbacks to discover Sonos speakers ([@jjlawren] - [#85411]) +- Code styling tweaks to the MQTT integration ([@frenck] - [#85463]) +- Code styling tweaks to Bluetooth ([@frenck] - [#85448]) +- Address a few deprecation warnings in tests ([@scop] - [#85472]) +- Bump soco to 0.29.0 ([@jjlawren] - [#85473]) +- Code styling tweaks to the AdGuard Home integration ([@frenck] - [#85468]) +- Fix fetching of initial data of Netgear sensors ([@starkillerOG] - [#85450]) +- Update pydocstyle to 6.2.3 ([@cdce8p] - [#85449]) +- Code styling tweaks to the WLED integration ([@frenck] - [#85466]) +- Code styling tweaks to the LaMetric integration ([@frenck] - [#85469]) +- Handle timeouts in Sonos, reduce logging noise ([@jjlawren] - [#85461]) +- Code styling tweaks to core entity components ([@frenck] - [#85460]) +- Code styling tweaks to core helpers ([@frenck] - [#85441]) +- Expose async_scanner_devices_by_address from the bluetooth api ([@dbuezas] - [#83733]) +- Add missing context in homewizard assistant error ([@eMerzh] - [#85397]) +- Bump aioesphomeapi to 13.0.4 ([@bdraco] - [#85406]) +- Google Assistant SDK: support Korean and Japanese ([@tronikos] - [#85419]) +- Upgrade RestrictedPython to 6.0 ([@scop] - [#85426]) +- Z-Wave.Me: Cover: Fixed calibration errors and add missing is_closed ([@PoltoS] - [#85452]) +- Z-Wave.Me integration: Add code owners to receive notifications on github ([@PoltoS] - [#85476]) +- Add network resource button entities to ISY994 and bump PyISY to 3.0.12 ([@shbatm] - [#85429]) +- Code styling tweaks to core utils & YAML loader ([@frenck] - [#85433]) +- Bump actions/upload-artifact from 3.1.1 to 3.1.2 (@dependabot - [#85489]) +- Use power factor device class in Fronius integration again ([@farmio] - [#85495]) +- Bump actions/cache from 3.2.2 to 3.2.3 (@dependabot - [#85488]) +- Add config flow to imap ([@engrbm87] - [#74623]) +- Default disable voltage sensors in Plugwise ([@CoMPaTech] - [#85451]) +- Allow converting units of energy sensors ([@emontnemery] - [#85497]) +- Bump axis to v46 ([@Kane610] - [#85431]) +- Update sensor test ([@emontnemery] - [#85522]) +- Adjust zwave_js diagnostics ([@epenet] - [#85524]) +- Improve integration type hints for diagnostics ([@epenet] - [#85526]) +- Fix translation keys for Yamaha MusicCast selectors ([@frenck] - [#85292]) +- Whirlpool general code cleanup ([@mkmer] - [#85387]) +- Bump aiohue library to 4.6.1 ([@marcelveldt] - [#85504]) +- Add "Schedule Part" enum sensor to Venstar thermostat ([@scolby33] - [#84332]) +- Refactor entity registry JSON cache ([@emontnemery] - [#85085]) +- Add a calendar entity to ReCollect Waste ([@bachya] - [#85347]) +- Pin matplotlib to 3.6.1 ([@frenck] - [#85540]) +- Bump pySwitchbee to 1.7.19 ([@jafar-atili] - [#84442]) +- Refactor device registry JSON cache ([@emontnemery] - [#85539]) +- Split wheels building of all requirements ([@frenck] - [#85564]) +- Only build compressed states once ([@bdraco] - [#85561]) +- Add UniFi Protect Chime Duration entity ([@AngellusMortis] - [#85538]) +- Add IntelliFire lights ([@jeeftor] - [#79816]) +- Load custom sentences from config directory ([@synesthesiam] - [#85558]) +- Netgear fix missing await ([@starkillerOG] - [#85574]) +- Google Assistant SDK conversation agent ([@tronikos] - [#85499]) +- Plugwise: add missing P1v2 sensors ([@bouwew] - [#85589]) +- Adapt tplink to use has_entity_name ([@rytilahti] - [#85577]) +- Bump dbus-fast to 1.84.0 ([@bdraco] - [#85568]) +- Bump bleak to 0.19.5 ([@bdraco] - [#85567]) +- Code styling tweaks to the Cast integration ([@frenck] - [#85560]) +- Add switch platform to devolo_home_network ([@Shutgun] - [#72494]) +- Revert "Adapt tplink to use has_entity_name" ([@frenck] - [#85595]) +- Bump whirlpool-sixth-sense to 0.18.1 ([@mkmer] - [#85521]) +- Simplify sensor state validation ([@epenet] - [#85513]) +- Deprecate Magicseaweed ([@frenck] - [#85527]) +- Bump motionEye client version to v0.3.14 ([@dermotduffy] - [#85408]) +- Adjust diagnostic return type in Sonos ([@epenet] - [#85585]) +- Drop title from repairs flows (2) ([@emontnemery] - [#85597]) +- Further generalize base Ridwell entity ([@bachya] - [#85486]) +- Reolink add support for flv protocol ([@starkillerOG] - [#85576]) +- Fix unknown data in google wifi ([@epenet] - [#85616]) +- Remove invalid state class in hue ([@epenet] - [#85617]) +- Fix unknown data in influxdb ([@epenet] - [#85619]) +- Fix unknown data in qwikswitch ([@epenet] - [#85621]) +- Remove invalid unit of measurement in mfi ([@epenet] - [#85620]) +- Remove invalid state class in tado ([@epenet] - [#85624]) +- Remove invalid state class in deconz ([@epenet] - [#85615]) +- Fix unknown data in vultr ([@epenet] - [#85627]) +- Add kitchen_sink integration ([@emontnemery] - [#85592]) +- Fix unknown data in homematicip_cloud ([@epenet] - [#85618]) +- Bump AIOAladdinConnect to 0.1.52 ([@mkmer] - [#85632]) +- Bump plugwise to v0.27.1 ([@bouwew] - [#85630]) +- Add diagnostics platform to SFR Box ([@epenet] - [#85500]) +- Google Assistant SDK: Fix broadcast command in Japanese ([@tronikos] - [#85636]) +- Remove deprecated YAML manual config for PVPC Hourly Pricing ([@azogue] - [#85614]) +- Remove invalid device class in gios ([@epenet] - [#85611]) +- Bump bluemaestro-ble to 0.2.1 ([@Ernst79] - [#85648]) +- Add ISY994 variables as number entities ([@shbatm] - [#85511]) +- Remove old migrate unique ID code from ISY994 ([@shbatm] - [#85641]) +- Update xknx to 2.3.0 - add some DPTs, Routing security ([@farmio] - [#85658]) +- Add diagnostics to bmw_connected_drive ([@rikroe] - [#74871]) +- Add D-Link config flow ([@tkdrob] - [#84927]) +- Make the kitchen_sink integration trigger statistics issues ([@emontnemery] - [#79742]) +- Revert "Bump steamodd to 4.23" ([@jbouwh] - [#85651]) +- Handle ESPHome dashboard discovery ([@balloob] - [#85662]) +- Bump `aiopvpc` to 4.0.1 ([@azogue] - [#85612]) +- Bump whirlpool-sixth-sense to 0.18.2 ([@mkmer] - [#85679]) +- Bump bthome-ble to 2.5.0 ([@Ernst79] - [#85670]) +- Remove invalid device class in energyzero ([@epenet] - [#85690]) +- Automatically fetch the encryption key from the ESPHome dashboard ([@balloob] - [#85709]) +- Add ESPHome update entities ([@balloob] - [#85717]) +- Use fallback advertising interval for non-connectable Bluetooth devices ([@Alcoinus] - [#85701]) +- Bump moehlenhoff-alpha2 to 1.3.0 ([@TitanNano] - [#85720]) +- Remove unreachable config entry migration in pvpc hourly pricing ([@azogue] - [#85700]) +- Add Energie VanOns virtual integration ([@klaasnicolaas] - [#85704]) +- Clean attributes in pvpc hourly pricing ElecPriceSensor ([@azogue] - [#85688]) +- Address review comments for D-Link config flow ([@tkdrob] - [#85712]) +- Add binary_sensor to Starlink ([@boswelja] - [#85409]) +- Consolidate device info and clean-up ISY994 code base ([@shbatm] - [#85657]) +- Cleanup Shelly sensor description ([@thecode] - [#85732]) +- Add RPC smoke binary sensor to Shelly integration ([@bieniu] - [#85697]) +- Add unitless unit converter ([@emontnemery] - [#85694]) +- Add system diagnostic sensors to SFR Box ([@epenet] - [#85184]) +- Add WS command sensor/device_class_convertible_units ([@emontnemery] - [#85213]) +- Add WS command number/device_class_convertible_units ([@emontnemery] - [#85598]) +- Deprecate power_command_topic for MQTT climate ([@jbouwh] - [#85229]) +- Add binary sensor platform to SFR Box ([@epenet] - [#85508]) +- Change Ruuvi movement counter to correct state class ([@osmaa] - [#85677]) +- Fix sensor test ([@emontnemery] - [#85740]) +- Refactor energy validation issue reporting ([@emontnemery] - [#85523]) +- Fix gen_requirements_all script permissions ([@MartinHjelmare] - [#85745]) +- Pass language to the Airly API ([@bieniu] - [#85655]) +- Add missing enum item in SFR Box ([@epenet] - [#85746]) +- Bump sfrbox-api to 0.0.4 ([@epenet] - [#85742]) +- Bump screenlogicpy to 0.6.2 ([@dieselrabbit] - [#85725]) +- Follow-up on ReCollect Waste calendar entity ([@bachya] - [#85766]) +- Add statistics support to iperf3 ([@yuvalabou] - [#85771]) +- Update coverage to 7.0.5 ([@frenck] - [#85774]) +- Fix IoT Class for Torque integration ([@nareddyt] - [#85667]) +- Implement sync time button for moehlenhoff_alpha2 ([@TitanNano] - [#85676]) +- Add nightly intents to nightly build ([@frenck] - [#85760]) +- Address small review comments in ESPHome ([@frenck] - [#85770]) +- Update sentry-sdk to 1.13.0 ([@frenck] - [#85772]) +- Move ISY994 data to dataclass and remove bad entities ([@shbatm] - [#85744]) +- Bump georss_ign_sismologia_client to 0.6 ([@exxamalte] - [#85784]) +- Adjust diagnostics return types ([@epenet] - [#85525]) +- Key Huawei LTE routers in hass.data by config entry rather than unique id ([@scop] - [#85788]) +- Fix nightly intents in nightly builds ([@frenck] - [#85806]) +- Downgrade integrations without code owner ([@epenet] - [#85752]) +- Fix nightly intents in nightly builds (part2) ([@frenck] - [#85818]) +- Make use of str.removeprefix and .removesuffix ([@scop] - [#85584]) +- Remove 'tariff' edition from options-flow ([@azogue] - [#85703]) +- Increase max line size for ingress addons ([@mdegat01] - [#85775]) +- Abort config flow if Airly measuring station does not exist ([@bieniu] - [#85652]) +- Collection of typing improvements in common test helpers ([@frenck] - [#85509]) +- Clean up old config migration of Axis config ([@Kane610] - [#85671]) +- Huawei LTE sensor improvements ([@scop] - [#84019]) +- Bump PyISY to 3.1.4 to fix dependency issues ([@shbatm] - [#85825]) +- Deprecate YAML configuration for ISY994 ([@shbatm] - [#85797]) +- Bump actions/setup-python from 4.4.0 to 4.5.0 (@dependabot - [#85801]) +- Bump screenlogicpy to 0.6.3 ([@dieselrabbit] - [#85799]) +- Update oralb to show battery percentage ([@Lash-L] - [#85800]) +- Remove dead code path in devolo Home Network ([@Shutgun] - [#85790]) +- Store Axis device with entry_id key rather than unique_id ([@Kane610] - [#85673]) +- Bump cryptography to 39.0.0 ([@bdraco] - [#85846]) +- Bump python-matter-server to 1.1.0 ([@MartinHjelmare] - [#85840]) +- Bump reolink-aio to 0.2.2 ([@starkillerOG] - [#85848]) +- Add On Level number entities to ISY994 Insteon Devices ([@shbatm] - [#85798]) +- Use IntEnum for hassfest quality scale ([@epenet] - [#85817]) +- Create and use config_entry fixture for Axis integration tests ([@Kane610] - [#85865]) +- Avoid linear searches for excluded events ([@bdraco] - [#85851]) +- Downgrade MQTT logging ([@thecode] - [#85867]) +- Bump total_connect_client to 2023.1 ([@austinmroczek] - [#85882]) +- Bump PyISY to 3.1.5 and fix bad Z-Wave properties from eisy ([@shbatm] - [#85900]) +- Add dhcp discovery to D-Link ([@tkdrob] - [#85661]) +- Use parametrize to modify Axis test fixtures ([@Kane610] - [#85884]) +- Add Insteon ramp rate select entities to ISY994 ([@shbatm] - [#85895]) +- Bump tololib to v0.1.0b4 ([@MatthiasLohr] - [#85866]) +- Startup error message improvements ([@scop] - [#85860]) +- Fix conflict between stale bot rules ([@frenck] - [#85923]) +- Bump reolink-aio to 0.2.3 ([@starkillerOG] - [#85871]) +- Allow empty motionEye passwords ([@dermotduffy] - [#85407]) +- Add conversation to default config ([@balloob] - [#85877]) +- Replace deprecated unit converter utils ([@mib1185] - [#85927]) +- Replace the usage of unit constants by enumerations in Tests [a-e] ([@mib1185] - [#85932]) +- Fix apcupsd spamming logs when host is unavailable ([@ondras12345] - [#85920]) +- Replace the usage of unit constants by enumerations in Tests [f-g] ([@mib1185] - [#85933]) +- Replace the usage of unit constants by enumerations in Tests [o-r] ([@mib1185] - [#85936]) +- Replace the usage of unit constants by enumerations in Tests [h-l] ([@mib1185] - [#85934]) +- Replace the usage of unit constants by enumerations in Tests [m-n] ([@mib1185] - [#85935]) +- Address invalid keys in translation for whirlpool ([@mkmer] - [#85849]) +- Implement state error handling in HomeWizard ([@DCSBL] - [#84991]) +- Make translations keys check hassfest more strict ([@frenck] - [#85221]) +- Cleanup webOS TV YAML import leftovers ([@thecode] - [#85957]) +- Replace the usage of unit constants by enumerations in Tests [v-z] ([@mib1185] - [#85938]) +- Clean up legacy import from HomeWizard ([@frenck] - [#85960]) +- Use value of enum ([@jbouwh] - [#85944]) +- Upgrade HomeWizard to platinum quality ([@DCSBL] - [#82580]) +- Core code styling improvements ([@frenck] - [#85963]) +- Bump pymodbus library to V3.1.0 ([@janiversen] - [#85961]) +- Bump PyISY to 3.1.6 ([@shbatm] - [#85974]) +- Ensure remote bluetooth adapters are loaded before integrations that need them ([@bdraco] - [#85723]) +- Make Synology DSM integration fully async ([@mib1185] - [#85904]) +- Support availability for ISY994 devices ([@shbatm] - [#85928]) +- Deprecate ISY994 custom cleanup entities service ([@shbatm] - [#85931]) +- Add Starlink reboot button ([@boswelja] - [#85729]) +- Add friendly name support for ESPHome ([@jesserockz] - [#85976]) +- Add locking and unlocking to MQTT lock ([@Nardol] - [#85779]) +- Replace the usage of unit constants by enumerations in Tests [s-u] ([@mib1185] - [#85937]) +- Fix fetching history include_start_time_state when timezone is not UTC ([@bdraco] - [#85983]) +- Add state_class to mill Estimated CO2 sensor ([@Jorei] - [#85894]) +- Update python-homewizard-energy to 1.5.0 ([@frenck] - [#85966]) +- Update pytest to 7.2.1 ([@frenck] - [#85990]) +- Add sensors for new P1 datapoints in HomeWizard ([@DCSBL] - [#85198]) +- Warn if numeric sensors have an invalid value ([@epenet] - [#85863]) +- Make the kitchen_sink integration set up a config entry ([@emontnemery] - [#85680]) +- Improve typing of HomeWizard sensors ([@frenck] - [#85997]) +- Allow None in add_suggested_values_to_schema ([@epenet] - [#85763]) +- Cleanup of HomeWizard button platform ([@frenck] - [#85999]) +- Remove WebOS TV client wrapper ([@thecode] - [#86001]) +- Clean up unused import steps from HomeWizard config flow ([@frenck] - [#86002]) +- Bump pykoplenti to 1.0.0 ([@lemanjo] - [#83251]) +- Add missing mock in fritzbox ([@epenet] - [#86005]) +- Adjust invalid test values in rest ([@epenet] - [#86009]) +- Adjust invalid test values in snmp ([@epenet] - [#86006]) +- Add sensor state class validation for device classes ([@frenck] - [#84402]) +- Adjust invalid test values in tcp ([@epenet] - [#86007]) +- Adjust invalid test values in template ([@epenet] - [#86008]) +- Remove invalid uom from mqtt tests ([@epenet] - [#86004]) +- Bring modbus back to 100% test coverage ([@janiversen] - [#85972]) +- Adjust sensor validation warning ([@epenet] - [#86017]) +- Add tier summation delivered for Lixee Zlinky TIC ([@piitaya] - [#82602]) +- Implement "group members assume state" option for ZHA ([@TheJulianJES] - [#84938]) +- Avoid import homeassistant.const as a module ([@epenet] - [#85991]) +- Small refactor to HomeWizard config flow ([@frenck] - [#86020]) +- Fix entity cleanup and naming bugs in ISY994 ([@shbatm] - [#86023]) +- Code styling tweaks to the recorder integration ([@frenck] - [#86030]) +- Remove SSDP discovery from Hue ([@marcelveldt] - [#85506]) +- Add Jellyfin media source support for tvshows ([@j-stienstra] - [#85953]) +- Remove the usage of HA core unit constant in withings own unit definitions ([@mib1185] - [#85942]) +- Deprecate ISY994 custom reload service ([@shbatm] - [#86019]) +- Replace deprecated constants and utils by their successors in NWS tests ([@mib1185] - [#85926]) +- Add Fire TV virtual integration ([@jrieger] - [#85741]) +- Add Insteon backlight control support to ISY994, bump PyISY to 3.1.8 ([@shbatm] - [#85981]) +- Set deviceclass to speaker for Sonos media_player ([@mvdwetering] - [#80694]) +- Add enable/disable config switch for ISY994 devices ([@shbatm] - [#85975]) +- Run `flake8` on more files ([@mxr] - [#85333]) +- Make central AvmWrapper class fully async in Fritz!Tools ([@mib1185] - [#83768]) +- Code cleanup in litterrobot ([@natekspencer] - [#86037]) +- Fix logic of disabled condition for "OR" ([@karliemeads] - [#79718]) +- Bump openerz-api to 0.2.0 ([@matteocorti] - [#86013]) +- Set onewire quality scale to gold ([@epenet] - [#85748]) +- Add Tuya sensor for Smart IR remote device ([@tyge68] - [#85955]) +- Add switch to Tuya product category wsdcg ([@rsmatias] - [#85762]) +- Deduplicate some entity registry code ([@emontnemery] - [#85541]) +- Improve type hints in nws ([@kamiyo] - [#83173]) +- Update orjson to 3.8.5 ([@frenck] - [#86043]) +- Add SSHd and GH CLI to devcontainer to support `gh net` ([@iMicknl] - [#81623]) +- Update whois to 0.9.23 ([@frenck] - [#86042]) +- Add some sensors and controls to tuya dehumidifier ([@Andre0512] - [#85380]) +- Remove signal strength state class from Huawei LTE transmit power sensor ([@scop] - [#85973]) +- Add typings to OVO Energy integration ([@timmo001] - [#75944]) +- oralb async_poll doc comment typo ([@Lash-L] - [#86049]) +- Add EufyLife Bluetooth integration ([@bdr99] - [#85907]) +- Code styling tweaks to the zeroconf integration ([@frenck] - [#86048]) +- Address Starlink code quality and add update sensor ([@boswelja] - [#86066]) +- Allow converting units of additional sensor device classes ([@emontnemery] - [#86072]) +- Make event.time_tracker_utcnow patchable with freezegun ([@bdraco] - [#86051]) +- Remove deprecated Renault service ([@epenet] - [#86070]) +- Removes OpenALPR Local integration ([@frenck] - [#85544]) +- Add vicare buffer top/main temperature sensors ([@oischinger] - [#79466]) +- Add sous vide start functionality ([@hpirila] - [#84447]) +- Raise HomeAssistantError in Renault ([@epenet] - [#86071]) +- Set renault quality scale to platinum ([@epenet] - [#85753]) +- Fix invalid constant in vicare ([@epenet] - [#86079]) +- Add diagnostics to devolo Home Network ([@Shutgun] - [#86022]) +- Soma connect update ([@ratsept] - [#85682]) +- Add Thread integration ([@emontnemery] - [#85002]) +- Fix typo in energy: misplaced closing brace ([@lunmay] - [#86027]) +- Add Enum device class for HomeWizard active tariff ([@DCSBL] - [#86078]) +- Remove config entry specifics from FlowManager ([@emontnemery] - [#85565]) +- Use Home Assistant swing modes in tado climate ([@emontnemery] - [#84278]) +- Allow translating select selector options ([@jbouwh] - [#85531]) +- Bump pylitejet to 0.4.6 (now with async!) ([@joncar] - [#85493]) +- Allow manually setting up the Thread integration ([@emontnemery] - [#86087]) +- Adjust Thread config flow ([@emontnemery] - [#86097]) +- Subclass a `DataUpdateCoordinator` for Ridwell ([@bachya] - [#85644]) +- Adjust kitchen_sink test ([@emontnemery] - [#86099]) +- Improve logging shutdown ([@emontnemery] - [#85812]) +- Adjust translations for zha buttons ([@elupus] - [#86095]) +- Remove deprecated zamg YAML config ([@killer0071234] - [#86113]) +- Ensure flux_led does not try to reload while setup is in progress ([@bdraco] - [#86122]) +- Code styling tweaks to the Alexa integration ([@frenck] - [#86121]) +- Update to pylutron_caseta to 0.18.0 ([@mdonoughe] - [#86133]) +- Bump AIOAladdinConnect to 0.1.53 ([@mkmer] - [#86129]) +- Reset Modbus value on down ([@GrahamJB1] - [#86127]) +- Remove WebOS TV script translation leftover ([@thecode] - [#86109]) +- Only wait for import flows to initialize at setup ([@emontnemery] - [#86106]) +- Code styling tweaks to the ESPHome integration ([@frenck] - [#86146]) +- Bump pybravia to 0.3.1 ([@Drafteed] - [#86153]) +- Fix incorrect type hint in Filter ([@epenet] - [#86141]) +- Rename precision variable in Filter ([@epenet] - [#86090]) +- Add missing raise for exceptions ([@cdce8p] - [#86155]) +- Remove unnecessary try-else (4) ([@cdce8p] - [#86161]) +- Remove unnecessary try-else (5) ([@cdce8p] - [#86164]) +- Remove unnecessary try-else (1) ([@cdce8p] - [#86158]) +- Remove unnecessary try-else (2) ([@cdce8p] - [#86159]) +- Remove unnecessary try-else (3) ([@cdce8p] - [#86160]) +- Change 'Sky Connect' to 'SkyConnect' ([@emontnemery] - [#86166]) +- Update pylint to 2.15.10 ([@cdce8p] - [#86167]) +- Change Honeywell somecomfort API to AIOSomecomfort API ([@mkmer] - [#86102]) +- Use more _attrs_* in Axis entities ([@Kane610] - [#85555]) +- Add OTBR WebSocket API ([@balloob] - [#86107]) +- Add reauth flow to webOS TV integration ([@thecode] - [#86168]) +- Reload ESPHome config entries when dashboard info received ([@balloob] - [#86174]) +- Add sensor platform to LD2410BLE ([@930913] - [#85276]) +- ESPHome dashboard tweaks ([@balloob] - [#86176]) +- Rename Eufy integration to EufyHome ([@bdr99] - [#86065]) +- Cleanup Insteon code issues ([@teharris1] - [#86173]) +- Add a switch to Starlink for stow/unstow ([@boswelja] - [#85730]) +- Add conversation reload service ([@synesthesiam] - [#86175]) +- Add type hints to Filter integration tests ([@epenet] - [#86169]) +- Add type hints to Filter ([@epenet] - [#86165]) +- Clean up HomeWizard diagnostic tests ([@frenck] - [#86211]) +- Support float in modbus register sensor ([@GrahamJB1] - [#86128]) +- 75142 Added QEMU_CPU ARG to the dockerfile ([@Gerigot] - [#86178]) +- Add filter to strict-typing ([@epenet] - [#86215]) +- modbus slave unique ids ([@GrahamJB1] - [#86126]) +- Fix stray string literal in bluetooth test wrapper ([@akx] - [#86228]) +- Fix docstring in esphome.bluetooth.client ([@akx] - [#86226]) +- Add conversation mobile app webhook ([@balloob] - [#86239]) +- Update ESPHome devices from HA ([@balloob] - [#86249]) +- HassTurnOn/Off intents to also handle cover entities ([@synesthesiam] - [#86206]) +- Improve `ld2410_ble` generic typing ([@cdce8p] - [#86258]) +- Fix docstring in helpers.template_entity ([@akx] - [#86227]) +- Bumb python-homewizard-energy to 1.6.0 ([@DCSBL] - [#86255]) +- Bump reolink-aio to 0.3.0 ([@starkillerOG] - [#86259]) +- Shelly - use common coordinator base class ([@thecode] - [#86262]) +- Add option to run only pylint or mypy tests [ci] ([@cdce8p] - [#86260]) +- Add jammed state support for MQTT lock ([@jbouwh] - [#86010]) +- Support password less PI-Hole installations ([@mib1185] - [#86184]) +- Add sensors for smart and gas meter identifiers (serial numbers) in HomeWizard ([@DCSBL] - [#86282]) +- Add Stookwijzer ([@fwestenberg] - [#84435]) +- Stricter pylint message control ([@frenck] - [#86154]) +- Code styling tweaks to the tests - Part 1 ([@frenck] - [#86192]) +- Import recorder locally in test fixtures ([@emontnemery] - [#86286]) +- Rename `otbr` integration ([@emontnemery] - [#86284]) +- Add battery device class to Glances battery sensor ([@frenck] - [#86278]) +- Automatically set up HomeWizard during onboarding ([@frenck] - [#86024]) +- Update python-homewizard-energy to 1.6.1 ([@frenck] - [#86274]) +- Refactor HomeWizard switch platform to use entity descriptions ([@frenck] - [#86011]) +- Remove deprecated Uptime YAML configuration ([@frenck] - [#86292]) +- Address Honeywell late review ([@mkmer] - [#86202]) +- Reolink add binary sensors ([@starkillerOG] - [#85654]) +- Update stale docstring on demo lock platform ([@jbouwh] - [#86306]) +- Fix `state_class` for Accuweather `precipitation` sensor ([@bieniu] - [#86088]) +- Correct pet_weight sensor state class in litterrobot ([@natekspencer] - [#86320]) +- Bump PyISY to 3.1.9 for performance improvements ([@shbatm] - [#86297]) +- Improve device automation validation ([@emontnemery] - [#86143]) +- Conversation config ([@synesthesiam] - [#86326]) +- Ensure all unit converters are tested ([@epenet] - [#86271]) +- Bump bcrypt to 4.0.1 ([@epenet] - [#86338]) +- Fix incorrect mock in whirlpool ([@Lash-L] - [#86331]) +- Fix preset modes in Honeywell ([@mkmer] - [#86293]) +- Fix Honeywell unavailable state on connection lost ([@mkmer] - [#86312]) +- Fix edge cases for adding/enabling sensors for UniFi Protect ([@AngellusMortis] - [#86329]) +- Add zeroconf discovery to Synology DSM ([@bdraco] - [#86062]) +- Restore flume scan interval to match app ([@bdraco] - [#86354]) +- Bump flux_led to 0.28.35 ([@bdraco] - [#86352]) +- Switch an `asyncio.wait_for` in the template helper to `async_timeout` ([@bdraco] - [#86349]) +- Don't interpret negative verbosity as debug ([@elupus] - [#86318]) +- React on IP changes in devolo Home Network ([@Shutgun] - [#86195]) +- Cleanup Shelly imports ([@thecode] - [#86359]) +- Revert "Add SSHd and GH CLI to devcontainer to support `gh net`" ([@thecode] - [#86360]) +- Add support for streaming (push) history ([@bdraco] - [#85892]) +- Avoid creating logbook stream task if unsubscribed while waiting for executor ([@bdraco] - [#86363]) +- Allow changing the Insteon USB device ([@teharris1] - [#86290]) +- Increase default recorder commit interval to 5 seconds ([@bdraco] - [#86115]) +- Split history websocket API into its own file ([@bdraco] - [#86364]) +- Bump pytrafikverket to 0.2.3 ([@gjohansson-ST] - [#86341]) +- Add missing ratio test cases in unit conversion ([@epenet] - [#86340]) +- Upgrade python-homewizard-energy to 1.7.0 ([@DCSBL] - [#86383]) +- Bump py-synologydsm-api to 2.0.2 ([@mib1185] - [#86374]) +- Bump AIOSomecomfort to 0.0.3 ([@mkmer] - [#86371]) +- Add per-file-ignore to pylint ([@epenet] - [#86289]) +- Use fixtures to setup Axis integration in tests ([@Kane610] - [#86034]) +- Remove history use_include_order configuration option ([@bdraco] - [#86365]) +- Bump version python-bsblan to 0.5.9 ([@liudger] - [#86373]) +- Fix repr for States and Events without a timestamp ([@bdraco] - [#86391]) +- Bump aiounifi to v44 ([@Kane610] - [#86381]) +- Bump yalexs-ble to 1.12.7 ([@bdraco] - [#86396]) +- Drop Python 3.9 support ([@frenck] - [#85456]) +- Add mysensors remote platform ([@MartinHjelmare] - [#86376]) +- Add Reolink dhcp discovery ([@starkillerOG] - [#85880]) +- Shelly - handle None in RPC power sensors ([@thecode] - [#86399]) +- Cleanup Climacell translations ([@thecode] - [#86325]) +- Improve MQTT transport select label ([@jbouwh] - [#86216]) +- Upgrade caldav to 1.0.1 ([@daniele-athome] - [#85536]) +- Change @conway20 to @Lash-L in OralB codeowners after github rename ([@Lash-L] - [#86416]) +- Bump tesla_powerwall lib version to 0.3.19 ([@daniel-simpson] - [#86421]) +- Add support for additional fields to nut ([@zebardy] - [#83265]) +- Import `ParamSpec` from typing [Py310] ([@cdce8p] - [#86413]) +- Update python version used for pylint [Py310] ([@cdce8p] - [#86414]) +- Update Union typing (1) [Py310] ([@cdce8p] - [#86424]) +- Update Union typing (2) [Py310] ([@cdce8p] - [#86425]) +- Bump pre-commit-hooks to 4.4.0 ([@akx] - [#82984]) +- Update Union typing (4) [Py310] ([@cdce8p] - [#86427]) +- Update Union typing (5) [Py310] ([@cdce8p] - [#86428]) +- Update Optional typing (2) [Py310] ([@cdce8p] - [#86419]) +- Update Optional typing (1) [Py310] ([@cdce8p] - [#86417]) +- Update pre-commit-config [Py310] ([@cdce8p] - [#86415]) +- Update Union typing (3) [Py310] ([@cdce8p] - [#86426]) +- Detect timestamp discontinuity in stream ([@uvjustin] - [#86430]) +- Add missing conversion tests in unit conversion ([@epenet] - [#86434]) +- Give august its own aiohttp session ([@bdraco] - [#86404]) +- Fix `local_partial_types` errors ([@cdce8p] - [#86410]) +- Bump lupupy to 0.2.5 ([@majuss] - [#86439]) +- Adjust icons for iperf3 ([@yuvalabou] - [#85809]) +- Fix hassfest coverage check ([@epenet] - [#86443]) +- Add validation for lock component ([@jbouwh] - [#85842]) +- Add unit and device class to ZHA RSSI sensor ([@mbo18] - [#85390]) +- Use ExecuteIfOff on color cluster for supported bulbs with ZHA ([@TheJulianJES] - [#84874]) +- Update Union typing (zha) [Py310] ([@cdce8p] - [#86453]) +- Add command template and code_format support for MQTT lock ([@jbouwh] - [#85830]) +- Don't ignore diagnostics coverage ([@epenet] - [#86440]) +- Add remove entity in group.set service ([@gjohansson-ST] - [#79401]) +- Update Union typing (6) [Py310] ([@cdce8p] - [#86454]) +- Fix grammar in some hassio docstrings ([@emontnemery] - [#86458]) +- Always add `code` to template vars MQTT lock command template ([@jbouwh] - [#86460]) +- Drop unused dtype ([@cdce8p] - [#86459]) +- Update stream timestamp discontinuity check with audio ([@uvjustin] - [#86446]) +- Add Thread integration ([@emontnemery] - [#86283]) +- Rename fake kitchen_sink demo locks to more common name ([@jbouwh] - [#86452]) +- Prevent wilcard coverage ignore if tests exist ([@epenet] - [#86455]) +- Rename logbook constant ([@epenet] - [#86464]) +- Add gates to LD2410BLE ([@930913] - [#86412]) +- Add matter diagnostics ([@MartinHjelmare] - [#86091]) +- Add Shelly Pro 3EM sensors ([@thecode] - [#86403]) +- Small adjustments to API docs config ([@frenck] - [#86474]) +- Fix Shelly RPC key instances handling ([@thecode] - [#86479]) +- Update esphome bluetooth client for python 3.11 ([@bdraco] - [#86480]) +- Bump yalexs_ble to 1.12.8 ([@bdraco] - [#86481]) +- Add 3 new fields to LaCrosse View ([@IceBotYT] - [#86356]) +- Set correct step on nibe number entity ([@elupus] - [#86492]) +- Add Powerwall off grid switch ([@daniel-simpson] - [#86357]) +- Bump aioshelly to 5.3.0 ([@thecode] - [#86493]) +- Use intent responses from home-assistant-intents ([@synesthesiam] - [#86484]) +- Enable strict typing for the otbr integration ([@emontnemery] - [#86473]) +- Add authentication to SFR Box ([@epenet] - [#85757]) +- Add missing config flow abort strings ([@scop] - [#86180]) +- Bump aio_geojson_geonetnz_quakes to 0.15 ([@exxamalte] - [#86505]) +- Bump aio_geojson_geonetnz_volcano to 0.8 ([@exxamalte] - [#86507]) +- Update geniushub-client to 0.7.0 ([@wibbit] - [#85058]) +- Remove redundant label for MQTT CA verification selector ([@jbouwh] - [#86236]) +- Update debugpy to 1.6.6 ([@frenck] - [#86509]) +- Update spotipy to 2.22.1 ([@frenck] - [#86510]) +- Add reauth to SFR Box ([@epenet] - [#86511]) +- Fix CI, missing import in MQTT ([@frenck] - [#86517]) +- Support playback of channel preset in philips_js ([@elupus] - [#86491]) +- Bump sfrbox-api to 0.0.5 ([@epenet] - [#86512]) +- Introduce ruff (eventually replacing autoflake, pyupgrade, flake8) ([@akx] - [#86224]) +- Add translations for shelly ble scanner options in option flow ([@jbouwh] - [#86218]) +- Replace abodepy library with jaraco.abode to enable new Abode devices ([@tradel] - [#85474]) +- Add translation support for utility_meter type in config flow ([@jbouwh] - [#86220]) +- Add translation support for trafikverket_ferry weekday setting in option flow ([@jbouwh] - [#86219]) +- Update pre-commit to 3.0.0 ([@frenck] - [#86518]) +- Add translations for type select selector min_max config and option flow ([@jbouwh] - [#86213]) +- Add translation support for select selectors of integration `integration` config flow ([@jbouwh] - [#86212]) +- Add translation support for select selectors of derivative config and option flow ([@jbouwh] - [#86190]) +- Update Ruff to 0.0.231, enable D401 ([@akx] - [#86520]) +- Bump devolo_plc_api to 1.1.0 ([@Shutgun] - [#86516]) +- Add scrape to strict-typing ([@epenet] - [#86515]) +- Add reboot button to SFRBox ([@epenet] - [#86514]) +- Bump pymodbus to v3.1.1 ([@janiversen] - [#86513]) +- Add available to LiteJet ([@joncar] - [#86506]) +- Enable T20 (flake8-print) to ban use of print statements ([@frenck] - [#86525]) +- Add `lacrosse` to strict-typing ([@cdce8p] - [#86527]) +- Add browse media and play media support in Bravia TV ([@Drafteed] - [#85288]) +- Fix wrong notification sound name in LaMetric ([@mythicaleinhorn] - [#86483]) +- Replace `None` constant [ps4] ([@cdce8p] - [#86541]) +- Replace `None` constants [minecraft_server] ([@cdce8p] - [#86540]) +- Improve `ring` typing ([@cdce8p] - [#86539]) +- Remove unused integration constants ([@cdce8p] - [#86542]) +- Improve `rflink` typing ([@cdce8p] - [#86538]) +- Improve `cast` typing ([@cdce8p] - [#86536]) +- Bump aioecowitt 2023.01.0 ([@pvizeli] - [#86531]) +- Improve `bosch_shc` typing ([@cdce8p] - [#86535]) +- Add additional property media_channel to media_player in squeezebox component ([@niklasdoerfler] - [#86402]) +- Google Assistant SDK: support audio response playback ([@tronikos] - [#85989]) +- Remove files with coverage > 97% from ignore list ([@epenet] - [#86466]) +- Fix Shelly sleeping Gen2 - update data upon initialize ([@thecode] - [#86544]) +- Google Assistant SDK: Allow multiple commands in the same conversation context ([@tronikos] - [#85423]) +- Improve `google_assistant` typing ([@cdce8p] - [#86537]) +- Store Shelly climate `last_target_temp` value in restore extra data ([@bieniu] - [#86482]) +- Bump python-matter-server to 2.0.0 ([@MartinHjelmare] - [#86470]) +- Re-enable multi-PAN ([@puddly] - [#86533]) +- Add `rss_feed_template` to strict-typing ([@cdce8p] - [#86528]) +- Add events for xiaomi-ble ([@Ernst79] - [#85139]) +- Add sensor to group ([@gjohansson-ST] - [#83186]) +- Migrate ambient_station to use async_forward_entry_setups ([@bdraco] - [#86555]) +- Migrate anthemav to async_forward_entry_setups ([@bdraco] - [#86557]) +- Migrate fjaraskupan to use async_forward_entry_setups ([@bdraco] - [#86560]) +- Migrate google_assistant to use async_forward_entry_setups ([@bdraco] - [#86561]) +- Add rainbird rain delay number entity, deprecating the sensor and service ([@allenporter] - [#86208]) +- Migrate shelly to use async_forward_entry_setups ([@bdraco] - [#86554]) +- Migrate NextDNS to use `async_forward_entry_setups` ([@bieniu] - [#86567]) +- ReadYourMeter Pro integration ([@OnFreund] - [#85986]) +- Migrate life360 to use async_forward_entry_setups ([@bdraco] - [#86571]) +- Migrate steam_online to use async_forward_entry_setups ([@bdraco] - [#86578]) +- Migrate soundtouch to use async_forward_entry_setups ([@bdraco] - [#86577]) +- Ensure platform setup is awaited in zwave_me ([@bdraco] - [#86581]) +- Migrate legacy nest to use async_forward_entry_setups ([@bdraco] - [#86573]) +- Conversation cleanup ([@balloob] - [#86592]) +- Bump aio_geojson_nsw_rfs_incidents to 0.6 ([@exxamalte] - [#86583]) +- Bump google-nest-sdm to 2.2.4 ([@allenporter] - [#86595]) +- Allow customizing sensor state precision ([@emontnemery] - [#86074]) +- Bump bthome-ble to 2.5.1 ([@Ernst79] - [#86584]) +- Migrate Shelly to the new entity naming style ([@bieniu] - [#86574]) +- Migrate escea to use async_forward_entry_setups ([@bdraco] - [#86559]) +- Migrate heos to use async_forward_entry_setups ([@bdraco] - [#86562]) +- Migrate homematicip_cloud to use async_forward_entry_setups ([@bdraco] - [#86563]) +- Migrate cast to use async_forward_entry_setups ([@bdraco] - [#86558]) +- Migrate konnected to use async_forward_entry_setups ([@bdraco] - [#86565]) +- Migrate Landis+Gyr to use async_forward_entry_setups ([@bdraco] - [#86569]) +- Migrate lg_soundbar to use async_forward_entry_setups ([@bdraco] - [#86570]) +- Migrate melnor to use async_forward_entry_setups ([@bdraco] - [#86572]) +- Migrate tomorrowio to use async_forward_entry_setups ([@bdraco] - [#86579]) +- Migrate totalconnect to use async_forward_entry_setups ([@bdraco] - [#86580]) +- Calculate data using all sections for here_travel_time ([@eifinger] - [#86576]) +- Address late review in SFRBox ([@epenet] - [#86604]) +- Mock async_setup_entry in SamsungTV tests ([@epenet] - [#86601]) +- Bump aio_geojson_usgs_earthquakes to 0.2 ([@exxamalte] - [#86598]) +- Misc typing improvements ([@cdce8p] - [#86550]) +- Add issue to ESPHome deprecating api password ([@jesserockz] - [#86606]) +- Drop IoTaWatt Accumulated sensors ([@agners] - [#86611]) +- Migrate samsungtv to use async_forward_entry_setups ([@bdraco] - [#86575]) +- Fix matter clusters BasicInformation ([@MartinHjelmare] - [#86615]) +- Bump screenlogicpy to v0.6.4 ([@dieselrabbit] - [#86603]) +- Include all light circuit functions ([@dieselrabbit] - [#86608]) +- Bump httpx to 0.23.3 ([@exxamalte] - [#86614]) +- Allow a temperature sensor to be in K ([@emontnemery] - [#86073]) +- Add a `contains` jinja filter and test ([@Vaarlion] - [#86390]) +- Bump zha-quirks to 0.0.91 ([@dmulcahey] - [#86590]) +- Remove unnecessary ZHA AnalogInput sensors for Xiaomi plugs ([@TheJulianJES] - [#86261]) +- Add group support for ZHA ExecuteIfOff lights ([@TheJulianJES] - [#86465]) +- Remove Almond integration ([@frenck] - [#86616]) +- Add service to create calendar events ([@allenporter] - [#85805]) +- Migrate islamic_prayer_times to use async_forward_entry_setups ([@bdraco] - [#86564]) +- Change pressure unit of measurement from mbar to hPa in Netatmo integration ([@ljungqvist] - [#86210]) +- Add number platform support to Alexa ([@jbouwh] - [#86553]) +- Add Mega Joule as valid unit of energy ([@SgtBatten] - [#86055]) +- Remove ability to ignore coverage violations ([@epenet] - [#86597]) +- Increase async_setup_platforms deprecation logging to warning ([@bdraco] - [#86582]) +- Add diagnostics to LiteJet ([@joncar] - [#86600]) +- Bump python-matter-server 2.0.1 ([@MartinHjelmare] - [#86625]) +- Bump gassist-text to 0.0.10 ([@tronikos] - [#85782]) +- Add OpenAI integration ([@balloob] - [#86621]) +- Bump home-assistant-intents 2023.1.25 ([@synesthesiam] - [#86626]) +- Upgrade python-homewizard-energy to 1.8.0 ([@DCSBL] - [#86627]) +- Add Mopeka integration ([@bdraco] - [#86500]) +- Update frontend to 20230125.0 ([@bramkragten] - [#86628]) +- Print expected device class units in error log ([@elupus] - [#86125]) +- Fix oauth2 error ([@balloob] - [#86634]) +- Google Assistant: unset agent on unload ([@balloob] - [#86635]) +- Correct units on mopeka battery voltage sensor ([@bdraco] - [#86663]) +- Bump ZHA quirks lib ([@dmulcahey] - [#86669]) +- Add error handling for OpenAI ([@balloob] - [#86671]) +- Add device registration to the Nuki component ([@pree] - [#79806]) +- Migrate Nuki to new entity naming style ([@Nardol] - [#80021]) +- Update ndms2_client to 0.1.2 ([@foxel] - [#86624]) +- Add known webostv button to list ([@MHFDoge] - [#86674]) +- Make openai conversation prompt template more readable + test case ([@balloob] - [#86676]) +- Fix missing interface key in deCONZ logbook ([@Kane610] - [#86684]) +- Terminate strings at NUL when recording states and events ([@emontnemery] - [#86687]) +- Update Inovelli Blue Series switch support in ZHA ([@dmulcahey] - [#86711]) +- Bump python-matter-server to 2.0.2 ([@MartinHjelmare] - [#86712]) +- Remove gas device class from current sensor in dsmr_reader ([@frenck] - [#86725]) +- Fix state classes for duration device class ([@frenck] - [#86727]) +- Bump aioshelly to 5.3.1 ([@thecode] - [#86751]) +- OpenAI: Fix device without model ([@balloob] - [#86754]) +- Fix state class issues in Ambient PWS ([@bachya] - [#86758]) +- ESPHome update: Store reference to runtime data, not one of its values ([@balloob] - [#86762]) +- Remove esphome password from config flow data if not needed ([@jesserockz] - [#86763]) +- Chunk MariaDB and Postgresql data migration to avoid running out of buffer space ([@bdraco] - [#86680]) +- Fix Bluetooth discoveries missing between restarts ([@bdraco] - [#86808]) +- Bump plugwise to v0.27.4 ([@bouwew] - [#86812]) +- Fix D-Link config flow auth ([@tkdrob] - [#86824]) +- Check for missing ISY994 Z-Wave Properties ([@shbatm] - [#86829]) +- Update frontend to 20230128.0 ([@piitaya] - [#86838]) +- Fix D-Link attributes ([@tkdrob] - [#86842]) +- Improve websocket throughput of state changes ([@bdraco] - [#86855]) +- Fix tradfri air quality device class ([@MartinHjelmare] - [#86861]) +- Fix v32 schema migration when MySQL global.time_zone is configured with non-UTC timezone ([@bdraco] - [#86867]) +- Ignore empty payloads from DSMR Reader ([@Glodenox] - [#86841]) +- Address Google mail late review ([@tkdrob] - [#86847]) +- Cache the names and area lists in the default agent ([@bdraco] - [#86874]) +- Add Bosch SHC description and host form strings ([@tschamm] - [#86897]) +- Fix old indices not being removed in schema migration leading to slow MySQL queries ([@bdraco] - [#86917]) +- Drop minus sign on negative zero ([@emontnemery] - [#86939]) +- Fix MQTT discovery failing after bad config update ([@jbouwh] - [#86935]) +- Speed up live history setup if there is no pending data to commit ([@bdraco] - [#86942]) +- Fix ThreeWayHandle sensor in Overkiz integration ([@iMicknl] - [#86953]) +- Silence spurious warnings about removing ix_states_entity_id with newer installs ([@bdraco] - [#86961]) +- Fix some mobile app sensor registration/update issues ([@balloob] - [#86965]) +- Performance improvements for Assist ([@synesthesiam] - [#86966]) +- Use device area id in intent matching ([@synesthesiam] - [#86678]) +- Honeywell auto mode invalid attribute ([@mkmer] - [#86728]) +- ZHA config flow cleanup ([@puddly] - [#86742]) +- Catch AndroidTV exception on setup ([@ollo69] - [#86819]) +- Uses PolledSmartEnergySummation for ZLinky ([@piitaya] - [#86960]) +- Fix error on empty location in ssdp messages ([@StevenLooman] - [#86970]) +- Ensure a proper scope_id is given for IPv6 addresses when initializing the SSDP component ([@StevenLooman] - [#86975]) +- Allow any state class when using the precipitation device class ([@frenck] - [#86977]) +- Update frontend to 20230130.0 ([@bramkragten] - [#86978]) +- Bump ZHA dependencies ([@puddly] - [#86979]) +- Check dashboard when showing reauth form ([@balloob] - [#86980]) +- Bump pyisy to 3.1.11 ([@shbatm] - [#86981]) +- Prioritize entity names over area names in Assist matching ([@synesthesiam] - [#86982]) +- ESPHome discovered dashboard checks reauth flows ([@balloob] - [#86993]) +- ESPHome handle remove password and no encryption ([@balloob] - [#86995]) +- Bump env_canada to 0.5.27 ([@michaeldavie] - [#86996]) +- Bump ESPHome Dashboard API 1.2.3 ([@balloob] - [#86997]) +- Bump plugwise to v0.27.5 ([@bouwew] - [#87001]) +- Only report invalid numeric value for sensors once ([@frenck] - [#87010]) +- Honeywell Correct key name ([@mkmer] - [#87018]) +- Bump home-assistant-intents to 2023.1.31 ([@synesthesiam] - [#87034]) +- Add a repair issue when using MariaDB is affected by MDEV-25020 ([@bdraco] - [#87040]) +- Fix Yamaha MusicCast zone sleep select entity ([@frenck] - [#87041]) +- Improve JSON errors from HTTP view ([@balloob] - [#87042]) +- Ensure humidity is still exported to HomeKit when it is read-only ([@bdraco] - [#87051]) +- Trigger update of ESPHome update entity when static info updates ([@balloob] - [#87058]) +- Guard what version we can install ESPHome updates with ([@balloob] - [#87059]) +- Bump AIOAladdinConnect to 0.1.54 ([@mkmer] - [#86749]) +- Bump AIOAladdinConnect to 0.1.55 ([@mkmer] - [#87086]) +- Reduce chance of queue overflow during schema migration ([@bdraco] - [#87090]) +- Fix Assist skipping entities that are hidden or have entity category ([@balloob] - [#87096]) +- Update pyTibber to 0.26.12 ([@Danielhiversen] - [#87098]) +- Update frontend to 20230201.0 ([@bramkragten] - [#87099]) +- Bump isort from 5.11.4 to 5.12.0 ([@ludeeus] - [#86890]) + +[#72494]: https://github.com/home-assistant/core/pull/72494 +[#74623]: https://github.com/home-assistant/core/pull/74623 +[#74871]: https://github.com/home-assistant/core/pull/74871 +[#75205]: https://github.com/home-assistant/core/pull/75205 +[#75944]: https://github.com/home-assistant/core/pull/75944 +[#76415]: https://github.com/home-assistant/core/pull/76415 +[#76811]: https://github.com/home-assistant/core/pull/76811 +[#77091]: https://github.com/home-assistant/core/pull/77091 +[#77237]: https://github.com/home-assistant/core/pull/77237 +[#79062]: https://github.com/home-assistant/core/pull/79062 +[#79401]: https://github.com/home-assistant/core/pull/79401 +[#79412]: https://github.com/home-assistant/core/pull/79412 +[#79466]: https://github.com/home-assistant/core/pull/79466 +[#79481]: https://github.com/home-assistant/core/pull/79481 +[#79718]: https://github.com/home-assistant/core/pull/79718 +[#79742]: https://github.com/home-assistant/core/pull/79742 +[#79806]: https://github.com/home-assistant/core/pull/79806 +[#79816]: https://github.com/home-assistant/core/pull/79816 +[#80021]: https://github.com/home-assistant/core/pull/80021 +[#80694]: https://github.com/home-assistant/core/pull/80694 +[#81623]: https://github.com/home-assistant/core/pull/81623 +[#81979]: https://github.com/home-assistant/core/pull/81979 +[#82580]: https://github.com/home-assistant/core/pull/82580 +[#82602]: https://github.com/home-assistant/core/pull/82602 +[#82637]: https://github.com/home-assistant/core/pull/82637 +[#82743]: https://github.com/home-assistant/core/pull/82743 +[#82809]: https://github.com/home-assistant/core/pull/82809 +[#82984]: https://github.com/home-assistant/core/pull/82984 +[#83173]: https://github.com/home-assistant/core/pull/83173 +[#83186]: https://github.com/home-assistant/core/pull/83186 +[#83251]: https://github.com/home-assistant/core/pull/83251 +[#83265]: https://github.com/home-assistant/core/pull/83265 +[#83278]: https://github.com/home-assistant/core/pull/83278 +[#83515]: https://github.com/home-assistant/core/pull/83515 +[#83733]: https://github.com/home-assistant/core/pull/83733 +[#83755]: https://github.com/home-assistant/core/pull/83755 +[#83768]: https://github.com/home-assistant/core/pull/83768 +[#83883]: https://github.com/home-assistant/core/pull/83883 +[#83886]: https://github.com/home-assistant/core/pull/83886 +[#84019]: https://github.com/home-assistant/core/pull/84019 +[#84134]: https://github.com/home-assistant/core/pull/84134 +[#84201]: https://github.com/home-assistant/core/pull/84201 +[#84278]: https://github.com/home-assistant/core/pull/84278 +[#84314]: https://github.com/home-assistant/core/pull/84314 +[#84332]: https://github.com/home-assistant/core/pull/84332 +[#84402]: https://github.com/home-assistant/core/pull/84402 +[#84435]: https://github.com/home-assistant/core/pull/84435 +[#84441]: https://github.com/home-assistant/core/pull/84441 +[#84442]: https://github.com/home-assistant/core/pull/84442 +[#84447]: https://github.com/home-assistant/core/pull/84447 +[#84458]: https://github.com/home-assistant/core/pull/84458 +[#84477]: https://github.com/home-assistant/core/pull/84477 +[#84548]: https://github.com/home-assistant/core/pull/84548 +[#84592]: https://github.com/home-assistant/core/pull/84592 +[#84631]: https://github.com/home-assistant/core/pull/84631 +[#84640]: https://github.com/home-assistant/core/pull/84640 +[#84648]: https://github.com/home-assistant/core/pull/84648 +[#84652]: https://github.com/home-assistant/core/pull/84652 +[#84659]: https://github.com/home-assistant/core/pull/84659 +[#84660]: https://github.com/home-assistant/core/pull/84660 +[#84667]: https://github.com/home-assistant/core/pull/84667 +[#84668]: https://github.com/home-assistant/core/pull/84668 +[#84672]: https://github.com/home-assistant/core/pull/84672 +[#84678]: https://github.com/home-assistant/core/pull/84678 +[#84679]: https://github.com/home-assistant/core/pull/84679 +[#84681]: https://github.com/home-assistant/core/pull/84681 +[#84701]: https://github.com/home-assistant/core/pull/84701 +[#84707]: https://github.com/home-assistant/core/pull/84707 +[#84724]: https://github.com/home-assistant/core/pull/84724 +[#84730]: https://github.com/home-assistant/core/pull/84730 +[#84734]: https://github.com/home-assistant/core/pull/84734 +[#84735]: https://github.com/home-assistant/core/pull/84735 +[#84736]: https://github.com/home-assistant/core/pull/84736 +[#84737]: https://github.com/home-assistant/core/pull/84737 +[#84738]: https://github.com/home-assistant/core/pull/84738 +[#84739]: https://github.com/home-assistant/core/pull/84739 +[#84740]: https://github.com/home-assistant/core/pull/84740 +[#84741]: https://github.com/home-assistant/core/pull/84741 +[#84747]: https://github.com/home-assistant/core/pull/84747 +[#84761]: https://github.com/home-assistant/core/pull/84761 +[#84764]: https://github.com/home-assistant/core/pull/84764 +[#84768]: https://github.com/home-assistant/core/pull/84768 +[#84770]: https://github.com/home-assistant/core/pull/84770 +[#84772]: https://github.com/home-assistant/core/pull/84772 +[#84773]: https://github.com/home-assistant/core/pull/84773 +[#84777]: https://github.com/home-assistant/core/pull/84777 +[#84780]: https://github.com/home-assistant/core/pull/84780 +[#84783]: https://github.com/home-assistant/core/pull/84783 +[#84786]: https://github.com/home-assistant/core/pull/84786 +[#84803]: https://github.com/home-assistant/core/pull/84803 +[#84810]: https://github.com/home-assistant/core/pull/84810 +[#84811]: https://github.com/home-assistant/core/pull/84811 +[#84818]: https://github.com/home-assistant/core/pull/84818 +[#84829]: https://github.com/home-assistant/core/pull/84829 +[#84847]: https://github.com/home-assistant/core/pull/84847 +[#84853]: https://github.com/home-assistant/core/pull/84853 +[#84861]: https://github.com/home-assistant/core/pull/84861 +[#84870]: https://github.com/home-assistant/core/pull/84870 +[#84874]: https://github.com/home-assistant/core/pull/84874 +[#84878]: https://github.com/home-assistant/core/pull/84878 +[#84879]: https://github.com/home-assistant/core/pull/84879 +[#84881]: https://github.com/home-assistant/core/pull/84881 +[#84883]: https://github.com/home-assistant/core/pull/84883 +[#84885]: https://github.com/home-assistant/core/pull/84885 +[#84887]: https://github.com/home-assistant/core/pull/84887 +[#84889]: https://github.com/home-assistant/core/pull/84889 +[#84890]: https://github.com/home-assistant/core/pull/84890 +[#84891]: https://github.com/home-assistant/core/pull/84891 +[#84892]: https://github.com/home-assistant/core/pull/84892 +[#84894]: https://github.com/home-assistant/core/pull/84894 +[#84897]: https://github.com/home-assistant/core/pull/84897 +[#84898]: https://github.com/home-assistant/core/pull/84898 +[#84903]: https://github.com/home-assistant/core/pull/84903 +[#84905]: https://github.com/home-assistant/core/pull/84905 +[#84906]: https://github.com/home-assistant/core/pull/84906 +[#84908]: https://github.com/home-assistant/core/pull/84908 +[#84909]: https://github.com/home-assistant/core/pull/84909 +[#84916]: https://github.com/home-assistant/core/pull/84916 +[#84922]: https://github.com/home-assistant/core/pull/84922 +[#84927]: https://github.com/home-assistant/core/pull/84927 +[#84928]: https://github.com/home-assistant/core/pull/84928 +[#84933]: https://github.com/home-assistant/core/pull/84933 +[#84938]: https://github.com/home-assistant/core/pull/84938 +[#84944]: https://github.com/home-assistant/core/pull/84944 +[#84945]: https://github.com/home-assistant/core/pull/84945 +[#84946]: https://github.com/home-assistant/core/pull/84946 +[#84947]: https://github.com/home-assistant/core/pull/84947 +[#84950]: https://github.com/home-assistant/core/pull/84950 +[#84953]: https://github.com/home-assistant/core/pull/84953 +[#84962]: https://github.com/home-assistant/core/pull/84962 +[#84968]: https://github.com/home-assistant/core/pull/84968 +[#84972]: https://github.com/home-assistant/core/pull/84972 +[#84973]: https://github.com/home-assistant/core/pull/84973 +[#84974]: https://github.com/home-assistant/core/pull/84974 +[#84975]: https://github.com/home-assistant/core/pull/84975 +[#84977]: https://github.com/home-assistant/core/pull/84977 +[#84982]: https://github.com/home-assistant/core/pull/84982 +[#84986]: https://github.com/home-assistant/core/pull/84986 +[#84988]: https://github.com/home-assistant/core/pull/84988 +[#84990]: https://github.com/home-assistant/core/pull/84990 +[#84991]: https://github.com/home-assistant/core/pull/84991 +[#84992]: https://github.com/home-assistant/core/pull/84992 +[#84999]: https://github.com/home-assistant/core/pull/84999 +[#85001]: https://github.com/home-assistant/core/pull/85001 +[#85002]: https://github.com/home-assistant/core/pull/85002 +[#85006]: https://github.com/home-assistant/core/pull/85006 +[#85017]: https://github.com/home-assistant/core/pull/85017 +[#85018]: https://github.com/home-assistant/core/pull/85018 +[#85019]: https://github.com/home-assistant/core/pull/85019 +[#85020]: https://github.com/home-assistant/core/pull/85020 +[#85021]: https://github.com/home-assistant/core/pull/85021 +[#85022]: https://github.com/home-assistant/core/pull/85022 +[#85036]: https://github.com/home-assistant/core/pull/85036 +[#85037]: https://github.com/home-assistant/core/pull/85037 +[#85038]: https://github.com/home-assistant/core/pull/85038 +[#85039]: https://github.com/home-assistant/core/pull/85039 +[#85045]: https://github.com/home-assistant/core/pull/85045 +[#85046]: https://github.com/home-assistant/core/pull/85046 +[#85048]: https://github.com/home-assistant/core/pull/85048 +[#85049]: https://github.com/home-assistant/core/pull/85049 +[#85050]: https://github.com/home-assistant/core/pull/85050 +[#85051]: https://github.com/home-assistant/core/pull/85051 +[#85053]: https://github.com/home-assistant/core/pull/85053 +[#85054]: https://github.com/home-assistant/core/pull/85054 +[#85058]: https://github.com/home-assistant/core/pull/85058 +[#85059]: https://github.com/home-assistant/core/pull/85059 +[#85063]: https://github.com/home-assistant/core/pull/85063 +[#85064]: https://github.com/home-assistant/core/pull/85064 +[#85065]: https://github.com/home-assistant/core/pull/85065 +[#85066]: https://github.com/home-assistant/core/pull/85066 +[#85067]: https://github.com/home-assistant/core/pull/85067 +[#85068]: https://github.com/home-assistant/core/pull/85068 +[#85071]: https://github.com/home-assistant/core/pull/85071 +[#85074]: https://github.com/home-assistant/core/pull/85074 +[#85077]: https://github.com/home-assistant/core/pull/85077 +[#85083]: https://github.com/home-assistant/core/pull/85083 +[#85085]: https://github.com/home-assistant/core/pull/85085 +[#85095]: https://github.com/home-assistant/core/pull/85095 +[#85097]: https://github.com/home-assistant/core/pull/85097 +[#85103]: https://github.com/home-assistant/core/pull/85103 +[#85114]: https://github.com/home-assistant/core/pull/85114 +[#85127]: https://github.com/home-assistant/core/pull/85127 +[#85131]: https://github.com/home-assistant/core/pull/85131 +[#85135]: https://github.com/home-assistant/core/pull/85135 +[#85139]: https://github.com/home-assistant/core/pull/85139 +[#85148]: https://github.com/home-assistant/core/pull/85148 +[#85149]: https://github.com/home-assistant/core/pull/85149 +[#85150]: https://github.com/home-assistant/core/pull/85150 +[#85154]: https://github.com/home-assistant/core/pull/85154 +[#85156]: https://github.com/home-assistant/core/pull/85156 +[#85164]: https://github.com/home-assistant/core/pull/85164 +[#85165]: https://github.com/home-assistant/core/pull/85165 +[#85166]: https://github.com/home-assistant/core/pull/85166 +[#85176]: https://github.com/home-assistant/core/pull/85176 +[#85181]: https://github.com/home-assistant/core/pull/85181 +[#85184]: https://github.com/home-assistant/core/pull/85184 +[#85185]: https://github.com/home-assistant/core/pull/85185 +[#85195]: https://github.com/home-assistant/core/pull/85195 +[#85197]: https://github.com/home-assistant/core/pull/85197 +[#85198]: https://github.com/home-assistant/core/pull/85198 +[#85209]: https://github.com/home-assistant/core/pull/85209 +[#85213]: https://github.com/home-assistant/core/pull/85213 +[#85214]: https://github.com/home-assistant/core/pull/85214 +[#85221]: https://github.com/home-assistant/core/pull/85221 +[#85224]: https://github.com/home-assistant/core/pull/85224 +[#85229]: https://github.com/home-assistant/core/pull/85229 +[#85231]: https://github.com/home-assistant/core/pull/85231 +[#85235]: https://github.com/home-assistant/core/pull/85235 +[#85237]: https://github.com/home-assistant/core/pull/85237 +[#85245]: https://github.com/home-assistant/core/pull/85245 +[#85251]: https://github.com/home-assistant/core/pull/85251 +[#85260]: https://github.com/home-assistant/core/pull/85260 +[#85264]: https://github.com/home-assistant/core/pull/85264 +[#85270]: https://github.com/home-assistant/core/pull/85270 +[#85271]: https://github.com/home-assistant/core/pull/85271 +[#85274]: https://github.com/home-assistant/core/pull/85274 +[#85276]: https://github.com/home-assistant/core/pull/85276 +[#85278]: https://github.com/home-assistant/core/pull/85278 +[#85281]: https://github.com/home-assistant/core/pull/85281 +[#85283]: https://github.com/home-assistant/core/pull/85283 +[#85285]: https://github.com/home-assistant/core/pull/85285 +[#85288]: https://github.com/home-assistant/core/pull/85288 +[#85292]: https://github.com/home-assistant/core/pull/85292 +[#85297]: https://github.com/home-assistant/core/pull/85297 +[#85298]: https://github.com/home-assistant/core/pull/85298 +[#85299]: https://github.com/home-assistant/core/pull/85299 +[#85302]: https://github.com/home-assistant/core/pull/85302 +[#85303]: https://github.com/home-assistant/core/pull/85303 +[#85315]: https://github.com/home-assistant/core/pull/85315 +[#85326]: https://github.com/home-assistant/core/pull/85326 +[#85328]: https://github.com/home-assistant/core/pull/85328 +[#85329]: https://github.com/home-assistant/core/pull/85329 +[#85330]: https://github.com/home-assistant/core/pull/85330 +[#85331]: https://github.com/home-assistant/core/pull/85331 +[#85332]: https://github.com/home-assistant/core/pull/85332 +[#85333]: https://github.com/home-assistant/core/pull/85333 +[#85335]: https://github.com/home-assistant/core/pull/85335 +[#85337]: https://github.com/home-assistant/core/pull/85337 +[#85341]: https://github.com/home-assistant/core/pull/85341 +[#85345]: https://github.com/home-assistant/core/pull/85345 +[#85347]: https://github.com/home-assistant/core/pull/85347 +[#85352]: https://github.com/home-assistant/core/pull/85352 +[#85354]: https://github.com/home-assistant/core/pull/85354 +[#85356]: https://github.com/home-assistant/core/pull/85356 +[#85358]: https://github.com/home-assistant/core/pull/85358 +[#85367]: https://github.com/home-assistant/core/pull/85367 +[#85368]: https://github.com/home-assistant/core/pull/85368 +[#85371]: https://github.com/home-assistant/core/pull/85371 +[#85378]: https://github.com/home-assistant/core/pull/85378 +[#85380]: https://github.com/home-assistant/core/pull/85380 +[#85387]: https://github.com/home-assistant/core/pull/85387 +[#85390]: https://github.com/home-assistant/core/pull/85390 +[#85392]: https://github.com/home-assistant/core/pull/85392 +[#85396]: https://github.com/home-assistant/core/pull/85396 +[#85397]: https://github.com/home-assistant/core/pull/85397 +[#85399]: https://github.com/home-assistant/core/pull/85399 +[#85404]: https://github.com/home-assistant/core/pull/85404 +[#85406]: https://github.com/home-assistant/core/pull/85406 +[#85407]: https://github.com/home-assistant/core/pull/85407 +[#85408]: https://github.com/home-assistant/core/pull/85408 +[#85409]: https://github.com/home-assistant/core/pull/85409 +[#85411]: https://github.com/home-assistant/core/pull/85411 +[#85419]: https://github.com/home-assistant/core/pull/85419 +[#85421]: https://github.com/home-assistant/core/pull/85421 +[#85423]: https://github.com/home-assistant/core/pull/85423 +[#85424]: https://github.com/home-assistant/core/pull/85424 +[#85426]: https://github.com/home-assistant/core/pull/85426 +[#85429]: https://github.com/home-assistant/core/pull/85429 +[#85431]: https://github.com/home-assistant/core/pull/85431 +[#85433]: https://github.com/home-assistant/core/pull/85433 +[#85441]: https://github.com/home-assistant/core/pull/85441 +[#85448]: https://github.com/home-assistant/core/pull/85448 +[#85449]: https://github.com/home-assistant/core/pull/85449 +[#85450]: https://github.com/home-assistant/core/pull/85450 +[#85451]: https://github.com/home-assistant/core/pull/85451 +[#85452]: https://github.com/home-assistant/core/pull/85452 +[#85456]: https://github.com/home-assistant/core/pull/85456 +[#85460]: https://github.com/home-assistant/core/pull/85460 +[#85461]: https://github.com/home-assistant/core/pull/85461 +[#85463]: https://github.com/home-assistant/core/pull/85463 +[#85466]: https://github.com/home-assistant/core/pull/85466 +[#85468]: https://github.com/home-assistant/core/pull/85468 +[#85469]: https://github.com/home-assistant/core/pull/85469 +[#85472]: https://github.com/home-assistant/core/pull/85472 +[#85473]: https://github.com/home-assistant/core/pull/85473 +[#85474]: https://github.com/home-assistant/core/pull/85474 +[#85476]: https://github.com/home-assistant/core/pull/85476 +[#85486]: https://github.com/home-assistant/core/pull/85486 +[#85488]: https://github.com/home-assistant/core/pull/85488 +[#85489]: https://github.com/home-assistant/core/pull/85489 +[#85493]: https://github.com/home-assistant/core/pull/85493 +[#85495]: https://github.com/home-assistant/core/pull/85495 +[#85497]: https://github.com/home-assistant/core/pull/85497 +[#85499]: https://github.com/home-assistant/core/pull/85499 +[#85500]: https://github.com/home-assistant/core/pull/85500 +[#85504]: https://github.com/home-assistant/core/pull/85504 +[#85506]: https://github.com/home-assistant/core/pull/85506 +[#85508]: https://github.com/home-assistant/core/pull/85508 +[#85509]: https://github.com/home-assistant/core/pull/85509 +[#85511]: https://github.com/home-assistant/core/pull/85511 +[#85513]: https://github.com/home-assistant/core/pull/85513 +[#85521]: https://github.com/home-assistant/core/pull/85521 +[#85522]: https://github.com/home-assistant/core/pull/85522 +[#85523]: https://github.com/home-assistant/core/pull/85523 +[#85524]: https://github.com/home-assistant/core/pull/85524 +[#85525]: https://github.com/home-assistant/core/pull/85525 +[#85526]: https://github.com/home-assistant/core/pull/85526 +[#85527]: https://github.com/home-assistant/core/pull/85527 +[#85531]: https://github.com/home-assistant/core/pull/85531 +[#85536]: https://github.com/home-assistant/core/pull/85536 +[#85538]: https://github.com/home-assistant/core/pull/85538 +[#85539]: https://github.com/home-assistant/core/pull/85539 +[#85540]: https://github.com/home-assistant/core/pull/85540 +[#85541]: https://github.com/home-assistant/core/pull/85541 +[#85544]: https://github.com/home-assistant/core/pull/85544 +[#85555]: https://github.com/home-assistant/core/pull/85555 +[#85558]: https://github.com/home-assistant/core/pull/85558 +[#85560]: https://github.com/home-assistant/core/pull/85560 +[#85561]: https://github.com/home-assistant/core/pull/85561 +[#85564]: https://github.com/home-assistant/core/pull/85564 +[#85565]: https://github.com/home-assistant/core/pull/85565 +[#85567]: https://github.com/home-assistant/core/pull/85567 +[#85568]: https://github.com/home-assistant/core/pull/85568 +[#85574]: https://github.com/home-assistant/core/pull/85574 +[#85576]: https://github.com/home-assistant/core/pull/85576 +[#85577]: https://github.com/home-assistant/core/pull/85577 +[#85584]: https://github.com/home-assistant/core/pull/85584 +[#85585]: https://github.com/home-assistant/core/pull/85585 +[#85589]: https://github.com/home-assistant/core/pull/85589 +[#85592]: https://github.com/home-assistant/core/pull/85592 +[#85595]: https://github.com/home-assistant/core/pull/85595 +[#85597]: https://github.com/home-assistant/core/pull/85597 +[#85598]: https://github.com/home-assistant/core/pull/85598 +[#85611]: https://github.com/home-assistant/core/pull/85611 +[#85612]: https://github.com/home-assistant/core/pull/85612 +[#85614]: https://github.com/home-assistant/core/pull/85614 +[#85615]: https://github.com/home-assistant/core/pull/85615 +[#85616]: https://github.com/home-assistant/core/pull/85616 +[#85617]: https://github.com/home-assistant/core/pull/85617 +[#85618]: https://github.com/home-assistant/core/pull/85618 +[#85619]: https://github.com/home-assistant/core/pull/85619 +[#85620]: https://github.com/home-assistant/core/pull/85620 +[#85621]: https://github.com/home-assistant/core/pull/85621 +[#85624]: https://github.com/home-assistant/core/pull/85624 +[#85627]: https://github.com/home-assistant/core/pull/85627 +[#85630]: https://github.com/home-assistant/core/pull/85630 +[#85632]: https://github.com/home-assistant/core/pull/85632 +[#85636]: https://github.com/home-assistant/core/pull/85636 +[#85641]: https://github.com/home-assistant/core/pull/85641 +[#85644]: https://github.com/home-assistant/core/pull/85644 +[#85648]: https://github.com/home-assistant/core/pull/85648 +[#85651]: https://github.com/home-assistant/core/pull/85651 +[#85652]: https://github.com/home-assistant/core/pull/85652 +[#85654]: https://github.com/home-assistant/core/pull/85654 +[#85655]: https://github.com/home-assistant/core/pull/85655 +[#85657]: https://github.com/home-assistant/core/pull/85657 +[#85658]: https://github.com/home-assistant/core/pull/85658 +[#85661]: https://github.com/home-assistant/core/pull/85661 +[#85662]: https://github.com/home-assistant/core/pull/85662 +[#85667]: https://github.com/home-assistant/core/pull/85667 +[#85670]: https://github.com/home-assistant/core/pull/85670 +[#85671]: https://github.com/home-assistant/core/pull/85671 +[#85673]: https://github.com/home-assistant/core/pull/85673 +[#85676]: https://github.com/home-assistant/core/pull/85676 +[#85677]: https://github.com/home-assistant/core/pull/85677 +[#85679]: https://github.com/home-assistant/core/pull/85679 +[#85680]: https://github.com/home-assistant/core/pull/85680 +[#85682]: https://github.com/home-assistant/core/pull/85682 +[#85688]: https://github.com/home-assistant/core/pull/85688 +[#85690]: https://github.com/home-assistant/core/pull/85690 +[#85694]: https://github.com/home-assistant/core/pull/85694 +[#85697]: https://github.com/home-assistant/core/pull/85697 +[#85700]: https://github.com/home-assistant/core/pull/85700 +[#85701]: https://github.com/home-assistant/core/pull/85701 +[#85703]: https://github.com/home-assistant/core/pull/85703 +[#85704]: https://github.com/home-assistant/core/pull/85704 +[#85709]: https://github.com/home-assistant/core/pull/85709 +[#85712]: https://github.com/home-assistant/core/pull/85712 +[#85717]: https://github.com/home-assistant/core/pull/85717 +[#85720]: https://github.com/home-assistant/core/pull/85720 +[#85723]: https://github.com/home-assistant/core/pull/85723 +[#85725]: https://github.com/home-assistant/core/pull/85725 +[#85729]: https://github.com/home-assistant/core/pull/85729 +[#85730]: https://github.com/home-assistant/core/pull/85730 +[#85732]: https://github.com/home-assistant/core/pull/85732 +[#85740]: https://github.com/home-assistant/core/pull/85740 +[#85741]: https://github.com/home-assistant/core/pull/85741 +[#85742]: https://github.com/home-assistant/core/pull/85742 +[#85744]: https://github.com/home-assistant/core/pull/85744 +[#85745]: https://github.com/home-assistant/core/pull/85745 +[#85746]: https://github.com/home-assistant/core/pull/85746 +[#85748]: https://github.com/home-assistant/core/pull/85748 +[#85752]: https://github.com/home-assistant/core/pull/85752 +[#85753]: https://github.com/home-assistant/core/pull/85753 +[#85757]: https://github.com/home-assistant/core/pull/85757 +[#85760]: https://github.com/home-assistant/core/pull/85760 +[#85762]: https://github.com/home-assistant/core/pull/85762 +[#85763]: https://github.com/home-assistant/core/pull/85763 +[#85766]: https://github.com/home-assistant/core/pull/85766 +[#85770]: https://github.com/home-assistant/core/pull/85770 +[#85771]: https://github.com/home-assistant/core/pull/85771 +[#85772]: https://github.com/home-assistant/core/pull/85772 +[#85774]: https://github.com/home-assistant/core/pull/85774 +[#85775]: https://github.com/home-assistant/core/pull/85775 +[#85779]: https://github.com/home-assistant/core/pull/85779 +[#85782]: https://github.com/home-assistant/core/pull/85782 +[#85784]: https://github.com/home-assistant/core/pull/85784 +[#85788]: https://github.com/home-assistant/core/pull/85788 +[#85790]: https://github.com/home-assistant/core/pull/85790 +[#85797]: https://github.com/home-assistant/core/pull/85797 +[#85798]: https://github.com/home-assistant/core/pull/85798 +[#85799]: https://github.com/home-assistant/core/pull/85799 +[#85800]: https://github.com/home-assistant/core/pull/85800 +[#85801]: https://github.com/home-assistant/core/pull/85801 +[#85805]: https://github.com/home-assistant/core/pull/85805 +[#85806]: https://github.com/home-assistant/core/pull/85806 +[#85809]: https://github.com/home-assistant/core/pull/85809 +[#85812]: https://github.com/home-assistant/core/pull/85812 +[#85817]: https://github.com/home-assistant/core/pull/85817 +[#85818]: https://github.com/home-assistant/core/pull/85818 +[#85825]: https://github.com/home-assistant/core/pull/85825 +[#85830]: https://github.com/home-assistant/core/pull/85830 +[#85840]: https://github.com/home-assistant/core/pull/85840 +[#85842]: https://github.com/home-assistant/core/pull/85842 +[#85846]: https://github.com/home-assistant/core/pull/85846 +[#85848]: https://github.com/home-assistant/core/pull/85848 +[#85849]: https://github.com/home-assistant/core/pull/85849 +[#85851]: https://github.com/home-assistant/core/pull/85851 +[#85860]: https://github.com/home-assistant/core/pull/85860 +[#85863]: https://github.com/home-assistant/core/pull/85863 +[#85865]: https://github.com/home-assistant/core/pull/85865 +[#85866]: https://github.com/home-assistant/core/pull/85866 +[#85867]: https://github.com/home-assistant/core/pull/85867 +[#85871]: https://github.com/home-assistant/core/pull/85871 +[#85877]: https://github.com/home-assistant/core/pull/85877 +[#85880]: https://github.com/home-assistant/core/pull/85880 +[#85882]: https://github.com/home-assistant/core/pull/85882 +[#85884]: https://github.com/home-assistant/core/pull/85884 +[#85892]: https://github.com/home-assistant/core/pull/85892 +[#85894]: https://github.com/home-assistant/core/pull/85894 +[#85895]: https://github.com/home-assistant/core/pull/85895 +[#85900]: https://github.com/home-assistant/core/pull/85900 +[#85904]: https://github.com/home-assistant/core/pull/85904 +[#85907]: https://github.com/home-assistant/core/pull/85907 +[#85920]: https://github.com/home-assistant/core/pull/85920 +[#85923]: https://github.com/home-assistant/core/pull/85923 +[#85926]: https://github.com/home-assistant/core/pull/85926 +[#85927]: https://github.com/home-assistant/core/pull/85927 +[#85928]: https://github.com/home-assistant/core/pull/85928 +[#85931]: https://github.com/home-assistant/core/pull/85931 +[#85932]: https://github.com/home-assistant/core/pull/85932 +[#85933]: https://github.com/home-assistant/core/pull/85933 +[#85934]: https://github.com/home-assistant/core/pull/85934 +[#85935]: https://github.com/home-assistant/core/pull/85935 +[#85936]: https://github.com/home-assistant/core/pull/85936 +[#85937]: https://github.com/home-assistant/core/pull/85937 +[#85938]: https://github.com/home-assistant/core/pull/85938 +[#85942]: https://github.com/home-assistant/core/pull/85942 +[#85944]: https://github.com/home-assistant/core/pull/85944 +[#85953]: https://github.com/home-assistant/core/pull/85953 +[#85955]: https://github.com/home-assistant/core/pull/85955 +[#85957]: https://github.com/home-assistant/core/pull/85957 +[#85960]: https://github.com/home-assistant/core/pull/85960 +[#85961]: https://github.com/home-assistant/core/pull/85961 +[#85963]: https://github.com/home-assistant/core/pull/85963 +[#85966]: https://github.com/home-assistant/core/pull/85966 +[#85972]: https://github.com/home-assistant/core/pull/85972 +[#85973]: https://github.com/home-assistant/core/pull/85973 +[#85974]: https://github.com/home-assistant/core/pull/85974 +[#85975]: https://github.com/home-assistant/core/pull/85975 +[#85976]: https://github.com/home-assistant/core/pull/85976 +[#85981]: https://github.com/home-assistant/core/pull/85981 +[#85983]: https://github.com/home-assistant/core/pull/85983 +[#85986]: https://github.com/home-assistant/core/pull/85986 +[#85989]: https://github.com/home-assistant/core/pull/85989 +[#85990]: https://github.com/home-assistant/core/pull/85990 +[#85991]: https://github.com/home-assistant/core/pull/85991 +[#85997]: https://github.com/home-assistant/core/pull/85997 +[#85999]: https://github.com/home-assistant/core/pull/85999 +[#86001]: https://github.com/home-assistant/core/pull/86001 +[#86002]: https://github.com/home-assistant/core/pull/86002 +[#86004]: https://github.com/home-assistant/core/pull/86004 +[#86005]: https://github.com/home-assistant/core/pull/86005 +[#86006]: https://github.com/home-assistant/core/pull/86006 +[#86007]: https://github.com/home-assistant/core/pull/86007 +[#86008]: https://github.com/home-assistant/core/pull/86008 +[#86009]: https://github.com/home-assistant/core/pull/86009 +[#86010]: https://github.com/home-assistant/core/pull/86010 +[#86011]: https://github.com/home-assistant/core/pull/86011 +[#86013]: https://github.com/home-assistant/core/pull/86013 +[#86017]: https://github.com/home-assistant/core/pull/86017 +[#86019]: https://github.com/home-assistant/core/pull/86019 +[#86020]: https://github.com/home-assistant/core/pull/86020 +[#86022]: https://github.com/home-assistant/core/pull/86022 +[#86023]: https://github.com/home-assistant/core/pull/86023 +[#86024]: https://github.com/home-assistant/core/pull/86024 +[#86027]: https://github.com/home-assistant/core/pull/86027 +[#86030]: https://github.com/home-assistant/core/pull/86030 +[#86034]: https://github.com/home-assistant/core/pull/86034 +[#86037]: https://github.com/home-assistant/core/pull/86037 +[#86042]: https://github.com/home-assistant/core/pull/86042 +[#86043]: https://github.com/home-assistant/core/pull/86043 +[#86048]: https://github.com/home-assistant/core/pull/86048 +[#86049]: https://github.com/home-assistant/core/pull/86049 +[#86051]: https://github.com/home-assistant/core/pull/86051 +[#86055]: https://github.com/home-assistant/core/pull/86055 +[#86062]: https://github.com/home-assistant/core/pull/86062 +[#86065]: https://github.com/home-assistant/core/pull/86065 +[#86066]: https://github.com/home-assistant/core/pull/86066 +[#86070]: https://github.com/home-assistant/core/pull/86070 +[#86071]: https://github.com/home-assistant/core/pull/86071 +[#86072]: https://github.com/home-assistant/core/pull/86072 +[#86073]: https://github.com/home-assistant/core/pull/86073 +[#86074]: https://github.com/home-assistant/core/pull/86074 +[#86078]: https://github.com/home-assistant/core/pull/86078 +[#86079]: https://github.com/home-assistant/core/pull/86079 +[#86087]: https://github.com/home-assistant/core/pull/86087 +[#86088]: https://github.com/home-assistant/core/pull/86088 +[#86090]: https://github.com/home-assistant/core/pull/86090 +[#86091]: https://github.com/home-assistant/core/pull/86091 +[#86095]: https://github.com/home-assistant/core/pull/86095 +[#86097]: https://github.com/home-assistant/core/pull/86097 +[#86099]: https://github.com/home-assistant/core/pull/86099 +[#86102]: https://github.com/home-assistant/core/pull/86102 +[#86106]: https://github.com/home-assistant/core/pull/86106 +[#86107]: https://github.com/home-assistant/core/pull/86107 +[#86109]: https://github.com/home-assistant/core/pull/86109 +[#86113]: https://github.com/home-assistant/core/pull/86113 +[#86115]: https://github.com/home-assistant/core/pull/86115 +[#86121]: https://github.com/home-assistant/core/pull/86121 +[#86122]: https://github.com/home-assistant/core/pull/86122 +[#86125]: https://github.com/home-assistant/core/pull/86125 +[#86126]: https://github.com/home-assistant/core/pull/86126 +[#86127]: https://github.com/home-assistant/core/pull/86127 +[#86128]: https://github.com/home-assistant/core/pull/86128 +[#86129]: https://github.com/home-assistant/core/pull/86129 +[#86133]: https://github.com/home-assistant/core/pull/86133 +[#86141]: https://github.com/home-assistant/core/pull/86141 +[#86143]: https://github.com/home-assistant/core/pull/86143 +[#86146]: https://github.com/home-assistant/core/pull/86146 +[#86153]: https://github.com/home-assistant/core/pull/86153 +[#86154]: https://github.com/home-assistant/core/pull/86154 +[#86155]: https://github.com/home-assistant/core/pull/86155 +[#86158]: https://github.com/home-assistant/core/pull/86158 +[#86159]: https://github.com/home-assistant/core/pull/86159 +[#86160]: https://github.com/home-assistant/core/pull/86160 +[#86161]: https://github.com/home-assistant/core/pull/86161 +[#86164]: https://github.com/home-assistant/core/pull/86164 +[#86165]: https://github.com/home-assistant/core/pull/86165 +[#86166]: https://github.com/home-assistant/core/pull/86166 +[#86167]: https://github.com/home-assistant/core/pull/86167 +[#86168]: https://github.com/home-assistant/core/pull/86168 +[#86169]: https://github.com/home-assistant/core/pull/86169 +[#86173]: https://github.com/home-assistant/core/pull/86173 +[#86174]: https://github.com/home-assistant/core/pull/86174 +[#86175]: https://github.com/home-assistant/core/pull/86175 +[#86176]: https://github.com/home-assistant/core/pull/86176 +[#86178]: https://github.com/home-assistant/core/pull/86178 +[#86180]: https://github.com/home-assistant/core/pull/86180 +[#86184]: https://github.com/home-assistant/core/pull/86184 +[#86190]: https://github.com/home-assistant/core/pull/86190 +[#86192]: https://github.com/home-assistant/core/pull/86192 +[#86195]: https://github.com/home-assistant/core/pull/86195 +[#86202]: https://github.com/home-assistant/core/pull/86202 +[#86206]: https://github.com/home-assistant/core/pull/86206 +[#86208]: https://github.com/home-assistant/core/pull/86208 +[#86210]: https://github.com/home-assistant/core/pull/86210 +[#86211]: https://github.com/home-assistant/core/pull/86211 +[#86212]: https://github.com/home-assistant/core/pull/86212 +[#86213]: https://github.com/home-assistant/core/pull/86213 +[#86215]: https://github.com/home-assistant/core/pull/86215 +[#86216]: https://github.com/home-assistant/core/pull/86216 +[#86218]: https://github.com/home-assistant/core/pull/86218 +[#86219]: https://github.com/home-assistant/core/pull/86219 +[#86220]: https://github.com/home-assistant/core/pull/86220 +[#86224]: https://github.com/home-assistant/core/pull/86224 +[#86226]: https://github.com/home-assistant/core/pull/86226 +[#86227]: https://github.com/home-assistant/core/pull/86227 +[#86228]: https://github.com/home-assistant/core/pull/86228 +[#86236]: https://github.com/home-assistant/core/pull/86236 +[#86239]: https://github.com/home-assistant/core/pull/86239 +[#86249]: https://github.com/home-assistant/core/pull/86249 +[#86255]: https://github.com/home-assistant/core/pull/86255 +[#86258]: https://github.com/home-assistant/core/pull/86258 +[#86259]: https://github.com/home-assistant/core/pull/86259 +[#86260]: https://github.com/home-assistant/core/pull/86260 +[#86261]: https://github.com/home-assistant/core/pull/86261 +[#86262]: https://github.com/home-assistant/core/pull/86262 +[#86271]: https://github.com/home-assistant/core/pull/86271 +[#86274]: https://github.com/home-assistant/core/pull/86274 +[#86278]: https://github.com/home-assistant/core/pull/86278 +[#86282]: https://github.com/home-assistant/core/pull/86282 +[#86283]: https://github.com/home-assistant/core/pull/86283 +[#86284]: https://github.com/home-assistant/core/pull/86284 +[#86286]: https://github.com/home-assistant/core/pull/86286 +[#86289]: https://github.com/home-assistant/core/pull/86289 +[#86290]: https://github.com/home-assistant/core/pull/86290 +[#86292]: https://github.com/home-assistant/core/pull/86292 +[#86293]: https://github.com/home-assistant/core/pull/86293 +[#86297]: https://github.com/home-assistant/core/pull/86297 +[#86306]: https://github.com/home-assistant/core/pull/86306 +[#86312]: https://github.com/home-assistant/core/pull/86312 +[#86318]: https://github.com/home-assistant/core/pull/86318 +[#86320]: https://github.com/home-assistant/core/pull/86320 +[#86325]: https://github.com/home-assistant/core/pull/86325 +[#86326]: https://github.com/home-assistant/core/pull/86326 +[#86329]: https://github.com/home-assistant/core/pull/86329 +[#86331]: https://github.com/home-assistant/core/pull/86331 +[#86338]: https://github.com/home-assistant/core/pull/86338 +[#86340]: https://github.com/home-assistant/core/pull/86340 +[#86341]: https://github.com/home-assistant/core/pull/86341 +[#86349]: https://github.com/home-assistant/core/pull/86349 +[#86352]: https://github.com/home-assistant/core/pull/86352 +[#86354]: https://github.com/home-assistant/core/pull/86354 +[#86356]: https://github.com/home-assistant/core/pull/86356 +[#86357]: https://github.com/home-assistant/core/pull/86357 +[#86359]: https://github.com/home-assistant/core/pull/86359 +[#86360]: https://github.com/home-assistant/core/pull/86360 +[#86363]: https://github.com/home-assistant/core/pull/86363 +[#86364]: https://github.com/home-assistant/core/pull/86364 +[#86365]: https://github.com/home-assistant/core/pull/86365 +[#86371]: https://github.com/home-assistant/core/pull/86371 +[#86373]: https://github.com/home-assistant/core/pull/86373 +[#86374]: https://github.com/home-assistant/core/pull/86374 +[#86376]: https://github.com/home-assistant/core/pull/86376 +[#86381]: https://github.com/home-assistant/core/pull/86381 +[#86383]: https://github.com/home-assistant/core/pull/86383 +[#86390]: https://github.com/home-assistant/core/pull/86390 +[#86391]: https://github.com/home-assistant/core/pull/86391 +[#86396]: https://github.com/home-assistant/core/pull/86396 +[#86399]: https://github.com/home-assistant/core/pull/86399 +[#86402]: https://github.com/home-assistant/core/pull/86402 +[#86403]: https://github.com/home-assistant/core/pull/86403 +[#86404]: https://github.com/home-assistant/core/pull/86404 +[#86410]: https://github.com/home-assistant/core/pull/86410 +[#86412]: https://github.com/home-assistant/core/pull/86412 +[#86413]: https://github.com/home-assistant/core/pull/86413 +[#86414]: https://github.com/home-assistant/core/pull/86414 +[#86415]: https://github.com/home-assistant/core/pull/86415 +[#86416]: https://github.com/home-assistant/core/pull/86416 +[#86417]: https://github.com/home-assistant/core/pull/86417 +[#86419]: https://github.com/home-assistant/core/pull/86419 +[#86421]: https://github.com/home-assistant/core/pull/86421 +[#86424]: https://github.com/home-assistant/core/pull/86424 +[#86425]: https://github.com/home-assistant/core/pull/86425 +[#86426]: https://github.com/home-assistant/core/pull/86426 +[#86427]: https://github.com/home-assistant/core/pull/86427 +[#86428]: https://github.com/home-assistant/core/pull/86428 +[#86430]: https://github.com/home-assistant/core/pull/86430 +[#86434]: https://github.com/home-assistant/core/pull/86434 +[#86439]: https://github.com/home-assistant/core/pull/86439 +[#86440]: https://github.com/home-assistant/core/pull/86440 +[#86443]: https://github.com/home-assistant/core/pull/86443 +[#86446]: https://github.com/home-assistant/core/pull/86446 +[#86452]: https://github.com/home-assistant/core/pull/86452 +[#86453]: https://github.com/home-assistant/core/pull/86453 +[#86454]: https://github.com/home-assistant/core/pull/86454 +[#86455]: https://github.com/home-assistant/core/pull/86455 +[#86458]: https://github.com/home-assistant/core/pull/86458 +[#86459]: https://github.com/home-assistant/core/pull/86459 +[#86460]: https://github.com/home-assistant/core/pull/86460 +[#86464]: https://github.com/home-assistant/core/pull/86464 +[#86465]: https://github.com/home-assistant/core/pull/86465 +[#86466]: https://github.com/home-assistant/core/pull/86466 +[#86470]: https://github.com/home-assistant/core/pull/86470 +[#86473]: https://github.com/home-assistant/core/pull/86473 +[#86474]: https://github.com/home-assistant/core/pull/86474 +[#86479]: https://github.com/home-assistant/core/pull/86479 +[#86480]: https://github.com/home-assistant/core/pull/86480 +[#86481]: https://github.com/home-assistant/core/pull/86481 +[#86482]: https://github.com/home-assistant/core/pull/86482 +[#86483]: https://github.com/home-assistant/core/pull/86483 +[#86484]: https://github.com/home-assistant/core/pull/86484 +[#86491]: https://github.com/home-assistant/core/pull/86491 +[#86492]: https://github.com/home-assistant/core/pull/86492 +[#86493]: https://github.com/home-assistant/core/pull/86493 +[#86500]: https://github.com/home-assistant/core/pull/86500 +[#86505]: https://github.com/home-assistant/core/pull/86505 +[#86506]: https://github.com/home-assistant/core/pull/86506 +[#86507]: https://github.com/home-assistant/core/pull/86507 +[#86509]: https://github.com/home-assistant/core/pull/86509 +[#86510]: https://github.com/home-assistant/core/pull/86510 +[#86511]: https://github.com/home-assistant/core/pull/86511 +[#86512]: https://github.com/home-assistant/core/pull/86512 +[#86513]: https://github.com/home-assistant/core/pull/86513 +[#86514]: https://github.com/home-assistant/core/pull/86514 +[#86515]: https://github.com/home-assistant/core/pull/86515 +[#86516]: https://github.com/home-assistant/core/pull/86516 +[#86517]: https://github.com/home-assistant/core/pull/86517 +[#86518]: https://github.com/home-assistant/core/pull/86518 +[#86520]: https://github.com/home-assistant/core/pull/86520 +[#86525]: https://github.com/home-assistant/core/pull/86525 +[#86527]: https://github.com/home-assistant/core/pull/86527 +[#86528]: https://github.com/home-assistant/core/pull/86528 +[#86531]: https://github.com/home-assistant/core/pull/86531 +[#86533]: https://github.com/home-assistant/core/pull/86533 +[#86535]: https://github.com/home-assistant/core/pull/86535 +[#86536]: https://github.com/home-assistant/core/pull/86536 +[#86537]: https://github.com/home-assistant/core/pull/86537 +[#86538]: https://github.com/home-assistant/core/pull/86538 +[#86539]: https://github.com/home-assistant/core/pull/86539 +[#86540]: https://github.com/home-assistant/core/pull/86540 +[#86541]: https://github.com/home-assistant/core/pull/86541 +[#86542]: https://github.com/home-assistant/core/pull/86542 +[#86544]: https://github.com/home-assistant/core/pull/86544 +[#86550]: https://github.com/home-assistant/core/pull/86550 +[#86553]: https://github.com/home-assistant/core/pull/86553 +[#86554]: https://github.com/home-assistant/core/pull/86554 +[#86555]: https://github.com/home-assistant/core/pull/86555 +[#86557]: https://github.com/home-assistant/core/pull/86557 +[#86558]: https://github.com/home-assistant/core/pull/86558 +[#86559]: https://github.com/home-assistant/core/pull/86559 +[#86560]: https://github.com/home-assistant/core/pull/86560 +[#86561]: https://github.com/home-assistant/core/pull/86561 +[#86562]: https://github.com/home-assistant/core/pull/86562 +[#86563]: https://github.com/home-assistant/core/pull/86563 +[#86564]: https://github.com/home-assistant/core/pull/86564 +[#86565]: https://github.com/home-assistant/core/pull/86565 +[#86567]: https://github.com/home-assistant/core/pull/86567 +[#86569]: https://github.com/home-assistant/core/pull/86569 +[#86570]: https://github.com/home-assistant/core/pull/86570 +[#86571]: https://github.com/home-assistant/core/pull/86571 +[#86572]: https://github.com/home-assistant/core/pull/86572 +[#86573]: https://github.com/home-assistant/core/pull/86573 +[#86574]: https://github.com/home-assistant/core/pull/86574 +[#86575]: https://github.com/home-assistant/core/pull/86575 +[#86576]: https://github.com/home-assistant/core/pull/86576 +[#86577]: https://github.com/home-assistant/core/pull/86577 +[#86578]: https://github.com/home-assistant/core/pull/86578 +[#86579]: https://github.com/home-assistant/core/pull/86579 +[#86580]: https://github.com/home-assistant/core/pull/86580 +[#86581]: https://github.com/home-assistant/core/pull/86581 +[#86582]: https://github.com/home-assistant/core/pull/86582 +[#86583]: https://github.com/home-assistant/core/pull/86583 +[#86584]: https://github.com/home-assistant/core/pull/86584 +[#86590]: https://github.com/home-assistant/core/pull/86590 +[#86592]: https://github.com/home-assistant/core/pull/86592 +[#86595]: https://github.com/home-assistant/core/pull/86595 +[#86597]: https://github.com/home-assistant/core/pull/86597 +[#86598]: https://github.com/home-assistant/core/pull/86598 +[#86600]: https://github.com/home-assistant/core/pull/86600 +[#86601]: https://github.com/home-assistant/core/pull/86601 +[#86603]: https://github.com/home-assistant/core/pull/86603 +[#86604]: https://github.com/home-assistant/core/pull/86604 +[#86606]: https://github.com/home-assistant/core/pull/86606 +[#86608]: https://github.com/home-assistant/core/pull/86608 +[#86611]: https://github.com/home-assistant/core/pull/86611 +[#86614]: https://github.com/home-assistant/core/pull/86614 +[#86615]: https://github.com/home-assistant/core/pull/86615 +[#86616]: https://github.com/home-assistant/core/pull/86616 +[#86621]: https://github.com/home-assistant/core/pull/86621 +[#86624]: https://github.com/home-assistant/core/pull/86624 +[#86625]: https://github.com/home-assistant/core/pull/86625 +[#86626]: https://github.com/home-assistant/core/pull/86626 +[#86627]: https://github.com/home-assistant/core/pull/86627 +[#86628]: https://github.com/home-assistant/core/pull/86628 +[#86634]: https://github.com/home-assistant/core/pull/86634 +[#86635]: https://github.com/home-assistant/core/pull/86635 +[#86663]: https://github.com/home-assistant/core/pull/86663 +[#86669]: https://github.com/home-assistant/core/pull/86669 +[#86671]: https://github.com/home-assistant/core/pull/86671 +[#86674]: https://github.com/home-assistant/core/pull/86674 +[#86676]: https://github.com/home-assistant/core/pull/86676 +[#86678]: https://github.com/home-assistant/core/pull/86678 +[#86680]: https://github.com/home-assistant/core/pull/86680 +[#86684]: https://github.com/home-assistant/core/pull/86684 +[#86687]: https://github.com/home-assistant/core/pull/86687 +[#86711]: https://github.com/home-assistant/core/pull/86711 +[#86712]: https://github.com/home-assistant/core/pull/86712 +[#86725]: https://github.com/home-assistant/core/pull/86725 +[#86727]: https://github.com/home-assistant/core/pull/86727 +[#86728]: https://github.com/home-assistant/core/pull/86728 +[#86742]: https://github.com/home-assistant/core/pull/86742 +[#86749]: https://github.com/home-assistant/core/pull/86749 +[#86751]: https://github.com/home-assistant/core/pull/86751 +[#86754]: https://github.com/home-assistant/core/pull/86754 +[#86758]: https://github.com/home-assistant/core/pull/86758 +[#86762]: https://github.com/home-assistant/core/pull/86762 +[#86763]: https://github.com/home-assistant/core/pull/86763 +[#86808]: https://github.com/home-assistant/core/pull/86808 +[#86812]: https://github.com/home-assistant/core/pull/86812 +[#86819]: https://github.com/home-assistant/core/pull/86819 +[#86824]: https://github.com/home-assistant/core/pull/86824 +[#86829]: https://github.com/home-assistant/core/pull/86829 +[#86838]: https://github.com/home-assistant/core/pull/86838 +[#86841]: https://github.com/home-assistant/core/pull/86841 +[#86842]: https://github.com/home-assistant/core/pull/86842 +[#86847]: https://github.com/home-assistant/core/pull/86847 +[#86855]: https://github.com/home-assistant/core/pull/86855 +[#86861]: https://github.com/home-assistant/core/pull/86861 +[#86867]: https://github.com/home-assistant/core/pull/86867 +[#86874]: https://github.com/home-assistant/core/pull/86874 +[#86890]: https://github.com/home-assistant/core/pull/86890 +[#86897]: https://github.com/home-assistant/core/pull/86897 +[#86917]: https://github.com/home-assistant/core/pull/86917 +[#86935]: https://github.com/home-assistant/core/pull/86935 +[#86939]: https://github.com/home-assistant/core/pull/86939 +[#86942]: https://github.com/home-assistant/core/pull/86942 +[#86953]: https://github.com/home-assistant/core/pull/86953 +[#86960]: https://github.com/home-assistant/core/pull/86960 +[#86961]: https://github.com/home-assistant/core/pull/86961 +[#86965]: https://github.com/home-assistant/core/pull/86965 +[#86966]: https://github.com/home-assistant/core/pull/86966 +[#86970]: https://github.com/home-assistant/core/pull/86970 +[#86975]: https://github.com/home-assistant/core/pull/86975 +[#86977]: https://github.com/home-assistant/core/pull/86977 +[#86978]: https://github.com/home-assistant/core/pull/86978 +[#86979]: https://github.com/home-assistant/core/pull/86979 +[#86980]: https://github.com/home-assistant/core/pull/86980 +[#86981]: https://github.com/home-assistant/core/pull/86981 +[#86982]: https://github.com/home-assistant/core/pull/86982 +[#86993]: https://github.com/home-assistant/core/pull/86993 +[#86995]: https://github.com/home-assistant/core/pull/86995 +[#86996]: https://github.com/home-assistant/core/pull/86996 +[#86997]: https://github.com/home-assistant/core/pull/86997 +[#87001]: https://github.com/home-assistant/core/pull/87001 +[#87010]: https://github.com/home-assistant/core/pull/87010 +[#87018]: https://github.com/home-assistant/core/pull/87018 +[#87034]: https://github.com/home-assistant/core/pull/87034 +[#87040]: https://github.com/home-assistant/core/pull/87040 +[#87041]: https://github.com/home-assistant/core/pull/87041 +[#87042]: https://github.com/home-assistant/core/pull/87042 +[#87051]: https://github.com/home-assistant/core/pull/87051 +[#87058]: https://github.com/home-assistant/core/pull/87058 +[#87059]: https://github.com/home-assistant/core/pull/87059 +[#87086]: https://github.com/home-assistant/core/pull/87086 +[#87090]: https://github.com/home-assistant/core/pull/87090 +[#87096]: https://github.com/home-assistant/core/pull/87096 +[#87098]: https://github.com/home-assistant/core/pull/87098 +[#87099]: https://github.com/home-assistant/core/pull/87099 +[@930913]: https://github.com/930913 +[@Alcoinus]: https://github.com/Alcoinus +[@Andre0512]: https://github.com/Andre0512 +[@AngellusMortis]: https://github.com/AngellusMortis +[@AustinBrunkhorst]: https://github.com/AustinBrunkhorst +[@Cereal2nd]: https://github.com/Cereal2nd +[@CoMPaTech]: https://github.com/CoMPaTech +[@DCSBL]: https://github.com/DCSBL +[@Danielhiversen]: https://github.com/Danielhiversen +[@Drafteed]: https://github.com/Drafteed +[@Ernst79]: https://github.com/Ernst79 +[@Gerigot]: https://github.com/Gerigot +[@Glodenox]: https://github.com/Glodenox +[@GrahamJB1]: https://github.com/GrahamJB1 +[@IceBotYT]: https://github.com/IceBotYT +[@Jorei]: https://github.com/Jorei +[@Kane610]: https://github.com/Kane610 +[@Lash-L]: https://github.com/Lash-L +[@MHFDoge]: https://github.com/MHFDoge +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatthiasLohr]: https://github.com/MatthiasLohr +[@Nardol]: https://github.com/Nardol +[@Noltari]: https://github.com/Noltari +[@OnFreund]: https://github.com/OnFreund +[@PoltoS]: https://github.com/PoltoS +[@RenierM26]: https://github.com/RenierM26 +[@RoboMagus]: https://github.com/RoboMagus +[@Savjee]: https://github.com/Savjee +[@SgtBatten]: https://github.com/SgtBatten +[@Shutgun]: https://github.com/Shutgun +[@StevenLooman]: https://github.com/StevenLooman +[@Stonos]: https://github.com/Stonos +[@TheJulianJES]: https://github.com/TheJulianJES +[@TitanNano]: https://github.com/TitanNano +[@Vaarlion]: https://github.com/Vaarlion +[@abmantis]: https://github.com/abmantis +[@agners]: https://github.com/agners +[@akx]: https://github.com/akx +[@allenporter]: https://github.com/allenporter +[@amitfin]: https://github.com/amitfin +[@austinmroczek]: https://github.com/austinmroczek +[@avee87]: https://github.com/avee87 +[@azogue]: https://github.com/azogue +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bbr111]: https://github.com/bbr111 +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@boralyl]: https://github.com/boralyl +[@boswelja]: https://github.com/boswelja +[@bouwew]: https://github.com/bouwew +[@bramkragten]: https://github.com/bramkragten +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@daniel-simpson]: https://github.com/daniel-simpson +[@daniele-athome]: https://github.com/daniele-athome +[@davet2001]: https://github.com/davet2001 +[@davidflypei]: https://github.com/davidflypei +[@dbuezas]: https://github.com/dbuezas +[@dermotduffy]: https://github.com/dermotduffy +[@dieselrabbit]: https://github.com/dieselrabbit +[@dmulcahey]: https://github.com/dmulcahey +[@eMerzh]: https://github.com/eMerzh +[@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 +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@foxel]: https://github.com/foxel +[@frenck]: https://github.com/frenck +[@fwestenberg]: https://github.com/fwestenberg +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@hpirila]: https://github.com/hpirila +[@iMicknl]: https://github.com/iMicknl +[@j-stienstra]: https://github.com/j-stienstra +[@jafar-atili]: https://github.com/jafar-atili +[@janiversen]: https://github.com/janiversen +[@jbouwh]: https://github.com/jbouwh +[@jcconnell]: https://github.com/jcconnell +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jjlawren]: https://github.com/jjlawren +[@joncar]: https://github.com/joncar +[@jrieger]: https://github.com/jrieger +[@kamiyo]: https://github.com/kamiyo +[@karliemeads]: https://github.com/karliemeads +[@killer0071234]: https://github.com/killer0071234 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kvanzuijlen]: https://github.com/kvanzuijlen +[@lemanjo]: https://github.com/lemanjo +[@liudger]: https://github.com/liudger +[@ljungqvist]: https://github.com/ljungqvist +[@ludeeus]: https://github.com/ludeeus +[@lunmay]: https://github.com/lunmay +[@majuss]: https://github.com/majuss +[@marcelveldt]: https://github.com/marcelveldt +[@matteocorti]: https://github.com/matteocorti +[@mbo18]: https://github.com/mbo18 +[@mdegat01]: https://github.com/mdegat01 +[@mdonoughe]: https://github.com/mdonoughe +[@mib1185]: https://github.com/mib1185 +[@michaeldavie]: https://github.com/michaeldavie +[@mkmer]: https://github.com/mkmer +[@mvdwetering]: https://github.com/mvdwetering +[@mxr]: https://github.com/mxr +[@mythicaleinhorn]: https://github.com/mythicaleinhorn +[@nareddyt]: https://github.com/nareddyt +[@natekspencer]: https://github.com/natekspencer +[@nijel]: https://github.com/nijel +[@niklasdoerfler]: https://github.com/niklasdoerfler +[@o951753o]: https://github.com/o951753o +[@oischinger]: https://github.com/oischinger +[@ollo69]: https://github.com/ollo69 +[@ondras12345]: https://github.com/ondras12345 +[@orosam]: https://github.com/orosam +[@osmaa]: https://github.com/osmaa +[@pavoni]: https://github.com/pavoni +[@piitaya]: https://github.com/piitaya +[@pree]: https://github.com/pree +[@puddly]: https://github.com/puddly +[@pvizeli]: https://github.com/pvizeli +[@ratsept]: https://github.com/ratsept +[@rikroe]: https://github.com/rikroe +[@riokuu]: https://github.com/riokuu +[@rsmatias]: https://github.com/rsmatias +[@rytilahti]: https://github.com/rytilahti +[@scolby33]: https://github.com/scolby33 +[@scop]: https://github.com/scop +[@shaiu]: https://github.com/shaiu +[@shbatm]: https://github.com/shbatm +[@sredna]: https://github.com/sredna +[@starkillerOG]: https://github.com/starkillerOG +[@sw-carlos-cristobal]: https://github.com/sw-carlos-cristobal +[@synesthesiam]: https://github.com/synesthesiam +[@teharris1]: https://github.com/teharris1 +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tinloaf]: https://github.com/tinloaf +[@tkdrob]: https://github.com/tkdrob +[@tradel]: https://github.com/tradel +[@tronikos]: https://github.com/tronikos +[@tschamm]: https://github.com/tschamm +[@tyge68]: https://github.com/tyge68 +[@uvjustin]: https://github.com/uvjustin +[@wibbit]: https://github.com/wibbit +[@yuvalabou]: https://github.com/yuvalabou +[@yuxincs]: https://github.com/yuxincs +[@zebardy]: https://github.com/zebardy +[abode docs]: https://www.home-assistant.io/integrations/abode/ +[accuweather docs]: https://www.home-assistant.io/integrations/accuweather/ +[adguard docs]: https://www.home-assistant.io/integrations/adguard/ +[airly docs]: https://www.home-assistant.io/integrations/airly/ +[airthings_ble docs]: https://www.home-assistant.io/integrations/airthings_ble/ +[airvisual docs]: https://www.home-assistant.io/integrations/airvisual/ +[airvisual_pro docs]: https://www.home-assistant.io/integrations/airvisual_pro/ +[airzone docs]: https://www.home-assistant.io/integrations/airzone/ +[aladdin_connect docs]: https://www.home-assistant.io/integrations/aladdin_connect/ +[alexa docs]: https://www.home-assistant.io/integrations/alexa/ +[almond docs]: https://www.home-assistant.io/integrations/almond/ +[ambient_station docs]: https://www.home-assistant.io/integrations/ambient_station/ +[androidtv docs]: https://www.home-assistant.io/integrations/androidtv/ +[anthemav docs]: https://www.home-assistant.io/integrations/anthemav/ +[anwb_energie docs]: https://www.home-assistant.io/integrations/anwb_energie/ +[apcupsd docs]: https://www.home-assistant.io/integrations/apcupsd/ +[august docs]: https://www.home-assistant.io/integrations/august/ +[axis docs]: https://www.home-assistant.io/integrations/axis/ +[bitcoin docs]: https://www.home-assistant.io/integrations/bitcoin/ +[blebox docs]: https://www.home-assistant.io/integrations/blebox/ +[bluemaestro docs]: https://www.home-assistant.io/integrations/bluemaestro/ +[bluetooth docs]: https://www.home-assistant.io/integrations/bluetooth/ +[bmw_connected_drive docs]: https://www.home-assistant.io/integrations/bmw_connected_drive/ +[bond docs]: https://www.home-assistant.io/integrations/bond/ +[bosch_shc docs]: https://www.home-assistant.io/integrations/bosch_shc/ +[braviatv docs]: https://www.home-assistant.io/integrations/braviatv/ +[broadlink docs]: https://www.home-assistant.io/integrations/broadlink/ +[brunt docs]: https://www.home-assistant.io/integrations/brunt/ +[bsblan docs]: https://www.home-assistant.io/integrations/bsblan/ +[bthome docs]: https://www.home-assistant.io/integrations/bthome/ +[caldav docs]: https://www.home-assistant.io/integrations/caldav/ +[calendar docs]: https://www.home-assistant.io/integrations/calendar/ +[camera docs]: https://www.home-assistant.io/integrations/camera/ +[cast docs]: https://www.home-assistant.io/integrations/cast/ +[cert_expiry docs]: https://www.home-assistant.io/integrations/cert_expiry/ +[climacell docs]: https://www.home-assistant.io/integrations/climacell/ +[climate docs]: https://www.home-assistant.io/integrations/climate/ +[co2signal docs]: https://www.home-assistant.io/integrations/co2signal/ +[comfoconnect docs]: https://www.home-assistant.io/integrations/comfoconnect/ +[config docs]: https://www.home-assistant.io/integrations/config/ +[conversation docs]: https://www.home-assistant.io/integrations/conversation/ +[coolmaster docs]: https://www.home-assistant.io/integrations/coolmaster/ +[cover docs]: https://www.home-assistant.io/integrations/cover/ +[debugpy docs]: https://www.home-assistant.io/integrations/debugpy/ +[deconz docs]: https://www.home-assistant.io/integrations/deconz/ +[default_config docs]: https://www.home-assistant.io/integrations/default_config/ +[deluge docs]: https://www.home-assistant.io/integrations/deluge/ +[demo docs]: https://www.home-assistant.io/integrations/demo/ +[derivative docs]: https://www.home-assistant.io/integrations/derivative/ +[device_automation docs]: https://www.home-assistant.io/integrations/device_automation/ +[devolo_home_network docs]: https://www.home-assistant.io/integrations/devolo_home_network/ +[dhcp docs]: https://www.home-assistant.io/integrations/dhcp/ +[diagnostics docs]: https://www.home-assistant.io/integrations/diagnostics/ +[dlink docs]: https://www.home-assistant.io/integrations/dlink/ +[dlna_dmr docs]: https://www.home-assistant.io/integrations/dlna_dmr/ +[dlna_dms docs]: https://www.home-assistant.io/integrations/dlna_dms/ +[dsmr_reader docs]: https://www.home-assistant.io/integrations/dsmr_reader/ +[ecobee docs]: https://www.home-assistant.io/integrations/ecobee/ +[econet docs]: https://www.home-assistant.io/integrations/econet/ +[ecowitt docs]: https://www.home-assistant.io/integrations/ecowitt/ +[elgato docs]: https://www.home-assistant.io/integrations/elgato/ +[elkm1 docs]: https://www.home-assistant.io/integrations/elkm1/ +[emoncms docs]: https://www.home-assistant.io/integrations/emoncms/ +[energie_vanons docs]: https://www.home-assistant.io/integrations/energie_vanons/ +[energy docs]: https://www.home-assistant.io/integrations/energy/ +[energyzero docs]: https://www.home-assistant.io/integrations/energyzero/ +[environment_canada docs]: https://www.home-assistant.io/integrations/environment_canada/ +[escea docs]: https://www.home-assistant.io/integrations/escea/ +[esphome docs]: https://www.home-assistant.io/integrations/esphome/ +[eufy docs]: https://www.home-assistant.io/integrations/eufy/ +[eufylife_ble docs]: https://www.home-assistant.io/integrations/eufylife_ble/ +[ezviz docs]: https://www.home-assistant.io/integrations/ezviz/ +[filter docs]: https://www.home-assistant.io/integrations/filter/ +[fire_tv docs]: https://www.home-assistant.io/integrations/fire_tv/ +[firmata docs]: https://www.home-assistant.io/integrations/firmata/ +[fitbit docs]: https://www.home-assistant.io/integrations/fitbit/ +[fjaraskupan docs]: https://www.home-assistant.io/integrations/fjaraskupan/ +[flume docs]: https://www.home-assistant.io/integrations/flume/ +[flux_led docs]: https://www.home-assistant.io/integrations/flux_led/ +[folder_watcher docs]: https://www.home-assistant.io/integrations/folder_watcher/ +[forked_daapd docs]: https://www.home-assistant.io/integrations/forked_daapd/ +[freedompro docs]: https://www.home-assistant.io/integrations/freedompro/ +[fritz docs]: https://www.home-assistant.io/integrations/fritz/ +[fritzbox docs]: https://www.home-assistant.io/integrations/fritzbox/ +[fronius docs]: https://www.home-assistant.io/integrations/fronius/ +[frontend docs]: https://www.home-assistant.io/integrations/frontend/ +[generic docs]: https://www.home-assistant.io/integrations/generic/ +[generic_hygrostat docs]: https://www.home-assistant.io/integrations/generic_hygrostat/ +[geniushub docs]: https://www.home-assistant.io/integrations/geniushub/ +[geonetnz_quakes docs]: https://www.home-assistant.io/integrations/geonetnz_quakes/ +[geonetnz_volcano docs]: https://www.home-assistant.io/integrations/geonetnz_volcano/ +[gios docs]: https://www.home-assistant.io/integrations/gios/ +[glances docs]: https://www.home-assistant.io/integrations/glances/ +[goalzero docs]: https://www.home-assistant.io/integrations/goalzero/ +[google docs]: https://www.home-assistant.io/integrations/google/ +[google_assistant docs]: https://www.home-assistant.io/integrations/google_assistant/ +[google_assistant_sdk docs]: https://www.home-assistant.io/integrations/google_assistant_sdk/ +[google_mail docs]: https://www.home-assistant.io/integrations/google_mail/ +[google_sheets docs]: https://www.home-assistant.io/integrations/google_sheets/ +[google_wifi docs]: https://www.home-assistant.io/integrations/google_wifi/ +[group docs]: https://www.home-assistant.io/integrations/group/ +[guardian docs]: https://www.home-assistant.io/integrations/guardian/ +[hassio docs]: https://www.home-assistant.io/integrations/hassio/ +[heos docs]: https://www.home-assistant.io/integrations/heos/ +[here_travel_time docs]: https://www.home-assistant.io/integrations/here_travel_time/ +[history docs]: https://www.home-assistant.io/integrations/history/ +[homeassistant_hardware docs]: https://www.home-assistant.io/integrations/homeassistant_hardware/ +[homeassistant_sky_connect docs]: https://www.home-assistant.io/integrations/homeassistant_sky_connect/ +[homeassistant_yellow docs]: https://www.home-assistant.io/integrations/homeassistant_yellow/ +[homekit docs]: https://www.home-assistant.io/integrations/homekit/ +[homematicip_cloud docs]: https://www.home-assistant.io/integrations/homematicip_cloud/ +[homewizard docs]: https://www.home-assistant.io/integrations/homewizard/ +[honeywell docs]: https://www.home-assistant.io/integrations/honeywell/ +[http docs]: https://www.home-assistant.io/integrations/http/ +[huawei_lte docs]: https://www.home-assistant.io/integrations/huawei_lte/ +[hue docs]: https://www.home-assistant.io/integrations/hue/ +[huisbaasje docs]: https://www.home-assistant.io/integrations/huisbaasje/ +[ign_sismologia docs]: https://www.home-assistant.io/integrations/ign_sismologia/ +[imap docs]: https://www.home-assistant.io/integrations/imap/ +[influxdb docs]: https://www.home-assistant.io/integrations/influxdb/ +[insteon docs]: https://www.home-assistant.io/integrations/insteon/ +[integration docs]: https://www.home-assistant.io/integrations/integration/ +[intellifire docs]: https://www.home-assistant.io/integrations/intellifire/ +[intent docs]: https://www.home-assistant.io/integrations/intent/ +[iotawatt docs]: https://www.home-assistant.io/integrations/iotawatt/ +[iperf3 docs]: https://www.home-assistant.io/integrations/iperf3/ +[ipp docs]: https://www.home-assistant.io/integrations/ipp/ +[iqvia docs]: https://www.home-assistant.io/integrations/iqvia/ +[islamic_prayer_times docs]: https://www.home-assistant.io/integrations/islamic_prayer_times/ +[isy994 docs]: https://www.home-assistant.io/integrations/isy994/ +[jellyfin docs]: https://www.home-assistant.io/integrations/jellyfin/ +[keenetic_ndms2 docs]: https://www.home-assistant.io/integrations/keenetic_ndms2/ +[keymitt_ble docs]: https://www.home-assistant.io/integrations/keymitt_ble/ +[kitchen_sink docs]: https://www.home-assistant.io/integrations/kitchen_sink/ +[knx docs]: https://www.home-assistant.io/integrations/knx/ +[konnected docs]: https://www.home-assistant.io/integrations/konnected/ +[kostal_plenticore docs]: https://www.home-assistant.io/integrations/kostal_plenticore/ +[lacrosse docs]: https://www.home-assistant.io/integrations/lacrosse/ +[lacrosse_view docs]: https://www.home-assistant.io/integrations/lacrosse_view/ +[lametric docs]: https://www.home-assistant.io/integrations/lametric/ +[landisgyr_heat_meter docs]: https://www.home-assistant.io/integrations/landisgyr_heat_meter/ +[lcn docs]: https://www.home-assistant.io/integrations/lcn/ +[ld2410_ble docs]: https://www.home-assistant.io/integrations/ld2410_ble/ +[lg_soundbar docs]: https://www.home-assistant.io/integrations/lg_soundbar/ +[life360 docs]: https://www.home-assistant.io/integrations/life360/ +[lifx docs]: https://www.home-assistant.io/integrations/lifx/ +[light docs]: https://www.home-assistant.io/integrations/light/ +[litejet docs]: https://www.home-assistant.io/integrations/litejet/ +[litterrobot docs]: https://www.home-assistant.io/integrations/litterrobot/ +[local_calendar docs]: https://www.home-assistant.io/integrations/local_calendar/ +[lock docs]: https://www.home-assistant.io/integrations/lock/ +[logbook docs]: https://www.home-assistant.io/integrations/logbook/ +[lupusec docs]: https://www.home-assistant.io/integrations/lupusec/ +[lutron_caseta docs]: https://www.home-assistant.io/integrations/lutron_caseta/ +[magicseaweed docs]: https://www.home-assistant.io/integrations/magicseaweed/ +[matter docs]: https://www.home-assistant.io/integrations/matter/ +[mazda docs]: https://www.home-assistant.io/integrations/mazda/ +[media_extractor docs]: https://www.home-assistant.io/integrations/media_extractor/ +[melnor docs]: https://www.home-assistant.io/integrations/melnor/ +[metoffice docs]: https://www.home-assistant.io/integrations/metoffice/ +[mfi docs]: https://www.home-assistant.io/integrations/mfi/ +[mijndomein_energie docs]: https://www.home-assistant.io/integrations/mijndomein_energie/ +[mill docs]: https://www.home-assistant.io/integrations/mill/ +[min_max docs]: https://www.home-assistant.io/integrations/min_max/ +[minecraft_server docs]: https://www.home-assistant.io/integrations/minecraft_server/ +[mobile_app docs]: https://www.home-assistant.io/integrations/mobile_app/ +[modbus docs]: https://www.home-assistant.io/integrations/modbus/ +[modem_callerid docs]: https://www.home-assistant.io/integrations/modem_callerid/ +[moehlenhoff_alpha2 docs]: https://www.home-assistant.io/integrations/moehlenhoff_alpha2/ +[mopeka docs]: https://www.home-assistant.io/integrations/mopeka/ +[motion_blinds docs]: https://www.home-assistant.io/integrations/motion_blinds/ +[motioneye docs]: https://www.home-assistant.io/integrations/motioneye/ +[mqtt docs]: https://www.home-assistant.io/integrations/mqtt/ +[mysensors docs]: https://www.home-assistant.io/integrations/mysensors/ +[nam docs]: https://www.home-assistant.io/integrations/nam/ +[nanoleaf docs]: https://www.home-assistant.io/integrations/nanoleaf/ +[nest docs]: https://www.home-assistant.io/integrations/nest/ +[netatmo docs]: https://www.home-assistant.io/integrations/netatmo/ +[netgear docs]: https://www.home-assistant.io/integrations/netgear/ +[nextdns docs]: https://www.home-assistant.io/integrations/nextdns/ +[nibe_heatpump docs]: https://www.home-assistant.io/integrations/nibe_heatpump/ +[notion docs]: https://www.home-assistant.io/integrations/notion/ +[nsw_rural_fire_service_feed docs]: https://www.home-assistant.io/integrations/nsw_rural_fire_service_feed/ +[nuki docs]: https://www.home-assistant.io/integrations/nuki/ +[number docs]: https://www.home-assistant.io/integrations/number/ +[nut docs]: https://www.home-assistant.io/integrations/nut/ +[nws docs]: https://www.home-assistant.io/integrations/nws/ +[oncue docs]: https://www.home-assistant.io/integrations/oncue/ +[ondilo_ico docs]: https://www.home-assistant.io/integrations/ondilo_ico/ +[onewire docs]: https://www.home-assistant.io/integrations/onewire/ +[openai_conversation docs]: https://www.home-assistant.io/integrations/openai_conversation/ +[openalpr_local docs]: https://www.home-assistant.io/integrations/openalpr_local/ +[openerz docs]: https://www.home-assistant.io/integrations/openerz/ +[opengarage docs]: https://www.home-assistant.io/integrations/opengarage/ +[openuv docs]: https://www.home-assistant.io/integrations/openuv/ +[oralb docs]: https://www.home-assistant.io/integrations/oralb/ +[otbr docs]: https://www.home-assistant.io/integrations/otbr/ +[overkiz docs]: https://www.home-assistant.io/integrations/overkiz/ +[ovo_energy docs]: https://www.home-assistant.io/integrations/ovo_energy/ +[philips_js docs]: https://www.home-assistant.io/integrations/philips_js/ +[pi_hole docs]: https://www.home-assistant.io/integrations/pi_hole/ +[ping docs]: https://www.home-assistant.io/integrations/ping/ +[plugwise docs]: https://www.home-assistant.io/integrations/plugwise/ +[powerwall docs]: https://www.home-assistant.io/integrations/powerwall/ +[prusalink docs]: https://www.home-assistant.io/integrations/prusalink/ +[ps4 docs]: https://www.home-assistant.io/integrations/ps4/ +[purpleair docs]: https://www.home-assistant.io/integrations/purpleair/ +[pvpc_hourly_pricing docs]: https://www.home-assistant.io/integrations/pvpc_hourly_pricing/ +[python_script docs]: https://www.home-assistant.io/integrations/python_script/ +[qnap_qsw docs]: https://www.home-assistant.io/integrations/qnap_qsw/ +[qwikswitch docs]: https://www.home-assistant.io/integrations/qwikswitch/ +[rainbird docs]: https://www.home-assistant.io/integrations/rainbird/ +[rainmachine docs]: https://www.home-assistant.io/integrations/rainmachine/ +[recollect_waste docs]: https://www.home-assistant.io/integrations/recollect_waste/ +[recorder docs]: https://www.home-assistant.io/integrations/recorder/ +[renault docs]: https://www.home-assistant.io/integrations/renault/ +[reolink docs]: https://www.home-assistant.io/integrations/reolink/ +[repairs docs]: https://www.home-assistant.io/integrations/repairs/ +[rest docs]: https://www.home-assistant.io/integrations/rest/ +[rflink docs]: https://www.home-assistant.io/integrations/rflink/ +[rfxtrx docs]: https://www.home-assistant.io/integrations/rfxtrx/ +[ridwell docs]: https://www.home-assistant.io/integrations/ridwell/ +[ring docs]: https://www.home-assistant.io/integrations/ring/ +[roon docs]: https://www.home-assistant.io/integrations/roon/ +[rss_feed_template docs]: https://www.home-assistant.io/integrations/rss_feed_template/ +[ruuvi_gateway docs]: https://www.home-assistant.io/integrations/ruuvi_gateway/ +[ruuvitag_ble docs]: https://www.home-assistant.io/integrations/ruuvitag_ble/ +[rympro docs]: https://www.home-assistant.io/integrations/rympro/ +[sabnzbd docs]: https://www.home-assistant.io/integrations/sabnzbd/ +[samsungtv docs]: https://www.home-assistant.io/integrations/samsungtv/ +[scrape docs]: https://www.home-assistant.io/integrations/scrape/ +[screenlogic docs]: https://www.home-assistant.io/integrations/screenlogic/ +[sensibo docs]: https://www.home-assistant.io/integrations/sensibo/ +[sensor docs]: https://www.home-assistant.io/integrations/sensor/ +[sentry docs]: https://www.home-assistant.io/integrations/sentry/ +[sfr_box docs]: https://www.home-assistant.io/integrations/sfr_box/ +[shelly docs]: https://www.home-assistant.io/integrations/shelly/ +[simplisafe docs]: https://www.home-assistant.io/integrations/simplisafe/ +[sleepiq docs]: https://www.home-assistant.io/integrations/sleepiq/ +[snmp docs]: https://www.home-assistant.io/integrations/snmp/ +[snooz docs]: https://www.home-assistant.io/integrations/snooz/ +[solaredge docs]: https://www.home-assistant.io/integrations/solaredge/ +[soma docs]: https://www.home-assistant.io/integrations/soma/ +[sonarr docs]: https://www.home-assistant.io/integrations/sonarr/ +[sonos docs]: https://www.home-assistant.io/integrations/sonos/ +[soundtouch docs]: https://www.home-assistant.io/integrations/soundtouch/ +[spotify docs]: https://www.home-assistant.io/integrations/spotify/ +[sql docs]: https://www.home-assistant.io/integrations/sql/ +[squeezebox docs]: https://www.home-assistant.io/integrations/squeezebox/ +[ssdp docs]: https://www.home-assistant.io/integrations/ssdp/ +[starlink docs]: https://www.home-assistant.io/integrations/starlink/ +[steam_online docs]: https://www.home-assistant.io/integrations/steam_online/ +[stookwijzer docs]: https://www.home-assistant.io/integrations/stookwijzer/ +[stream docs]: https://www.home-assistant.io/integrations/stream/ +[switchbee docs]: https://www.home-assistant.io/integrations/switchbee/ +[switchbot docs]: https://www.home-assistant.io/integrations/switchbot/ +[syncthing docs]: https://www.home-assistant.io/integrations/syncthing/ +[syncthru docs]: https://www.home-assistant.io/integrations/syncthru/ +[synology_dsm docs]: https://www.home-assistant.io/integrations/synology_dsm/ +[tado docs]: https://www.home-assistant.io/integrations/tado/ +[tcp docs]: https://www.home-assistant.io/integrations/tcp/ +[tellstick docs]: https://www.home-assistant.io/integrations/tellstick/ +[template docs]: https://www.home-assistant.io/integrations/template/ +[thread docs]: https://www.home-assistant.io/integrations/thread/ +[tibber docs]: https://www.home-assistant.io/integrations/tibber/ +[tile docs]: https://www.home-assistant.io/integrations/tile/ +[tod docs]: https://www.home-assistant.io/integrations/tod/ +[todoist docs]: https://www.home-assistant.io/integrations/todoist/ +[tolo docs]: https://www.home-assistant.io/integrations/tolo/ +[tomorrowio docs]: https://www.home-assistant.io/integrations/tomorrowio/ +[torque docs]: https://www.home-assistant.io/integrations/torque/ +[totalconnect docs]: https://www.home-assistant.io/integrations/totalconnect/ +[tplink docs]: https://www.home-assistant.io/integrations/tplink/ +[tradfri docs]: https://www.home-assistant.io/integrations/tradfri/ +[trafikverket_ferry docs]: https://www.home-assistant.io/integrations/trafikverket_ferry/ +[trafikverket_train docs]: https://www.home-assistant.io/integrations/trafikverket_train/ +[trafikverket_weatherstation docs]: https://www.home-assistant.io/integrations/trafikverket_weatherstation/ +[transmission docs]: https://www.home-assistant.io/integrations/transmission/ +[tts docs]: https://www.home-assistant.io/integrations/tts/ +[tuya docs]: https://www.home-assistant.io/integrations/tuya/ +[twentemilieu docs]: https://www.home-assistant.io/integrations/twentemilieu/ +[twinkly docs]: https://www.home-assistant.io/integrations/twinkly/ +[unifi docs]: https://www.home-assistant.io/integrations/unifi/ +[unifiprotect docs]: https://www.home-assistant.io/integrations/unifiprotect/ +[upnp docs]: https://www.home-assistant.io/integrations/upnp/ +[uptime docs]: https://www.home-assistant.io/integrations/uptime/ +[usgs_earthquakes_feed docs]: https://www.home-assistant.io/integrations/usgs_earthquakes_feed/ +[utility_meter docs]: https://www.home-assistant.io/integrations/utility_meter/ +[velbus docs]: https://www.home-assistant.io/integrations/velbus/ +[venstar docs]: https://www.home-assistant.io/integrations/venstar/ +[vicare docs]: https://www.home-assistant.io/integrations/vicare/ +[volkszaehler docs]: https://www.home-assistant.io/integrations/volkszaehler/ +[vultr docs]: https://www.home-assistant.io/integrations/vultr/ +[wallbox docs]: https://www.home-assistant.io/integrations/wallbox/ +[watttime docs]: https://www.home-assistant.io/integrations/watttime/ +[weather docs]: https://www.home-assistant.io/integrations/weather/ +[webostv docs]: https://www.home-assistant.io/integrations/webostv/ +[websocket_api docs]: https://www.home-assistant.io/integrations/websocket_api/ +[whirlpool docs]: https://www.home-assistant.io/integrations/whirlpool/ +[whois docs]: https://www.home-assistant.io/integrations/whois/ +[withings docs]: https://www.home-assistant.io/integrations/withings/ +[wiz docs]: https://www.home-assistant.io/integrations/wiz/ +[wled docs]: https://www.home-assistant.io/integrations/wled/ +[workday docs]: https://www.home-assistant.io/integrations/workday/ +[xiaomi_ble docs]: https://www.home-assistant.io/integrations/xiaomi_ble/ +[xiaomi_miio docs]: https://www.home-assistant.io/integrations/xiaomi_miio/ +[yalexs_ble docs]: https://www.home-assistant.io/integrations/yalexs_ble/ +[yamaha docs]: https://www.home-assistant.io/integrations/yamaha/ +[yamaha_musiccast docs]: https://www.home-assistant.io/integrations/yamaha_musiccast/ +[yeelight docs]: https://www.home-assistant.io/integrations/yeelight/ +[youless docs]: https://www.home-assistant.io/integrations/youless/ +[zamg docs]: https://www.home-assistant.io/integrations/zamg/ +[zeroconf docs]: https://www.home-assistant.io/integrations/zeroconf/ +[zeversolar docs]: https://www.home-assistant.io/integrations/zeversolar/ +[zha docs]: https://www.home-assistant.io/integrations/zha/ +[zwave_js docs]: https://www.home-assistant.io/integrations/zwave_js/ +[zwave_me docs]: https://www.home-assistant.io/integrations/zwave_me/ diff --git a/source/docs/assist/apple.markdown b/source/docs/assist/apple.markdown index 2ee7c69cc5d..64f2f679018 100644 --- a/source/docs/assist/apple.markdown +++ b/source/docs/assist/apple.markdown @@ -2,9 +2,7 @@ title: "Assist on Apple devices" --- -_The Assist shortcut will be available in the Mac and iOS beta channel today and will be part of the next release for iOS and Mac._ - -Assist is integrated into Apple devices using the [Shortcuts app](https://support.apple.com/guide/shortcuts/welcome/ios) that is available on all Apple devices. Assist can be used in the following ways on Apple devices: +Assist is integrated via [Home Assistant Companion](https://apps.apple.com/us/app/home-assistant/id1099568401) into Apple devices using the [Shortcuts app](https://support.apple.com/guide/shortcuts/welcome/ios). Assist can be used in the following ways on Apple devices: - Activated by Siri by saying the shortcut name "Hey Siri, Assist" - Added to your iPhone home screen diff --git a/source/docs/assist/custom_sentences.markdown b/source/docs/assist/custom_sentences.markdown index 5c2e5112a92..aca9225490e 100644 --- a/source/docs/assist/custom_sentences.markdown +++ b/source/docs/assist/custom_sentences.markdown @@ -18,14 +18,6 @@ conversation: - "activate [the] {name}" ``` -```yaml -# Example configuration.yaml -conversation: - intents: - HassTurnOn: - - "activate [the] {name}" -``` - {% endraw %} This extends the default English sentences for the `HassTurnOn` intent, allowing you to say "activate the kitchen lights" as well as "turn on the kitchen lights". diff --git a/source/images/blog/2023-02-08-state-of-matter-and-thread/android-thread.png b/source/images/blog/2023-02-08-state-of-matter-and-thread/android-thread.png new file mode 100644 index 00000000000..8ae69c6fc49 Binary files /dev/null and b/source/images/blog/2023-02-08-state-of-matter-and-thread/android-thread.png differ diff --git a/source/images/blog/2023-02-08-state-of-matter-and-thread/thread-mockup.png b/source/images/blog/2023-02-08-state-of-matter-and-thread/thread-mockup.png new file mode 100644 index 00000000000..22e99ddeb07 Binary files /dev/null and b/source/images/blog/2023-02-08-state-of-matter-and-thread/thread-mockup.png differ diff --git a/source/images/blog/2023-02/assist.png b/source/images/blog/2023-02/assist.png new file mode 100644 index 00000000000..e6ba002bd19 Binary files /dev/null and b/source/images/blog/2023-02/assist.png differ diff --git a/source/images/blog/2023-02/esphome-repairs-encryption-key.png b/source/images/blog/2023-02/esphome-repairs-encryption-key.png new file mode 100644 index 00000000000..6bc20719d8c Binary files /dev/null and b/source/images/blog/2023-02/esphome-repairs-encryption-key.png differ diff --git a/source/images/blog/2023-02/esphome-update-entities.png b/source/images/blog/2023-02/esphome-update-entities.png new file mode 100644 index 00000000000..a60ef89080b Binary files /dev/null and b/source/images/blog/2023-02/esphome-update-entities.png differ diff --git a/source/images/blog/2023-02/sensor-groups.png b/source/images/blog/2023-02/sensor-groups.png new file mode 100644 index 00000000000..8e545357043 Binary files /dev/null and b/source/images/blog/2023-02/sensor-groups.png differ diff --git a/source/images/blog/2023-02/social.png b/source/images/blog/2023-02/social.png new file mode 100644 index 00000000000..40297599fa4 Binary files /dev/null and b/source/images/blog/2023-02/social.png differ diff --git a/source/images/blog/2023-02/streaming-history-cards.gif b/source/images/blog/2023-02/streaming-history-cards.gif new file mode 100644 index 00000000000..b2697623510 Binary files /dev/null and b/source/images/blog/2023-02/streaming-history-cards.gif differ diff --git a/source/index.html b/source/index.html index e485ce4f4bc..17236ce995c 100644 --- a/source/index.html +++ b/source/index.html @@ -81,7 +81,7 @@ feedback: false
Take over all the screens
- Home Assistant Cast makes each TV a display. + Home Assistant Cast makes every TV a display.
diff --git a/source/skyconnect/index.html b/source/skyconnect/index.html index 451c7cf52da..74e37c5acde 100644 --- a/source/skyconnect/index.html +++ b/source/skyconnect/index.html @@ -19,6 +19,9 @@ frontpage_image: /images/skyconnect/skyconnect-cover.png #landingpage .sub-title { margin-top: 100px; } + #landingpage #buy-dialog { + overflow-y: auto; + } .multi-pan { max-width: 750px; margin: 100px auto;