diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index f3788e50271..3d510c891e8 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0 + - uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0 if: ${{ github.repository_owner == 'home-assistant' }} with: repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83c4031a1c5..32e77e985cb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setting up Node.js - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 20 cache: "npm" @@ -37,7 +37,7 @@ jobs: - name: Check out files from GitHub uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setting up Node.js - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0 + uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: 20 cache: "npm" diff --git a/CODEOWNERS b/CODEOWNERS index 147cc8ee540..a3867fcb0c5 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -8,6 +8,11 @@ # https://github.com/blog/2392-introducing-code-owners # Pages + +# Non-integration pages (manually maintained) +source/privacy/index.markdown @frenck + +# Integration pages (auto-synced from core) source/_integrations/3_day_blinds.markdown @starkillerOG source/_integrations/_integration_docs_template.markdown @home-assistant/core source/_integrations/abode.markdown @shred86 diff --git a/Gemfile b/Gemfile index 73015375b2b..2f043899b98 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' ruby '> 2.5.0' group :development do - gem 'rake', '13.3.0' + gem 'rake', '13.3.1' gem 'jekyll', '4.4.1' gem 'compass', '1.0.3' gem 'sass-globbing', '1.1.5' @@ -11,8 +11,8 @@ group :development do # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' gem 'sass-embedded', '1.93.2' - gem 'rubocop', '1.81.1' - gem 'ruby-lsp', '0.26.1' + gem 'rubocop', '1.81.6' + gem 'ruby-lsp', '0.26.2' gem 'rackup', '2.2.1' end @@ -23,7 +23,7 @@ group :jekyll_plugins do gem 'jekyll-toc', '0.19.0' end -gem 'sinatra', '4.1.1' +gem 'sinatra', '4.2.1' gem 'nokogiri', '1.18.10' # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem diff --git a/Gemfile.lock b/Gemfile.lock index 9fe310ee82f..b496be0fbf0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,7 @@ GEM public_suffix (>= 2.0.2, < 7.0) ast (2.4.3) base64 (0.3.0) - bigdecimal (3.2.3) + bigdecimal (3.3.1) chunky_png (1.4.0) colorator (1.1.0) commonmarker (0.23.12) @@ -30,10 +30,10 @@ GEM ffi (1.17.2-arm64-darwin) ffi (1.17.2-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (4.32.1-arm64-darwin) + google-protobuf (4.33.0-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.32.1-x86_64-linux-gnu) + google-protobuf (4.33.0-x86_64-linux-gnu) bigdecimal rake (>= 13) http_parser.rb (0.8.0) @@ -70,7 +70,7 @@ GEM nokogiri (~> 1.12) jekyll-watch (2.2.1) listen (~> 3.0) - json (2.15.0) + json (2.15.2) kramdown (2.5.1) rexml (>= 3.3.9) kramdown-parser-gfm (1.1.0) @@ -91,16 +91,16 @@ GEM nokogiri (1.18.10-x86_64-linux-gnu) racc (~> 1.4) parallel (1.27.0) - parser (3.3.9.0) + parser (3.3.10.0) ast (~> 2.4.1) racc pathutil (0.16.2) forwardable-extended (~> 2.6) - prism (1.5.1) + prism (1.6.0) public_suffix (6.0.2) racc (1.8.1) - rack (3.2.1) - rack-protection (4.1.1) + rack (3.2.3) + rack-protection (4.2.1) base64 (>= 0.1.0) logger (>= 1.6.0) rack (>= 3.0.0, < 4) @@ -110,7 +110,7 @@ GEM rackup (2.2.1) rack (>= 3) rainbow (3.1.1) - rake (13.3.0) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) @@ -119,7 +119,7 @@ GEM regexp_parser (2.11.3) rexml (3.4.4) rouge (4.6.1) - rubocop (1.81.1) + rubocop (1.81.6) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -133,7 +133,7 @@ GEM rubocop-ast (1.47.1) parser (>= 3.3.7.2) prism (~> 1.4) - ruby-lsp (0.26.1) + ruby-lsp (0.26.2) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 5) @@ -151,11 +151,11 @@ GEM ffi (~> 1.9) sassc (2.1.0-x86_64-linux) ffi (~> 1.9) - sinatra (4.1.1) + sinatra (4.2.1) logger (>= 1.6.0) mustermann (~> 3.0) rack (>= 3.0.0, < 4) - rack-protection (= 4.1.1) + rack-protection (= 4.2.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) stringex (2.8.6) @@ -182,13 +182,13 @@ DEPENDENCIES jekyll-toc (= 0.19.0) nokogiri (= 1.18.10) rackup (= 2.2.1) - rake (= 13.3.0) - rubocop (= 1.81.1) - ruby-lsp (= 0.26.1) + rake (= 13.3.1) + rubocop (= 1.81.6) + ruby-lsp (= 0.26.2) sass-embedded (= 1.93.2) sass-globbing (= 1.1.5) sassc (= 2.1.0) - sinatra (= 4.1.1) + sinatra (= 4.2.1) stringex (= 2.8.6) tzinfo (~> 2.0) tzinfo-data diff --git a/_config.yml b/_config.yml index 67f69b3f6ad..4c624f0f16d 100644 --- a/_config.yml +++ b/_config.yml @@ -108,8 +108,8 @@ social: # Home Assistant release details current_major_version: 2025 current_minor_version: 10 -current_patch_version: 0 -date_released: 2025-10-01 +current_patch_version: 4 +date_released: 2025-10-24 # 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 1c48fceb960..d54fbfb35dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.1", "remark-stringify": "^11.0.0", - "textlint": "^15.2.2", + "textlint": "^15.2.3", "textlint-filter-rule-allowlist": "^4.0.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", @@ -144,9 +144,9 @@ "license": "MIT" }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.17.3.tgz", - "integrity": "sha512-JPwUKWSsbzx+DLFznf/QZ32Qa+ptfbUlHhRLrBQBAFu9iI1iYvizM4p+zhhRDceSsPutXp4z+R/HPVphlIiclg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.20.0.tgz", + "integrity": "sha512-kOQ4+fHuT4KbR2iq2IjeV32HiihueuOf1vJkq18z08CLZ1UQrTc8BXJpVfxZkq45+inLLD+D4xx4nBjUelJa4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -267,68 +267,68 @@ } }, "node_modules/@textlint/ast-node-types": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.2.2.tgz", - "integrity": "sha512-9ByYNzWV8tpz6BFaRzeRzIov8dkbSZu9q7IWqEIfmRuLWb2qbI/5gTvKcoWT1HYs4XM7IZ8TKSXcuPvMb6eorA==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.2.3.tgz", + "integrity": "sha512-GEhoxfmh6TF+xC8TJmAUwOzzh0J6sVDqjKhwTTwetf7YDdhHbIv1PuUb/dTadMVIWs1H0+JD4Y27n6LWMmqn9Q==", "dev": true, "license": "MIT" }, "node_modules/@textlint/ast-tester": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-15.2.2.tgz", - "integrity": "sha512-puwnJSPOeqtPQslz6ehfEF1wqoTb/iTebHj+vy6zePpHhBZRJdZKOqPe7p83Atetc8O5SEYa1aJ8ur8sSm0wQw==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-15.2.3.tgz", + "integrity": "sha512-eT0DBbQTa7Hm0JRRHT9vUv6VoIuY19eqI8UL2I7AzE820DSrrNkgGg/ZxB9I6BCDK/Yg96lJ45fMIeOFPvuJaQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2", - "debug": "^4.4.1" + "@textlint/ast-node-types": "15.2.3", + "debug": "^4.4.3" } }, "node_modules/@textlint/ast-traverse": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-15.2.2.tgz", - "integrity": "sha512-5uZCNp6fSYvDgQW3LGnJYC90ac1qWhUZJtjE1tI0fPk7U14Gr0Qu5FEOMuW0YUV5aoo3P1OpwrKPt2U6FFlrvg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-15.2.3.tgz", + "integrity": "sha512-XqlEVbQanAu40pGrtoRJzV3bWUxiCvqpu6FBmHotUgah1jjNWe6DQRkDsjcil9qXrVjXfQFAjG8ZuDk9/sUcGg==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2" + "@textlint/ast-node-types": "15.2.3" } }, "node_modules/@textlint/config-loader": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-15.2.2.tgz", - "integrity": "sha512-uFlxTMhgS0jLzdn4xd3TDS/3QWlE8br2LQVnCjdNmvyU7qNpXHy/9+XUEfbvVMyBXrfBnDIFY4AQAXfhGdOo7g==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-15.2.3.tgz", + "integrity": "sha512-dSedypITXGyh/Bz0t/tQU1NMyehfZeeYhEMtfqpdFY6a3ABLpfaZpOMOZd9EP4zwu2oi2OsooQBMbn/ZdXJ12w==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/kernel": "15.2.2", - "@textlint/module-interop": "15.2.2", - "@textlint/resolver": "15.2.2", - "@textlint/types": "15.2.2", - "@textlint/utils": "15.2.2", - "debug": "^4.4.1", + "@textlint/kernel": "15.2.3", + "@textlint/module-interop": "15.2.3", + "@textlint/resolver": "15.2.3", + "@textlint/types": "15.2.3", + "@textlint/utils": "15.2.3", + "debug": "^4.4.3", "rc-config-loader": "^4.1.3" } }, "node_modules/@textlint/feature-flag": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-15.2.2.tgz", - "integrity": "sha512-SX//fr056jGT3aRDbPTz4k0kEqyHRTvbHTr7HgC3yuksO89NKl605gmU9flrykBZC+i4GOMcR2BL4SweiNXbTg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-15.2.3.tgz", + "integrity": "sha512-XW2NVj3K7Pi8jlgwxKMUh7L1y+EMN+s47TtEC1rkagI581THgHnAyAe+/aHZsF/CJEwevZtGnaan2MY1rnbsYA==", "dev": true, "license": "MIT" }, "node_modules/@textlint/fixer-formatter": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-15.2.2.tgz", - "integrity": "sha512-wX52sevPrM/hWDAolBm5yJkSQ5QGmLYMja4C1Ao3o/HVO5eI/Q6PS8amtoGJOilOXKrVV0hBuEwGdrXuyGngXw==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-15.2.3.tgz", + "integrity": "sha512-cdA3Pt2aaR2NKDBqv/rZiZ8VIuTsUZYX1uaq6v2T2HDFlHn46gv6A4TPg8w5ACpoHid1+kADqe67GRpCxPb9rQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/module-interop": "15.2.2", - "@textlint/resolver": "15.2.2", - "@textlint/types": "15.2.2", + "@textlint/module-interop": "15.2.3", + "@textlint/resolver": "15.2.3", + "@textlint/types": "15.2.3", "chalk": "^4.1.2", - "debug": "^4.4.1", + "debug": "^4.4.3", "diff": "^5.2.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", @@ -342,38 +342,38 @@ "dev": true }, "node_modules/@textlint/kernel": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-15.2.2.tgz", - "integrity": "sha512-xFtIx3thI3SC2wk4uApJ5lW0cks4pkSfoRejfYoAMwPd1VyvFhCsQQWNRTyXIlXfNIGT6qY82SoPyXvi3XF6Zg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-15.2.3.tgz", + "integrity": "sha512-A+YVhh5cFMDrNbnhA754/PT2WrVirQ/zCvGKJz/+yKR+ju97eQc6wZOcu/vYAEsS0+vDZRyR/opD+aOaI3GHZA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2", - "@textlint/ast-tester": "15.2.2", - "@textlint/ast-traverse": "15.2.2", - "@textlint/feature-flag": "15.2.2", - "@textlint/source-code-fixer": "15.2.2", - "@textlint/types": "15.2.2", - "@textlint/utils": "15.2.2", - "debug": "^4.4.1", + "@textlint/ast-node-types": "15.2.3", + "@textlint/ast-tester": "15.2.3", + "@textlint/ast-traverse": "15.2.3", + "@textlint/feature-flag": "15.2.3", + "@textlint/source-code-fixer": "15.2.3", + "@textlint/types": "15.2.3", + "@textlint/utils": "15.2.3", + "debug": "^4.4.3", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, "node_modules/@textlint/linter-formatter": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.2.2.tgz", - "integrity": "sha512-oMVaMJ3exFvXhCj3AqmCbLaeYrTNLqaJnLJMIlmnRM3/kZdxvku4OYdaDzgtlI194cVxamOY5AbHBBVnY79kEg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.2.3.tgz", + "integrity": "sha512-gnFGl8MejAS4rRDPKV2OYvU0Tb0iJySOPDahf+RCK30b615UqY6CjqWxXw1FvXfT3pHPoRrefVu39j1AKm2ezg==", "dev": true, "license": "MIT", "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "15.2.2", - "@textlint/resolver": "15.2.2", - "@textlint/types": "15.2.2", + "@textlint/module-interop": "15.2.3", + "@textlint/resolver": "15.2.3", + "@textlint/types": "15.2.3", "chalk": "^4.1.2", - "debug": "^4.4.1", + "debug": "^4.4.3", "js-yaml": "^3.14.1", "lodash": "^4.17.21", "pluralize": "^2.0.0", @@ -384,14 +384,14 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-15.2.2.tgz", - "integrity": "sha512-7LsDOCApuM5463e4mfJAORyOMDxzJGmfDfoT6RtwL5P1T1kKGxLl5yudzdfm8++WB8v4wJZZEUQqppejeDRs9Q==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-15.2.3.tgz", + "integrity": "sha512-5kz75TBEOUQIpqCaV65l98YSIpfyOyTKSn4et9A//iSbjiwZHDK3HBo2jDWdkHmGX28+w1hBFDR7/eFMnbxAJQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2", - "debug": "^4.4.1", + "@textlint/ast-node-types": "15.2.3", + "debug": "^4.4.3", "mdast-util-gfm-autolink-literal": "^0.1.3", "neotraverse": "^0.6.18", "remark-footnotes": "^3.0.0", @@ -645,9 +645,9 @@ } }, "node_modules/@textlint/module-interop": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.2.2.tgz", - "integrity": "sha512-2rmNcWrcqhuR84Iio1WRzlc4tEoOMHd6T7urjtKNNefpTt1owrTJ9WuOe60yD3FrTW0J/R0ux5wxUbP/eaeFOA==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.2.3.tgz", + "integrity": "sha512-dV6M3ptOFJjR5bgYUMeVqc8AqFrMtCEFaZEiLAfMufX29asYonI2K8arqivOA69S2Lh6esyij6V7qpQiXeK/cA==", "dev": true, "license": "MIT" }, @@ -675,69 +675,69 @@ } }, "node_modules/@textlint/resolver": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.2.2.tgz", - "integrity": "sha512-4hGWjmHt0y+5NAkoYZ8FvEkj8Mez9TqfbTm3BPjoV32cIfEixl2poTOgapn1rfm73905GSO3P1jiWjmgvii13Q==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.2.3.tgz", + "integrity": "sha512-Qd3udqo2sWa3u0sYgDVd9M/iybBVBJLrWGaID6Yzl9GyhdGi0E6ngo3b9r+H6psbJDIaCKi54IxvC9q5didWfA==", "dev": true, "license": "MIT" }, "node_modules/@textlint/source-code-fixer": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-15.2.2.tgz", - "integrity": "sha512-Cstr9wjK7toLmY2hhlZ3YcIh8o/gr7E5dpCd9IalNiMBedvvLYuOfhktKgUa4E7oFcGtl0leDPgx5ENDY25JDw==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-15.2.3.tgz", + "integrity": "sha512-DfKy15kGFG8ddEYDyeRKilVI3nTSdEp5/sw7ariyUXk2spAW8xdToRpgeMaluF4Cp5gcGa6bVOTDJapj/UfFvA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/types": "15.2.2", - "debug": "^4.4.1" + "@textlint/types": "15.2.3", + "debug": "^4.4.3" } }, "node_modules/@textlint/text-to-ast": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-15.2.2.tgz", - "integrity": "sha512-IphrojtJw3eW/1JMm/Hzc0dsDFALpEzjankABS6tIHMvB2O+2wejRDbDaqmgCgMCr+lGKoMNg5Xvlr5x9XRxww==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-15.2.3.tgz", + "integrity": "sha512-xweE4sDTz56tLy90UXcjn/YEYZr2NH/Kh4Kr5FmQ8K4MtJXOVOubnwmN9503/Vmj4Mq9uNuEzR35D4H2LVHriQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2" + "@textlint/ast-node-types": "15.2.3" } }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-15.2.2.tgz", - "integrity": "sha512-JzmHAtC2C4LOpJ/JD2YsqBZt9ej4khFFDI0d9E6P9y9AO/HOEv4GeT7aAjGGPG6AVO977aGiJ92EK9kTwlVnIQ==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-15.2.3.tgz", + "integrity": "sha512-fpHuWt1Tonl+UuObH5upByvPWQjd9swu+beMlrSagBWTFblEyNxGwgaQkTjaWC/SYqJn4TkTsT1c1IZJaHV5oQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/markdown-to-ast": "15.2.2", - "@textlint/types": "15.2.2" + "@textlint/markdown-to-ast": "15.2.3", + "@textlint/types": "15.2.3" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-15.2.2.tgz", - "integrity": "sha512-bZYlxw8S9zsuJgx2EAR23RFyQ3JtyuIDUA3dbt5Sov2eo20LitNjDIqrQgDo85widbOD/6rG7VioNesV1/6HFw==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-15.2.3.tgz", + "integrity": "sha512-d5a1dXCYqx3cz8Q8dg5JFqWGbZHbfnYIKsue5DndEY6YtZ99JnaAvReo6GuJK5Pg+6pgOys2OvyZRxFA4D59fQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/text-to-ast": "15.2.2", - "@textlint/types": "15.2.2" + "@textlint/text-to-ast": "15.2.3", + "@textlint/types": "15.2.3" } }, "node_modules/@textlint/types": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.2.2.tgz", - "integrity": "sha512-X2BHGAR3yXJsCAjwYEDBIk9qUDWcH4pW61ISfmtejau+tVqKtnbbvEZnMTb6mWgKU1BvTmftd5DmB1XVDUtY3g==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.2.3.tgz", + "integrity": "sha512-i8XVmDHJwykMXcGgkSxZLjdbeqnl+voYAcIr94KIe0STwgkHIhwHJgb/tEVFawGClHo+gPczF12l1C5+TAZEzQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "15.2.2" + "@textlint/ast-node-types": "15.2.3" } }, "node_modules/@textlint/utils": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-15.2.2.tgz", - "integrity": "sha512-uPCfBl2NF4tiXGjAE5DAwah0Bn/EFsgtXhDEIJV4hsSfBQBD8Guqnh8MvJj25fvZaQS+MTNGiEC6bFXtIMHuAg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-15.2.3.tgz", + "integrity": "sha512-B5OHi1P6JA0Hy04MmmTeNXFTsSfvgbbqQAWj9iUHg+GhPtd8GyFzb0uxLDIp1oqAGN8eM2hR/n8vwz4WsfPqMw==", "dev": true, "license": "MIT" }, @@ -1338,9 +1338,9 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -1574,13 +1574,13 @@ } }, "node_modules/eventsource-parser": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.5.tgz", - "integrity": "sha512-bSRG85ZrMdmWtm7qkF9He9TNRzc/Bm99gEJMaQoHJ9E6Kv9QBbsldh2oMj7iXmYNEAVvNgvv5vPorG6W+XtBhQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", "dev": true, "license": "MIT", "engines": { - "node": ">=20.0.0" + "node": ">=18.0.0" } }, "node_modules/execall": { @@ -1702,9 +1702,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -2438,7 +2438,8 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.sortby": { "version": "4.7.0", @@ -4446,13 +4447,14 @@ "dev": true }, "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=16" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/picocolors": { @@ -4571,19 +4573,36 @@ } }, "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz", + "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", - "iconv-lite": "0.6.3", + "iconv-lite": "0.7.0", "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.10" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/rc-config-loader": { @@ -6755,28 +6774,28 @@ "dev": true }, "node_modules/textlint": { - "version": "15.2.2", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-15.2.2.tgz", - "integrity": "sha512-0V02Lvs7GJfXPNJgBVhayysW+9qe0bZVmyD8FrYzkW70xZcSoVK4Hdl6825wpQqn8KgdB171WNYlWq5FPEAPgg==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-15.2.3.tgz", + "integrity": "sha512-TV6STsR0iDSuBtQTtgtAlQVT65OubHcpxOIGxWgRCBfRqlEwdkD6v3tx6ydE16nk0VdpPJP3/PuIMLKQSQk/ZA==", "dev": true, "license": "MIT", "dependencies": { - "@modelcontextprotocol/sdk": "^1.17.2", - "@textlint/ast-node-types": "15.2.2", - "@textlint/ast-traverse": "15.2.2", - "@textlint/config-loader": "15.2.2", - "@textlint/feature-flag": "15.2.2", - "@textlint/fixer-formatter": "15.2.2", - "@textlint/kernel": "15.2.2", - "@textlint/linter-formatter": "15.2.2", - "@textlint/module-interop": "15.2.2", - "@textlint/resolver": "15.2.2", - "@textlint/textlint-plugin-markdown": "15.2.2", - "@textlint/textlint-plugin-text": "15.2.2", - "@textlint/types": "15.2.2", - "@textlint/utils": "15.2.2", - "debug": "^4.4.1", - "file-entry-cache": "^10.1.3", + "@modelcontextprotocol/sdk": "^1.19.1", + "@textlint/ast-node-types": "15.2.3", + "@textlint/ast-traverse": "15.2.3", + "@textlint/config-loader": "15.2.3", + "@textlint/feature-flag": "15.2.3", + "@textlint/fixer-formatter": "15.2.3", + "@textlint/kernel": "15.2.3", + "@textlint/linter-formatter": "15.2.3", + "@textlint/module-interop": "15.2.3", + "@textlint/resolver": "15.2.3", + "@textlint/textlint-plugin-markdown": "15.2.3", + "@textlint/textlint-plugin-text": "15.2.3", + "@textlint/types": "15.2.3", + "@textlint/utils": "15.2.3", + "debug": "^4.4.3", + "file-entry-cache": "^10.1.4", "glob": "^10.4.5", "md5": "^2.3.0", "optionator": "^0.9.4", diff --git a/package.json b/package.json index 11a4bdf7745..3d0b6395fe3 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.1", "remark-stringify": "^11.0.0", - "textlint": "^15.2.2", + "textlint": "^15.2.3", "textlint-filter-rule-allowlist": "^4.0.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", diff --git a/sass/homeassistant/_overrides.scss b/sass/homeassistant/_overrides.scss index 8f0466ee948..3169da728a4 100644 --- a/sass/homeassistant/_overrides.scss +++ b/sass/homeassistant/_overrides.scss @@ -1256,7 +1256,6 @@ article.listing { text-align: center; img { - background-color: unset; border-radius: 20px; border: unset; @@ -1268,6 +1267,12 @@ article.listing { width: 100%; } + &.fw{ + img { + max-width: 100%; + } + } + &.nb { img { border-radius: unset; diff --git a/source/404.html b/source/404.html index d9c9f946a9b..155757ad6f5 100644 --- a/source/404.html +++ b/source/404.html @@ -11,7 +11,7 @@ body_id: not_found
- + + - + + diff --git a/source/_integrations/aosmith.markdown b/source/_integrations/aosmith.markdown index aa4e697154c..f2f79adcac2 100644 --- a/source/_integrations/aosmith.markdown +++ b/source/_integrations/aosmith.markdown @@ -29,6 +29,7 @@ Before using this integration, your water heater must be connected to a Wi-Fi ne - EE12-50R55DVF - EE12-50H55DVF - EE12-55H55DVF +- HETF-50-100 - HPA10-40H45DV - HPA10-50H45DV - HPA10-66H45DV diff --git a/source/_integrations/apcupsd.markdown b/source/_integrations/apcupsd.markdown index f0a7cea0b18..fc0f5d2ee7e 100644 --- a/source/_integrations/apcupsd.markdown +++ b/source/_integrations/apcupsd.markdown @@ -179,7 +179,7 @@ Some sensors are disabled by default, since they provide information that is onl - **Transfer to Battery** - **Description**: Time and date of last transfer to batteries. - **Available for machines**: all - - **Remarks**: This entity only becomes available after a tranfer to battery event happens. + - **Remarks**: This entity only becomes available after a transfer to battery event happens. - **Battery Status** - **Description**: The status of the batteries. diff --git a/source/_integrations/azure_data_explorer.markdown b/source/_integrations/azure_data_explorer.markdown index cb131a4a011..c7bc3f01c17 100644 --- a/source/_integrations/azure_data_explorer.markdown +++ b/source/_integrations/azure_data_explorer.markdown @@ -62,10 +62,10 @@ There are a few differences between the **PAYG** and **Free** versions: 3. Write and perform the following statements one by one, replacing the placeholder content between the <> with the copied values (including the brackets). ```KQL -// Give the Service Pricipal write access to the database +// Give the Service Principal write access to the database .add database [''] ingestors ('aadapp=;'); -// Give the Service Pricipal read access to database (used for connectivity checks) +// Give the Service Principal read access to the database (used for connectivity checks) .add database [''] viewers ('aadapp=;'); // Create a table for the data to be ingested into (replace the name and copy inserted *name* for later use) diff --git a/source/_integrations/azure_storage.markdown b/source/_integrations/azure_storage.markdown index cc367a13522..95e95eff20d 100644 --- a/source/_integrations/azure_storage.markdown +++ b/source/_integrations/azure_storage.markdown @@ -45,3 +45,15 @@ This integration follows standard integration removal. No extra steps are requir Check that your storage account allows [`Shared Key` access](https://learn.microsoft.com/en-us/azure/storage/common/shared-key-authorization-prevent?tabs=portal#remediate-authorization-via-shared-key). {% enddetails %} + +{% details "DNS Error" %} + +You may encounter a `aiodns.error.DNSError: (4, 'Domain name not found')` error. + +To resolve this: + +1. Navigate to **Settings → System → Network → DNS Servers** in Home Assistant +2. Manually set fallback DNS servers to `1.1.1.1` (Cloudflare) and `8.8.8.8` (Google) (or any other that you prefer). This allows Home Assistant to resolve Azure domain names successfully. +3. Restart Home Assistant to propagate the new settings. + +{% enddetails %} diff --git a/source/_integrations/bayesian.markdown b/source/_integrations/bayesian.markdown index 99a9ae732fd..e8d7fabc05d 100644 --- a/source/_integrations/bayesian.markdown +++ b/source/_integrations/bayesian.markdown @@ -19,22 +19,14 @@ related: ha_config_flow: true --- -A `Bayesian` helper is a virtual binary sensor that determines its state based on the combination of multiple other sensors using probabilistic methods. +A `Bayesian` sensor is a virtual binary sensor that determines its state by combining the states of other sensors using probability. This approach enables the detection of complex events that are not directly or easily measurable, such as cooking, showering, being in bed, or starting a morning routine. Additionally, it can improve confidence and reliability in measurable events where sensors may be unreliable, such as some presence detectors. -Bayesian works by applying [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem). It estimates the likelihood that a specific event is occurring based on the combination of the states of 'observed' sensors and a baseline, (`prior`) probability. When the calculated probability - known as a 'posterior' - exceeds the defined `probability_threshold`, the `bayesian` sensor will turn `on`; otherwise, it will be `off`. +Bayesian works by applying [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem). It estimates the likelihood that a specific event is occurring based on the combination of a baseline probability - known as a 'prior' - and the states of 'observed' sensors and. When the calculated probability - known as a 'posterior' - exceeds the defined `probability_threshold`, the `bayesian` sensor will turn `on`; otherwise, it will be `off`. Both UI and YAML setups are supported, importantly YAML uses probabilities of `0` to `1` whereas the UI uses percentages, `0` to `100`. -## Theory - -A fundamental concept in Bayes' Rule is the distinction between the probability of an *event given an observation* and the probability of an *observation given an event*. These two probabilities are not interchangeable and must be considered separately. While they may be similar in some cases — for example, when motion sensors are accurate, the probability that someone is in the room *given* that motion is detected is often close to the probability that motion is detected *given* someone is in the room. - -Now consider the above, but in a home that has cats. The probability that the room is human-occupied *given* that motion detected may be quite low (e.g. 20%, p=0.2) if the room is popular with the cats. However, the probability that motion is detected *given* that it is occupied by a human is high (e.g 95%, p = 0.95) if our motion sensor is accurate. Said succinctly, not all motion is human, but all humans move. - -When configuring these conditional probabilities, define the probability of the sensor observation (e.g motion detected) *given* the thing you are trying to estimate (e.g human-occupancy of the room). - {% include integrations/config_flow.md %} Once you have created a Bayesian helper, you can add and edit 'observations' here: @@ -121,6 +113,14 @@ observations: type: float {% endconfiguration %} +## Theory + +A fundamental concept in Bayes' Rule is the distinction between the probability of an *event given an observation* and the probability of an *observation given an event*. These two probabilities are not interchangeable and must be considered separately. While they may be similar in some cases — for example, when motion sensors are accurate, the probability that someone is in the room *given* that motion is detected is often close to the probability that motion is detected *given* someone is in the room. + +Now consider the above, but in a home that has cats. The probability that the room is human-occupied *given* that motion detected may be quite low (e.g. 20%, p=0.2) if the room is popular with the cats. However, the probability that motion is detected *given* that it is occupied by a human is high (e.g 95%, p = 0.95) if our motion sensor is accurate. Said succinctly, not all motion is human, but all humans move. + +When configuring these conditional probabilities, define the probability of the sensor observation (e.g motion detected) *given* the thing you are trying to estimate (e.g human-occupancy of the room). + ## Estimating probabilities 1. Avoid `0` and `1`; these will mess with the odds and are rarely true—sensors fail. @@ -134,11 +134,11 @@ observations: ## Full examples -These are a number of worked examples which you may find helpful for each of the state types. +These are a number of worked examples which you may find helpful for each of the observation types. Whilst these are YAML examples, UI configurations work in the same way, except that probabilities are expressed in percentages. ### State -The following is an example for the `state` observation platform. +The following is an example that only uses observations which test for exact matches of the `state` of entities. ```yaml # Example configuration.yaml entry @@ -178,7 +178,7 @@ binary_sensor: ### Numeric State -Next up an example which targets the `numeric_state` observation platform, +Next up is an example which uses the `numeric_state` - testing if the state of a numeric entity falls within a specified range, as seen in the configuration it requires `below` and/or `above` instead of `to_state`. ```yaml @@ -198,7 +198,7 @@ binary_sensor: ### Template -Here's an example for `template` observation platform, as seen in the configuration it requires `value_template`. This template will evaluate to true if the device tracker `device_tracker.paulus` shows `not_home` and it last changed its status more than 5 minutes ago. +Here's an example for `template` observations, as seen in the configuration it requires `value_template`. This template will evaluate to true if the device tracker `device_tracker.paulus` has not been seen in the last 5 minutes. {% raw %} diff --git a/source/_integrations/bthome.markdown b/source/_integrations/bthome.markdown index b095d9dab21..7be4a294fc3 100644 --- a/source/_integrations/bthome.markdown +++ b/source/_integrations/bthome.markdown @@ -28,4 +28,4 @@ BTHome is an energy effective but flexible BLE format to broadcast data with Blu ## Bindkey -When using encryption for your BTHome sensor, you will be prompted to enter your 32 character hexadecimal (16 bytes) encryption key. This key is called the bindkey. More information about the bindkey can be found in the [specifications](https://bthome.io/#encryption). +When using encryption for your BTHome sensor, you will be prompted to enter your 32 character hexadecimal (16 bytes) encryption key. This key is called the bindkey. More information about the bindkey can be found in the [specifications](https://bthome.io/encryption). diff --git a/source/_integrations/conversation.markdown b/source/_integrations/conversation.markdown index 80f1a64300a..30d875aa8ae 100644 --- a/source/_integrations/conversation.markdown +++ b/source/_integrations/conversation.markdown @@ -13,7 +13,7 @@ ha_domain: conversation ha_integration_type: entity --- -The **Conversation** {% term integration %} allows you to converse with Home Assistant. You can either converse by pressing the microphone in the frontend (supported browsers only (no iOS)) or by calling the `conversation/process` action with the transcribed text. +The **Conversation** {% term integration %} allows you to converse with Home Assistant. You can either converse by pressing the microphone in the frontend (supported browsers only (no iOS)) or by calling the `conversation.process` action with the transcribed text.

diff --git a/source/_integrations/daikin.markdown b/source/_integrations/daikin.markdown index e3df334a558..eb00e424fd6 100644 --- a/source/_integrations/daikin.markdown +++ b/source/_integrations/daikin.markdown @@ -20,12 +20,6 @@ ha_platforms: ha_integration_type: integration --- -{% warning %} - -Daikin has removed their local API in newer products. They offer a Onecta cloud API for controlling Daikin devices through the cloud, see the [Daikin Europe Developer Portal](https://developer.cloud.daikineurope.com) for more details. This affects units fitted with the BRP069C4x wifi adapter. Units listed under Supported Hardware below continue to have access to local control. Additionally the older but commonly available BRP072A42 adapter can be fitted to most if not all newer units for access to local control. - -{% endwarning %} - The **Daikin** {% term integration %} integrates Daikin air conditioning systems into Home Assistant. There is currently support for the following device types within Home Assistant: @@ -40,20 +34,16 @@ There is currently support for the following device types within Home Assistant: - The Australian version of the Daikin Wifi Controller Unit BRP072A42, which is operated by the [Daikin Mobile Controller (iOS)](https://itunes.apple.com/au/app/daikin-mobile-controller/id917168708?mt=8) ([Android](https://play.google.com/store/apps/details?id=ao.daikin.remoapp)) application. Confirmed working on a Daikin Cora Series Reverse Cycle Split System Air Conditioner 2.5kW Cooling FTXM25QVMA with operation mode, temp, fan swing (3d, horizontal, vertical). - BRP072Cxx based units (including Zena devices)*. - The United States version of the Wifi Controller Unit (BRP072A43), which is powered by the [Daikin Comfort Control](https://play.google.com/store/apps/details?id=us.daikin.comfortcontrols) application. Confirmed working on a Daikin Wall Units FTXS09LVJU, FTXS15LVJU, FTXS18LVJU and a Floor Unit FVXS15NVJU with operation mode, temp, fan swing (3d, horizontal, vertical). +- BRP069C4x/BRP084Cxx units using firmware 2.8.0 was added in HA 2025.9. - The Australian version of the Daikin Wifi Controller for **AirBase** units (BRP15B61), which is operated by the [Daikin Airbase](https://play.google.com/store/apps/details?id=au.com.daikin.airbase) application. - **SKYFi** based units, which is operated by the SKYFi application*. -{% note %} - -- BRP072Cxx adapters require an API key to be entered, which is labelled "KEY" on the device sticker alongside SSID, MAC, and S/N. Password should be left blank. -- SKYFi-based units require a password to be entered. API key should be left blank. -- Other models are auto-detected and the API key and password fields must be left blank. -- BRP084Cxx firmware update from 1.19.0 to 2.8.0 breaks local API there is however ongoing work in fixing local API support again. - -{% endnote %} +If your unit is not in the list above there is another option, to buy and install an [ESP32-Faikin](https://github.com/revk/ESP32-Faikin). {% include integrations/config_flow.md %} +If your device is set up with password, use the password. If it has an API key, use the API key. In all other cases, leave the fields blank. + {% note %} If your Daikin unit does not reside in the same network as your Home Assistant instance, i.e. your network is segmented, note that a couple of UDP connections are made during discovery: diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown index 7e07591bc9d..938e44bdcf9 100644 --- a/source/_integrations/default_config.markdown +++ b/source/_integrations/default_config.markdown @@ -16,6 +16,7 @@ This {% term integration %} is a meta-component and configures a default set of - [Assist pipeline](/integrations/assist_pipeline/) (`assist_pipeline`) - [Backup](/integrations/backup/) (`backup`) - [Bluetooth](/integrations/bluetooth/) (`bluetooth`) +- [Cloud](/integrations/cloud/) (`cloud`) - [Configuration](/integrations/config/) (`config`) - [Conversation](/integrations/conversation/) (`conversation`) - [DHCP discovery](/integrations/dhcp/) (`dhcp`) @@ -32,6 +33,7 @@ This {% term integration %} is a meta-component and configures a default set of - [Simple Service Discovery Protocol (SSDP)](/integrations/ssdp/) (`ssdp`) - [Stream](/integrations/stream/) (`stream`) - [Sun](/integrations/sun/) (`sun`) +- [Usage Prediction](/integrations/usage_prediction/) (`usage_prediction`) - [USB](/integrations/usb/) (`usb`) - [Webhooks](/integrations/webhook) (`webhook`) - [Zero-configuration networking (zeroconf)](/integrations/zeroconf/) (`zeroconf`) diff --git a/source/_integrations/droplet.markdown b/source/_integrations/droplet.markdown index 07386c39cc2..0a551b42152 100644 --- a/source/_integrations/droplet.markdown +++ b/source/_integrations/droplet.markdown @@ -70,3 +70,13 @@ This integration follows standard integration removal process. {% include integrations/remove_device_service.md %} 4. To prevent Droplet from showing up as a discovered device after its removal, disable the local API in the Droplet app under **Settings** > **Smart Home Integrations** > **Home Assistant**. + +## FAQ & Troubleshooting + +### Q: Why does Droplet’s volume sensor sometimes show negative values? + +**A**: The volume reported by Droplet over local API is point-to-point, meaning that each new value represents the difference in volume recorded since this data was last sent. Even when you’re not using appliances in your home, there can still be activity in your pipes. Droplet tries to be very accurate and is sensitive to small flows, which can include water sloshing back and forth, or slight movement as a result of pressure differences. Small negative values are to be expected, and are reported so that cumulative statistics reported in Home Assistant (or other consumers of the API) can be fully accurate. + +### Q: Why is my Droplet failing to authenticate with Home Assistant? + +**A**: If your Droplet is failing to authenticate, try waiting 1-2 minutes after enabling Home Assistant or regenerating the code in the Droplet app. It may take a moment for the Droplet to be ready to accept connections. diff --git a/source/_integrations/ecobee.markdown b/source/_integrations/ecobee.markdown index d90c107318c..2a09c066c02 100644 --- a/source/_integrations/ecobee.markdown +++ b/source/_integrations/ecobee.markdown @@ -260,7 +260,7 @@ Enable/disable Smart Home/Away and Follow Me modes. ### Service `ecobee.set_sensors_in_climate` -Set which sensors are active on a termostat for a specific climate program. +Set which sensors are active on a thermostat for a specific climate program. | Service data attribute | Optional | Description | | ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/source/_integrations/ecovacs.markdown b/source/_integrations/ecovacs.markdown index 422cf2ab687..4614a9a83ce 100644 --- a/source/_integrations/ecovacs.markdown +++ b/source/_integrations/ecovacs.markdown @@ -28,12 +28,16 @@ ha_platforms: ha_integration_type: integration --- -The `ecovacs` {% term integration %} is the main integration to integrate [Ecovacs](https://www.ecovacs.com) (Deebot) vacuums and mowers. You will need your Ecovacs account information (username, password) to discover and control vacuums and mowers in your account. +The `ecovacs` {% term integration %} is the main integration to integrate [Ecovacs](https://www.ecovacs.com) (Deebot) vacuums and mowers. -{% include integrations/config_flow.md %} +## Prerequisites + +You will need your Ecovacs account information (username, password) to discover and control vacuums and mowers in your account. Additional note: There are some issues during the password encoding. Using some special characters (e.g., `-`) in your password does not work. +{% include integrations/config_flow.md %} + With `advanced_mode` enabled, users can use their self-hosted instance over the cloud servers. Self-hosting comes with some requirements and limitations. See [Self-hosted configuration](#self-hosted-configuration) for additional details. ## Provided entities @@ -213,3 +217,9 @@ In any case, when reporting an issue, please enable [debug logging](/docs/config Because Ecovacs doesn't provide a public documentation about their APIs, the support of devices is based on reverse engineering of the communication of the device. This reverse engineering can only be done by persons, who are in possession of such a device and the knowledge how to do the reverse engineering. Therefore the support of devices heavily depends on contributions from the community. If your device is not supported, please request for help or contribute on your own the support of your device directly to the [`deebot_client`](https://github.com/DeebotUniverse/client.py) library. + +## Removing the integration + +This integration follows standard integration removal. + +{% include integrations/remove_device_service.md %} \ No newline at end of file diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index a3e0806e089..d09c2972a5b 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -249,7 +249,7 @@ When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disable #### Grid Balanced import/export sensor entities -When the Envoy Metered is equipped with a [total-consumption CT](#current-transformers) instead of a [net-consumption CT](#current-transformers), no individual entities for Grid import and export are available, as these are not measured. Instead, the balance (difference) of grid import and export is available in a single entity, disabled by default, enable as desired. +When the Envoy Metered is equipped with either a [total-consumption CT](#current-transformers) or a [net-consumption CT](#current-transformers), the balance of grid import and export is available as well. The balanced power and energy entities are disabled by default, enable these as desired. - **Envoy SN balanced net power consumption**: Current power exchange from (positive) / to (negative) the grid in W, default display in kW. (This is the same value as [Envoy SN Current net power consumption](#grid-sensor-entities) when using a net-consumption CT.) @@ -493,46 +493,15 @@ With a [net-consumption CT](#grid-sensor-entities) installed, both grid consumpt - For **Grid consumption**, use the **Envoy SN Lifetime net energy consumption** entity. - For **Return to grid**, use the **Envoy SN Lifetime net energy production** entity. -#### Electricity grid with total-consumption CT +#### Electricity grid with balanced consumption entities -With a [total-consumption CT](#grid-balanced-importexport-sensor-entities) installed, only the balanced grid import-export value is available. This value is not suited for direct use with the energy dashboard. It will require some templating to split the value into an import and export value. +With a [total-consumption CT](#grid-balanced-importexport-sensor-entities) or a [net-consumption CT](#grid-sensor-entities) installed, the balanced grid import-export energy value is available. This value is not suited for direct use with the energy dashboard. It will require some templating to split the value into an import and export value. -{% details "Concept to split balanced Grid value into individual import-export values" %} +To split the balanced energy value **Envoy SN Lifetime balanced net energy consumption** into import-export values, a sensor [blueprint template](/integrations/template/#using-blueprints) named [`Filter positive or negative value changes in a sensor entity`](https://community.home-assistant.io/t/filter-positive-or-negative-value-changes-in-a-sensor-entity/943919/1) is available in the community blueprints exchange. -The concept is to track value changes of the **Envoy SN Lifetime balanced net energy consumption** entity, add positive changes to a grid_import entity and add negative changes to a grid_export entity. +Import the blueprint using the **import blueprint to** button. This will install the blueprint as `/config/blueprints/template/catsmanac/Filter_positive_or_negative_value_changes_in_sensor_entity.yaml`. Use the directions and templates in the blueprint exchange topic to implement such a split. -{% raw %} - -```yaml - -- trigger: - - platform: state - entity_id: sensor.envoy_sn_lifetime_balanced_net_energy_consumption - - sensor: - - name: "Grid import" - unique_id: calculated_envoy_grid_import - unit_of_measurement: "Wh" - state: "{{ this.state | int(0) + ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | max) }}" - device_class: energy - state_class: total_increasing - - name: "Grid export" - unique_id: calculated_envoy_grid_export - unit_of_measurement: "Wh" - state: "{{ this.state | int(0) - ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | min) }}" - device_class: energy - state_class: total_increasing -``` - -{% endraw %} - -The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages nor changing UOM to a preferred one. Examples for these exist in various community topics. - -{% tip %} -Alternatively, this can be done by splitting the **Envoy SN balanced net power consumption** into power import and export and two Riemann sum integral helpers to calculate energy from the power values. -{% endtip %} - -{% enddetails %} +Alternatively, creating 2 split energy sensors can be done by splitting the **Envoy SN balanced net power consumption** into power import and export using [filter range](/integrations/filter/#range) helpers. These are then the source for two Riemann sum integral helpers to calculate energy from the power values. ### Home battery storage @@ -551,108 +520,19 @@ Without a [storage CT](#aggregated-iq-battery-sensor-entities) installed, only t ##### Home battery storage data using battery power -Battery power is the current power flow in or out of an individual battery. Using the summed Power values of all batteries, the result needs to be split in 2 entities, representing total power in and power out. Next, each entity needs to be integrated into energy, using two Riemann sum integral helpers. The resulting data can be used for Energy going into the battery and Energy coming out of the battery. +Battery power is the current power flow in or out of an individual battery. Using the summed Power values of all batteries, the result needs to be split in 2 entities, representing total power in and power out. -{% details "Concept to split Battery power value into individual import-export power values" %} +This can be done using the [filter range](/integrations/filter/#range) helper. Next, each entity needs to be integrated into energy, using two Riemann sum integral helpers. The resulting data can be used for Energy going into the battery and Energy coming out of the battery. -The concept is to first sum all battery Power values using a combine state helper. Then track value changes of the summed value entity, add positive values to a battery_charge power entity and add negative values to a battery_discharge power entity. - -{% raw %} - -```yaml - -- trigger: - - platform: state - entity_id: sensor.envoy_sn_summed_battery_power_entity - - sensor: - - name: "Battery charge power" - unique_id: calculated_envoy_battery_charge_power - unit_of_measurement: "W" - state: "{{ [0, trigger.to_state.state | int ] | max }}" - device_class: power - state_class: measurement - - name: "Battery discharge power" - unique_id: calculated_envoy_battery_discharge_power - unit_of_measurement: "W" - state: "{{ [0, 0 - trigger.to_state.state | int ] | max) }}" - device_class: power - state_class: measurement -``` - -{% endraw %} - -Use both calculated values as a source for the 2 left Riemann integrators to obtain the energy charged and discharged. The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages, nor conversion losses. - -If desired, this can also be done for individual batteries, see below concept. - -{% raw %} - -```yaml - -template: - - sensor: - - name: Battery xxx charge power - unique_id: calculated_envoy_battery_xxx_charge_power - state_class: measurement - icon: mdi:battery-charging - unit_of_measurement: W - device_class: power - state: > - {{ [0, states('sensor.encharge_xxxx_power') | int ] | max }} - - - name: Battery xxx discharge power - unique_id: calculated_envoy_battery_xxx_discharge_power - state_class: measurement - icon: mdi:battery-charging - unit_of_measurement: W - device_class: power - state: > - {{ [0, 0 - states('sensor.encharge_xxxx_power') | int ] | max }} -``` - -Use both calculated values as a source for 2 left Riemann integrators to obtain energy charged and discharged. - -{% endraw %} - -{% enddetails %} +If desired, this can also be done in a similar way for individual batteries. ##### Home battery storage data on the available battery energy Changes in the Available battery energy are a result from Energy going in or out of the battery. Splitting these energy changes into 2 entities, one tracking positive changes, one the negative changes, results in data that can be used for Energy going into the battery and Energy coming out off the battery. This method does not account for conversion losses as Energy content changes do not exactly match actual energy flow in and out of the battery. -{% details "Concept to split Available battery energy value into individual import-export values" %} +To split the changes in Available battery energy into charge-discharge values, a sensor [blueprint template](/integrations/template/#using-blueprints) named [`Filter positive or negative value changes in a sensor entity`](https://community.home-assistant.io/t/filter-positive-or-negative-value-changes-in-a-sensor-entity/943919/1) is available in the community blueprints exchange. -The concept is to track value changes of the **Envoy SN Available battery energy** entity, add positive changes to a battery_charge entity and add negative changes to a battery_discharge entity. - -{% raw %} - -```yaml - -- trigger: - - platform: state - entity_id: sensor.envoy_sn_available_battery_energy - - sensor: - - name: "Battery charge" - unique_id: calculated_envoy_battery_charge - unit_of_measurement: "Wh" - state: "{{ this.state | int(0) + ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | max }}" - device_class: energy - state_class: total_increasing - - name: "Battery discharge" - unique_id: calculated_envoy_battery_discharge - unit_of_measurement: "Wh" - state: "{{ this.state | int(0) - ([0, (trigger.to_state.state | int(0) - trigger.from_state.state | int(0))] | min }}" - device_class: energy - state_class: total_increasing -``` - -{% endraw %} - -The above example does not address handling `unavailable` or `unknown` states, value changes over Home Assistant outages nor conversion losses. - -{% enddetails %} +Import the blueprint using the **import blueprint to** button. This will install the blueprint as `/config/blueprints/template/catsmanac/Filter_positive_or_negative_value_changes_in_sensor_entity.yaml`. Use the directions and templates in the blueprint exchange topic to implement such a split using the **Envoy SN available battery energy** entity as source entity. Add positive changes to a battery_charge entity and add negative changes to a battery_discharge entity. ### Individual devices @@ -807,7 +687,7 @@ Envoy Metered without installed CT, running older firmware versions, reportedly ### Lifetime energy production decreases by 1.2 MWh -Envoy Standard (not Metered), running firmware 8.2.4264, reportedly decreases the **Lifetime energy production** value by 1.2 MWh at irregular times. The current hypothesis is that the step change occurs when one of the inverters exceeds an internal lifetime joules counter of 32 bit, which is 1.19 MWh, and resets to zero. This leads to a decrease of 1.2 MWh in the aggregated value for all inverters. It's not clear if this also happens for the metered Envoy. +The envoy, as of firmware 8.2.4264, reportedly decreases the **Lifetime energy production** value by 1.2 MWh at irregular times. The current hypothesis is that the step change occurs when one of the inverters exceeds an internal lifetime joules counter of 32 bit, which is 1.19 MWh, and resets to zero. This leads to a decrease of 1.2 MWh in the aggregated value for all inverters. {% details "History example for Envoy Lifetime energy production value decrease" %} @@ -819,6 +699,10 @@ The example below shows decreases when multiple inverters reach a 1.2 MWh lifeti {% enddetails %} +To correct for this issue, a sensor [blueprint template](/integrations/template/#using-blueprints) named [`Correct Envoy lifetime production energy`](https://community.home-assistant.io/t/correct-envoy-lifetime-production-energy/942918/1) is available in the community blueprints exchange. + +Import the blueprint using the **import blueprint to** button. This will install the blueprint as `/config/blueprints/template/marcelhoogantink/correct_envoy_lifetime_production_energy.yaml`. Use the templates shown in the blueprint exchange to implement an entity with a corrected lifetime value. + ### Missing inverter data If you are not seeing all your installed [inverters](#sensor-entities), and you have more than 49 inverters installed, and you are running HA 2025.7, 2025.7.1, or 2025.7.2, then upgrade HA to 2025.7.3 or newer. Due to a limitation in the Envoy firmware. Only the inverter details for 49 inverters are available. In the mentioned releases, any more inverters got dropped. The 2025.7.3 version fixed this by only using the inverter base data, which does not have this limitation. diff --git a/source/_integrations/environment_canada.markdown b/source/_integrations/environment_canada.markdown index 58f025d73ae..1dc79ed8abe 100644 --- a/source/_integrations/environment_canada.markdown +++ b/source/_integrations/environment_canada.markdown @@ -33,15 +33,17 @@ Choose your weather location using either: ## Entities -The integration will create the entities listed below. Some of the entities are disabled by default and can be enabled via the integration's Entities page. +The integration will create the entities listed below. ### Weather - Current conditions, daily forecast, and hourly forecast -### Camera +### Radar map (Camera) -- Loop of radar imagery from the last 3 hours (disabled by default). Also, by default, this entity uses the radar rain layer from 1 April to 30 November and the snow layer from 1 December to 31 March. The rain/snow layer can be changed using the action described below. +- Loop of radar imagery from the last 3 hours. +- This entity is disabled by default can be enabled in the entry's settings dialog. +- By default, this entity uses the radar rain layer from 1 April to 30 November and the snow layer from 1 December to 31 March. The rain/snow layer can be changed using the action described below. ### Sensors @@ -49,13 +51,13 @@ The integration will create the entities listed below. Some of the entities are - Current condition - Forecast summary -- [Icon code](https://dd.weather.gc.ca/citypage_weather/docs/Current_Conditions_Icons-Icones_conditions_actuelles.pdf) of current condition +- [Icon code](https://dd.weather.gc.ca/today/citypage_weather/docs/Current_Conditions_Icons-Icones_conditions_actuelles.pdf) of current condition - Barometric pressure - Pressure tendency - Humidity - Visibility - UV index -- Air quality (AQHI) +- Air quality health index (AQHI) #### Temperature @@ -76,7 +78,6 @@ The integration will create the entities listed below. Some of the entities are #### Precipitation - Probability of precipitation -- Precipitation yesterday #### Alerts @@ -104,7 +105,7 @@ The first course of action should be to check if there are known problems with t ### Sensor `unavailable` or `unknown` -Not all weather stations provide a complete set of weather/sensor data. The data that is retrieved by this integration can be found [here](https://dd.weather.gc.ca/citypage_weather/xml/). Browsing the XML data for your station will help you to understand what data is (un)available. +Not all weather stations provide a complete set of weather/sensor data. The data that is retrieved by this integration can be found [here](https://dd.weather.gc.ca/today/citypage_weather/). Browsing the XML data for your station will help you to understand what data is (un)available. ## Template sensors diff --git a/source/_integrations/foscam.markdown b/source/_integrations/foscam.markdown index 34a9dd35a0d..9f198006cfe 100644 --- a/source/_integrations/foscam.markdown +++ b/source/_integrations/foscam.markdown @@ -224,4 +224,4 @@ elements: ### Extra CGI Commands -Foscam Webcams which support CGI Commands can be controlled by Home Assistant ([Source](https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf)). +Foscam Webcams which support CGI Commands can be controlled by Home Assistant ([Source](https://community.jeedom.com/uploads/short-url/2A5aSBcCyoVZOdpiFC8HRDAOxqG.pdf)). diff --git a/source/_integrations/freedompro.markdown b/source/_integrations/freedompro.markdown index 16230374a21..e7cff0b211b 100644 --- a/source/_integrations/freedompro.markdown +++ b/source/_integrations/freedompro.markdown @@ -42,7 +42,7 @@ You will need to obtain an API key from Freedompro's app to use this integration 2. Register and create your first home. 3. Make sure you have at least one accessory paired with the Freedompro Cloud before starting integration. 4. Switch to the **Profile** tab (bottom right corner). -5. Scroll down to the **Developper tools** and tap **Api Key**. +5. Scroll down to the **Developer tools** and tap **Api Key**. 6. Generate an API key. {% include integrations/config_flow.md %} diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 7b163e0cf2c..2bedfc71409 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -28,7 +28,7 @@ ha_codeowners: ha_integration_type: hub --- -The FRITZ!SmartHome integration for Home Assistant allows you to integrate [FRITZ! Smart Home](https://en.fritz.com/products/smart-home/) (_former AVM FRITZ!DECT_) devices like plugs, thermostats or shutter drivers as also trigger so called smart home templates (_contains settings for Smart Home devices of the same type_). +The FRITZ!SmartHome integration for Home Assistant allows you to integrate [FRITZ! Smart Home](https://fritz.com/en/collections/smart-home/) (_former AVM FRITZ!DECT_) devices like plugs, thermostats or shutter drivers as also trigger so called smart home templates (_contains settings for Smart Home devices of the same type_). #### Tested devices @@ -56,7 +56,7 @@ The FRITZ!SmartHome integration for Home Assistant allows you to integrate [FRIT ## Prerequisites -Please note that in a [mesh](https://en.fritz.com/service/knowledge-base/dok/FRITZ-Box-7590/3329_Mesh-with-FRITZ/) setup, only the FRITZ!Box with the mesh master role should be added with the FRITZ!SmartHome integration. +Please note that in a [mesh](https://fritz.com/en/apps/knowledge-base/FRITZ-Box-7590/3329_Mesh-with-FRITZ/) setup, only the FRITZ!Box with the mesh master role should be added with the FRITZ!SmartHome integration. ### Username @@ -111,7 +111,7 @@ Shutter drivers like the [Homepilot RolloTron DECT 1213][rademacher_rollotron_de ### Templates -Self defined [templates](https://en.fritz.com/guide/three-smart-home-templates-that-will-make-your-life-easier) within the FRITZ!Box smart home configuration menu, will be integrated as {% term button %} entities and those can be triggered from within Home Assistant. +Self defined [templates](https://fritz.com/en/apps/knowledge-base/FRITZ-Box-7590/3708_Creating-a-template-and-scene-for-smart-home-devices) within the FRITZ!Box smart home configuration menu, will be integrated as {% term button %} entities and those can be triggered from within Home Assistant. ### Thermostats @@ -148,15 +148,15 @@ The availability of these {% term sensor %} and {% term binary_sensor "binary se - Open window detected - Temperature -[fritzbox_5590_fiber]: https://en.fritz.com/products/fritzbox/fritzbox-5590-fiber -[fritzbox_7590_ax]: https://en.fritz.com/products/fritzbox/fritzbox-7590-ax -[fritzbox_7530_ax]: https://en.fritz.com/products/fritzbox/fritzbox-7530-ax -[fritzdect_200]: https://en.fritz.com/products/smart-home/fritzsmart-energy-200 -[fritzdect_210]: https://en.fritz.com/products/smart-home/fritzsmart-energy-210 -[fritzdect_302]: https://en.fritz.com/products/smart-home/fritzsmart-thermo-302 -[fritzdect_350]: https://en.fritz.com/products/smart-home/fritzsmart-control-350 -[fritzdect_440]: https://en.fritz.com/products/smart-home/fritzsmart-control-440 -[fritz_smart_gateway]: https://en.fritz.com/products/smart-home/fritzsmart-gateway +[fritzbox_5590_fiber]: https://fritz.com/en/products/fritz-box-5590-fiber-20002981 +[fritzbox_7590_ax]: https://fritz.com/en/products/fritz-box-7590-ax-20002998 +[fritzbox_7530_ax]: https://fritz.com/en/products/fritz-box-7530-ax-20002930 +[fritzdect_200]: https://fritz.com/en/products/fritz-dect-200-20002572 +[fritzdect_210]: https://fritz.com/en/products/fritz-dect-210-20002723 +[fritzdect_302]: https://fritz.com/en/products/fritz-smart-thermo-302-20003120 +[fritzdect_350]: https://fritz.com/en/products/fritz-dect-440-20002905 +[fritzdect_440]: https://fritz.com/en/products/fritz-smart-control-350-20003119 +[fritz_smart_gateway]: https://fritz.com/en/products/fritz-smart-gateway-20003012 [rademacher_rollotron_dect_1213]: https://www.rademacher.de/shop/rollladen-sonnenschutz/elektrischer-gurtwickler/rollotron-dect-1213 ## Troubleshooting diff --git a/source/_integrations/google_assistant_sdk.markdown b/source/_integrations/google_assistant_sdk.markdown index 5c93b5ff3b6..db9b5da700c 100644 --- a/source/_integrations/google_assistant_sdk.markdown +++ b/source/_integrations/google_assistant_sdk.markdown @@ -130,6 +130,8 @@ If you have an error with your credentials you can delete them in the [Applicati If commands don't work try removing superfluous words such as "the". E.g. "play rain sounds on bedroom speaker" instead of "play rain sounds on the bedroom speaker". +If commands to a specific device (like streaming a camera to a Google TV) fail, you may need to enable "Personal Results" on that device itself. For example, on a Google TV or Chromecast with Google TV, this setting may be located under `Settings > Privacy > Google Assistant > Personal Results`. This may be required in addition to enabling it in the Google Home app. + If broadcasting doesn't work, make sure: the speakers aren't in do not disturb mode, the Home Assistant server is in the same network as the speakers. The easiest way to check if the integration is working is to check [My Google Activity](https://myactivity.google.com/myactivity) for the issued commands and their responses. @@ -157,7 +159,7 @@ You can use the `google_assistant_sdk.send_text_command` action to send commands | Data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `command` | no | Command(s) to send to Google Assistant. | -| `media_player` | yes | Name(s) of media player entities to play response on | +| `media_player` | yes | Name(s) of media player entities to play the Google Assistant's audio response on. This does **not** target the device for the command itself. | Examples: @@ -168,13 +170,23 @@ data: ``` ```yaml -# Say a joke on the living room speaker +# Say a joke on the living room speaker. The `media_player` entity receives the audio response. action: google_assistant_sdk.send_text_command data: command: "tell me a joke" media_player: media_player.living_room_speaker ``` +```yaml +# Stream a camera to a Chromecast-enabled TV or display. +# The target device ("living room tv") must be part of the command itself. +action: google_assistant_sdk.send_text_command +data: + command: "show the front door camera on the living room tv" +``` + +Note: To control a specific device, like streaming a camera to a TV, you must include the device's name (as known by Google Assistant) in the text `command`. The `media_player` parameter is only used for playing back Google Assistant's audio response and will not direct the video stream. + You can send multiple commands in the same conversation context which is useful to unlock doors or open covers that need a PIN. Example: ```yaml diff --git a/source/_integrations/hassio.markdown b/source/_integrations/hassio.markdown index 15b585d2009..e26eea74290 100644 --- a/source/_integrations/hassio.markdown +++ b/source/_integrations/hassio.markdown @@ -73,7 +73,7 @@ For Home Assistant Host, the following sensors are available: For each installed add-on Supervisor provides following binary sensors: -(These entities are disabled by default and must be reenabled to appear) +(These entities are disabled by default and must be re-enabled to appear) | Sensor | Enabled by default | Description | | ------- | ------------------ | ----------- | diff --git a/source/_integrations/homee.markdown b/source/_integrations/homee.markdown index 0e2ba87673e..4703f12998a 100644 --- a/source/_integrations/homee.markdown +++ b/source/_integrations/homee.markdown @@ -1,6 +1,6 @@ --- -title: Homee -description: Instructions on how to setup Homee devices in Home Assistant. +title: homee +description: Instructions on how to setup homee devices in Home Assistant. ha_category: - Alarm - Binary sensor @@ -44,17 +44,17 @@ ha_integration_type: hub ha_quality_scale: silver --- -[Homee](https://hom.ee) is a smart home system, able to integrate various protocols such as Z-Wave, Zigbee, EnOcean, and more. The Homee {% term integration %} will let you use the {% term devices %} from your Homee in Home Assistant. +[homee](https://hom.ee) is a smart home system, able to integrate various protocols such as Z-Wave, Zigbee, EnOcean, and more. The homee {% term integration %} will let you use the {% term devices %} from your homee in Home Assistant. ## Prerequisites -You need to create a new user in your Homee app. Create a user that is only used by Home Assistant. For security reasons, it's recommended to: +You need to create a new user in your homee app. Create a user that is only used by Home Assistant. For security reasons, it's recommended to: - Use a strong, unique password. - Restrict the user's permissions for what you want to do from Home Assistant. - Do not use this account for any other purpose. -1. In your Homee app, in the top-left corner, tap the menu button. +1. In your homee app, in the top-left corner, tap the menu button. 2. On the top right of the opening menu, tap the gear {% icon "mdi:gear-outline" %} icon. 3. Choose **Manage users**. 4. Choose **Add user** and configure the desired values. @@ -63,7 +63,7 @@ You need to create a new user in your Homee app. Create a user that is only used {% configuration_basic %} Host: - description: The IP Address of your Homee. + description: The IP Address of your homee. User: description: The username you chose in the Prerequisites. Password: @@ -71,11 +71,11 @@ Password: {% endconfiguration_basic %} Available devices will automatically show up in your Home Assistant installation. -New devices added to Homee will be automatically discovered after a restart of Home Assistant. This restart is only required when adding new devices, not for state updates of existing devices. +New devices added to homee will be automatically discovered after a restart of Home Assistant. This restart is only required when adding new devices, not for state updates of existing devices. ## Limitations -Changed values are reported from Homee in defined time intervals and not always in realtime. For example, while a cover moves, the position is updated only every few seconds and intermediate states may be missed by Home Assistant. +Changed values are reported from homee in defined time intervals and not always in realtime. For example, while a cover moves, the position is updated only every few seconds and intermediate states may be missed by Home Assistant. ## Troubleshooting @@ -83,7 +83,7 @@ First, see the general [Home Assistant troubleshooting guide](/docs/configuratio The **homee** integration supports [debug logs and diagnostics](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics). -### Homee device not working as expected +### homee device not working as expected Make sure, the {% term device %} works as expected in homee. If a homee device shows up in Home Assistant, but does not work as expected or is missing {% term entities %}, open a [report](https://github.com/home-assistant/core/issues) and attach error logs and the device's {% term diagnostics %} data. @@ -105,6 +105,6 @@ This integration supports reconfiguration, allowing you to change the IP address ## Removing the integration -This integration follows standard integration removal, and once the integration is removed, you can also remove the dedicated user from your Homee. +This integration follows standard integration removal, and once the integration is removed, you can also remove the dedicated user from your homee. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/imeon_inverter.markdown b/source/_integrations/imeon_inverter.markdown index cb65a35e90a..c915c0c69e8 100644 --- a/source/_integrations/imeon_inverter.markdown +++ b/source/_integrations/imeon_inverter.markdown @@ -27,7 +27,7 @@ The Imeon Energy Inverter {% term integrations %} will poll an [Imeon](https://i - The Imeon inverter must be connected to the local network. - [OS One](https://imeon-energy.com/os-one/) version must be **1.8.1.4** or higher. -- *ModuleAPI* application must be activated on the OS One pannel of your Imeon inverter. +- *ModuleAPI* application must be activated on the OS One panel of your Imeon inverter. - To do so, connect to **OS One** > **Applications** and by hovering over *ModuleAPI*, select **Activate**. {% include integrations/config_flow.md %} diff --git a/source/_integrations/imgw_pib.markdown b/source/_integrations/imgw_pib.markdown index e7ff8557d59..635b27ae579 100644 --- a/source/_integrations/imgw_pib.markdown +++ b/source/_integrations/imgw_pib.markdown @@ -25,17 +25,60 @@ Hydrological station: description: "Select a hydrological station from the list of available stations." {% endconfiguration_basic %} -## Sensors - -Sensor entities added to Home Assistant: - -- Water level -- Water flow (if a given hydrological station supports it) -- Water temperature (if a given hydrological station supports it) -- Hydrological alert (provides information on hydrological alerts for a given river and area) - ## Removing the integration This integration follows standard integration removal, no extra steps are required. {% include integrations/remove_device_service.md %} + +## Supported functionality + +The IMGW-PIB integration provides the following entities. + +### Sensors + +- **Water level** + - **Description**: Water level in the river or reservoir at the measurement point +- **Water flow** + - **Description**: River water flow at the measurement point + - **Remarks**: Not available for all hydrological stations +- **Water temperature** + - **Description**: Water temperature in the river or reservoir at the measurement point + - **Remarks**: Not available for all hydrological stations +- **Hydrological alert** + - **Description**: Provides information on hydrological alerts for a given river or reservoir + +## Data updates + +By default, the integration {% term polling polls %} data from the IMGW-PIB API every 30 minutes. + +## Possible use-cases + +- Monitor hydrological alerts to protect your family and property from floods. +- Monitor river water levels to gain long-term insight into climate change in your area. + +## Examples + +### Create a hydrological alert notification + +This automation will create a persistent notification with the content and probability of a hydrological alert: + +```yaml +automation: + - alias: Hydrological alert + triggers: + - trigger: state + entity_id: + - sensor.warta_oborniki_hydrological_alert + from: no_alert + actions: + - action: persistent_notification.create + data: + title: Hydrological alert! + message: "{{ trigger.to_state.state }}, probability {{ trigger.to_state.attributes.probability }}%" +``` + +## Known limitations + +- The integration provides data for hydrological stations available through the public IMGW-PIB API. Some hydrological stations are not available in this data and therefore the integration does not support them. +- Not all hydrological stations provide all data, so the set of entities for individual stations may differ. diff --git a/source/_integrations/intent_script.markdown b/source/_integrations/intent_script.markdown index ef332fb75ad..12e7b1f47bb 100644 --- a/source/_integrations/intent_script.markdown +++ b/source/_integrations/intent_script.markdown @@ -124,3 +124,13 @@ intent_script: ``` {% endraw %} + +## Actions + +Available actions: `reload`. + +### Action `intent_script.reload` + +Reloads the intent script from the YAML-configuration, as a quicker alternative to restarting Home Assistant. + +This action takes no data attributes. diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 405f2a414b8..ed987e802bb 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -602,7 +602,7 @@ knx: # time and date exposures - type: time address: "0/0/1" - # entitiy exposures + # entity exposures - type: temperature entity_id: sensor.owm_temperature address: "0/0/2" diff --git a/source/_integrations/konnected_esphome.markdown b/source/_integrations/konnected_esphome.markdown index dc241d50884..3897d65610c 100644 --- a/source/_integrations/konnected_esphome.markdown +++ b/source/_integrations/konnected_esphome.markdown @@ -42,6 +42,16 @@ ha_dhcp: true ha_zeroconf: true --- -[Konnected](https://konnected.io/) devices work locally and integrate seamlessly with the [ESPHome](/integrations/esphome/) {% term integration %} in Home Assistant. As all connectivity is done locally, status updates and device control from Home Assistant happen instantly. +[Konnected](https://konnected.io/) is a member of the Made for ESPHome program. -{% include integrations/supported_brand.md %} \ No newline at end of file +Konnected devices work locally and integrate seamlessly with the [ESPHome](/integrations/esphome/) {% term integration %} in Home Assistant. As all connectivity is done locally, status updates and device control from Home Assistant happen instantly. + +{% include integrations/supported_brand.md %} + +## Supported devices + +The following devices are known to be supported by the integration. They are certified under the [Works with Home Assistant](https://partner.home-assistant.io/) program. + +- [Konnected Smart Garage Door Opener blaQ](https://konnected.io/products/smart-garage-door-opener-blaq-myq-alternative) +- [Konnected Smart Garage Door Opener White (v2)](https://konnected.io/products/smart-garage-door-opener) +- [Konnected Alarm Panel Pro](https://konnected.io/collections/smart-alarm-panels) diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown index 3850726630d..507b882d3e9 100644 --- a/source/_integrations/lcn.markdown +++ b/source/_integrations/lcn.markdown @@ -80,7 +80,7 @@ They are ideal to be used in automation scripts or for the `template` platforms. {% endnote %} -## Setting up devices and entites +## Setting up devices and entities The `lcn` hardware modules and groups are represented by Home Assistant *devices*. The periphery of each `lcn` module is represented by Home Assistant *entities*. Peripheries are, for example, the output ports, relays, and variables of a module. Refer to the description of each [platform](#platforms) to learn about which entity should be used for which periphery. diff --git a/source/_integrations/lightwave.markdown b/source/_integrations/lightwave.markdown index e62adaa0c51..6b4aed5c041 100644 --- a/source/_integrations/lightwave.markdown +++ b/source/_integrations/lightwave.markdown @@ -116,7 +116,7 @@ The first use of a light or switch will try to register with your Lightwave WiFi Lightwave Thermostatic Radiator Values (TRV) are supported. Earlier integrations required a proxy - See [LWProxy](https://github.com/ColinRobbins/Homeassistant-Lightwave-TRV). -This capabilty is still supported, but no longer required. +This capability is still supported, but no longer required. ```yaml # Example TRV configuration.yaml for TRVs diff --git a/source/_integrations/livisi.markdown b/source/_integrations/livisi.markdown index 6ec35438dd4..77bb642baf6 100644 --- a/source/_integrations/livisi.markdown +++ b/source/_integrations/livisi.markdown @@ -30,7 +30,7 @@ The following devices are currently supported by this integration: - Wall Switches (ISS, ISS2) - Window-Door Sensor (WDS) -## Prequisites +## Prerequisites This integration communicates with the local version of LIVISI SmartHome only. diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index 57c62e8cff9..9a3a85c85de 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -81,8 +81,9 @@ Example post action that will post a status using your account's default visibil ```yaml - action: mastodon.post - config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID - status: "A toot from Home Assistant" + data: + config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID + status: "A toot from Home Assistant" ``` {% endraw %} @@ -97,9 +98,10 @@ This will post a status to Mastodon, but visibility is marked as `private` so on ```yaml - action: mastodon.post - config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID - status: "A private toot from Home Assistant" - visibility: private + data: + config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID + status: "A private toot from Home Assistant" + visibility: private ``` {% endraw %} @@ -114,9 +116,10 @@ This will post a status to Mastodon that includes an image. ```yaml - action: mastodon.post - config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID - status: "A media toot from Home Assistant" - media: /config/www/funny_meme.png + data: + config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID + status: "A media toot from Home Assistant" + media: /config/www/funny_meme.png ``` {% endraw %} @@ -131,12 +134,13 @@ This will post a status to Mastodon that includes an image, with a description, ```yaml - action: mastodon.post - config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID - status: "A media toot from Home Assistant" - visibility: unlisted - media: /config/www/funny_meme.png - media_description: "A funny meme" - content_warning: "This might not be funny enough" + data: + config_entry_id: YOUR_MASTODON_CONFIG_ENTITY_ID + status: "A media toot from Home Assistant" + visibility: unlisted + media: /config/www/funny_meme.png + media_description: "A funny meme" + content_warning: "This might not be funny enough" ``` {% endraw %} diff --git a/source/_integrations/meteoalarm.markdown b/source/_integrations/meteoalarm.markdown index 141c9ed7190..44ac62f0acc 100644 --- a/source/_integrations/meteoalarm.markdown +++ b/source/_integrations/meteoalarm.markdown @@ -16,6 +16,8 @@ ha_quality_scale: legacy The `MeteoAlarm` platform allows one to watch for weather alerts in Europe from [MeteoAlarm](https://www.meteoalarm.org) (EUMETNET). To use this binary sensor, you need the country and the province name from [MeteoAlarm](https://feeds.meteoalarm.org). Please note that it is crucial to write the country name exactly as it appears in the URL starting with https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-, including any hyphens used in the name. Failure to do so may result in errors or incorrect data. +The name of the province can be found using the [MeteoAlarm EMMA_ID Region explorer tool](https://saratoga-weather.org/meteoalarm-map/) + The binary sensor state shows the warning message if applicable. The details are available as attribute. ## Configuration diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index 7780962f166..80bb52f95a8 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -378,7 +378,7 @@ device_address: unique_id: description: "ID that uniquely identifies this entity. Slaves will be given a unique_id of <>_<>. - If two enities have the same unique ID, Home Assistant will raise an exception." + If two entities have the same unique ID, Home Assistant will raise an exception." required: false type: string @@ -1461,7 +1461,7 @@ sensors: required: false type: integer virtual_count: - description: "Generates x+1 sensors (master + slaves), allowing read of multiple registers with a single read messsage." + description: "Generates x+1 sensors (master + slaves), allowing read of multiple registers with a single read message." required: false type: integer state_class: diff --git a/source/_integrations/mysensors.markdown b/source/_integrations/mysensors.markdown index ab47931703f..64349db7692 100644 --- a/source/_integrations/mysensors.markdown +++ b/source/_integrations/mysensors.markdown @@ -785,7 +785,7 @@ void receive(const MyMessage &message) last_dim=100; } - //Update constroller status + // Update controller status send_status_message(); } else if ( message.type == V_PERCENTAGE ) { @@ -794,14 +794,14 @@ void receive(const MyMessage &message) if ( dim_value == 0 ) { last_state = LIGHT_OFF; - //Update constroller with dimmer value & status + // Update controller with dimmer value & status send_dimmer_message(); send_status_message(); } else { last_state = LIGHT_ON; last_dim = dim_value; - //Update constroller with dimmer value + // Update controller with dimmer value send_dimmer_message(); } diff --git a/source/_integrations/nextdns.markdown b/source/_integrations/nextdns.markdown index c4c5463cdb5..2fdedb1248a 100644 --- a/source/_integrations/nextdns.markdown +++ b/source/_integrations/nextdns.markdown @@ -39,3 +39,331 @@ Profile: This integration follows standard integration removal, no extra steps are required. {% include integrations/remove_device_service.md %} + +## Supported functionality + +The NextDNS integration provides the following entities. + +### Binary sensors + +- **Device connection status** + - **Description**: Indicates whether the Home Assistant server is using NextDNS for DNS queries +- **Device profile connection status** + - **Description**: Indicates whether the Home Assistant server uses the configured NextDNS profile for DNS queries + +### Buttons + +- **Clear logs** + - **Description**: Triggers clearing DNS query logs on NextDNS servers + +### Sensors + +- **DNS queries** + - **Description**: Shows the total number of DNS queries +- **DNS queries blocked** + - **Description**: Shows the number of blocked DNS queries +- **DNS queries blocked ratio** + - **Description**: Shows the percentage of blocked DNS queries +- **DNS-over-HTTP/3 queries** + - **Description**: Shows the number of DNS queries via DNS-over-HTTP/3 + - **Remarks**: This entity is disabled by default +- **DNS-over-HTTP/3 queries ratio** + - **Description**: Shows the percentage of DNS queries via DNS-over-HTTP/3 + - **Remarks**: This entity is disabled by default +- **DNS-over-HTTPS queries** + - **Description**: Shows the number of DNS queries via DNS-over-HTTPS + - **Remarks**: This entity is disabled by default +- **DNS-over-HTTPS queries ratio** + - **Description**: Shows the percentage of DNS queries via DNS-over-HTTPS + - **Remarks**: This entity is disabled by default +- **DNS-over-QUIC queries** + - **Description**: Shows the number of DNS queries via DNS-over-QUIC + - **Remarks**: This entity is disabled by default +- **DNS-over-QUIC queries ratio** + - **Description**: Shows the percentage of DNS queries via DNS-over-QUIC +- **DNS-over-TLS queries** + - **Description**: Shows the number of DNS queries via DNS-over-TLS + - **Remarks**: This entity is disabled by default +- **DNS-over-TLS queries ratio** + - **Description**: Shows the percentage of DNS queries via DNS-over-TLS + - **Remarks**: This entity is disabled by default +- **TCP queries** + - **Description**: Shows the number of DNS queries via TCP + - **Remarks**: This entity is disabled by default +- **TCP queries ratio** + - **Description**: Shows the percentage of DNS queries via TCP + - **Remarks**: This entity is disabled by default +- **UDP queries** + - **Description**: Shows the number of DNS queries via UDP + - **Remarks**: This entity is disabled by default +- **UDP queries ratio** + - **Description**: Shows the percentage of DNS queries via UDP + - **Remarks**: This entity is disabled by default +- **Encrypted queries** + - **Description**: Shows the number of encrypted DNS queries + - **Remarks**: This entity is disabled by default +- **Encrypted queries ratio** + - **Description**: Shows the percentage of encrypted DNS queries + - **Remarks**: This entity is disabled by default +- **Unencrypted queries** + - **Description**: Shows the number of unencrypted DNS queries + - **Remarks**: This entity is disabled by default +- **IPv4 queries** + - **Description**: Shows the number of DNS queries via IPv4 + - **Remarks**: This entity is disabled by default +- **IPv6 queries** + - **Description**: Shows the number of DNS queries via IPv6 + - **Remarks**: This entity is disabled by default +- **IPv6 queries ratio** + - **Description**: Shows the percentage of DNS queries via IPv6 + - **Remarks**: This entity is disabled by default +- **DNSSEC validated queries** + - **Description**: Shows the number of DNS queries validated by DNSSEC + - **Remarks**: This entity is disabled by default +- **DNSSEC validated queries ratio** + - **Description**: Shows the percentage of DNS queries validated by DNSSEC + - **Remarks**: This entity is disabled by default +- **DNSSEC not validated queries** + - **Description**: Shows the number of DNS queries not validated by DNSSEC + - **Remarks**: This entity is disabled by default +- **DNS queries relayed** + - **Description**: Shows the number of relayed DNS queries + +### Switches + +- **AI-Driven threat detection** + - **Description**: Controls AI-driven threat detection +- **Allow affiliate & tracking links** + - **Description**: Controls affiliate and tracking links +- **Anonymized EDNS client subnet** + - **Description**: Controls anonymized EDNS client subnet +- **Bypass age verification** + - **Description**: Controls bypass of age verification pages +- **CNAME flattening** + - **Description**: Controls CNAME flattening +- **Cryptojacking protection** + - **Description**: Controls cryptojacking protection +- **Domain generation algorithms protection** + - **Description**: Controls protection against domain generation algorithms +- **DNS rebinding protection** + - **Description**: Controls DNS rebinding protection +- **Google safe browsing** + - **Description**: Controls Google Safe Browsing protection +- **IDN homograph attacks protection** + - **Description**: Controls protection against IDN homograph attacks +- **Logs** + - **Description**: Controls log collection +- **Force SafeSearch** + - **Description**: Controls SafeSearch enforcement +- **Typosquatting protection** + - **Description**: Controls protection against typosquatting domains +- **Web3** + - **Description**: Controls access to Web3 and crypto domains +- **Force YouTube restricted mode** + - **Description**: Controls YouTube Restricted Mode enforcement +- **Block newly registered domains** + - **Description**: Controls blocking of newly registered domains +- **Block bypass methods** + - **Description**: Controls blocking of filter bypass methods +- **Block child sexual abuse material** + - **Description**: Controls blocking of child sexual abuse material +- **Block dynamic DNS hostnames** + - **Description**: Controls blocking of dynamic DNS hostnames +- **Block disguised third-party trackers** + - **Description**: Controls blocking of disguised third-party trackers +- **Block page** + - **Description**: Controls the display of the blocking page +- **Block online gaming** + - **Description**: Controls blocking of online gaming +- **Block parked domains** + - **Description**: Controls blocking of parked domains +- **Block piracy** + - **Description**: Controls blocking of piracy websites + - **Remarks**: This entity is disabled by default +- **Block porn** + - **Description**: Controls blocking of pornographic content + - **Remarks**: This entity is disabled by default +- **Block social networks** + - **Description**: Controls blocking of social networks + - **Remarks**: This entity is disabled by default +- **Block video streaming** + - **Description**: Controls blocking of video streaming websites + - **Remarks**: This entity is disabled by default +- **Block dating** + - **Description**: Controls blocking of dating websites + - **Remarks**: This entity is disabled by default +- **Block gambling** + - **Description**: Controls blocking of gambling websites + - **Remarks**: This entity is disabled by default +- **Block 9GAG** + - **Description**: Controls 9GAG access + - **Remarks**: This entity is disabled by default +- **Block Amazon** + - **Description**: Controls Amazon access + - **Remarks**: This entity is disabled by default +- **Block BeReal** + - **Description**: Controls BeReal access + - **Remarks**: This entity is disabled by default +- **Block Blizzard** + - **Description**: Controls Blizzard access + - **Remarks**: This entity is disabled by default +- **Block ChatGPT** + - **Description**: Controls ChatGPT access + - **Remarks**: This entity is disabled by default +- **Block Dailymotion** + - **Description**: Controls Dailymotion access + - **Remarks**: This entity is disabled by default +- **Block Discord** + - **Description**: Controls Discord access + - **Remarks**: This entity is disabled by default +- **Block Disney Plus** + - **Description**: Controls Disney Plus access + - **Remarks**: This entity is disabled by default +- **Block eBay** + - **Description**: Controls eBay access + - **Remarks**: This entity is disabled by default +- **Block Facebook** + - **Description**: Controls Facebook access + - **Remarks**: This entity is disabled by default +- **Block Fortnite** + - **Description**: Controls Fortnite access + - **Remarks**: This entity is disabled by default +- **Block Google Chat** + - **Description**: Controls Google Chat access + - **Remarks**: This entity is disabled by default +- **Block HBO Max** + - **Description**: Controls HBO Max access + - **Remarks**: This entity is disabled by default +- **Block Hulu** + - **Description**: Controls Hulu access + - **Remarks**: This entity is disabled by default +- **Block Imgur** + - **Description**: Controls Imgur access + - **Remarks**: This entity is disabled by default +- **Block Instagram** + - **Description**: Controls Instagram access + - **Remarks**: This entity is disabled by default +- **Block League of Legends** + - **Description**: Controls League of Legends access + - **Remarks**: This entity is disabled by default +- **Block Mastodon** + - **Description**: Controls Mastodon access + - **Remarks**: This entity is disabled by default +- **Block Messenger** + - **Description**: Controls Facebook Messenger access + - **Remarks**: This entity is disabled by default +- **Block Minecraft** + - **Description**: Controls Minecraft access + - **Remarks**: This entity is disabled by default +- **Block Netflix** + - **Description**: Controls Netflix access + - **Remarks**: This entity is disabled by default +- **Block Pinterest** + - **Description**: Controls Pinterest access + - **Remarks**: This entity is disabled by default +- **Block PlayStation Network** + - **Description**: Controls PlayStation Network access + - **Remarks**: This entity is disabled by default +- **Block Prime Video** + - **Description**: Controls Prime Video access + - **Remarks**: This entity is disabled by default +- **Block Reddit** + - **Description**: Controls Reddit access + - **Remarks**: This entity is disabled by default +- **Block Roblox** + - **Description**: Controls Roblox access + - **Remarks**: This entity is disabled by default +- **Block Signal** + - **Description**: Controls Signal access + - **Remarks**: This entity is disabled by default +- **Block Skype** + - **Description**: Controls Skype access + - **Remarks**: This entity is disabled by default +- **Block Snapchat** + - **Description**: Controls Snapchat access + - **Remarks**: This entity is disabled by default +- **Block Spotify** + - **Description**: Controls Spotify access + - **Remarks**: This entity is disabled by default +- **Block Steam** + - **Description**: Controls Steam access + - **Remarks**: This entity is disabled by default +- **Block Telegram** + - **Description**: Controls Telegram access + - **Remarks**: This entity is disabled by default +- **Block TikTok** + - **Description**: Controls TikTok access + - **Remarks**: This entity is disabled by default +- **Block Tinder** + - **Description**: Controls Tinder access + - **Remarks**: This entity is disabled by default +- **Block Tumblr** + - **Description**: Controls Tumblr access + - **Remarks**: This entity is disabled by default +- **Block Twitch** + - **Description**: Controls Twitch access + - **Remarks**: This entity is disabled by default +- **Block X (formerly Twitter)** + - **Description**: Controls X (formerly Twitter) access + - **Remarks**: This entity is disabled by default +- **Block Vimeo** + - **Description**: Controls Vimeo access + - **Remarks**: This entity is disabled by default +- **Block VK** + - **Description**: Controls VK access + - **Remarks**: This entity is disabled by default +- **Block WhatsApp** + - **Description**: Controls WhatsApp access + - **Remarks**: This entity is disabled by default +- **Block Xbox Network** + - **Description**: Controls Xbox Network access + - **Remarks**: This entity is disabled by default +- **Block YouTube** + - **Description**: Controls YouTube access + - **Remarks**: This entity is disabled by default +- **Block Zoom** + - **Description**: Controls Zoom access + - **Remarks**: This entity is disabled by default + +## Data updates + +By default, the integration {% term polling polls %} data from the NextDNS API: +- Every 5 minutes for connection status data +- Every 10 minutes for analytics data +- Every 1 minute for settings + +## Possible use-cases + +- Monitor DNS queries from your local network or individual devices. +- Track DNS query protocols to understand connection security. +- Manage children's screen time by scheduling access to social media, games, and streaming services. + +## Examples + +### Block social media for kids + +These automations block social media access for the kids profile during evening hours and unblock it after school. + +```yaml +automation: + - alias: Block social media for kids in the evening + triggers: + - trigger: time + at: "20:00:00" + actions: + - action: switch.turn_off + target: + entity_id: switch.kids_block_social_networks + - alias: Unblock social media for kids after school + triggers: + - trigger: time + at: "16:00:00" + actions: + - action: switch.turn_on + target: + entity_id: switch.kids_block_social_networks +``` + +## Known limitations + +There are no known limitations. \ No newline at end of file diff --git a/source/_integrations/niko_home_control.markdown b/source/_integrations/niko_home_control.markdown index c708433c620..6d68476e595 100644 --- a/source/_integrations/niko_home_control.markdown +++ b/source/_integrations/niko_home_control.markdown @@ -1,6 +1,6 @@ --- title: Niko Home Control -description: Instructions on how to integrate Niko Home Control lights into Home Assistant. +description: Instructions on how to integrate Niko Home Control 1 lights into Home Assistant. ha_codeowners: - '@VandeurenGlenn' ha_config_flow: true @@ -21,6 +21,12 @@ related: title: Configuration file --- -The `niko_home_control` {% term integration %} allows you to integrate your [Niko Home Control](https://www.niko.eu/enus/products/niko-home-control) into Home Assistant. +The `niko_home_control` {% term integration %} allows you to integrate your [Niko connected controller (with Home Control 1)](https://www.niko.eu/enus/products/niko-home-control) into Home Assistant. {% include integrations/config_flow.md %} + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/ntfy.markdown b/source/_integrations/ntfy.markdown index 8be6a2b08ef..6008b5149af 100644 --- a/source/_integrations/ntfy.markdown +++ b/source/_integrations/ntfy.markdown @@ -141,7 +141,7 @@ For more customizable notifications, use the `ntfy.publish` action instead of `n - `title`: Title for your notification message. - `message`: Your notification message. -- `markdown`: Enable Markdown formatting for the message body (Web app only). See the Markdown guide for syntax details: [https://www.markdownguide.org/basic-syntax/](https://www.markdownguide.org/basic-syntax/). +- `markdown`: Enable Markdown formatting for the message body. See the Markdown guide for syntax details: [https://www.markdownguide.org/basic-syntax/](https://www.markdownguide.org/basic-syntax/). - `tags`: Add tags or emojis to the notification. Emojis (using shortcodes like `smile`) will appear in the notification title or message. Other tags will be displayed below the notification content. - `priority`: All messages have a priority, which defines how urgently your phone notifies you, depending on the configured vibration patterns, notification sounds, and visibility in the notification drawer or pop-over. - `click`: URL that is opened when the notification is clicked. diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index 2705356ad9a..c088cd6dda2 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -105,6 +105,21 @@ The 1-Wire bus can be connected with a remote 1-wire host over a network connect {% include integrations/config_flow.md %} +{% configuration_basic %} +Host: + description: The hostname or IP address of your OWServer instance. +Port: + description: The port of your OWServer instance. + default: 4304 +{% endconfiguration_basic %} + +{% include integrations/option_flow.md %} + +{% configuration_basic %} +Device selection: + description: The precision of the `DS18B20` temperature sensors can be configured for individual devices. The lower the precision, the faster the sensor will respond, but with less accuracy. The selected precision is reflected in the `device_path` attribute of the sensor entities. +{% endconfiguration_basic %} + ### Entities and attributes Upon startup of the platform, the 1-wire bus is searched for available 1-wire devices. On Bridge devices, the `aux` and `main` branches are recursively searched. For each device that this platform handles (see list of supported devices above), the platform adds one sensor for each physical quantity it measures. The name of the sensor is the device ID with the physical quantity it measures appended. Unsupported sensors are noted with a warning message in the log. @@ -122,29 +137,29 @@ unit_of_measurement: °C friendly_name: 28.FF5C68521604 Temperature ``` -### Units with multiple sensors - -This platform works with devices with multiple sensors, which will cause a discontinuity in recorded values. Existing devices will receive a new ID and therefore show up as new devices. -If you wish to maintain continuity, it can be resolved in the database by renaming the old devices to the new names. - -Connect to your database using the instructions from [Database section](/docs/backend/database/). Check the names of sensors: - -```sql -SELECT entity_id, COUNT(*) as count FROM states GROUP BY entity_id ORDER BY count DESC LIMIT 10; -``` - -Alter the names of sensors using the following examples: - -```sql -UPDATE states SET entity_id='sensor._temperature' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%\u00b0C%'; -UPDATE states SET entity_id='sensor._pressure' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%mb%'; -UPDATE states SET entity_id='sensor._humidity' WHERE entity_id LIKE 'sensor.%' AND attributes LIKE '%%%' ESCAPE ''; -``` - -Remember to replace `` with the actual name of the sensor, as seen in the `SELECT` query. - ## Removing the integration This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} + +## Troubleshooting + +### Temperature reported as 85°C + +A reading of 85°C on a `DS18B20` may indicate a valid value, or it may indicate a wiring issue or a loss of power. + +> 85°C is the power-on reset value of the `DS18B20`. It can report such a value when its tiny internal capacitor that acts as its power supply is depleted. + +There is currently no way to distinguish between a valid and an invalid 85°C value. If such values are reported incorrectly, the first step is to check the wiring (possibly ensuring that the temperature sensors are powered, and not using parasitic power). + +If all else fails, then a template can be used to filter out the incorrect values: +{% raw %} +```jinja +{% if states('sensor.28_a05966040000_temperature') | float != 85 %} + {{ states('sensor.28_a05966040000_temperature') }} +{% else %} + None +{% endif %} +``` +{% endraw %} diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown index 8981d2bd3a9..1022edb11bd 100644 --- a/source/_integrations/overkiz.markdown +++ b/source/_integrations/overkiz.markdown @@ -99,7 +99,13 @@ This integration retrieves data from Overkiz every 30 seconds to ensure timely u ## Known limitations -### Zigbee, Z-Wave, Hue, and Sonos devices not supported +### Unsupported hardware + +Some devices that appear in your vendor app may not use the Overkiz platform and are not accessible through the Overkiz API. For example, Somfy Protect devices and some Atlantic Cozytouch devices are not supported by this integration. + +If you have a Cozytouch device that is not supported by the Overkiz integration, you can explore [custom components](https://github.com/gduteil/cozytouch) created by the community. These may provide support for additional Cozytouch devices. + +### Zigbee, Z-Wave, Hue, and Sonos devices are not supported Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant, which provide more frequent state updates and are more feature-rich. @@ -128,6 +134,10 @@ cover: entity_id: cover.rts_test_shutter # change to your device id ``` +### Troubleshooting connection issues with the local API + +If your entities frequently become unavailable for short periods, this usually indicates connection problems between Home Assistant and your gateway. To improve reliability, try connecting to your gateway using its IP address instead of the `gateway-xxxx-xxxx-xxx.local` hostname. + ### Overkiz API limits **Device state changes are not broadcasted for all devices** diff --git a/source/_integrations/panasonic_viera.markdown b/source/_integrations/panasonic_viera.markdown index 087e5ee2f63..7dc35395950 100644 --- a/source/_integrations/panasonic_viera.markdown +++ b/source/_integrations/panasonic_viera.markdown @@ -141,6 +141,7 @@ The list with all known valid keys can be found [here](https://github.com/floria - TX-40DX700B - TX-42AS650 - TX-49DX650B +- TX-49FXW654 - TX-50DX700B - TX-55ASM655 - TX-55ASW654 diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown index 2e20f676f72..77a41ae84c6 100644 --- a/source/_integrations/pi_hole.markdown +++ b/source/_integrations/pi_hole.markdown @@ -40,9 +40,9 @@ During the setup, it will ask for the following: The combined host, port and location should take you to the login page of Pi-Hole. Using the example above, it would be `http://192.168.1.1:80/admin`. -To find your App Password, log into your Pi-Hole and go to **Settings** > **Web Interface/API**. Switch from **Basic** to **Expert** mode, then select **Configure app password**. +To find your App Password, log into your Pi-Hole and go to **Settings** > **Web Interface/API**. Switch from **Basic** to **Expert** mode, then select **Configure app password**. Your admin login password may be used instead but this is not recommended. -Versions of Pi-hole before version 6 (released in Feb 2025) use an API Key if the Pi-hole was password protected, this can be found in _Settings > API Tab_ and clicking **Show API token** +Versions of Pi-hole before version 6 (released in Feb 2025) use an API Key if the Pi-hole was password protected, this can be found in _Settings > API Tab_ and clicking **Show API token**. ## Actions @@ -67,7 +67,10 @@ data: target: entity_id: all ``` - ## Switches -The integration creates a switch for the Pi-hole allowing you to toggle the Pi-hole on and off. +The integration creates a switch for the Pi-hole allowing you to toggle ad-blocking on and off. + +## Sensors + +The integration creates a number of sensors which report various ad-blocking metrics as well as diagnostic information about the pi-hole itself. diff --git a/source/_integrations/portainer.markdown b/source/_integrations/portainer.markdown index e170d19b0ca..9fb7734711a 100644 --- a/source/_integrations/portainer.markdown +++ b/source/_integrations/portainer.markdown @@ -51,6 +51,14 @@ There is currently support for the following device types within Home Assistant: - Sensor - for monitoring various elements of containers. - Button - for restarting containers. +## Data updates + +The integration normally updates every 60 seconds. For more detailed steps on how to define a custom polling interval, follow the procedure below. + +### Defining a custom polling interval + +{% include common-tasks/define_custom_polling.md %} + ## Removing the integration This integration follows standard integration removal. diff --git a/source/_integrations/private_ble_device.markdown b/source/_integrations/private_ble_device.markdown index c51f394a8f4..7bdd395896e 100644 --- a/source/_integrations/private_ble_device.markdown +++ b/source/_integrations/private_ble_device.markdown @@ -32,13 +32,14 @@ There are two common representations for encoding an IRK - base64 encoding or he If you are trying to get the IRK for your iPhone or Apple Watch, you must be logged in to the Mac with the same iCloud account on those devices. This procedure should also work for devices that you pair with macOS. 1. Start the **Keychain Access** application. -2. In the left sidebar, make sure iCloud is selected. +2. Depending on your macOS version, Keychain Access may look different. On macOS 26, select **Local Items** in the sidebar on the left. On older macOS versions, select **iCloud** in the sidebar. 3. In the search bar in the upper right, type Bluetooth. 4. A list of GUIDs is shown. -5. Double-click on a record. As part of the **Account** field, it will say `Public: XX:XX:XX:XX:XX:XX`. This MAC address should match the device you are trying to work with. -6. Click on show password -7. You will have to enter your password, then enter your username and password. -8. macOS will show some XML. You are looking for the "Remote IRK" field. After there is a data field that contains a base64 encoded version of your Identity Resolving Key. +5. Click on the first record in the list. At the top, as part of the **Account** field, you should see `Public: XX:XX:XX:XX:XX:XX` (or Random - you can ignore records starting with random). +6. Scroll down through the records to find the MAC address that matches your iPhone/Watch (you can find this in **Settings** > **General** > **About** on your phone/watch). +7. Select **Show password**. +8. You will have to enter your password, then enter your username and password. +9. macOS will show some XML. You are looking for the **Remote IRK** field. After that, there is a data field that contains a base64 encoded version of your Identity Resolving Key. ### On Windows / For Android diff --git a/source/_integrations/proxmoxve.markdown b/source/_integrations/proxmoxve.markdown index 0d72e9b3d75..59636412c80 100644 --- a/source/_integrations/proxmoxve.markdown +++ b/source/_integrations/proxmoxve.markdown @@ -25,7 +25,7 @@ After configuring this {% term integration %}, the binary sensors automatically ## Configuration {% important %} -You should have at least one VM or container entry configured, else this integration won't do anything. +You should have at least one VM or container entry configured within Home Assistant, else this integration won't do anything. {% endimportant %} To use the `proxmoxve` {% term integration %}, add the following configuration to your {% term "`configuration.yaml`" %} file. @@ -152,7 +152,7 @@ The Home Assistant user you create must already exist on the Linux system. 1. Click `Datacenter` 2. Open `Permissions` and click `Users` 3. Click `Add` -4. Enter a username (e.g.,` hass`) +4. Enter a username (e.g.,`hass`) 5. Set the realm to "Proxmox VE authentication server" 6. Enter a secure password (it can be complex as you will only need to copy/paste it into your Home Assistant configuration) 7. Select the group just created earlier (`HomeAssistant`) to grant access to Proxmox diff --git a/source/_integrations/recorder.markdown b/source/_integrations/recorder.markdown index 0c22657d489..7fe5fdc0c0c 100644 --- a/source/_integrations/recorder.markdown +++ b/source/_integrations/recorder.markdown @@ -34,8 +34,6 @@ The default, and recommended, database engine is [SQLite](https://www.sqlite.org Changing database used by the recorder may result in losing your existing history. Migrating data is not supported. {% endcaution %} -To change the defaults for the `recorder` integration in your installation, add the following to your {% term "`configuration.yaml`" %} file: - ## Disk space requirements A bare minimum requirement is to have at least as much free temporary space available as the size of your database at all times. A table rebuild, repair, or repack may happen at any time, which can result in a copy of the data on disk during the operation. Meeting the bare minimum requirement is essential during a version upgrade, where the schema may change, as this operation almost always requires making a temporary copy of part of the database. @@ -44,6 +42,8 @@ For example, if your database is 1.5 GiB on disk, you must always have at l ## Advanced configuration +To change the defaults for the `recorder` integration in your installation, add the following to your {% term "`configuration.yaml`" %} file: + ```yaml # Example configuration.yaml entry recorder: @@ -172,7 +172,7 @@ recorder: - sensor.last_boot # Comes from 'systemmonitor' sensor platform - sun.sun # Don't record sun data event_types: - - call_service # Don't record actions + - my_custom_event ``` Defining domains and entities to record by using the `include` configuration (i.e. allowlist) is convenient if you have a lot of entities in your system and your `exclude` lists possibly get very large, so it might be better just to define the entities or domains to record. diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index 152b9c3a06d..64001315a15 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -471,7 +471,7 @@ The following battery-powered models have been tested and confirmed to work thro - **[Argus Track](https://reolink.com/product/argus-track/)** - [Reolink Altas](https://reolink.com/product/reolink-altas/) - [Reolink Altas PT Ultra](https://reolink.com/product/altas-pt-ultra/) -- **[Reolink Doorbell Battery](https://reolink.com/roadmap/)** +- **[Reolink Doorbell Battery](https://reolink.com/product/reolink-doorbell-battery/)** Reolink provides [this larger list of battery camera models](https://support.reolink.com/hc/en-us/articles/32379509281561-Reolink-Home-Hub-Compatibility/) which are compatible with the Home Hub and should work with Home Assistant. diff --git a/source/_integrations/rmvtransport.markdown b/source/_integrations/rmvtransport.markdown index 41e9609b1ae..74ddcedc053 100644 --- a/source/_integrations/rmvtransport.markdown +++ b/source/_integrations/rmvtransport.markdown @@ -21,7 +21,7 @@ The `rvmtransport` {% term integration %} will give you the departure time of th ## Setup -Visit the [RMV OpenData web site](https://opendata.rmv.de) to find a list of valid station IDs. +Visit the [RMV OpenData web site](https://opendata.rmv.de) to find a list of valid station IDs. You will need to use the "HAFAS_ID". ## Configuration @@ -61,7 +61,7 @@ next_departure: required: false type: [string] direction: - description: "Name of a stop or station, e.g., 'Frankfurt (Main) Hauptbahnhof'. This can be used to only consider a particular direction of travel." + description: "ID of a stop or station, e.g., `3000912`. This can be used to only consider a particular direction of travel." required: false type: [string] lines: @@ -116,6 +116,9 @@ sensor: lines: "S8" max_journeys: 5 products: "S" + - station: 3001830 + time_offset: 15 + direction: 3000010 ``` The first sensor will return S-Bahn, bus, RB and RE trains departures from Frankfurt Hauptbahnhof to Frankfurt Airport or Stadium that are at least 5 minutes away. @@ -123,3 +126,5 @@ The first sensor will return S-Bahn, bus, RB and RE trains departures from Frank The second sensor returns bus departures from Wiesbaden Hauptbahnhof going to Dernsches Gelände and Mainz Hauptbahnhof. To retrieve the time of the second departure, you would use `state_attr('sensor.ENTITY_NAME', 'departures')[1].time`. The third sensor returns all S-Bahn trains from Mainz Hauptbahnhof for line S8. + +The 4th sensor returns all connections from Niederrad Bahnhof going to or over Frankfurt Hauptbahnhof. diff --git a/source/_integrations/roborock.markdown b/source/_integrations/roborock.markdown index 48feb90a021..700a2c6ddea 100644 --- a/source/_integrations/roborock.markdown +++ b/source/_integrations/roborock.markdown @@ -443,8 +443,28 @@ Roborock servers require accepting a user agreement before using the API, which 4. Log back in and accept the policy. 5. Reload the Roborock integration! -### The integration tells me it cannot reach my vacuum and is using the cloud API and that this is not supported +### The integration tells me it cannot reach my vacuum and is using the cloud API and that this is not supported or I am having any networking issues This integration has the capability to control your devices through the cloud API and the local API. If the local API is not reachable, it will just use the cloud API. We recommend only using the local API as it helps prevent any kind of rate-limiting. -The steps needed to fix this issue are specific to your networking setup. Make sure your Home Assistant instance can communicate on port 58867 with the IP address of your vacuum. This may require changing firewall settings, VLAN configuration, etc. +The steps needed to fix this issue are specific to your networking setup. Here are some general troubleshooting steps: + +1. Ensure your vacuum can communicate externally via port 8883. +2. Ensure your vacuum can communicate with your Home Assistant instance on ports TCP 58867 and UDP 58866. +3. If you are using a tool such as Pi-Hole, AdGuard, or anything else that modifies your DNS, ensure that your vacuum is exempted. +4. Set a static IP for your vacuum. +5. Check your router's webpage. If the device is losing connection, you need to focus on increasing your Wi-Fi network's performance. + +### My Device goes unavailable every night at around 3am - how can I fix this? + +Every night, the vacuum disconnects from the internet for about one minute and automatically reconnects. This causes the integration to go unavailable until the vacuum is reachable again. This is not an issue with the integration but rather the integration is reacting to the device's status. + +### The integration tells me no devices were found even though I have devices on my account. + +Some devices are not supported yet as they use a different protocol than other devices. Make sure you are on the latest version of Home Assistant. + +### I'm getting information about rate limiting in my logs - what should I do? + +There is rate limiting built into the Python package that this integration is built on. This is to try to help prevent your instance from overwhelming the Roborock servers and resulting in any kind of IP ban. Best practice is to disable the integration for 24 hours. + +It's also important to try to determine what caused this error in your setup. A common cause some users have is that they have a script that automatically reloads the integration if it goes unavailable. Then, if the device gets stuck and runs out of battery, you are frequently reloading and that causes rate limits. diff --git a/source/_integrations/russound_rio.markdown b/source/_integrations/russound_rio.markdown index 36e1acd1be7..baed61edf62 100644 --- a/source/_integrations/russound_rio.markdown +++ b/source/_integrations/russound_rio.markdown @@ -27,6 +27,8 @@ The platform automatically discovers all enabled zones and sources. Each zone is This integration allows you to connect the following controllers: +- Russound SMZ8 +- Russound SMZ16-PRE - Russound MBX-PRE - Russound MBX-AMP - Russound ACA-E5 diff --git a/source/_integrations/satel_integra.markdown b/source/_integrations/satel_integra.markdown index d529fe5d1da..a1f8de93fd4 100644 --- a/source/_integrations/satel_integra.markdown +++ b/source/_integrations/satel_integra.markdown @@ -76,3 +76,9 @@ For example: target: entity_id: input_boolean.movement_detected ``` + +## Removing the integration + +This integration follows standard integration removal. Once the integration is removed, consider disabling the communication ability to the ETHM-1 Plus module using DLOADX to reduce security risks. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/sftp_storage.markdown b/source/_integrations/sftp_storage.markdown index ce42d8aa2cc..43f0f15e98f 100644 --- a/source/_integrations/sftp_storage.markdown +++ b/source/_integrations/sftp_storage.markdown @@ -2,7 +2,7 @@ title: SFTP Storage description: Allows storing backups created with Backup system onto remote SFTP host. ha_category: - - Other + - Backup ha_release: '2025.10' ha_quality_scale: silver ha_domain: sftp_storage diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index 3827fdea6d9..65f9ededceb 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -432,6 +432,12 @@ For each device script, the integration creates a `switch` entity that allows yo Shelly devices rely on [SNTP](https://en.wikipedia.org/wiki/Network_Time_Protocol#SNTP) for features like power measurement. Please check from the device Web UI that the configured server is reachable. +## Troubleshooting + +1. [Enable debug logging](https://www.home-assistant.io/docs/configuration/troubleshooting/#enabling-debug-logging). +2. Take necessary steps/actions to replicate the issue. +3. [Disable debug logging and download logs](https://www.home-assistant.io/docs/configuration/troubleshooting/#disable-debug-logging-and-download-logs). + ## Known issues and limitations - Only supports firmware 1.9 and later for generation 1 devices diff --git a/source/_integrations/signal_messenger.markdown b/source/_integrations/signal_messenger.markdown index cb85a2adb59..fd2c57fc372 100644 --- a/source/_integrations/signal_messenger.markdown +++ b/source/_integrations/signal_messenger.markdown @@ -188,7 +188,7 @@ actions: message: "Message received!" ``` -**NOTE** If the parameter `mode` is set to `json-rpc`, then you can use [signal-api-receiver](https://github.com/kalbasit/signal-api-receiver) to receive from Signal as follows: +**NOTE** If the addon's `mode` parameter is set to `json-rpc`, then you can use [signal-api-receiver](https://github.com/kalbasit/signal-api-receiver) in the configuration of Home Assistant to receive from Signal as follows: ```yaml - resource: "http://127.0.0.1:8105/receive/pop" diff --git a/source/_integrations/smtp.markdown b/source/_integrations/smtp.markdown index 997bf42f488..bb162ceae7f 100644 --- a/source/_integrations/smtp.markdown +++ b/source/_integrations/smtp.markdown @@ -192,8 +192,8 @@ burglar:
- - + + ``` diff --git a/source/_integrations/subaru.markdown b/source/_integrations/subaru.markdown index 2a319f28819..2288fbb4fed 100644 --- a/source/_integrations/subaru.markdown +++ b/source/_integrations/subaru.markdown @@ -20,11 +20,11 @@ ha_platforms: ha_integration_type: integration --- -This integration retrieves vehicle information and actuates remote services provided by [Subaru STARLINK](https://www.subaru.com/subaru-starlink/starlink-safety-and-security.html) (currently only available in USA and Canada). +This integration retrieves vehicle information and actuates remote services provided by [MySubaru Connected Services](https://www.subaru.com/vehicle-info/connected-services/mysubaru-connected-services.html)(formerly known as Subaru STARLINK). This service is currently only available in the USA and Canada. -This integration requires a telematics equipped Subaru and an active vehicle subscription to the Subaru STARLINK service. Before using this integration, you must first register and have login credentials to [MySubaru](https://www.mysubaru.com). +This integration requires a telematics equipped Subaru and an active vehicle subscription to the MySubaru service. Before using this integration, you must first register and have login credentials to [MySubaru](https://www.mysubaru.com). -Subaru has deployed three generations of telematics with different feature sets. Use the table below to determine your vehicle's telematics generation and capabilities. This table is a best guess based upon what Subaru [lists as available features](https://www.subaru.com/vehicle-info/subaru-starlink/starlink-safety-and-security/compare-packages.html?model=&year=). +Subaru has deployed three generations of telematics with different feature sets. Use the table below to determine your vehicle's telematics generation and capabilities. This table is a best guess. | Model | Gen 1 | Gen 2 | Gen 3 | |-----------|-----------|-----------|-------| @@ -37,7 +37,11 @@ Subaru has deployed three generations of telematics with different feature sets. | Outback | 2016-2019 | 2020-2022 | 2023+ | | WRX | 2017-2021 | 2022-2023 | --- | -In addition to the telematics generational differences, there are two levels of STARLINK subscriptions, "Safety Plus" and "Security Plus". All remote services (such as locks and location tracking) require a "Security Plus" level subscription. +{% note %} +This integration *does not* support the Subaru Solterra EV or any other Subaru that uses the [SubaruConnect](https://www.subaru.com/vehicle-info/connected-services/subaruconnect.html) service. +{% endnote %} + +In addition to the telematics generational differences, there are differing levels of MySubaru subscriptions. Remote services (such as locks and location tracking) require either a "Companion+" or "Security" level subscription. {% include integrations/config_flow.md %} @@ -65,7 +69,7 @@ Available sensors will vary by model, year, and subscription type. The integrati This integration supports remote locking and unlocking of vehicle doors. If doors are remotely unlocked, they will automatically relock if a door is not opened within a minute. There is no remote notification of this automatic relock. {% note %} -The current lock status is always unknown due to the fact that the Subaru API does not report this data. +This integration does not yet support tracking the current lock/unlock state. {% endnote %} ### Unlock specific door @@ -96,9 +100,9 @@ Vehicle polling draws power from the 12V battery. Long term use without driving ## FAQ - Troubleshooting -**Q:** I have a Subaru STARLINK Security Plus subscription. How do I use the locator, and remote light/horn features in Home Assistant? +**Q:** How do I use the locator, and remote light/horn features in Home Assistant? -**A:** Those features are supported by the underlying [subarulink](https://github.com/G-Two/subarulink) Python package, and will be integrated into Home Assistant soon. Both Gen 1 and Gen 2 will be supported. +**A:** Those features are supported by the underlying [subarulink](https://github.com/G-Two/subarulink) Python package, and will be integrated into Home Assistant soon. --- @@ -115,7 +119,7 @@ Vehicle polling draws power from the 12V battery. Long term use without driving **Q:** Why wasn't I asked to enter my PIN during configuration? -**A:** A PIN is only required to send a remote command. If you do not have a STARLINK Security Plus subscription, you will not be prompted for a PIN. +**A:** A PIN is only required to send a remote command. If you do not have a subscription that supports remote commands, you will not be prompted for a PIN. --- diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown index 62319472814..ee51b25057b 100644 --- a/source/_integrations/switcher_kis.markdown +++ b/source/_integrations/switcher_kis.markdown @@ -140,3 +140,9 @@ Note: This does not affect the auto off timer. Make sure that Home Assistant host's firewall allows incoming traffic on UDP ports 10002, 10003, 20002 & 20003 and outgoing connections to Switcher device(s) on TCP ports 9957 & 10000. If Home Assistant and the Switcher device(s) are not on the same network, you will also need to have their traffic properly forwarded between the two networks. + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown index bf379f507ed..bf0bdde2d98 100644 --- a/source/_integrations/systemmonitor.markdown +++ b/source/_integrations/systemmonitor.markdown @@ -16,7 +16,7 @@ ha_codeowners: - '@gjohansson-ST' --- -The **System monitor** {% term integration %} allows you to monitor disk usage, memory usage, network usage, CPU usage, and running processes. +The **System monitor** {% term integration %} allows you to monitor disk usage, memory usage, network usage, CPU usage, and running processes on which Home Assistant is running. {% include integrations/config_flow.md %} diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown index 28cbe981f38..0a6de08412f 100644 --- a/source/_integrations/telegram_bot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -1032,6 +1032,44 @@ sequence: {% endraw %} +## Known limitations + +The following features are not available in this integration: + +- Editing the bot (You can edit the bot using [@BotFather](https://t.me/botfather) on the Telegram app instead) +- All payment related features such as Telegram Premium, Telegram Star and Telegram Gifts +- Telegram Business +- Telegram ADS +- Mini Bot Apps and Mini Bot Store +- Calls and live streaming +- Wallpapers and Themes + +## Troubleshooting + +{% details "Error sending message: Can't parse entities" %} + +When using send actions such as `telegram_bot.send_message` with the `markdownv2` parse mode, the action will fail with the "Can't parse entities" error if the user input in the `message` field contains malformed Markdown syntax. + +You can perform any of the following steps to resolve this issue: + +- Use the `plain_text` parse mode either by configuring the Telegram bot options or by specifying it via the action's `parse_mode` data attribute. +- Escape special characters in the `message` field with a preceding '\\' character. +- Format your message according to the [formatting options](https://core.telegram.org/bots/api#formatting-options). + +{% enddetails %} + +{% details "Telegram Webhook bot is unable to receive updates" %} + +If your Telegram bot is unable to receive updates (for example, all events other than `telegram_sent` are not triggered), please follow the troubleshooting steps below: + +1. Reconfigure your Telegram bot to use the **Polling** platform and test again to verify that the issue is not related to network connectivity between Telegram and your Home Assistant. +2. Check your firewall rules to verify that incoming connections are not blocked. +3. Verify that your webhook URL is public and accessible. + +If the issue persists, please refer to the [Webhooks Guide](https://core.telegram.org/bots/webhooks) for more detailed troubleshooting. + +{% enddetails %} + ## Removing the integration This integration follows standard integration removal. No extra steps are required. diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index c997b9b76bd..2bf020cc0a7 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -1133,7 +1133,7 @@ template: level: "{{ state_attr('sensor.theater_brightness', 'lux')|int }}" state: "{{ state_attr('sensor.theater_brightness', 'lux')|int > 0 }}" temperature: "{{states('input_number.temperature_input') | int}}" - hs_template: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})" + hs: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})" effect_list: "{{ state_attr('light.led_strip', 'effect_list') }}" turn_on: action: script.theater_lights_on @@ -1190,7 +1190,7 @@ template: level: "{{ state_attr('sensor.theater_brightness', 'lux')|int }}" state: "{{ state_attr('sensor.theater_brightness', 'lux')|int > 0 }}" temperature: "{{states('input_number.temperature_input') | int}}" - hs_template: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})" + hs: "({{states('input_number.h_input') | int}}, {{states('input_number.s_input') | int}})" effect_list: "{{ state_attr('light.led_strip', 'effect_list') }}" turn_on: action: script.theater_lights_on @@ -1622,7 +1622,7 @@ template: unlock: - variables: pin: !secret garage_door_pin - - condition: "{{ code == pin }}" + - condition: "{{ code|int == pin|int }}" - action: switch.turn_off target: entity_id: switch.source diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown index b61b3a56439..c40ad2ccd1b 100644 --- a/source/_integrations/tuya.markdown +++ b/source/_integrations/tuya.markdown @@ -95,7 +95,7 @@ Tuya supports scenes in their app. These allow triggering some of the more compl ## Troubleshooting -### Unsupported device or missing device functionnality +### Unsupported device or missing device functionality This integration relies on the official [Python SDK provided by Tuya](https://github.com/tuya/tuya-device-sharing-sdk), which does not expose all functionality available in SmartLife. diff --git a/source/_integrations/usage_prediction.markdown b/source/_integrations/usage_prediction.markdown index 14aa31f50d7..3866a1de81b 100644 --- a/source/_integrations/usage_prediction.markdown +++ b/source/_integrations/usage_prediction.markdown @@ -13,3 +13,13 @@ ha_integration_type: system --- The **Usage Prediction** {% term integration %} is an internal integration that provides predictions of what entities the user is most likely to interact with. This is used in the frontend to surface the most relevant entities to the user. + +## Configuration + +While this integration is part of [`default_config:`](/integrations/default_config/) to enable features in the default experience, it will only be enabled by setting up the configuration flow, or manually adding it to your {% term "`configuration.yaml`" %} file. +{% include integrations/restart_ha_after_config_inclusion.md %} + +```yaml +# Example configuration.yaml entry +usage_prediction: +``` diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown index 7481fb4f6a3..bd884e17bb1 100644 --- a/source/_integrations/utility_meter.markdown +++ b/source/_integrations/utility_meter.markdown @@ -292,7 +292,7 @@ utility_meter: Additionally, you can add template sensors to compute daily and monthly total usage. Important note, in these examples, we use the `is_number()` [function](/docs/configuration/templating/#numeric-functions-and-filters) to verify the values -returned from the sensors are numeric. If this evalutes to false, `None` is returned. +returned from the sensors are numeric. If this evaluates to false, `None` is returned. {% raw %} diff --git a/source/_integrations/velux.markdown b/source/_integrations/velux.markdown index db4ee3f0fe2..215666b87a2 100644 --- a/source/_integrations/velux.markdown +++ b/source/_integrations/velux.markdown @@ -35,14 +35,28 @@ There is currently support for the following device types within Home Assistant: Rain sensors of supported windows do not report automatically and must be polled every 5 minutes. For this reason, they are disabled by default, because polling uses more radio bandwidth and battery power than simply reporting changed window positions. +## Prerequisites + +1. Make sure you have the password for your gateway's wireless access point. + - You'll find it printed on the underside of your KLF 200 device. + - It is not the web login password. +2. Reboot or power cycle the KLF 200 device. + - You must complete the configuration within 5 minutes of rebooting the device while its Wi-Fi access point is still visible. +3. During configuration, keep your Home Assistant connected to your regular network. + - Don't connect to the device's wireless access point. + {% include integrations/config_flow.md %} During configuration, you will be asked for a hostname and password: -- Hostname: enter the IP address of the KLF 200 gateway. -- Password: enter the password of the gateway's wireless access point (printed on the underside - **not** the web login password). +{% configuration_basic %} +Hostname: + description: "The IP address or hostname of the KLF 200 gateway. You can find it in your router." +Password: + description: "The password of the gateway's wireless access point. You can find it printed on the underside of the device. It is not the web login password." +{% endconfiguration_basic %} -You must complete the configuration within 5 minutes of rebooting the KLF 200 gateway while the access point is still available. +Remember: You must complete the configuration within 5 minutes of rebooting the KLF 200 gateway. If you can't complete in time and setup fails, power cycle the device and try again. ## Actions @@ -52,7 +66,21 @@ Reboots the configured KLF 200 gateway. In Home Assistant versions up to 2024.12.x, it was recommended to create an automation to reboot the KLF 200 gateway before shutting down or restarting Home Assistant. This automated reboot is now built into the integration, so you no longer need to create a separate automation. -## Velux Active (KIX 300) +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} + +## Unsupported Hardware + +### Velux KLF 150 + +The Velux KLF 150 is not supported by this {% term integration %}, even though Velux markets it as the replacement for the now-discontinued KLF 200. Unlike the KLF 200, the KLF 150 does not provide a local API that Home Assistant can communicate with directly. + +However, there is a community [project](https://github.com/uncaught/gpio-shutter-bridge) that bridges the KLF 150's GPIO interface with MQTT. Using this project with additional hardware, you can control your KLF 150 through the [MQTT Cover integration](/integrations/cover.mqtt/). + +### Velux Active (KIX 300) The Velux Active (KIX 300) set is not supported by this {% term integration %}. To integrate Velux Active (KIX 300) with Home Assistant, you can use the [HomeKit Controller](/integrations/homekit_controller) {% term integration %} and get full control over your windows, curtains, covers, the air quality sensor KLA 300, etc. diff --git a/source/_integrations/volvo.markdown b/source/_integrations/volvo.markdown index 17338ef2d2d..948c79e35d0 100644 --- a/source/_integrations/volvo.markdown +++ b/source/_integrations/volvo.markdown @@ -24,6 +24,22 @@ related: The **Volvo** {% term integration %} is used to integrate your [Volvo](https://www.volvocars.com/) vehicle. +## Use cases + +### Monitor safety and status of your vehicle + +Keep an eye on doors and windows, and get immediate notifications if something changes. You can create automations that alert you when service is required, or when a door is left open. + +### Manage charging and battery + +Track battery state of charge, estimated electric range, and current charging status. Automate charging to start or stop based on battery level, departure time, or electricity rates, and monitor progress using the integration's sensors. + +**Note:** This integration does not provide direct control to start or stop charging. To actually start or stop charging, use the integration for your charger. + +### Preheat cabin and battery + +Preheat or precondition the cabin and battery before a trip to improve comfort and efficiency. Schedule preheating or preconditioning relative to your departure time or trigger it based on the outside temperature. + ## Supported vehicles - Car models starting from model year 2010. @@ -76,51 +92,51 @@ The **Volvo** integration provides the following entities. #### Binary sensors -- **Brake fluid**: Indicates if the brake fluid level is too low -- **Brake light center**: Warns of a failure in the center brake light -- **Brake light left**: Warns of a failure in the left brake light -- **Brake light right**: Warns of a failure in the right brake light -- **Coolant level**: Indicates if the engine coolant level is too low -- **Daytime running light left**: Warns of a failure in the left daytime running light -- **Daytime running light right**: Warns of a failure in the right daytime running light -- **Door front left**: Detects if the front left door is open or closed -- **Door front right**: Detects if the front right door is open or closed -- **Door rear left**: Detects if the rear left door is open or closed -- **Door rear right**: Detects if the rear right door is open or closed -- **Engine status**: Shows if the engine is currently running -- **Fog light front**: Warns of a failure in the front fog light -- **Fog light rear**: Warns of a failure in the rear fog light -- **Hazard lights**: Warns of a failure in the hazard lights -- **High beam left**: Warns of a failure in the left high beam -- **High beam right**: Warns of a failure in the right high beam -- **Hood**: Detects if the hood is open or closed -- **Low beam left**: Warns of a failure in the left low beam -- **Low beam right**: Warns of a failure in the right low beam -- **Oil level**: Indicates oil level warnings and service requirements -- **Position light front left**: Warns of a failure in the front left position light -- **Position light front right**: Warns of a failure in the front right position light -- **Position light rear left**: Warns of a failure in the rear left position light -- **Position light rear right**: Warns of a failure in the rear right position light -- **Registration plate light**: Warns of a failure in the registration plate light -- **Reverse lights**: Warns of a failure in the reverse lights -- **Service**: Indicates if service is required for the vehicle -- **Side mark lights**: Warns of a failure in the side mark lights -- **Sunroof**: Detects if the sunroof is open or closed -- **Tailgate**: Detects if the tailgate is open or closed -- **Tank lid**: Detects if the tank lid is open or closed -- **Tire front left**: Indicates pressure warnings for the front left tire -- **Tire front right**: Indicates pressure warnings for the front right tire -- **Tire rear left**: Indicates pressure warnings for the rear left tire -- **Tire rear right**: Indicates pressure warnings for the rear right tire -- **Turn indication front left**: Warns of a failure in the front left turn indicator -- **Turn indication front right**: Warns of a failure in the front right turn indicator -- **Turn indication rear left**: Warns of a failure in the rear left turn indicator -- **Turn indication rear right**: Warns of a failure in the rear right turn indicator -- **Washer fluid**: Indicates if the washer fluid level is too low -- **Window front left**: Detects if the front left window is open or closed -- **Window front right**: Detects if the front right window is open or closed -- **Window rear left**: Detects if the rear left window is open or closed -- **Window rear right**: Detects if the rear right window is open or closed +- **Brake fluid**: Indicates if the brake fluid level is too low. +- **Brake light center**: Warns of a failure in the center brake light. +- **Brake light left**: Warns of a failure in the left brake light. +- **Brake light right**: Warns of a failure in the right brake light. +- **Coolant level**: Indicates if the engine coolant level is too low. +- **Daytime running light left**: Warns of a failure in the left daytime running light. +- **Daytime running light right**: Warns of a failure in the right daytime running light. +- **Door front left**: Detects if the front left door is open or closed. +- **Door front right**: Detects if the front right door is open or closed. +- **Door rear left**: Detects if the rear left door is open or closed. +- **Door rear right**: Detects if the rear right door is open or closed. +- **Engine status**: Shows if the engine is currently running. +- **Fog light front**: Warns of a failure in the front fog light. +- **Fog light rear**: Warns of a failure in the rear fog light. +- **Hazard lights**: Warns of a failure in the hazard lights. +- **High beam left**: Warns of a failure in the left high beam. +- **High beam right**: Warns of a failure in the right high beam. +- **Hood**: Detects if the hood is open or closed. +- **Low beam left**: Warns of a failure in the left low beam. +- **Low beam right**: Warns of a failure in the right low beam. +- **Oil level**: Indicates oil level warnings and service requirements. +- **Position light front left**: Warns of a failure in the front left position light. +- **Position light front right**: Warns of a failure in the front right position light. +- **Position light rear left**: Warns of a failure in the rear left position light. +- **Position light rear right**: Warns of a failure in the rear right position light. +- **Registration plate light**: Warns of a failure in the registration plate light. +- **Reverse lights**: Warns of a failure in the reverse lights. +- **Service**: Indicates if service is required for the vehicle. +- **Side mark lights**: Warns of a failure in the side mark lights. +- **Sunroof**: Detects if the sunroof is open or closed. +- **Tailgate**: Detects if the tailgate is open or closed. +- **Tank lid**: Detects if the tank lid is open or closed. +- **Tire front left**: Indicates pressure warnings for the front left tire. +- **Tire front right**: Indicates pressure warnings for the front right tire. +- **Tire rear left**: Indicates pressure warnings for the rear left tire. +- **Tire rear right**: Indicates pressure warnings for the rear right tire. +- **Turn indication front left**: Warns of a failure in the front left turn indicator. +- **Turn indication front right**: Warns of a failure in the front right turn indicator. +- **Turn indication rear left**: Warns of a failure in the rear left turn indicator. +- **Turn indication rear right**: Warns of a failure in the rear right turn indicator. +- **Washer fluid**: Indicates if the washer fluid level is too low. +- **Window front left**: Detects if the front left window is open or closed. +- **Window front right**: Detects if the front right window is open or closed. +- **Window rear left**: Detects if the rear left window is open or closed. +- **Window rear right**: Detects if the rear right window is open or closed. #### Buttons @@ -159,25 +175,25 @@ Go to Volvo's developer portal to view [the availability](https://developer.volv #### Sensors -- **Average energy consumption since charge**: Average energy consumption since the last charge of the battery -- **Battery**: Current state of charge of the battery -- **Battery capacity**: Total capacity of the battery -- **Distance to empty battery**: Electric range +- **Average energy consumption since charge**: Average energy consumption since the last charge of the battery. +- **Battery**: Current state of charge of the battery. +- **Battery capacity**: Total capacity of the battery. +- **Distance to empty battery**: Electric range. #### Sensors for specific models Go to Volvo's developer portal to view [the list of supported models](https://developer.volvocars.com/apis/energy/v2/overview/#availability). -- **Charging connection status**: Charging connection status -- **Charging limit**: Charging limit configured in the car -- **Charging power**: Current charging power -- **Charging power status**: Indication if power is being provided -- **Charging status**: Indication if the car is charging or not -- **Charging type**: AC or DC -- **Estimated charging time**: Estimated charging time to reach the target battery charge level -- **Trip automatic average energy consumption**: Average energy consumption on the automatic trip meter -- **Target battery charge level**: Target battery charge level configured in the car -- **Trip manual average energy consumption**: Average energy consumption on the manual trip meter +- **Charging connection status**: Charging connection status. +- **Charging limit**: Charging limit configured in the car. +- **Charging power**: Current charging power. +- **Charging power status**: Indication if power is being provided. +- **Charging status**: Indication if the car is charging or not. +- **Charging type**: AC or DC. +- **Estimated charging time**: Estimated charging time to reach the target battery charge level. +- **Trip automatic average energy consumption**: Average energy consumption on the automatic trip meter. +- **Target battery charge level**: Target battery charge level configured in the car. +- **Trip manual average energy consumption**: Average energy consumption on the manual trip meter. ### Fuel-only and plug-in hybrid @@ -188,13 +204,48 @@ Go to Volvo's developer portal to view [the list of supported models](https://de #### Sensors -- **Distance to empty tank**: Fuel range -- **Fuel amount**: Remaining fuel -- **Trip automatic average fuel consumption**: Average fuel consumption on the automatic trip meter -- **Trip manual average fuel consumption**: Average fuel consumption on the manual trip meter +- **Distance to empty tank**: Fuel range. +- **Fuel amount**: Remaining fuel. +- **Trip automatic average fuel consumption**: Average fuel consumption on the automatic trip meter. +- **Trip manual average fuel consumption**: Average fuel consumption on the manual trip meter. ## Examples +### Notify if doors are left open + +Send a notification to your mobile phone if at least one door is open for 5 minutes. + +{% raw %} + +```yaml +alias: Notify me if doors are left open for 5 minutes +description: "" +triggers: + - trigger: state + entity_id: + - binary_sensor.volvo_YOUR_MODEL_door_front_left + - binary_sensor.volvo_YOUR_MODEL_door_front_right + - binary_sensor.volvo_YOUR_MODEL_door_rear_left + - binary_sensor.volvo_YOUR_MODEL_door_rear_right + - binary_sensor.volvo_YOUR_MODEL_tailgate + to: "on" + for: + hours: 0 + minutes: 5 + seconds: 0 +conditions: [] +actions: + - data: + data: + url: /lovelace/volvo + title: 🚘 Volvo + message: You've left some doors open. Don't give thiefs a chance! + action: notify.mobile_app_phone_john_doe +mode: single +``` + +{% endraw %} + ### Estimated charging finish time The Volvo API only provides an estimated charging time (in minutes). To calculate the finish time, you can create a **Template sensor** helper with the template below. diff --git a/source/_integrations/wake_on_lan.markdown b/source/_integrations/wake_on_lan.markdown index 9ecd40b3a25..0caa88c7407 100644 --- a/source/_integrations/wake_on_lan.markdown +++ b/source/_integrations/wake_on_lan.markdown @@ -27,6 +27,10 @@ There is currently support for the following device types within Home Assistant: - [Button](#button) enabled from the UI - [Switch](#switch) enabled from YAML configuration +{% tip %} +To implement a switch without using YAML, consider using a [template switch helper](/integrations/template/#switch). Use the Wake on LAN button as the turn on action, a [ping](/integrations/ping) sensor for the state, and a third service for the turn off action. +{% endtip %} + {% include integrations/config_flow.md %} {% configuration_basic %} diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown index d9b808e0976..b09446d8d81 100644 --- a/source/_integrations/wled.markdown +++ b/source/_integrations/wled.markdown @@ -205,6 +205,11 @@ to a preset called My Preset: option: "My Preset" ``` +When a preset is activated and the light state is modified afterward +(e.g. with a `light.turn_on` action), the preset may be reset to an empty value. +This can affect services such as `select.select_next`, which will start again +from the first option instead of continuing the cycle. + ### Automation using specific palette name An automation to turn on a WLED light and select a specific palette and diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 98388cae1b1..a685cbc21e8 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -291,15 +291,13 @@ zha: channels: [15, 20, 25] # Channel mask ``` - - The related troubleshooting segments mentioned above will, among other things, inform that if you have issues with overlapping frequencies between Wi-Fi and Zigbee, then it is usually better to first only try changing and setting a static Wi-Fi channel on your Wi-Fi router or all your Wi-Fi access points (instead of just changing to another Zigbee channel). MetaGeek Support has a good reference article about channel selection for [Zigbee and WiFi coexistence](https://support.metageek.com/hc/en-us/articles/203845040-ZigBee-and-WiFi-Coexistence). The Zigbee specification standards divide the 2.4 GHz ISM radio band into 16 Zigbee channels (i.e. distinct radio frequencies for Zigbee). For all Zigbee devices to be able to communicate, they must support the same Zigbee channel (i.e. Zigbee radio frequency) that is set on the Zigbee Coordinator as the channel to use for its Zigbee network. Not all Zigbee devices support all Zigbee channels. Channel support usually depends on the age of the hardware and firmware, as well as on the device's power ratings. -The general recommendation is to only use channels 15, 20, or 25 in order to avoid interoperability problems with Zigbee devices. Not only because there is less chance of Wi-Fi networks interfering too much with the Zigbee network on other channels, but also because not all Zigbee devices support all channels. Some devices, for example, are limited to only being compatible with ZLL (Zigbee Light Link) channels. It is therefore especially not recommended to use Zigbee channels 11, 24, 25, or 26 on your Zigbee coordinator. These Zigbee channels are commonly only supported by relatively modern Zigbee hardware devices with newer Zigbee firmware. If using those channels, your coordinator may not be usable with older Zigbee devices. +The general recommendation is to only use channels 15, 20, or 25 in order to avoid interoperability problems with Zigbee devices. Not only because there is less chance of Wi-Fi networks interfering too much with the Zigbee network on other channels, but also because not all Zigbee devices support all channels. #### Modifying the device type @@ -543,13 +541,14 @@ While using a native Zigbee group instead of Home Assistant's [Group](/integrati Binding a Zigbee device attaches an endpoint from one device to an endpoint of another device (or group). -Commands sent between bound devices bypass ZHA (even when ZHA is not active) and directly control the targeted device. Binding devices can allow for faster response times and smoother control. +Commands sent between bound devices bypass ZHA (even when ZHA or Home Assistant are not working) and directly control the targeted device. Binding devices can also allow for faster response times and smoother control. Before binding devices, note the following: - ZHA binds remotes to the Zigbee coordinator by default in order to forward click events to Home Assistant. - Some remotes can only be bound to a single target; you might need to unbind the remote from the coordinator before binding it to another target. -- Not all devices support binding. Refer to the device manufacturer's documentation to confirm features. +- All remotes have some upper limit as to the number of devices they can bind. +- Not all devices support binding, some only support binding groups, others only devices; refer to the device manufacturer's or the community's documentation to confirm features. #### To manage bindings of a Zigbee device @@ -559,11 +558,12 @@ Before binding devices, note the following: Prerequisites and steps can vary depending on the device type, manufacturer, and your desired end result. {% endnote %} -1. Navigate to the Zigbee device's configuration page, -2. In the options menu (the "three dots" icon), select **Manage Zigbee device**, +1. Navigate to the Zigbee remote's configuration page, +2. In the options menu (the "three dots" icon) to the right of the **Reconfigure** button, select **Manage Zigbee device**, 3. Select the **Bindings** tab in the pop-up dialog, 4. Choose the device from the dropdown list of _Bindable devices_ (or _Bindable groups_), -5. Confirm the Bind or Unbind action: +5. If the remote is battery powered or low-power, wake it by pressing a button immediately before sending a command. +6. Confirm the Bind or Unbind action: - To bind devices: select **Bind** (or **Bind group**), or - To unbind devices, select **Unbind** (or **Unbind group**). @@ -575,58 +575,60 @@ After restoring a Home Assistant backup, you can reconfigure ZHA or migrate to a Manual backups can also be created from the configuration page under **Network Settings**. -### Migrating to a new Zigbee Coordinator adapter inside ZHA +### Migrating to a new Zigbee adapter inside ZHA -ZHA supports migrating the Zigbee network between different Zigbee Coordinators based on chips from Silicon Labs, Texas Instruments, or ConBee/RaspBee if the backup was made from inside ZHA. +ZHA supports migrating the Zigbee network between different Zigbee adapters based on chips from Silicon Labs, Texas Instruments, or ConBee/RaspBee if the backup was made from inside ZHA. #### Prerequisites Confirm you meet the following requirements before migrating: -- The previous coordinator is used in the ZHA {% term integration %} and _not_ in deCONZ or MQTT. +- The previous adapter is used in the ZHA {% term integration %} and _not_ in deCONZ or Zigbee2MQTT. - The radio type is one of the following: - - ezsp _(Silicon Labs EmberZnet)_ + - ezsp _(Silicon Labs EmberZNet)_ - znp _(Texas Instruments Z-Stack ZNP)_ - deCONZ _(ConBee/RaspBee from dresden elektronik)_ - Be sure it is running [firmware 0x26700700 (from 2021-08-18)](https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Firmware-Changelog) or later. -{% details "To migrate to a new Zigbee coordinator radio inside ZHA:" %} +{% details "To migrate to a new Zigbee adapter inside ZHA:" %} {% important %} -You will not be able to control your existing Zigbee devices until the new coordinator fully joins the network after the migration. **This can take a few minutes.** +You will not be able to control your existing Zigbee devices until they join the network after the migration. **This can take a few minutes.** If some existing devices do not resume normal functions after some time, try power-cycling them to attempt rejoining to the network. {% endimportant %} -1. Go to **{% my integrations title="Settings > Devices & services" %}** and select the ZHA {% term integration %}. Then select **Configure**. -2. Under **Network settings**, select **Migrate radio**. -3. Reconfiguration of ZHA will start. Select **Submit**. -4. Under **Migrate or re-configure**, select **Migrate to a new radio**. -5. Select **Submit** to begin. - - An automatic backup will be performed, the Zigbee Coordinator radio will be reset, and the backup will be automatically restored. - - For combined Z-Wave and Zigbee radios, like the HUSBZB-1 adapter, only the Zigbee radio portion is reset. - - You may now unplug the old adapter, or you may leave the old radio adapter plugged in (for example, if the adapter is a combined Z-Wave adapter). -6. Plug in the new Zigbee Coordinator radio adapter. - - Select **Submit** after confirming the new Zigbee Coordinator radio adapter is properly connected. - - To minimize interference: - - Use a USB extension cable, - - Use a USB 2.0 port or a powered USB 2.0 hub, - - Keep the Zigbee stick away from USB 3.0 devices. -7. Start the backup restore process: - - Select the new Zigbee radio from the list of serial ports and select **Next**. - - A migration can be resumed if a reboot is required, such as when troubleshooting or if new hardware is plugged in. - - To resume, go to **Network Settings**, select **Re-configure the current radio**, choose the new radio and proceed. -8. Under **Network Formation**, select **Restore an automatic backup**. -9. Under **Restore Automation Backup**, choose the latest automatic backup and select **Submit**. -10. If the new radio requires overwriting the IEEE address (the unique MAC address), you will see the prompt for **Overwrite Radio IEEE Address**. - - Check the **Permanently replace the radio IEEE address** box and click **Submit**. - - Selecting this option is required for the migration process to complete successfully. - - Overwriting the IEEE address may take a while. - - Both the old and new Zigbee Coordinators will now have the same Zigbee IEEE address. - - You should not operate the old adapter in the same area unless you change its Zigbee IEEE address. - - If you do not migrate the Zigbee IEEE address from the old Zigbee Coordinator radio, you will have to reconnect many of your devices to keep them working. -11. Finally, a **Success!** message should pop up with information that all options were successfully saved. - - Select **Finish** to confirm. +1. Go to **{% my integrations title="Settings > Devices & services" %}** and select the ZHA {% term integration %}. Then select the cogwheel {% icon "mdi:cog-outline" %}. +2. Under **Network settings**, select **Migrate adapter**. +3. Plug in the new Zigbee adapter. + - To minimize interference: + - Use a USB extension cable. + - Use a USB 2.0 port or a powered USB 2.0 hub. + - Keep the Zigbee adapter away from USB 3.0 devices. + - This [video](https://support.nabucasa.com/hc/en-us/articles/26124431414557) shows the effect of interference. +4. Reconfiguration of ZHA starts. Select **Submit**. + - An automatic backup will be performed. +5. Under **Migrate or re-configure**, select **Migrate to a new adapter**. +6. Select the new Zigbee adapter from the list of serial ports and select **Submit**. +7. Choose what backup to use for migration: + - **Option 1**: To use the backup that was created during this migration, select **Migrate automatically (recommended)**. + - This is the quickest way to complete the migration. + - **Option 2**: To restore a specific, older backup, select **Advanced migration** instead. + - This will let you select a backup of your choice. +8. In the rare event the new radio requires overwriting the IEEE address (the unique MAC address), you will see the prompt for **Overwrite Radio IEEE Address**. + - Check the **Permanently replace the radio IEEE address** box and click **Submit**. + - Selecting this option is required for the migration process to complete successfully. + - Overwriting the IEEE address may take a while. + - Both the old and new Zigbee adapters now have the same Zigbee IEEE address. + - You should not operate the old adapter in the same area unless you change its Zigbee IEEE address. + - If you do not migrate the Zigbee IEEE address from the old Zigbee adapter, you will have to reconnect many of your devices to keep them working. +9. The migration process is now complete. + - The old adapter is being reset. + - For combined Z-Wave and Zigbee adapters, like the HUSBZB-1 adapter, only the Zigbee radio portion is reset. + - **Info**: You won't be able to control the devices until they rejoin the network. + - Normally, they rejoin within one hour. + - You may be able to accelerate that process by power-cycling devices. +10. You can now remove the old Zigbee adapter. {% enddetails %} diff --git a/source/_posts/2025-09-17-home-assistant-turns-12.markdown b/source/_posts/2025-09-17-home-assistant-turns-12.markdown index 5728f3d0ef3..8d0cae21c52 100644 --- a/source/_posts/2025-09-17-home-assistant-turns-12.markdown +++ b/source/_posts/2025-09-17-home-assistant-turns-12.markdown @@ -42,7 +42,7 @@ In my opinion, the best thing about Home Assistant is its flexibility - you can - Inspired by [PowerDisplayESPHome](https://github.com/johannyren/PowerDisplayESPHome/tree/main), JannickBlmndl [made an LED matrix](https://gitlab.com/JannickBlmndl/ESPHome-Dynamic-Prices-LEDMatrix) that helps their household be more sustainable by being energy flexible. It displays the live energy prices from their energy provider. 📊 -- [Tano Spirits](https://www.youtube.com/@TanoSpirits) in Melbourne, Australia, uses Home Assistant to automate their Japanese Shochu distillery, inspired by the brewing automations at [Little Island Brewing Co](https://libc.co/brewing-process/) in Singapore. 🍻 +- [Tano Spirits](https://www.youtube.com/@TanoSpirits) in Melbourne, Australia, uses Home Assistant to automate their Japanese Shochu distillery, inspired by a small brewing company in Singapore. 🍻 - Several years ago, HillPhantom found that Home Assistant wasn’t quite ready for him. Over the past year, though, he’s now got Ollama set up with his Home Assistant Voice Preview Edition and has been building guides on how to make your own [mmWave radar sensors in Home Assistant](https://www.youtube.com/watch?v=Gb-4l93st8A). 👋🏻 diff --git a/source/_posts/2025-10-01-release-202510.markdown b/source/_posts/2025-10-01-release-202510.markdown index ce83e97c3f6..943d8d0dcd0 100644 --- a/source/_posts/2025-10-01-release-202510.markdown +++ b/source/_posts/2025-10-01-release-202510.markdown @@ -41,7 +41,7 @@ Enjoy the release! - [AI Task - Draw me a sheep](#ai-task---draw-me-a-sheep) - [Dashboards get smarter - let your home suggest what to show](#dashboards-get-smarter---let-your-home-suggest-what-to-show) - [Voice](#voice) - - [Hello, Hola](#hello-hola) + - [Hello, hola](#hello-hola) - [Beep boop](#beep-boop) - [Integrations](#integrations) - [New integrations](#new-integrations) @@ -52,6 +52,11 @@ Enjoy the release! - [New more information dialog for media player entities](#new-more-information-dialog-for-media-player-entities) - [Sync zooming charts in the history panel](#sync-zooming-charts-in-the-history-panel) - [Template \& YAML editors get a toolbar](#template--yaml-editors-get-a-toolbar) +- [Patch releases](#patch-releases) + - [2025.10.1 - October 3](#2025101---october-3) + - [2025.10.2 - October 10](#2025102---october-10) + - [2025.10.3 - October 17](#2025103---october-17) + - [2025.10.4 - October 24](#2025104---october-24) - [Need help? Join the community](#need-help-join-the-community) - [Backward-incompatible changes](#backward-incompatible-changes) - [All changes](#all-changes) @@ -555,6 +560,510 @@ The new toolbar also includes undo and redo buttons, bringing [the same convenie [@TCWORLD]: https://github.com/TCWORLD +## Patch releases + +We will also release patch releases for Home Assistant 2025.10 in October. +These patch releases only contain bug fixes. Our goal is to release a patch +release once a week, aiming for Friday. + +### 2025.10.1 - October 3 + +- Bump airOS dependency ([@CoMPaTech] - [#153065]) +- Bump airOS module for alternative login url ([@CoMPaTech] - [#153317]) +- Bump aiohasupervisor to 0.3.3 ([@agners] - [#153344]) +- Do not reset the adapter twice during ZHA options flow migration ([@puddly] - [#153345]) +- Fix Nord Pool 15 minute interval ([@gjohansson-ST] - [#153350]) +- Explicitly check for None in raw value processing of modbus ([@alengwenus] - [#153352]) +- Set config entry to None in ProxmoxVE ([@mib1185] - [#153357]) +- Explicit pass in the config entry to coordinator in airtouch4 ([@mib1185] - [#153361]) +- Add Roborock mop intensity translations ([@starkillerOG] - [#153380]) +- Correct blocking update in ToGrill with lack of notifications ([@elupus] - [#153387]) +- Bump python-roborock to 2.49.1 ([@Lash-L] - [#153396]) +- Pushover: Handle empty data section properly ([@linuxkidd] - [#153397]) +- Increase onedrive upload chunk size ([@zweckj] - [#153406]) +- Bump pyportainer 1.0.2 ([@erwindouna] - [#153326]) +- Bump pyportainer 1.0.3 ([@erwindouna] - [#153413]) +- Disable thinking for unsupported gemini models ([@Shulyaka] - [#153415]) +- Fix Satel Integra creating new binary sensors on YAML import ([@Tommatheussen] - [#153419]) +- Update `markdown` field description in ntfy integration ([@tr4nt0r] - [#153421]) +- Fix Z-Wave RGB light turn on causing rare `ZeroDivisionError` ([@TheJulianJES] - [#153422]) +- Bump aiohomekit to 3.2.19 ([@bdraco] - [#153423]) +- Fix sentence-casing in user-facing strings of `slack` ([@NoRi2909] - [#153427]) +- Add missing translation for media browser default title ([@timmo001] - [#153430]) +- Fix missing powerconsumptionreport in Smartthings ([@joostlek] - [#153438]) +- Update Home Assistant base image to 2025.10.0 ([@agners] - [#153441]) +- Disable baudrate bootloader reset for ZBT-2 ([@puddly] - [#153443]) +- Add translation for turbo fan mode in SmartThings ([@joostlek] - [#153445]) +- Fix next event in workday calendar ([@gjohansson-ST] - [#153465]) +- Update OVOEnergy to 3.0.1 ([@timmo001] - [#153476]) +- Fix missing parameter pass in onedrive ([@zweckj] - [#153478]) +- Bump pyTibber to 0.32.2 ([@Danielhiversen] - [#153484]) +- Bump reolink-aio to 0.16.1 ([@starkillerOG] - [#153489]) +- Fix VeSync zero fan speed handling ([@cdnninja] - [#153493]) +- Bump universal-silabs-flasher to 0.0.35 ([@puddly] - [#153500]) +- Debounce updates in Idasen Desk ([@abmantis] - [#153503]) +- Z-Wave to support migrating from USB to socket with same home ID ([@balloob] - [#153522]) +- When discovering a Z-Wave adapter, always configure add-on in config flow ([@balloob] - [#153575]) + +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153065]: https://github.com/home-assistant/core/pull/153065 +[#153317]: https://github.com/home-assistant/core/pull/153317 +[#153326]: https://github.com/home-assistant/core/pull/153326 +[#153344]: https://github.com/home-assistant/core/pull/153344 +[#153345]: https://github.com/home-assistant/core/pull/153345 +[#153350]: https://github.com/home-assistant/core/pull/153350 +[#153352]: https://github.com/home-assistant/core/pull/153352 +[#153357]: https://github.com/home-assistant/core/pull/153357 +[#153361]: https://github.com/home-assistant/core/pull/153361 +[#153380]: https://github.com/home-assistant/core/pull/153380 +[#153387]: https://github.com/home-assistant/core/pull/153387 +[#153396]: https://github.com/home-assistant/core/pull/153396 +[#153397]: https://github.com/home-assistant/core/pull/153397 +[#153406]: https://github.com/home-assistant/core/pull/153406 +[#153413]: https://github.com/home-assistant/core/pull/153413 +[#153415]: https://github.com/home-assistant/core/pull/153415 +[#153419]: https://github.com/home-assistant/core/pull/153419 +[#153421]: https://github.com/home-assistant/core/pull/153421 +[#153422]: https://github.com/home-assistant/core/pull/153422 +[#153423]: https://github.com/home-assistant/core/pull/153423 +[#153427]: https://github.com/home-assistant/core/pull/153427 +[#153430]: https://github.com/home-assistant/core/pull/153430 +[#153438]: https://github.com/home-assistant/core/pull/153438 +[#153441]: https://github.com/home-assistant/core/pull/153441 +[#153443]: https://github.com/home-assistant/core/pull/153443 +[#153445]: https://github.com/home-assistant/core/pull/153445 +[#153465]: https://github.com/home-assistant/core/pull/153465 +[#153476]: https://github.com/home-assistant/core/pull/153476 +[#153478]: https://github.com/home-assistant/core/pull/153478 +[#153484]: https://github.com/home-assistant/core/pull/153484 +[#153489]: https://github.com/home-assistant/core/pull/153489 +[#153493]: https://github.com/home-assistant/core/pull/153493 +[#153500]: https://github.com/home-assistant/core/pull/153500 +[#153503]: https://github.com/home-assistant/core/pull/153503 +[#153522]: https://github.com/home-assistant/core/pull/153522 +[#153575]: https://github.com/home-assistant/core/pull/153575 +[@CoMPaTech]: https://github.com/CoMPaTech +[@Danielhiversen]: https://github.com/Danielhiversen +[@Lash-L]: https://github.com/Lash-L +[@NoRi2909]: https://github.com/NoRi2909 +[@Shulyaka]: https://github.com/Shulyaka +[@TheJulianJES]: https://github.com/TheJulianJES +[@Tommatheussen]: https://github.com/Tommatheussen +[@abmantis]: https://github.com/abmantis +[@agners]: https://github.com/agners +[@alengwenus]: https://github.com/alengwenus +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@cdnninja]: https://github.com/cdnninja +[@elupus]: https://github.com/elupus +[@erwindouna]: https://github.com/erwindouna +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@joostlek]: https://github.com/joostlek +[@linuxkidd]: https://github.com/linuxkidd +[@mib1185]: https://github.com/mib1185 +[@puddly]: https://github.com/puddly +[@starkillerOG]: https://github.com/starkillerOG +[@timmo001]: https://github.com/timmo001 +[@tr4nt0r]: https://github.com/tr4nt0r +[@zweckj]: https://github.com/zweckj + +### 2025.10.2 - October 10 + +- Prevent reloading the ZHA integration while adapter firmware is being updated ([@puddly] - [#152626]) +- Wallbox fix Rate Limit issue for multiple chargers ([@hesselonline] - [#153074]) +- Fix power device classes for system bridge ([@timmo001] - [#153201]) +- Bump PyCync to 0.4.1 ([@Kinachi249] - [#153401]) +- Updated VRM client and accounted for missing forecasts ([@AndyTempel] - [#153464]) +- Bump python-roborock to 2.50.2 ([@Lash-L] - [#153561]) +- Bump aioamazondevices to 6.2.8 ([@chemelli74] - [#153592]) +- Switch Roborock to v4 of the code login api ([@Lash-L] - [#153593]) +- Fix MQTT Lock state reset to unknown when a reset payload is received ([@jbouwh] - [#153647]) +- Gemini: Use default model instead of recommended where applicable ([@Shulyaka] - [#153676]) +- Fix ViCare pressure sensors missing unit of measurement ([@CFenner] - [#153691]) +- Bump pyvesync to 3.1.0 ([@cdnninja] - [#153693]) +- Modbus Fix message_wait_milliseconds is no longer applied ([@peetersch] - [#153709]) +- Bump opower to 0.15.6 ([@tronikos] - [#153714]) +- Version bump pydaikin to 2.17.0 ([@fredrike] - [#153718]) +- Version bump pydaikin to 2.17.1 ([@fredrike] - [#153726]) +- Fix missing google_assistant_sdk.send_text_command ([@tronikos] - [#153735]) +- Bump airOS to 0.5.5 using formdata for v6 firmware ([@CoMPaTech] - [#153736]) +- Align Shelly `presencezone` entity to the new API/firmware ([@bieniu] - [#153737]) +- Synology DSM: Don't reinitialize API during configuration ([@oyvindwe] - [#153739]) +- Upgrade python-melcloud to 0.1.2 ([@Sander0542] - [#153742]) +- Fix sensors availability check for Alexa Devices ([@chemelli74] - [#153743]) +- Bump aioamazondevices to 6.2.9 ([@chemelli74] - [#153756]) +- Remove stale entities from Alexa Devices ([@chemelli74] - [#153759]) +- vesync correct fan set modes ([@cdnninja] - [#153761]) +- Handle ESPHome discoveries with uninitialized Z-Wave antennas ([@balloob] - [#153790]) +- Fix Tuya cover position when only control is available ([@epenet] - [#153803]) +- Bump pySmartThings to 3.3.1 ([@joostlek] - [#153826]) +- Catch update exception in AirGradient ([@joostlek] - [#153828]) +- Add motion presets to SmartThings AC ([@joostlek] - [#153830]) +- Fix delay_on and auto_off with multiple triggers ([@Petro31] - [#153839]) +- Fix PIN validation for Comelit SimpleHome ([@chemelli74] - [#153840]) +- Bump aiocomelit to 1.1.1 ([@chemelli74] - [#153843]) +- Limit SimpliSafe websocket connection attempts during startup ([@bachya] - [#153853]) +- Handle timeout errors gracefully in Nord Pool services ([@gjohansson-ST] - [#153856]) +- Add plate_count for Miele KM7575 ([@derytive] - [#153868]) +- Fix restore cover state for Comelit SimpleHome ([@chemelli74] - [#153887]) +- fix typo in icon assignment of AccuWeather integration ([@CFenner] - [#153890]) +- Add missing translation string for Satel Integra subentry type ([@Tommatheussen] - [#153905]) +- Do not auto-set up ZHA zeroconf discoveries during onboarding ([@TheJulianJES] - [#153914]) +- `sharkiq` dependency bump to 1.4.2 ([@Freebien] - [#153931]) +- Fix HA hardware configuration message for Thread without HAOS ([@TheJulianJES] - [#153933]) +- Adjust OTBR config entry name for ZBT-2 ([@TheJulianJES] - [#153940]) +- Bump pylamarzocco to 2.1.2 ([@zweckj] - [#153950]) +- Bump holidays to 0.82 ([@gjohansson-ST] - [#153952]) +- Fix update interval for AccuWeather hourly forecast ([@bieniu] - [#153957]) +- Bump env-canada to 0.11.3 ([@michaeldavie] - [#153967]) +- Fix empty llm api list in chat log ([@arturpragacz] - [#153996]) +- Don't mark ZHA coordinator as via_device with itself ([@joostlek] - [#154004]) +- Filter out invalid Renault vehicles ([@epenet] - [#154070]) +- Bump aioamazondevices to 6.4.0 ([@chemelli74] - [#154071]) +- Bump brother to version 5.1.1 ([@bieniu] - [#154080]) +- Fix for multiple Lyrion Music Server on a single Home Assistant server for Squeezebox ([@peteS-UK] - [#154081]) +- Z-Wave: ESPHome discovery to update all options ([@balloob] - [#154113]) +- Add missing entity category and icons for smlight integration ([@piitaya] - [#154131]) +- Update frontend to 20251001.2 ([@bramkragten] - [#154143]) +- IOmeter bump version v0.2.0 ([@jukrebs] - [#154150]) +- Bump deebot-client to 15.1.0 ([@edenhaus] - [#154154]) +- Fix Shelly RPC cover update when the device is not initialized ([@thecode] - [#154159]) +- Fix shelly remove orphaned entities ([@thecode] - [#154182]) + +[#152626]: https://github.com/home-assistant/core/pull/152626 +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153074]: https://github.com/home-assistant/core/pull/153074 +[#153201]: https://github.com/home-assistant/core/pull/153201 +[#153401]: https://github.com/home-assistant/core/pull/153401 +[#153464]: https://github.com/home-assistant/core/pull/153464 +[#153561]: https://github.com/home-assistant/core/pull/153561 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#153592]: https://github.com/home-assistant/core/pull/153592 +[#153593]: https://github.com/home-assistant/core/pull/153593 +[#153647]: https://github.com/home-assistant/core/pull/153647 +[#153676]: https://github.com/home-assistant/core/pull/153676 +[#153691]: https://github.com/home-assistant/core/pull/153691 +[#153693]: https://github.com/home-assistant/core/pull/153693 +[#153709]: https://github.com/home-assistant/core/pull/153709 +[#153714]: https://github.com/home-assistant/core/pull/153714 +[#153718]: https://github.com/home-assistant/core/pull/153718 +[#153726]: https://github.com/home-assistant/core/pull/153726 +[#153735]: https://github.com/home-assistant/core/pull/153735 +[#153736]: https://github.com/home-assistant/core/pull/153736 +[#153737]: https://github.com/home-assistant/core/pull/153737 +[#153739]: https://github.com/home-assistant/core/pull/153739 +[#153742]: https://github.com/home-assistant/core/pull/153742 +[#153743]: https://github.com/home-assistant/core/pull/153743 +[#153756]: https://github.com/home-assistant/core/pull/153756 +[#153759]: https://github.com/home-assistant/core/pull/153759 +[#153761]: https://github.com/home-assistant/core/pull/153761 +[#153790]: https://github.com/home-assistant/core/pull/153790 +[#153803]: https://github.com/home-assistant/core/pull/153803 +[#153826]: https://github.com/home-assistant/core/pull/153826 +[#153828]: https://github.com/home-assistant/core/pull/153828 +[#153830]: https://github.com/home-assistant/core/pull/153830 +[#153839]: https://github.com/home-assistant/core/pull/153839 +[#153840]: https://github.com/home-assistant/core/pull/153840 +[#153843]: https://github.com/home-assistant/core/pull/153843 +[#153853]: https://github.com/home-assistant/core/pull/153853 +[#153856]: https://github.com/home-assistant/core/pull/153856 +[#153868]: https://github.com/home-assistant/core/pull/153868 +[#153887]: https://github.com/home-assistant/core/pull/153887 +[#153890]: https://github.com/home-assistant/core/pull/153890 +[#153905]: https://github.com/home-assistant/core/pull/153905 +[#153914]: https://github.com/home-assistant/core/pull/153914 +[#153931]: https://github.com/home-assistant/core/pull/153931 +[#153933]: https://github.com/home-assistant/core/pull/153933 +[#153940]: https://github.com/home-assistant/core/pull/153940 +[#153950]: https://github.com/home-assistant/core/pull/153950 +[#153952]: https://github.com/home-assistant/core/pull/153952 +[#153957]: https://github.com/home-assistant/core/pull/153957 +[#153967]: https://github.com/home-assistant/core/pull/153967 +[#153996]: https://github.com/home-assistant/core/pull/153996 +[#154004]: https://github.com/home-assistant/core/pull/154004 +[#154070]: https://github.com/home-assistant/core/pull/154070 +[#154071]: https://github.com/home-assistant/core/pull/154071 +[#154080]: https://github.com/home-assistant/core/pull/154080 +[#154081]: https://github.com/home-assistant/core/pull/154081 +[#154113]: https://github.com/home-assistant/core/pull/154113 +[#154131]: https://github.com/home-assistant/core/pull/154131 +[#154143]: https://github.com/home-assistant/core/pull/154143 +[#154150]: https://github.com/home-assistant/core/pull/154150 +[#154154]: https://github.com/home-assistant/core/pull/154154 +[#154159]: https://github.com/home-assistant/core/pull/154159 +[#154182]: https://github.com/home-assistant/core/pull/154182 +[@AndyTempel]: https://github.com/AndyTempel +[@CFenner]: https://github.com/CFenner +[@CoMPaTech]: https://github.com/CoMPaTech +[@Freebien]: https://github.com/Freebien +[@Kinachi249]: https://github.com/Kinachi249 +[@Lash-L]: https://github.com/Lash-L +[@Petro31]: https://github.com/Petro31 +[@Sander0542]: https://github.com/Sander0542 +[@Shulyaka]: https://github.com/Shulyaka +[@TheJulianJES]: https://github.com/TheJulianJES +[@Tommatheussen]: https://github.com/Tommatheussen +[@arturpragacz]: https://github.com/arturpragacz +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@derytive]: https://github.com/derytive +[@edenhaus]: https://github.com/edenhaus +[@epenet]: https://github.com/epenet +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@hesselonline]: https://github.com/hesselonline +[@jbouwh]: https://github.com/jbouwh +[@joostlek]: https://github.com/joostlek +[@jukrebs]: https://github.com/jukrebs +[@michaeldavie]: https://github.com/michaeldavie +[@oyvindwe]: https://github.com/oyvindwe +[@peetersch]: https://github.com/peetersch +[@peteS-UK]: https://github.com/peteS-UK +[@piitaya]: https://github.com/piitaya +[@puddly]: https://github.com/puddly +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tronikos]: https://github.com/tronikos +[@zweckj]: https://github.com/zweckj + +### 2025.10.3 - October 17 + +- Bump aioasuswrt to 1.5.1 ([@kennedyshead] - [#153209]) +- PushSafer: Handle empty data section properly ([@LennartC] - [#154109]) +- Remove redudant state write in Smart Meter Texas ([@srirams] - [#154126]) +- Fix state class for Overkiz water consumption ([@Yvan13120] - [#154164]) +- Bump frontend 20251001.4 ([@piitaya] - [#154218]) +- Bump aioamazondevices to 6.4.1 ([@chemelli74] - [#154228]) +- Move URL out of Mealie strings.json ([@andrew-codechimp] - [#154230]) +- Move URL out of Mastodon strings.json ([@andrew-codechimp] - [#154231]) +- Move URL out of Switcher strings.json ([@thecode] - [#154240]) +- Remove URL from ViCare strings.json ([@CFenner] - [#154243]) +- Fix August integration to handle unavailable OAuth implementation at startup ([@bdraco] - [#154244]) +- Fix Yale integration to handle unavailable OAuth implementation at startup ([@bdraco] - [#154245]) +- Move url like strings to placeholders for nibe ([@elupus] - [#154249]) +- Add description placeholders in Uptime Kuma config flow ([@tr4nt0r] - [#154252]) +- Add description placeholders to pyLoad config flow ([@tr4nt0r] - [#154254]) +- Fix home wiziard total increasing sensors returning 0 ([@jbouwh] - [#154264]) +- Bump pyprobeplus to 1.1.0 ([@pantherale0] - [#154265]) +- Update Snoo strings.json to include weaning_baseline ([@dschafer] - [#154268]) +- Move Electricity Maps url out of strings.json ([@jpbede] - [#154284]) +- Bump aioamazondevices to 6.4.3 ([@chemelli74] - [#154293]) +- Move URL out of Overkiz Config Flow descriptions ([@iMicknl] - [#154315]) +- AsusWRT: Pass only online clients to the device list from the API ([@Vaskivskyi] - [#154322]) +- Move Ecobee authorization URL out of strings.json ([@ogruendel] - [#154332]) +- Move URLs out of SABnzbd strings.json ([@shaiu] - [#154333]) +- Move developer url out of strings.json for coinbase setup flow ([@ogruendel] - [#154339]) +- Fix Bluetooth discovery for devices with alternating advertisement names ([@bdraco] - [#154347]) +- Bump opower to 0.15.7 ([@tronikos] - [#154351]) +- update pysqueezebox lib to 0.13.0 ([@wollew] - [#154358]) +- Move URL out of sfr_box strings.json ([@epenet] - [#154364]) +- Move translatable URLs out of strings.json for huawei lte ([@sonianuj287] - [#154368]) +- Bump aioairq to 0.4.7 ([@Sibgatulin] - [#154386]) +- Bump aiocomelit to 1.1.2 ([@chemelli74] - [#154393]) +- Use `async_schedule_reload` instead of `async_reload` for ZHA ([@puddly] - [#154397]) +- Move igloohome API access URL into constant placeholders ([@DannyS95] - [#154430]) +- Add missing`long_press` entry for trigger_type in strings.json for Hue ([@mvdwetering] - [#154437]) +- Move translatable URLs out of strings.json for isy994 ([@sonianuj287] - [#154464]) +- OpenUV: Fix update by skipping when protection window is null ([@wbyoung] - [#154487]) +- Bump aioamazondevices to 6.4.4 ([@chemelli74] - [#154538]) +- Move URL out of Nuheat strings.json ([@tstabrawa] - [#154580]) +- Bump pyvesync version to 3.1.2 ([@cdnninja] - [#154650]) + +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153209]: https://github.com/home-assistant/core/pull/153209 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#154109]: https://github.com/home-assistant/core/pull/154109 +[#154126]: https://github.com/home-assistant/core/pull/154126 +[#154164]: https://github.com/home-assistant/core/pull/154164 +[#154181]: https://github.com/home-assistant/core/pull/154181 +[#154218]: https://github.com/home-assistant/core/pull/154218 +[#154228]: https://github.com/home-assistant/core/pull/154228 +[#154230]: https://github.com/home-assistant/core/pull/154230 +[#154231]: https://github.com/home-assistant/core/pull/154231 +[#154240]: https://github.com/home-assistant/core/pull/154240 +[#154243]: https://github.com/home-assistant/core/pull/154243 +[#154244]: https://github.com/home-assistant/core/pull/154244 +[#154245]: https://github.com/home-assistant/core/pull/154245 +[#154249]: https://github.com/home-assistant/core/pull/154249 +[#154252]: https://github.com/home-assistant/core/pull/154252 +[#154254]: https://github.com/home-assistant/core/pull/154254 +[#154264]: https://github.com/home-assistant/core/pull/154264 +[#154265]: https://github.com/home-assistant/core/pull/154265 +[#154268]: https://github.com/home-assistant/core/pull/154268 +[#154284]: https://github.com/home-assistant/core/pull/154284 +[#154293]: https://github.com/home-assistant/core/pull/154293 +[#154315]: https://github.com/home-assistant/core/pull/154315 +[#154322]: https://github.com/home-assistant/core/pull/154322 +[#154332]: https://github.com/home-assistant/core/pull/154332 +[#154333]: https://github.com/home-assistant/core/pull/154333 +[#154339]: https://github.com/home-assistant/core/pull/154339 +[#154347]: https://github.com/home-assistant/core/pull/154347 +[#154351]: https://github.com/home-assistant/core/pull/154351 +[#154358]: https://github.com/home-assistant/core/pull/154358 +[#154364]: https://github.com/home-assistant/core/pull/154364 +[#154368]: https://github.com/home-assistant/core/pull/154368 +[#154386]: https://github.com/home-assistant/core/pull/154386 +[#154393]: https://github.com/home-assistant/core/pull/154393 +[#154397]: https://github.com/home-assistant/core/pull/154397 +[#154430]: https://github.com/home-assistant/core/pull/154430 +[#154437]: https://github.com/home-assistant/core/pull/154437 +[#154464]: https://github.com/home-assistant/core/pull/154464 +[#154487]: https://github.com/home-assistant/core/pull/154487 +[#154538]: https://github.com/home-assistant/core/pull/154538 +[#154580]: https://github.com/home-assistant/core/pull/154580 +[#154650]: https://github.com/home-assistant/core/pull/154650 +[@CFenner]: https://github.com/CFenner +[@DannyS95]: https://github.com/DannyS95 +[@LennartC]: https://github.com/LennartC +[@Sibgatulin]: https://github.com/Sibgatulin +[@Vaskivskyi]: https://github.com/Vaskivskyi +[@Yvan13120]: https://github.com/Yvan13120 +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@bdraco]: https://github.com/bdraco +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@dschafer]: https://github.com/dschafer +[@elupus]: https://github.com/elupus +[@epenet]: https://github.com/epenet +[@frenck]: https://github.com/frenck +[@iMicknl]: https://github.com/iMicknl +[@jbouwh]: https://github.com/jbouwh +[@jpbede]: https://github.com/jpbede +[@kennedyshead]: https://github.com/kennedyshead +[@mvdwetering]: https://github.com/mvdwetering +[@ogruendel]: https://github.com/ogruendel +[@pantherale0]: https://github.com/pantherale0 +[@piitaya]: https://github.com/piitaya +[@puddly]: https://github.com/puddly +[@shaiu]: https://github.com/shaiu +[@sonianuj287]: https://github.com/sonianuj287 +[@srirams]: https://github.com/srirams +[@thecode]: https://github.com/thecode +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@tstabrawa]: https://github.com/tstabrawa +[@wbyoung]: https://github.com/wbyoung +[@wollew]: https://github.com/wollew + +### 2025.10.4 - October 24 + +- Bump aioautomower to v2.3.1 ([@Thomas55555] - [#151795]) +- Fix history coordinator in Tesla Fleet and Teslemetry ([@Bre77] - [#153068]) +- Increase connect and configuration time for rfxtrx ([@alec-pinson] - [#153834]) +- Return default temp range if API responds 0 in Huum. ([@vincentwolsink] - [#153871]) +- Improve error message for unsupported hardware in Overkiz ([@iMicknl] - [#154314]) +- Bump pyprobeplus to 1.1.1 ([@pantherale0] - [#154523]) +- Move translatable URL out of strings.json for airnow integration ([@akanksha106-code] - [#154557]) +- Moved non-translatable elements out of strings.json for nuki ([@sonianuj287] - [#154682]) +- Handle location scope in Tesla Fleet vehicle coordinator ([@Bre77] - [#154731]) +- Fix units for Shelly TopAC EVE01-11 sensors ([@bieniu] - [#154740]) +- Fix pterodactyl server config link ([@electricsteve] - [#154758]) +- Move URL out of Tomorrow.io strings.json ([@andrew-codechimp] - [#154759]) +- Move URL out of TheThingsNetwork strings.json ([@andrew-codechimp] - [#154760]) +- Move url out of simplisafe strings ([@andrew-codechimp] - [#154762]) +- Move url out of sensorpush_cloud strings.json ([@andrew-codechimp] - [#154768]) +- Move URLs out of strings.json for auth ([@jbouwh] - [#154769]) +- Move url out of starline strings.json ([@andrew-codechimp] - [#154773]) +- Move url out of orsoenergy strings.json ([@andrew-codechimp] - [#154776]) +- Move url out of motionblinds strings.json ([@andrew-codechimp] - [#154777]) +- Move url out of rachio strings.json ([@andrew-codechimp] - [#154781]) +- Move url out of Flume strings.json ([@andrew-codechimp] - [#154787]) +- Remove opower violation from hassfest requirements check ([@cdce8p] - [#154797]) +- Bump opower to 0.15.8 ([@tronikos] - [#154811]) +- Move url out of nightscout strings and change to field descriptions ([@andrew-codechimp] - [#154812]) +- vesync show fan speed for smart tower fans ([@cdnninja] - [#154842]) +- Bump bring-api to v1.1.1 ([@tr4nt0r] - [#154854]) +- Bump PyCync to 0.4.2 ([@Kinachi249] - [#154856]) +- Bump aioamazondevices to 6.4.6 ([@chemelli74] - [#154865]) +- YoLink remove unsupported remoters ([@matrixd2] - [#154918]) +- Fix BrowseError import in yamaha_musiccast media_player.py ([@wimb0] - [#154980]) +- Remove async-modbus exception from hassfest requirements check ([@cdce8p] - [#154988]) +- Lametric remove translatable URL ([@erwindouna] - [#154991]) +- Add SensorDeviceClass and unit for LCN humidity sensor. ([@alengwenus] - [#155044]) +- Add shared BleakScanner to probe_plus ([@pantherale0] - [#155051]) +- Improve migration to Uptime Kuma v2.0.0 ([@tr4nt0r] - [#155055]) +- Move URL out of system_bridge strings.json ([@MichaelMKKelly] - [#155067]) +- Update aioairzone to v1.0.2 ([@Noltari] - [#155088]) +- Bump pydroplet version to 2.3.4 ([@sarahseidman] - [#155103]) +- Bump holidays to 0.83 ([@gjohansson-ST] - [#155107]) + +[#151795]: https://github.com/home-assistant/core/pull/151795 +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153068]: https://github.com/home-assistant/core/pull/153068 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#153834]: https://github.com/home-assistant/core/pull/153834 +[#153871]: https://github.com/home-assistant/core/pull/153871 +[#154181]: https://github.com/home-assistant/core/pull/154181 +[#154314]: https://github.com/home-assistant/core/pull/154314 +[#154523]: https://github.com/home-assistant/core/pull/154523 +[#154557]: https://github.com/home-assistant/core/pull/154557 +[#154682]: https://github.com/home-assistant/core/pull/154682 +[#154718]: https://github.com/home-assistant/core/pull/154718 +[#154731]: https://github.com/home-assistant/core/pull/154731 +[#154740]: https://github.com/home-assistant/core/pull/154740 +[#154758]: https://github.com/home-assistant/core/pull/154758 +[#154759]: https://github.com/home-assistant/core/pull/154759 +[#154760]: https://github.com/home-assistant/core/pull/154760 +[#154762]: https://github.com/home-assistant/core/pull/154762 +[#154768]: https://github.com/home-assistant/core/pull/154768 +[#154769]: https://github.com/home-assistant/core/pull/154769 +[#154773]: https://github.com/home-assistant/core/pull/154773 +[#154776]: https://github.com/home-assistant/core/pull/154776 +[#154777]: https://github.com/home-assistant/core/pull/154777 +[#154781]: https://github.com/home-assistant/core/pull/154781 +[#154787]: https://github.com/home-assistant/core/pull/154787 +[#154797]: https://github.com/home-assistant/core/pull/154797 +[#154811]: https://github.com/home-assistant/core/pull/154811 +[#154812]: https://github.com/home-assistant/core/pull/154812 +[#154842]: https://github.com/home-assistant/core/pull/154842 +[#154854]: https://github.com/home-assistant/core/pull/154854 +[#154856]: https://github.com/home-assistant/core/pull/154856 +[#154865]: https://github.com/home-assistant/core/pull/154865 +[#154918]: https://github.com/home-assistant/core/pull/154918 +[#154980]: https://github.com/home-assistant/core/pull/154980 +[#154988]: https://github.com/home-assistant/core/pull/154988 +[#154991]: https://github.com/home-assistant/core/pull/154991 +[#155044]: https://github.com/home-assistant/core/pull/155044 +[#155051]: https://github.com/home-assistant/core/pull/155051 +[#155055]: https://github.com/home-assistant/core/pull/155055 +[#155067]: https://github.com/home-assistant/core/pull/155067 +[#155088]: https://github.com/home-assistant/core/pull/155088 +[#155103]: https://github.com/home-assistant/core/pull/155103 +[#155107]: https://github.com/home-assistant/core/pull/155107 +[@Bre77]: https://github.com/Bre77 +[@Kinachi249]: https://github.com/Kinachi249 +[@MichaelMKKelly]: https://github.com/MichaelMKKelly +[@Noltari]: https://github.com/Noltari +[@Thomas55555]: https://github.com/Thomas55555 +[@akanksha106-code]: https://github.com/akanksha106-code +[@alec-pinson]: https://github.com/alec-pinson +[@alengwenus]: https://github.com/alengwenus +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@bieniu]: https://github.com/bieniu +[@cdce8p]: https://github.com/cdce8p +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@electricsteve]: https://github.com/electricsteve +[@erwindouna]: https://github.com/erwindouna +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@iMicknl]: https://github.com/iMicknl +[@jbouwh]: https://github.com/jbouwh +[@matrixd2]: https://github.com/matrixd2 +[@pantherale0]: https://github.com/pantherale0 +[@sarahseidman]: https://github.com/sarahseidman +[@sonianuj287]: https://github.com/sonianuj287 +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@vincentwolsink]: https://github.com/vincentwolsink +[@wimb0]: https://github.com/wimb0 + ## Need help? Join the community Home Assistant has a great community of users who are all more than willing diff --git a/source/_posts/2025-10-07-konnected-joins-works-with-home-assistant.markdown b/source/_posts/2025-10-07-konnected-joins-works-with-home-assistant.markdown new file mode 100644 index 00000000000..51a64e58e00 --- /dev/null +++ b/source/_posts/2025-10-07-konnected-joins-works-with-home-assistant.markdown @@ -0,0 +1,79 @@ +--- +layout: post +title: "Konnected joins Works with Home Assistant" +description: "Konnected brings smart garage door openers and alarm panels to the program." +date: 2025-10-07 00:00:01 +date_formatted: "October 7, 2025" +author: Miranda Bishop +comments: true +categories: Works-with-Home-Assistant +og_image: /images/blog/2025-10-konnected/art.webp +--- + +Konnected joins Works with Home Assistant + +[Works with Home Assistant](https://works-with.home-assistant.io/) is *opening its doors* to another new partner who is bringing the first Garage Door Openers and Alarm Panel to the program, all of which are using [ESPHome](https://esphome.io/) under the hood. [Konnected](https://konnected.io/) are well known for their devices that let you retrofit new smarts into the devices you already have, allowing you to use them in Home Assistant and keep them working longer. + +## Getting Konnected + +Konnected have been well-known in the Home Assistant community, as they’ve been active members for years. As members of the community, they know how hard it can be to connect the devices that are already built into your home, whether they’re smart or not. That’s why Konnected’s first product was their drop-in replacement alarm panel boards, which allow you to take decades-old wired alarm systems and add them into Home Assistant. + +Another challenge the community was facing was garage door openers (GDOs), especially cloud-based openers. In the early days of Home Assistant, the community figured out the APIs for these providers and controlled them that way. Some manufacturers noticed this and [put barriers up](/blog/2023/11/06/removal-of-myq-integration/) blocking people from controlling the devices they own, claiming it as “unauthorized usage” 🙄. + +The community was naturally incensed, and did what tinkerers tend to do when a cloud gets in their way — they began tinkering with hardware. A community emerged to take back control of these devices, starting with projects like ratgdo, which Konnected used as a base for their work. Today, because of these projects, there are multiple great open source tools to control a large number of these GDOs, ranging from DIY schematics to finished controllers. Konnected has an open source solution which works locally, as well as having the form factor and safety standards to match. Even better, Konnected devices are available in over 60 countries. + +For anyone who has used Konnected for quite some time, you’ll notice that they had their own integration, which has [now been deprecated](/integrations/konnected/) in favor of the ESPHome firmware, so that it’s always straightforward to find (or build) the firmware you need. They even [publish all their code on GitHub](https://github.com/konnected-io) 👏, which allows the community to help them fix issues and add features. + +

+

"We've been users of Home Assistant ourselves since 2018 and thrilled to finally be officially part of the Works with Home Assistant program. Konnected shares many of the same founding principles as Home Assistant, including our commitment to 100% local control, open-source firmware, and high-quality hardware that makes your home smarter, safer and accessible to everyone."

+- Nate Clark, Founder / CEO at Konnected +
+ +Konnected is another example of [ESPHome](/integrations/esphome/) (a project from the Open Home Foundation) fostering an entirely new ecosystem of Open Home projects. It works fully locally, and it’s perfect for tinkerers, allowing you to build DIY smart home devices yourself (get started with one of our [ready-made projects](https://esphome.io/projects/)). Konnected also have a thriving [community](http://community.konnected.io) of their own if you have questions or comments. + +Creators can also use it to make pre-built, plug-and-play products that give users a really seamless experience. Devices are easily discovered and added to your Wi-Fi network and Home Assistant, along with a one-click update within Home Assistant. To learn more about how Konnected uses ESPHome, look out for Nate on the next [ESPHome live stream](https://www.youtube.com/watch?v=9YfRkqCdD4c) on October 14! + +Remember, the development of projects like ESPHome from the [Open Home Foundation](https://www.openhomefoundation.org/) is supported by [Home Assistant Cloud](/cloud/) subscribers and anyone who purchases Home Assistant hardware. While all of Konnected’s devices work locally, if you’re interested in remote access, allowing you to keep tabs on your home’s security when you’re out and about, check out [Home Assistant Cloud](/cloud/). + +## Devices + +

+ Konnected Smart Garage Door Opener blaQ + The Konnected Smart Garage Door Opener blaQ +

+ +For anyone new to the Works With Home Assistant program, it’s a way for us to formally certify devices that have been tested by our team, and help you know what works great out of the box with Home Assistant. Any company joining also commits to providing long-term support and firmware updates. Works With Home Assistant is operated by the [Open Home Foundation](https://www.openhomefoundation.org/), and the support of [Home Assistant Cloud](/cloud/) subscribers funds this work. These items were all tested by members of the ESPHome team to see exactly how they function in their own homes. + +The Konnected certified devices are listed below: + +* [Konnected Smart Garage Door Opener blaQ](https://konnected.io/products/smart-garage-door-opener-blaq-myq-alternative) +* [Konnected Smart Garage Door Opener White (v2)](https://konnected.io/products/smart-garage-door-opener) +* [Konnected Alarm Panel Pro](https://konnected.io/collections/smart-alarm-panels) + +## Let’s Konnect + +A nice benefit of retrofitting your old wired security system is not needing to maintain loads of battery-powered sensors 🪫. The Alarm Panel Pro has the ability to connect 12 zones (security speak for individual or joined up sensors), it also allows you to connect keypads and sirens, and includes 12V power for the devices that need that. It’s highly customizable, and there’s also plenty of support available if you need [help with installation](https://support.konnected.io/). You can power it using 12V or Power-over-Ethernet, or both! The Alarm Panel Pro is designed to be always-on, and they’ve designed it to consume very little power. This also allows it to easily run for hours on their [backup battery](https://konnected.io/products/backup-battery). + +You’ll also probably be wondering why there are two different variants of the garage door openers, and that’s because each supports a different set of manufacturers. There is a [wizard](https://konnected.io/collections/shop-now) to help you figure out which variant will work with your opener. Between the Konnected GDO blaQ and White, you get support for some of the biggest manufacturers out there, including Chamberlain, LiftMaster, Craftsman, Merlin, Genie, Stanley, and more. + +Even with the Konnected controlling your garage door opener, you’re still able to use the included remote or the original manufacturer’s app (if you like that kind of torture). The GDO White features a built-in optical laser sensor that detects whether your garage door is open or closed. The GDO blaQ offers control over the opener’s light and lock, and can even partially open the door (for openers that support these features). + +As we mentioned at the top, it’s great to have more products added to the program that help people get the most out of the things they already own. A big part of the Open Home Foundation’s mission is sustainability in the smart home, and Konnected are helping our community get longer lasting use of their existing security and garage door systems. + +## FAQs + +**Q: If I have a device that is not listed under ‘Works with Home Assistant does this mean it’s not supported?** + +A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well, but has not yet been added to the testing schedule, or it might work under a different connectivity type that we don’t currently test under the program. + +**Q: Ok, so what’s the point of the Works with program?** + +A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have full functionality within Home Assistant, operate locally without the need for cloud and will continue to do so long-term. + +**Q: How were these devices tested?** + +A: All devices in this list were tested using a standard Home Assistant Green Hub with the ESPHome integration. If you have another set-up that’s not a problem, but we test against these as they are the most effective way for our team to certify within our ecosystem. + +**Q: Will you be adding more Konnected devices to the program?** + +A: Why not! Konnected are also looking to do some exciting things with Matter soon, so we’re excited to work together on any upcoming releases or add in further products that are not yet listed here. diff --git a/source/_posts/2025-10-13-portable-z-wave-with-wifi-and-poe.markdown b/source/_posts/2025-10-13-portable-z-wave-with-wifi-and-poe.markdown new file mode 100644 index 00000000000..64b13943dc0 --- /dev/null +++ b/source/_posts/2025-10-13-portable-z-wave-with-wifi-and-poe.markdown @@ -0,0 +1,104 @@ +--- +layout: post +title: "Connect ZWA-2 anywhere: Use Z-Wave over Wi-Fi or PoE" +description: "Introducing Portable Z-Wave, an experimental firmware that lets you use Z-Wave over the built-in Wi-Fi or even add PoE." +date: 2025-10-13 00:00:01 +date_formatted: "October 13, 2025" +author: Keith Burzinski +comments: true +categories: Z-Wave +og_image: /images/blog/2025-10-z-wave-portable/art.png +--- + +Portable Z-Wave + +Last month, we launched the [Home Assistant Connect ZWA-2](/blog/2025/08/13/home-assistant-connect-zwa-2), our take on the best possible Z-Wave adapter. [Based](https://www.theverge.com/tech/759542/home-assistant-connect-zwa-2-z-wave-long-range-antenna) [on](https://www.xda-developers.com/home-assistant-connect-zwa-2-review/) [the](https://youtu.be/vEsLghjVCo4?si=qSnGQ9aso8ZBGGiF) [reviews](https://youtu.be/AyE0_6N21h4?si=TuuZ_O4yZLcP40oT), it sounds like we hit the mark 😎. Today, we’re announcing a new, experimental firmware that allows you to do even more with the ultimate Z-Wave adapter. + +I’m [Keith](https://github.com/kbx81), a Senior Hardware and Software Engineer at [Nabu Casa](https://www.nabucasa.com/), but you also might know me from my work on the ESPHome project. If you weren’t aware, Nabu Casa is the commercial partner of the Open Home Foundation, and the organization that helps build official Home Assistant hardware. + +During the launch, one piece of feedback we often received was that people wanted more flexibility in where they could place Connect ZWA-2 in their home — often far away from their Home Assistant system. It was no easy feat (more on that below), but we were able to build a solution that allows you to put it anywhere you have a network connection. + +This experimental firmware will allow you to not only leverage the Wi-Fi chip inside the Connect ZWA-2, but also use it with other hardware to facilitate the use of the much-requested PoE. 🎉 This new firmware is only possible because of the second-generation platform we built Connect ZWA-2 on, which is open by design, allowing you to tinker and extend the device you own. Every piece of Home Assistant hardware reflects Nabu Casa and the foundation’s philosophy of constant evolution, and the software it launches with is just the beginning. Whenever we think of a cool new capability, we will work together to add it. + +If you want to [start using your Connect ZWA-2 with Portable Z-Wave today](https://toolbox.openhomefoundation.org/home-assistant-connect-zwa-2/), visit the [brand new home for all the foundation’s web-based tools](https://toolbox.openhomefoundation.org/). Just be aware that this is **experimental**, and we recommend you read through this blog to understand how it works and its limitations. You can also watch the [upcoming ESPHome livestream,](https://www.youtube.com/watch?v=vJw4zu7AasE) where we’ll discuss this new tech in depth. + +## Getting started + +

+ Home Assistant Connect ZWA-2 connected to a Waveshare ESP32-S3-ETH + Home Assistant Connect ZWA-2 connected to a Waveshare ESP32-S3-ETH +

+
+NOTE: This firmware is experimental. Do not use it if you’re looking for the most stable Z-Wave experience. +
+ +To get started using your Connect ZWA-2 over your local network, you can use one of the two following configurations: + +- **Wi-Fi** \- the new firmware will be installed on the Connect ZWA-2 and use its built-in Wi-Fi chip to communicate over your network. +- **PoE** \- the new firmware will be installed on an [external development board](https://amzn.to/4h2T2q7) that supports Power-over-Ethernet (PoE); Connect ZWA-2 will use its stock firmware and will plug into this new device via USB. + +First, before installing this new firmware, make sure to [back up your Z-Wave network](/integrations/zwave_js/#backing-up-your-z-wave-network) and ensure your Home Assistant instance is running version 2025.10.2 or later. Only after those steps should you use the [toolkit website for Portable Z-Wave](https://toolbox.openhomefoundation.org/home-assistant-connect-zwa-2/). The toolkit’s wizard will walk you through the whole process of installing and connecting your device to your network. When the installation is complete, it should join your network and be discovered by both the ESPHome and Z-Wave integrations in Home Assistant. + +This firmware has proven to work well in our lab and home environments, but the real world is a different place; your local network and Z-Wave network might behave differently. For this reason, we’re seeking your feedback. If you try it out, please let us know about your experience – good or bad, brief or long-winded – by leaving a comment below. We’re eager to know how and where we can improve it\! + +## The Portable Z-Wave experiment + +Before we launch any of our hardware products, we try to get our pre-production batch to as many testers as possible – most are hobbyists and tinkerers from the community, and of course, the first thing they tend to do is get out the screwdriver and open it up (to be fair, it's designed to be easy to open — no glue, no clips). When looking at the insides of Connect ZWA-2, they were instantly greeted with an ESP32 chip, and were equally excited and confused. It was initially included just as a USB controller, and yes, an ESP32-S3 is a bit overkill for this specific task, but we wanted to give the device room to grow. This brings us to the experiment we are sharing with you today... + +### Making things mesh + +When you use a Z-Wave adapter with Home Assistant, which relies on the Z-Wave JS add-on, they use USB to communicate via a specialized Z-Wave serial protocol. And yes, it is technically possible to run this Z-Wave serial protocol over your network (serial-over-IP), but our testing reveals that it’s not as reliable or as easy as we’d like. Some parts of the Z-Wave serial protocol are latency (delay) sensitive, specifically the acknowledgment of Z-Wave packets. If your network is busy and decides to take its sweet time with one of those critical packets, your Z-Wave device’s connection can time out and fail. This can stall Z-Wave device communication, or even completely break it. + +For Z-Wave to work over a network, we need to address the latency-sensitive parts on the actual device; everything else can be forwarded over the network. This is where [ESPHome](https://esphome.io/) steps in: it’s the open source software for network-capable microcontrollers that runs on ESP32 devices. We built an ESP32 into the Connect ZWA-2, and it has the horsepower (and Wi-Fi antenna) to handle this task. + +To help make this all possible, we added [Z-Wave support to ESPHome](https://next.esphome.io/components/zwave_proxy/), allowing it to talk to Z-Wave chips. We then added the ability for Home Assistant and Z-Wave JS to communicate with Z-Wave adapters via ESPHome. As this work is open source, it shouldn’t be limited just to our Connect ZWA-2. Theoretically, it should be able to work with any certified Z-Wave adapter connected to an ESP32. However, before we look at supporting other adapters, we want to ensure that it’s stable when running on the Connect ZWA-2. + +

+ Home Assistant Connect ZWA-2 using the built-in Wi-Fi chip + Home Assistant connected to the ZWA-2 via its integrated Wi-Fi chip. +

+ +

+ Home Assistant Connect ZWA-2 using POE via an adapter + Home Assistant connected to the ZWA-2 via the PoE module. +

+ +ESPHome handles serial message acknowledgments internally, then leverages its API (specifically its [Protobuf implementation](https://developers.esphome.io/architecture/api/)) to send the messages over the network more reliably than serial-over-IP. Even if your home network is bogged down by some spikes in traffic, ESPHome will have you covered, keeping your Z-Wave network stable. That’s not to say this has no impact on performance, but it may be less than you think – or can even notice\! + +### Performance + +Wi-Fi is very convenient, but the million-dollar question is: **how will it impact your Z-Wave network?** To find out, we ran some benchmarks to see how Portable Z-Wave stacks up to its USB counterpart. + +Compared to a direct serial (USB) connection, a data packet *will* take longer to travel between Home Assistant/Z-Wave JS and your Z-Wave network when routed through your local network. On a network with only a low to moderate workload, the additional delay is very small and is generally not noticeable. That said, if your network is heavily stressed or the Wi-Fi signal is poor, you should expect packets to take longer to move around, which can lead to a perceivable delay. It can still control your lights and other devices, but it may be a bit slower. Here are some numbers illustrating the typical latency that we were able to achieve across our test environments: + +| Connection type | Min (ms) | Max (ms) | Mean (ms) | +| :---- | :---- | :---- | :---- | +| USB | 4 | 9 | 5.36 | +| Ethernet | 15 | 32 | 25.14 | +| Wi-Fi | 15 | 92 | 29.16 | + +Your results will likely differ somewhat, especially in less ideal conditions and environments. For instance, if you place your Connect ZWA-2 in a spot with really poor Wi-Fi connectivity, you might notice devices not reflecting their actual state or other buggy behavior. Avoid using VPNs or other complex network routing or configuration, as that will add latency. Also, don’t worry about Wi-Fi interfering with your Z-Wave network, as they operate on totally different radio frequencies that don’t interact. I think with a healthy dose of common sense, you can find a great spot that gets both great Wi-Fi connectivity [while nicely optimizing your Z-Wave network](https://support.nabucasa.com/hc/en-us/articles/28670284336925-Finding-an-installation-location-for-the-Home-Assistant-Connect-ZWA-2). + +## Thanks + +This project was brought to you by a collaboration between Nabu Casa and the people below from the Open Home Foundation. None of this would be possible without the support of [Home Assistant Cloud subscribers](/cloud/) and those who care about Z-Wave and have purchased the Home Assistant Connect ZWA-2. Thank you\! + +Thanks to Dominic, founder of Z-Wave JS, for quickly jumping in on this project, adding support to Z-Wave JS, and building the browser installation tooling. + +Thanks to Nick and Jesse for their support with the ESPHome implementation. + +Thanks to Steven for making the new Open Home Foundation toolbox website to allow easy installation of the experiment. + +## FAQs + +**Q: Is the Portable Z-Wave experiment limited to the Home Assistant Connect ZWA-2?** + +A: Theoretically, it should work with other Z-Wave adapters, but thus far we have only tested it with the ZWA-2. The code is [part of ESPHome 2025.10](https://next.esphome.io/components/zwave_proxy/), Home Assistant 2025.10.2, and Z-Wave JS v15.15.0. We chose Home Assistant Connect ZWA-2 as the first device with support since it already contains an ESP32-S3. If you’d like to try it out with your favorite Z-Wave adapter, you should start by [taking a look at our ESPHome configuration](https://github.com/esphome/zwa-2) for the ZWA-2 (all that should need changing are [the vendor and product IDs](https://github.com/esphome/zwa-2/blob/main/home-assistant-zwa-2-poe/home-assistant-zwa-2-poe.yaml#L43-L46) to match the Z-Wave adapter). + +**Q: Is the Portable Z-Wave experiment limited to Home Assistant?** + +A: No. It is made to work directly with Z-Wave JS. If you use Z-Wave JS v15.15.0, either standalone or with another smart home platform, you are able to use it, too\! Configure Z-Wave JS to connect to `esphome://`. + +**Q: Can I use Ethernet instead of Power-over-Ethernet?** + +A: Yes. Use a Power-over-Ethernet injector in combination with the [Waveshare ESP32-S3-ETH board](https://amzn.to/4h2T2q7). diff --git a/source/_posts/2025-10-15-yellow-end-of-life.markdown b/source/_posts/2025-10-15-yellow-end-of-life.markdown new file mode 100644 index 00000000000..b6cd5413c5f --- /dev/null +++ b/source/_posts/2025-10-15-yellow-end-of-life.markdown @@ -0,0 +1,44 @@ +--- +layout: post +title: "Ending production of Home Assistant Yellow" +description: "Software support continues, and we start looking at what hardware is next for our power-users." +date: 2025-10-15 00:00:01 +date_formatted: "October 15, 2025" +author: Carl Albertsson +comments: true +categories: Announcements +og_image: /images/blog/2025-10-yellow-eol/art.webp +--- + +Ending production of Home Assistant Yellow + +Today, we’re announcing that we will no longer be producing [Home Assistant Yellow](/yellow). Rest assured, it will continue to receive software support far into the future. + +I’m Carl, Vice President of Commercial at Nabu Casa, the organization that builds and sells official hardware for the Open Home Foundation. I couldn’t be more proud of our hardware achievements over the past 12 months, including [Voice Preview Edition](/voice-pe/) and [Connect ZWA-2](/connect/zwa-2/) (including its cool new [Wi-Fi and PoE experimental firmware](/blog/2025/10/13/portable-z-wave-with-wifi-and-poe/)). + +Home Assistant Yellow was similarly groundbreaking at launch and helped fund Home Assistant’s development. However, for reasons I’ll explain below, the time has come to end production. This means that if you were considering buying a Home Assistant Yellow, you’ll need to act fast, as stock will not be replenished (check the *Order Now* button on the [Home Assistant Yellow page](/yellow) to see if your local retailer still has stock). + +[Nabu Casa](https://www.nabucasa.com/) is now exploring what hardware could replace Home Assistant Yellow, so if you have any suggestions on what we should do next, **please** **tell us in the comments\!** In the meantime, the good news is that there are already [plenty of other great ways to run Home Assistant](/installation/). For example, if you’re looking for hardware that’s both easy to start with and supports the Open Home Foundation, we’d recommend the [Home Assistant Green](/green). + +## A golden era + +There is a long yellow brick road that brought us to today. All the way [back in 2021](https://www.youtube.com/watch?v=KPR-shzT_VQ), we announced Home Assistant Yellow (originally called Amber). It included some pretty unique features, including its built-in Zigbee or Thread adapter, optional PoE, and overall expandable approach. As it used the Raspberry Pi Compute Module platform, included GPIO, and had an NVMe slot, there were a lot of different ways you could upgrade it over time (including people [being able to upgrade from CM4 to CM5](/blog/2024/11/27/home-assistant-yellow-gets-cm5-support/), which was quite the [speed bump](https://www.jeffgeerling.com/blog/2024/home-assistant-yellow-instant-2x-iot-speedup-cm5) 🏎️). + +It wasn’t all smooth sailing with Home Assistant Yellow. We essentially launched the device in the middle of the great Pi shortage. It definitely complicated things for a time, but it all eventually stabilized. In late 2023, we launched [Home Assistant Green](/green), which became the easiest way to get started with Home Assistant. This new product led us to [end the sale](/blog/2024/08/01/streamlining-the-home-assistant-yellow-lineup/) of Home Assistant Yellow devices that shipped with a CM4 already installed (called the *Home Assistant Yellow Standard*), which allowed us to focus the product line on the kit versions. + +

+ Exploded view of the Home Assistant Yellow + Small, but so much room for activities +

+ +Home Assistant Green continues to have strong sales, but Home Assistant Yellow sales have been naturally slowing down, as happens a couple of years into any product’s life. This month, it finally reached the point where it no longer made sense to have another production run, which ultimately pushed us to discontinue Home Assistant Yellow. + +Technology changes, and small-form-factor computing has always moved fast. For instance, in the early days of Home Assistant, the community’s de facto recommendation was always the most recent Raspberry Pi device, but we’re seeing more people gravitate towards Mini PCs. We’re now exploring what we could build next for our power users, but we’re still some way off, so don’t wait if you need something today. + +## Software support continues + +As long as it’s possible to run Home Assistant on Yellow, we will continue to provide builds. If you want living proof of this commitment, take our first hardware device: Home Assistant Blue. It ended production in 2022, but still receives new builds of Home Assistant, something that shows no signs of changing for a long time. We continue to streamline and make Home Assistant more efficient, as it’s our goal for you to run it on the hardware you have. + +## Say ‘ellow to the future + +I’d just like to take a moment to thank everyone who bought a Home Assistant Yellow over the years, and for all the great feedback you shared with us. We’re sad to say goodbye to our trusty little expandable powerhouse, but it’s had a good run and we’re super proud of how far we’ve come. Also, we’ll soon be announcing the date of our next hardware product (not a computing device… but something very cool nonetheless), so stay tuned! diff --git a/source/_posts/2025-10-22-voice-chapter-11.markdown b/source/_posts/2025-10-22-voice-chapter-11.markdown new file mode 100644 index 00000000000..65ed36c585b --- /dev/null +++ b/source/_posts/2025-10-22-voice-chapter-11.markdown @@ -0,0 +1,129 @@ +--- +layout: post +title: "Voice Chapter 11: multilingual assistants are here" +description: "Our assistant can now control more things and in multiple languages at the same time." +date: 2025-10-22 00:00:01 +date_formatted: "October 22, 2025" +author: Mike Hansen +comments: true +categories: Assist +og_image: /images/blog/2025-10-voice-chapter-11/art.webp +--- + +Voice Chapter 11: multilingual assistants are here + +Welcome to Voice Chapter 11 🎉, our [long-running series](/blog/categories/assist/) where we share all the key developments in Open Voice. In this chapter, we will tell you how our assistant can now control more things in the home, in multiple languages at the same time, all while not talking your ear off. What’s more, our list of supported languages has grown again with several languages that big tech’s voice assistants won’t support. Join us for a deeper look at this voice chapter in our [livestream](https://www.youtube.com/watch?v=sIkguv0NEQI) on Wednesday, October 29. It’s been a couple of months, we’ve been building up our voice, and now have a lot to say, so let’s get to it! + +## Multilingual assistants + +Our original goal for the [Year of Voice back in 2023](/blog/2022/12/20/year-of-voice/) was to “let users control Home Assistant in their own language”. We’ve come a long way towards that goal, and really broadened our language support. We’ve also provided options that allow users to customize voice assistant pipelines with the services that best support their language, whether run locally or in the cloud of their choice. But what if you speak two languages within your home? + +For some time, users have been able to create [Assist](/voice_control/) voice assistant pipelines for different languages in Home Assistant, but interacting with the different pipelines has either required multiple voice satellite devices (one per language) or some kind of automation [trigger to switch languages](https://www.youtube.com/live/ZgoaoTpIhm8?t=3902). + +Since even the tiniest voice satellite hardware we support is capable of running [multiple wake words](/blog/2024/06/26/voice-chapter-7/#3x-wake-words-and-2x-accuracy) now, we’ve added support in 2025.10 for configuring **up to two wake words** and voice assistant pipelines on each Assist satellite! This makes it straightforward to support dual language households by assigning different wake words to different languages. For example, “Okay Nabu” could run an English voice assistant pipeline while “Hey Jarvis” is used for French. + +Multiple wake words and pipelines can be used for other purposes as well. Want to keep your local and cloud-based voice assistants separate? Easy! Assign a wake word like “Okay Nabu” to a fully local pipeline using our own [Speech-to-Phrase](/blog/2025/02/13/voice-chapter-9-speech-to-phrase/) and [Piper](https://github.com/home-assistant/addons/blob/master/piper/DOCS.md). This pipeline would be limited to basic voice commands, but would not require anything to run outside of your Home Assistant server. Alongside this, “Hey Jarvis” could be assigned to a different pipeline that uses external services like Home Assistant Cloud and an LLM to answer questions or perform complex actions. + +We’d love to hear feedback on how you plan to use multiple wake words and voice assistants in your home! + +## Voice without AI + +The whole world is engulfed in hype about AI and adding it to all the things — [we’re not exactly quiet about the cool stuff we’re doing with AI.](/blog/2025/09/11/ai-in-home-assistant/) While powering your voice assistants with AI/LLMs makes them much more flexible and powerful, it comes at a cost: paying to use cloud-based services like OpenAI and Google, or pricey hardware and energy to run local models via systems like Ollama. We started building our voice assistant before AI was a thing, and thus it was designed without requiring it. We continue to make great progress towards delivering a solid voice experience to users who want to keep their home AI free — keeping [AI opt-in only and not required](https://newsletter.openhomefoundation.org/ai-is-optional-privacy-isnt/) are guidelines we follow. + +[Assist](/voice_control/), our built-in voice assistant, can do a lot of cool things without the need for AI! This includes [a ton of voice commands in dozens of languages](/voice_control/builtin_sentences/) for: + +* Turning lights and other devices on/off +* Opening/closing and locking/unlocking doors, windows, shades, etc +* Adjusting the brightness and color of lights +* Running scripts and activating scenes +* Controlling media players and adjusting their volume +* Playing music on supported media players via [Music Assistant](/integrations/music_assistant/) +* Starting/stopping/pausing multiple timers, optionally with names +* Adding/completing items on to-do lists +* Delaying a command for later (“turn off lights in 5 minutes”)... +* …and more! + +Want to include your own voice commands? You can quickly add [custom sentences](/voice_control/custom_sentences/) to an automation, allowing you to take any action and tailor the response. + +The easiest way to get started is with [Home Assistant Voice Preview Edition](/voice-pe/), our small and easy-to-start with Voice Assistant hardware. This, combined with a [Home Assistant Cloud subscription](/cloud/), allows any Home Assistant system to quickly handle voice commands, as our privacy-focused cloud processes the speech-to-text (turning your voice into text for Home Assistant) and text-to-speech (turning Home Assistant’s response back into voice). This is all without the use of LLMs, and supports the development of Home Assistant 😎. + +For users wanting to keep all voice processing local, we offer add-ons for both speech-to-text and text-to-speech: + +* [Whisper](https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md) is a powerful speech-to-text system that comes in [different sizes with varying hardware requirements](https://github.com/openai/whisper#available-models-and-languages) +* [Speech-to-Phrase](/blog/2025/02/13/voice-chapter-9-speech-to-phrase/) is our speech-to-text system that trades flexibility for speed +* [Piper](https://github.com/home-assistant/addons/blob/master/piper/DOCS.md) is our fast neural text-to-speech system with [broad language support](https://rhasspy.github.io/piper-samples/) + +All of this together shows just how much can be done without needing to include AI, even though it can do [some pretty amazing things](https://youtu.be/mLtFUG4YG1A). And we’re continuing to close the gap with the features highlighted in this blog post, including multilingual assistants, improved sentence matching, and the ability to ask questions from automations. + +### More intents + +Intents are what connect a voice command to the right actions in Home Assistant to get something done. While the end result is often simple, such as turning on a light, intents are designed as a “do what I mean” layer above the level of basic actions. In the previous section, we listed the sorts of voice commands that intents enable, from turning on lights to adding items to your to-do list. Over the last three years, we’ve been progressively adding new and more complex intents. + +Recently, we’ve added three new intents to make Assist even better. To control media players, you can now set the **relative** volume with voice commands like “turn up the volume” or “decrease TV volume by 25%”. This adds to the existing volume intent, which allows you to set the absolute volume level like “set TV volume to 50%”. + +Next, it’s now possible to set the speed of a fan by percentage. For example, “set desk fan speed to 50%” or even “set fans to 50%” to target all fans in the current area. Make sure you [expose](/voice_control/voice_remote_expose_devices/) the fans you want Assist to be able to control. + +Lastly, you can now tell the kids to “get off your lawn” because your robot is going to mow it! Making use of the [lawn_mower](/integrations/lawn_mower) integration, your voice assistant can now understand commands like “mow the lawn” and “stop the mower”. Paired with the existing smart vacuum commands, you may never need to lift a finger again to keep things clean and tidy. + +### Ask question + +*Picture this:* you come home from work and, as you enter the living room, your voice assistant asks what type of music you’d like to hear while preparing dinner. As the music starts to play, it mentions you left the garage door open and wants to know if you’d like it closed. After dinner, as you’re hanging out on the couch, your voice assistant informs you that the temperature outside is lower than your AC setting and asks for confirmation to turn it off and open the windows. + +*Surely you’d need a powerful LLM to perform such wizardry, right?* With the [Ask Question action](/integrations/assist_satellite/#action-assist_satelliteask_question), this can all be done locally using Assist and a few automations! + +
+ Ask Question LLM in action +
+ +Within an automation, the [Ask Question](/blog/2025/07/02/release-20257/#let-assist-ask-the-questions) action allows you to announce a message on a voice satellite, match the response against a list of possible answers, and take an action depending on the user’s answer. While answers can be open-ended, such as a musical artist or genre, limiting the possible answers allows you to use the fully local [Speech-to-Phrase](/blog/2025/02/13/voice-chapter-9-speech-to-phrase/) for recognizing speech without an internet connection. + +## Improved sentence matching + +Assist was designed to run fast and fully offline on hardware like the Raspberry Pi 4 for many different languages. It works by matching the text of your voice commands against sentence templates, such as “turn on the {name}” or “turn off lights in the {area}”. While this is very fast and straightforward to [translate to many languages](https://github.com/home-assistant/intents/), it can also be inflexible, resulting in the dreaded “Sorry, I couldn’t understand that” or other errors. + +
+ Conversation with sentence matching +
+ +Starting in [Home Assistant 2025.9](/blog/2025/09/03/release-20259/), we’ve included an improved “fuzzy matcher” that is much better at handling extra words or alternative phrasings of our supported voice commands. + +
+ Conversation with fuzzy matcher +
+ +The fuzzy matcher is pre-trained on the existing sentence templates, so we will be able to use it for all of our supported languages. However, this is initially only available for the English language and we’re working to determine the best way to enable this for other languages. + +## Non-verbal confirmations + +After a voice command, Assist responds with a short confirmation like “Turned on the lights” or “Brightness set”. This lets you know it understood your command and took the appropriate actions. However, if you’re in the same room as the voice assistant, this confirmation is redundant; you can see or hear that appropriate actions were taken. + +Starting with [Home Assistant 2025.10](/blog/2025/10/01/release-202510/), Assist will detect if the voice command’s actions all took place within the same area as the satellite device. If so, a short confirmation “beep” will be played instead of the full verbal response. Besides being less verbose, this also serves as a reminder that your voice command only affected the current area. + +Non-verbal confirmations will not be used in voice assistant pipelines with LLMs, since the user may have specific instructions in their prompt, such as “respond like a pirate”, and we wouldn’t want to deprive you of a fun response, me mateys 🏴‍☠️. + +## Text-to-speech streaming + +Large language models (LLMs) can be especially verbose in their responses, and we quickly realized that this exposed a weakness in Home Assistant’s text-to-speech (TTS) implementation. For most of its life, TTS in Home Assistant has required the full response to be generated before any audio can be played. This meant a lot of waiting for multi-paragraph LLM responses, especially with local TTS systems like Piper. + +Fixing this required an overhaul of the TTS architecture to allow for **streaming**. Instead of waiting for the entire audio message to be synthesized before playing, we enabled TTS services within Home Assistant to work with chunks of text (input) and audio (output). As chunks of text are streamed in from an LLM, the TTS service can synthesize audio chunks and send them out to be played immediately. + +To demonstrate the benefit of streaming, we asked an LLM to “[tell me a long story about a frog](/blog/2025/09/11/ai-in-home-assistant/#:~:text=Prompt%3A%20%E2%80%9CTell%20me%20a%20long%20story%20about%20a%20frog%E2%80%9D)” and timed how long it took to start speaking the (multi-paragraph) response. Without streaming, both Home Assistant Cloud and Piper took more than five seconds to respond! This is long enough to make you wonder if your voice assistant heard you 😄 With streaming enabled, both TTS services took about half a second to start talking back. A 10x improvement in latency! + +## New Piper voices + +Piper, our homegrown text-to-speech tool, continues to grow with support for several new languages! These new voices were trained from publicly available voice datasets, and are available now in the [Piper add-on](https://my.home-assistant.io/redirect/supervisor_addon/?addon=core_piper): + +* Daniela (Argentinian Spanish) +* Pratham, Priyamvada, Rohan (Hindi) +* News TTS (Indonesian) +* Maya, Padmavathi, Venkatesh (Telugu) + +Want to know what the new voices sound like? You can [listen to samples](https://rhasspy.github.io/piper-samples/) of every available Piper voice or even [run Piper entirely within your web browser](https://rhasspy.github.io/piper-samples/demo.html) for free. + +If your language is missing from Piper, or you don’t like the existing voices for your language, we’re always looking for volunteers to contribute their voices! Please contact us at [voice@openhomefoundation.org](mailto:voice@openhomefoundation.org) + +## Conclusion + +In the past three years, we’ve made great strides with Home Assistant Voice on both the hardware and software fronts. Users today have a wide variety of choices when it comes to voice: from fully local to using the latest and greatest AI to power their smart homes. The great thing about our experimentation with AI is that there are no investors looking for returns, fake money, or “rug-pulls”. We do everything for you, our community. We’re in this for the long haul, and want this all to be your choice, keeping you in full control of whether you want to use this technology or avoid the hype completely. + +Much of the advanced work done on voice is only possible with the support of our community, especially those who subscribe to [Home Assistant Cloud](/cloud/) or anyone who has purchased our [Home Assistant Voice Preview Edition](/voice-pe/) (both great ways to get started with voice). diff --git a/source/_posts/2025-10-29-eltako-joins-wwha.markdown b/source/_posts/2025-10-29-eltako-joins-wwha.markdown new file mode 100644 index 00000000000..00af297b6fe --- /dev/null +++ b/source/_posts/2025-10-29-eltako-joins-wwha.markdown @@ -0,0 +1,75 @@ +--- +layout: post +title: ELTAKO joins Works with Home Assistant +description: ELTAKO’s pro-standard Matter relays join our Home Assistant program. +date: 2025-10-29 00:00:01 +date_formatted: "October 29, 2025" +author: Miranda Bishop +comments: true +categories: Works-with-Home-Assistant +og_image: /images/blog/2025-10-eltako/art.webp +--- + +ELTAKO joins Works with Home Assistant + +We’re delighted to welcome [ELTAKO](https://www.eltako.com/en/) to the [Works with Home Assistant](https://works-with.home-assistant.io/) program! ELTAKO’s robust relay switches have formed the blueprint for smart building and smart home control across Europe for decades – *and* happen to be the first Matter relays to join the program. + +You may never have seen one of ELTAKO’s little blue devices before, and that’s the point. They usually sit quietly behind walls, furniture and in distribution boards, doing their jobs without interfering with interiors. Now, thanks to their joining the Works with Home Assistant program, you can bring these professional-level installations to your own smart set-up. + +## Out of the blue and into the open home + +ELTAKO has been a well-known name in the German building trade and throughout Europe for more than 75 years. In fact, the name itself derives from ‘**EL**ektrischer **TA**st-**KO**ntakt’ (electrical push-button contact) in a nod to ELTAKO’s first impulse switch innovation that started it all back in 1949. + +For those of us who haven’t been around quite that long, an impulse switch (also known as a latching or step relay) toggles a circuit on or off each time it receives an electrical pulse. Instead of requiring constant power, it ‘remembers’ its state until the next signal. As well as using less energy, this means it’s possible to control a single light or system from multiple switches without complex wiring – with obvious advantages for the smart home. So synonymous is the brand with this type of device that impulse switches are still referred to as ‘ELTAKOS’ by the professional electricians and engineers who use them. + +Because of this innovative spirit, it’s perhaps no surprise that over the years ELTAKO has broadened its range to a full ecosystem of sensors, dimmers, and energy meters – all based on wired or wireless technologies, such as RS485, EnOcean, Modbus or DALI, which are built for longevity and local control, rather than cloud dependency. + +True to that philosophy, ELTAKO has embraced open standards such as Matter, ensuring its products speak the same languages that support our mission to keep homes open, private, and locally controlled. + +
+

"As a manufacturer that has relied on open standards like Matter and EnOcean from the very beginning, joining the Works with Home Assistant program is a natural step for us. This allows us to make our products accessible to an even larger community and enables our customers to integrate them seamlessly into diverse smart home environments. We are convinced that the future lies in openness and interoperability – which is why we deliberately embrace partnerships that offer users long-term investment security and maximum flexibility."

+- Kai Sepp, Sales Director North & West Europe at ELTAKO +
+ +## Devices + +ELTAKO’s [integration](/integrations/eltako/) with Home Assistant starts with items from the 64 series, which was awarded the SmartHome Germany Award this year. This is the brand’s line that uses Matter over Wi-Fi, showing just how serious they are about interoperability moving forward. + +We were also lucky enough to see the ELTAKO team at ISE Barcelona this year, and we’ll be catching up with them again at the Connectivity Standards Alliance (CSA) meeting in November, also in Barca. Since CSA certification is a must for brands joining the program, it’s great to see ELTAKO so engaged. + +As always, all the devices below have gone through our rigorous certification process to ensure they meet our standards for performance, reliability and open-home compatibility. + +What devices have been certified? + +* [ELTAKO Universal Dimming Actuator EUD64NPN-IPM](https://www.eltako.com/en/catalog/products/1761/eud64npn-ipm) (and the previous version [here](https://www.eltako.com/en/catalog/products/1238/eud62npn-ipm110-240v/)) +* [ELTAKO Impulse Switch ESR64PF-IPM](https://www.eltako.com/en/catalog/products/1760/esr64pf-ipm/) +* [ELTAKO Impulse Switch ESR64NP-IPM](https://www.eltako.com/en/catalog/products/1759/esr64np-ipm) +* [ELTAKO Shading Actuator ESB64NP-IPM](https://www.eltako.com/en/catalog/products/1792/esb64np-ipm/) + +These Matter devices that work over Wi-Fi are all about giving you freedom to control your current hardware – switch lights on and off and dim them automatically – without replacing it all. The shading actuator is particularly useful in continental Europe, where shutters are more common. It has a good energy-saving use case to reduce the need for air conditioning, since automatic shutters help keep your home cool in summer and warm in winter, potentially reducing utility bills. This also reflects ELTAKO’s wider focus on sustainability – from low-power devices to recyclable packaging and shipping materials. + +In case you didn’t know, when using Matter devices with Home Assistant you have local control with no need for external internet for day-to-day operation. If you do want to access your dashboard while you’re away from home, using [Home Assistant Cloud](/cloud/) is a simple, secure, way to do this (and help fund Home Assistant’s development in the process!). + +## Professional quality, support for all + +Like all brands within the Works with Home Assistant program, ELTAKO isn’t just adding our little blue logo to their little blue products – they’re joining our community. That means active engagement and shared expertise to help everyone get the best from their devices. Because ELTAKO’s products are built to professional standards, installation can sometimes require a qualified electrician – especially for wired set-ups. That’s where ELTAKO’s directory of system partners and specialists in many regions, as well as a tech support hotline, can help you find the installation advice you need, whether you’re a complete novice or electrical enthusiast. + +With ELTAKO on board, we hope Home Assistant users will have further flexibility to explore new devices and experiment with different set-ups, as well as open up more ways to mix and match products to build a professional-standard smart home. + +## FAQs + +**Q: If I have a device that is not listed under ‘Works with Home Assistant’ does this mean it’s not supported?** + +A: No! It just means that it hasn’t gone through a testing schedule with our team or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule later down the road, or it might work under a different connectivity type that we don’t currently test under the program. + +**Q: OK, so what’s the point of the Works with program?** + +A: It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that the devices must have key functionality within Home Assistant, operate locally without the need for cloud, and will continue to do so long-term. + +**Q: How were these devices tested?** + +A: All devices in this list were tested using a standard HA Green Hub and with our [certified Matter Integration](/integrations/matter/). If you have another set-up that’s not a problem, but we test against these as they are the most effective way for our team to certify within our ecosystem. + +**Q: Will you be adding more ELTAKO devices to the program?** + +A: Why not! We’re thrilled to foster a close relationship with the team at ELTAKO to work together on any upcoming releases, or add in further products that are not yet listed here. We’re really excited about what ELTAKO are doing with EnOcean and green power generally, but we haven’t tested or certified any of these products yet. We don’t have this protocol as part of the Works with Home Assistant certification (even if people are already using [EnOcean in Home Assistant](/integrations/enocean/)), and could explore how we certify these kinds of products. diff --git a/source/_redirects b/source/_redirects index 4d3371ea923..eeac959694e 100644 --- a/source/_redirects +++ b/source/_redirects @@ -495,7 +495,7 @@ layout: null # Removed documentation /docs/installation /getting-started -/docs/installation/dokcer /getting-started +/docs/installation/docker /getting-started /docs/installation/hassbian /getting-started /docs/installation/macos /docs/installation/virtualenv /docs/installation/raspberry-pi-all-in-one /getting-started diff --git a/source/blueprints/blog/2023-07/notify_agent_agenda.yaml b/source/blueprints/blog/2023-07/notify_agent_agenda.yaml index fe246a56ea1..78e8c5343d0 100644 --- a/source/blueprints/blog/2023-07/notify_agent_agenda.yaml +++ b/source/blueprints/blog/2023-07/notify_agent_agenda.yaml @@ -120,8 +120,8 @@ action: {%- for event in agenda.events %} - Summary: {{ event.summary }} Start-End: {% if event.start is defined %}{{ event.start }} to {{ event.end }}{% else %}All Day{% endif %} - {%- if event.descripton is defined %} - Descripton: {{ event.descripton }} + {%- if event.description is defined %} + Description: {{ event.description }} {% endif -%} {%- if event.location is defined %} Location: {{ event.location }} diff --git a/source/changelogs/core-2025.10.markdown b/source/changelogs/core-2025.10.markdown index fa6356e1d3a..80182e4672c 100644 --- a/source/changelogs/core-2025.10.markdown +++ b/source/changelogs/core-2025.10.markdown @@ -784,6 +784,504 @@ For a summary in a more readable format: - Bump intents to 2025.10.1 ([@synesthesiam] - [#153340]) - Improve `mac_address_from_name()` function to avoid double discovery of Shelly devices ([@bieniu] - [#153343]) +## Release 2025.10.1 - October 3 + +- Bump airOS dependency ([@CoMPaTech] - [#153065]) +- Bump airOS module for alternative login url ([@CoMPaTech] - [#153317]) +- Bump aiohasupervisor to 0.3.3 ([@agners] - [#153344]) +- Do not reset the adapter twice during ZHA options flow migration ([@puddly] - [#153345]) +- Fix Nord Pool 15 minute interval ([@gjohansson-ST] - [#153350]) +- Explicitly check for None in raw value processing of modbus ([@alengwenus] - [#153352]) +- Set config entry to None in ProxmoxVE ([@mib1185] - [#153357]) +- Explicit pass in the config entry to coordinator in airtouch4 ([@mib1185] - [#153361]) +- Add Roborock mop intensity translations ([@starkillerOG] - [#153380]) +- Correct blocking update in ToGrill with lack of notifications ([@elupus] - [#153387]) +- Bump python-roborock to 2.49.1 ([@Lash-L] - [#153396]) +- Pushover: Handle empty data section properly ([@linuxkidd] - [#153397]) +- Increase onedrive upload chunk size ([@zweckj] - [#153406]) +- Bump pyportainer 1.0.2 ([@erwindouna] - [#153326]) +- Bump pyportainer 1.0.3 ([@erwindouna] - [#153413]) +- Disable thinking for unsupported gemini models ([@Shulyaka] - [#153415]) +- Fix Satel Integra creating new binary sensors on YAML import ([@Tommatheussen] - [#153419]) +- Update `markdown` field description in ntfy integration ([@tr4nt0r] - [#153421]) +- Fix Z-Wave RGB light turn on causing rare `ZeroDivisionError` ([@TheJulianJES] - [#153422]) +- Bump aiohomekit to 3.2.19 ([@bdraco] - [#153423]) +- Fix sentence-casing in user-facing strings of `slack` ([@NoRi2909] - [#153427]) +- Add missing translation for media browser default title ([@timmo001] - [#153430]) +- Fix missing powerconsumptionreport in Smartthings ([@joostlek] - [#153438]) +- Update Home Assistant base image to 2025.10.0 ([@agners] - [#153441]) +- Disable baudrate bootloader reset for ZBT-2 ([@puddly] - [#153443]) +- Add translation for turbo fan mode in SmartThings ([@joostlek] - [#153445]) +- Fix next event in workday calendar ([@gjohansson-ST] - [#153465]) +- Update OVOEnergy to 3.0.1 ([@timmo001] - [#153476]) +- Fix missing parameter pass in onedrive ([@zweckj] - [#153478]) +- Bump pyTibber to 0.32.2 ([@Danielhiversen] - [#153484]) +- Bump reolink-aio to 0.16.1 ([@starkillerOG] - [#153489]) +- Fix VeSync zero fan speed handling ([@cdnninja] - [#153493]) +- Bump universal-silabs-flasher to 0.0.35 ([@puddly] - [#153500]) +- Debounce updates in Idasen Desk ([@abmantis] - [#153503]) +- Z-Wave to support migrating from USB to socket with same home ID ([@balloob] - [#153522]) +- When discovering a Z-Wave adapter, always configure add-on in config flow ([@balloob] - [#153575]) + +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153065]: https://github.com/home-assistant/core/pull/153065 +[#153317]: https://github.com/home-assistant/core/pull/153317 +[#153326]: https://github.com/home-assistant/core/pull/153326 +[#153344]: https://github.com/home-assistant/core/pull/153344 +[#153345]: https://github.com/home-assistant/core/pull/153345 +[#153350]: https://github.com/home-assistant/core/pull/153350 +[#153352]: https://github.com/home-assistant/core/pull/153352 +[#153357]: https://github.com/home-assistant/core/pull/153357 +[#153361]: https://github.com/home-assistant/core/pull/153361 +[#153380]: https://github.com/home-assistant/core/pull/153380 +[#153387]: https://github.com/home-assistant/core/pull/153387 +[#153396]: https://github.com/home-assistant/core/pull/153396 +[#153397]: https://github.com/home-assistant/core/pull/153397 +[#153406]: https://github.com/home-assistant/core/pull/153406 +[#153413]: https://github.com/home-assistant/core/pull/153413 +[#153415]: https://github.com/home-assistant/core/pull/153415 +[#153419]: https://github.com/home-assistant/core/pull/153419 +[#153421]: https://github.com/home-assistant/core/pull/153421 +[#153422]: https://github.com/home-assistant/core/pull/153422 +[#153423]: https://github.com/home-assistant/core/pull/153423 +[#153427]: https://github.com/home-assistant/core/pull/153427 +[#153430]: https://github.com/home-assistant/core/pull/153430 +[#153438]: https://github.com/home-assistant/core/pull/153438 +[#153441]: https://github.com/home-assistant/core/pull/153441 +[#153443]: https://github.com/home-assistant/core/pull/153443 +[#153445]: https://github.com/home-assistant/core/pull/153445 +[#153465]: https://github.com/home-assistant/core/pull/153465 +[#153476]: https://github.com/home-assistant/core/pull/153476 +[#153478]: https://github.com/home-assistant/core/pull/153478 +[#153484]: https://github.com/home-assistant/core/pull/153484 +[#153489]: https://github.com/home-assistant/core/pull/153489 +[#153493]: https://github.com/home-assistant/core/pull/153493 +[#153500]: https://github.com/home-assistant/core/pull/153500 +[#153503]: https://github.com/home-assistant/core/pull/153503 +[#153522]: https://github.com/home-assistant/core/pull/153522 +[#153575]: https://github.com/home-assistant/core/pull/153575 +[@CoMPaTech]: https://github.com/CoMPaTech +[@Danielhiversen]: https://github.com/Danielhiversen +[@Lash-L]: https://github.com/Lash-L +[@NoRi2909]: https://github.com/NoRi2909 +[@Shulyaka]: https://github.com/Shulyaka +[@TheJulianJES]: https://github.com/TheJulianJES +[@Tommatheussen]: https://github.com/Tommatheussen +[@abmantis]: https://github.com/abmantis +[@agners]: https://github.com/agners +[@alengwenus]: https://github.com/alengwenus +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@cdnninja]: https://github.com/cdnninja +[@elupus]: https://github.com/elupus +[@erwindouna]: https://github.com/erwindouna +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@joostlek]: https://github.com/joostlek +[@linuxkidd]: https://github.com/linuxkidd +[@mib1185]: https://github.com/mib1185 +[@puddly]: https://github.com/puddly +[@starkillerOG]: https://github.com/starkillerOG +[@timmo001]: https://github.com/timmo001 +[@tr4nt0r]: https://github.com/tr4nt0r +[@zweckj]: https://github.com/zweckj + +## Release 2025.10.2 - October 10 + +- Prevent reloading the ZHA integration while adapter firmware is being updated ([@puddly] - [#152626]) +- Wallbox fix Rate Limit issue for multiple chargers ([@hesselonline] - [#153074]) +- Fix power device classes for system bridge ([@timmo001] - [#153201]) +- Bump PyCync to 0.4.1 ([@Kinachi249] - [#153401]) +- Updated VRM client and accounted for missing forecasts ([@AndyTempel] - [#153464]) +- Bump python-roborock to 2.50.2 ([@Lash-L] - [#153561]) +- Bump aioamazondevices to 6.2.8 ([@chemelli74] - [#153592]) +- Switch Roborock to v4 of the code login api ([@Lash-L] - [#153593]) +- Fix MQTT Lock state reset to unknown when a reset payload is received ([@jbouwh] - [#153647]) +- Gemini: Use default model instead of recommended where applicable ([@Shulyaka] - [#153676]) +- Fix ViCare pressure sensors missing unit of measurement ([@CFenner] - [#153691]) +- Bump pyvesync to 3.1.0 ([@cdnninja] - [#153693]) +- Modbus Fix message_wait_milliseconds is no longer applied ([@peetersch] - [#153709]) +- Bump opower to 0.15.6 ([@tronikos] - [#153714]) +- Version bump pydaikin to 2.17.0 ([@fredrike] - [#153718]) +- Version bump pydaikin to 2.17.1 ([@fredrike] - [#153726]) +- Fix missing google_assistant_sdk.send_text_command ([@tronikos] - [#153735]) +- Bump airOS to 0.5.5 using formdata for v6 firmware ([@CoMPaTech] - [#153736]) +- Align Shelly `presencezone` entity to the new API/firmware ([@bieniu] - [#153737]) +- Synology DSM: Don't reinitialize API during configuration ([@oyvindwe] - [#153739]) +- Upgrade python-melcloud to 0.1.2 ([@Sander0542] - [#153742]) +- Fix sensors availability check for Alexa Devices ([@chemelli74] - [#153743]) +- Bump aioamazondevices to 6.2.9 ([@chemelli74] - [#153756]) +- Remove stale entities from Alexa Devices ([@chemelli74] - [#153759]) +- vesync correct fan set modes ([@cdnninja] - [#153761]) +- Handle ESPHome discoveries with uninitialized Z-Wave antennas ([@balloob] - [#153790]) +- Fix Tuya cover position when only control is available ([@epenet] - [#153803]) +- Bump pySmartThings to 3.3.1 ([@joostlek] - [#153826]) +- Catch update exception in AirGradient ([@joostlek] - [#153828]) +- Add motion presets to SmartThings AC ([@joostlek] - [#153830]) +- Fix delay_on and auto_off with multiple triggers ([@Petro31] - [#153839]) +- Fix PIN validation for Comelit SimpleHome ([@chemelli74] - [#153840]) +- Bump aiocomelit to 1.1.1 ([@chemelli74] - [#153843]) +- Limit SimpliSafe websocket connection attempts during startup ([@bachya] - [#153853]) +- Handle timeout errors gracefully in Nord Pool services ([@gjohansson-ST] - [#153856]) +- Add plate_count for Miele KM7575 ([@derytive] - [#153868]) +- Fix restore cover state for Comelit SimpleHome ([@chemelli74] - [#153887]) +- fix typo in icon assignment of AccuWeather integration ([@CFenner] - [#153890]) +- Add missing translation string for Satel Integra subentry type ([@Tommatheussen] - [#153905]) +- Do not auto-set up ZHA zeroconf discoveries during onboarding ([@TheJulianJES] - [#153914]) +- `sharkiq` dependency bump to 1.4.2 ([@Freebien] - [#153931]) +- Fix HA hardware configuration message for Thread without HAOS ([@TheJulianJES] - [#153933]) +- Adjust OTBR config entry name for ZBT-2 ([@TheJulianJES] - [#153940]) +- Bump pylamarzocco to 2.1.2 ([@zweckj] - [#153950]) +- Bump holidays to 0.82 ([@gjohansson-ST] - [#153952]) +- Fix update interval for AccuWeather hourly forecast ([@bieniu] - [#153957]) +- Bump env-canada to 0.11.3 ([@michaeldavie] - [#153967]) +- Fix empty llm api list in chat log ([@arturpragacz] - [#153996]) +- Don't mark ZHA coordinator as via_device with itself ([@joostlek] - [#154004]) +- Filter out invalid Renault vehicles ([@epenet] - [#154070]) +- Bump aioamazondevices to 6.4.0 ([@chemelli74] - [#154071]) +- Bump brother to version 5.1.1 ([@bieniu] - [#154080]) +- Fix for multiple Lyrion Music Server on a single Home Assistant server for Squeezebox ([@peteS-UK] - [#154081]) +- Z-Wave: ESPHome discovery to update all options ([@balloob] - [#154113]) +- Add missing entity category and icons for smlight integration ([@piitaya] - [#154131]) +- Update frontend to 20251001.2 ([@bramkragten] - [#154143]) +- IOmeter bump version v0.2.0 ([@jukrebs] - [#154150]) +- Bump deebot-client to 15.1.0 ([@edenhaus] - [#154154]) +- Fix Shelly RPC cover update when the device is not initialized ([@thecode] - [#154159]) +- Fix shelly remove orphaned entities ([@thecode] - [#154182]) + +[#152626]: https://github.com/home-assistant/core/pull/152626 +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153074]: https://github.com/home-assistant/core/pull/153074 +[#153201]: https://github.com/home-assistant/core/pull/153201 +[#153401]: https://github.com/home-assistant/core/pull/153401 +[#153464]: https://github.com/home-assistant/core/pull/153464 +[#153561]: https://github.com/home-assistant/core/pull/153561 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#153592]: https://github.com/home-assistant/core/pull/153592 +[#153593]: https://github.com/home-assistant/core/pull/153593 +[#153647]: https://github.com/home-assistant/core/pull/153647 +[#153676]: https://github.com/home-assistant/core/pull/153676 +[#153691]: https://github.com/home-assistant/core/pull/153691 +[#153693]: https://github.com/home-assistant/core/pull/153693 +[#153709]: https://github.com/home-assistant/core/pull/153709 +[#153714]: https://github.com/home-assistant/core/pull/153714 +[#153718]: https://github.com/home-assistant/core/pull/153718 +[#153726]: https://github.com/home-assistant/core/pull/153726 +[#153735]: https://github.com/home-assistant/core/pull/153735 +[#153736]: https://github.com/home-assistant/core/pull/153736 +[#153737]: https://github.com/home-assistant/core/pull/153737 +[#153739]: https://github.com/home-assistant/core/pull/153739 +[#153742]: https://github.com/home-assistant/core/pull/153742 +[#153743]: https://github.com/home-assistant/core/pull/153743 +[#153756]: https://github.com/home-assistant/core/pull/153756 +[#153759]: https://github.com/home-assistant/core/pull/153759 +[#153761]: https://github.com/home-assistant/core/pull/153761 +[#153790]: https://github.com/home-assistant/core/pull/153790 +[#153803]: https://github.com/home-assistant/core/pull/153803 +[#153826]: https://github.com/home-assistant/core/pull/153826 +[#153828]: https://github.com/home-assistant/core/pull/153828 +[#153830]: https://github.com/home-assistant/core/pull/153830 +[#153839]: https://github.com/home-assistant/core/pull/153839 +[#153840]: https://github.com/home-assistant/core/pull/153840 +[#153843]: https://github.com/home-assistant/core/pull/153843 +[#153853]: https://github.com/home-assistant/core/pull/153853 +[#153856]: https://github.com/home-assistant/core/pull/153856 +[#153868]: https://github.com/home-assistant/core/pull/153868 +[#153887]: https://github.com/home-assistant/core/pull/153887 +[#153890]: https://github.com/home-assistant/core/pull/153890 +[#153905]: https://github.com/home-assistant/core/pull/153905 +[#153914]: https://github.com/home-assistant/core/pull/153914 +[#153931]: https://github.com/home-assistant/core/pull/153931 +[#153933]: https://github.com/home-assistant/core/pull/153933 +[#153940]: https://github.com/home-assistant/core/pull/153940 +[#153950]: https://github.com/home-assistant/core/pull/153950 +[#153952]: https://github.com/home-assistant/core/pull/153952 +[#153957]: https://github.com/home-assistant/core/pull/153957 +[#153967]: https://github.com/home-assistant/core/pull/153967 +[#153996]: https://github.com/home-assistant/core/pull/153996 +[#154004]: https://github.com/home-assistant/core/pull/154004 +[#154070]: https://github.com/home-assistant/core/pull/154070 +[#154071]: https://github.com/home-assistant/core/pull/154071 +[#154080]: https://github.com/home-assistant/core/pull/154080 +[#154081]: https://github.com/home-assistant/core/pull/154081 +[#154113]: https://github.com/home-assistant/core/pull/154113 +[#154131]: https://github.com/home-assistant/core/pull/154131 +[#154143]: https://github.com/home-assistant/core/pull/154143 +[#154150]: https://github.com/home-assistant/core/pull/154150 +[#154154]: https://github.com/home-assistant/core/pull/154154 +[#154159]: https://github.com/home-assistant/core/pull/154159 +[#154182]: https://github.com/home-assistant/core/pull/154182 +[@AndyTempel]: https://github.com/AndyTempel +[@CFenner]: https://github.com/CFenner +[@CoMPaTech]: https://github.com/CoMPaTech +[@Freebien]: https://github.com/Freebien +[@Kinachi249]: https://github.com/Kinachi249 +[@Lash-L]: https://github.com/Lash-L +[@Petro31]: https://github.com/Petro31 +[@Sander0542]: https://github.com/Sander0542 +[@Shulyaka]: https://github.com/Shulyaka +[@TheJulianJES]: https://github.com/TheJulianJES +[@Tommatheussen]: https://github.com/Tommatheussen +[@arturpragacz]: https://github.com/arturpragacz +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bieniu]: https://github.com/bieniu +[@bramkragten]: https://github.com/bramkragten +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@derytive]: https://github.com/derytive +[@edenhaus]: https://github.com/edenhaus +[@epenet]: https://github.com/epenet +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@hesselonline]: https://github.com/hesselonline +[@jbouwh]: https://github.com/jbouwh +[@joostlek]: https://github.com/joostlek +[@jukrebs]: https://github.com/jukrebs +[@michaeldavie]: https://github.com/michaeldavie +[@oyvindwe]: https://github.com/oyvindwe +[@peetersch]: https://github.com/peetersch +[@peteS-UK]: https://github.com/peteS-UK +[@piitaya]: https://github.com/piitaya +[@puddly]: https://github.com/puddly +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tronikos]: https://github.com/tronikos +[@zweckj]: https://github.com/zweckj + +## Release 2025.10.3 - October 17 + +- Bump aioasuswrt to 1.5.1 ([@kennedyshead] - [#153209]) +- PushSafer: Handle empty data section properly ([@LennartC] - [#154109]) +- Remove redudant state write in Smart Meter Texas ([@srirams] - [#154126]) +- Fix state class for Overkiz water consumption ([@Yvan13120] - [#154164]) +- Bump frontend 20251001.4 ([@piitaya] - [#154218]) +- Bump aioamazondevices to 6.4.1 ([@chemelli74] - [#154228]) +- Move URL out of Mealie strings.json ([@andrew-codechimp] - [#154230]) +- Move URL out of Mastodon strings.json ([@andrew-codechimp] - [#154231]) +- Move URL out of Switcher strings.json ([@thecode] - [#154240]) +- Remove URL from ViCare strings.json ([@CFenner] - [#154243]) +- Fix August integration to handle unavailable OAuth implementation at startup ([@bdraco] - [#154244]) +- Fix Yale integration to handle unavailable OAuth implementation at startup ([@bdraco] - [#154245]) +- Move url like strings to placeholders for nibe ([@elupus] - [#154249]) +- Add description placeholders in Uptime Kuma config flow ([@tr4nt0r] - [#154252]) +- Add description placeholders to pyLoad config flow ([@tr4nt0r] - [#154254]) +- Fix home wiziard total increasing sensors returning 0 ([@jbouwh] - [#154264]) +- Bump pyprobeplus to 1.1.0 ([@pantherale0] - [#154265]) +- Update Snoo strings.json to include weaning_baseline ([@dschafer] - [#154268]) +- Move Electricity Maps url out of strings.json ([@jpbede] - [#154284]) +- Bump aioamazondevices to 6.4.3 ([@chemelli74] - [#154293]) +- Move URL out of Overkiz Config Flow descriptions ([@iMicknl] - [#154315]) +- AsusWRT: Pass only online clients to the device list from the API ([@Vaskivskyi] - [#154322]) +- Move Ecobee authorization URL out of strings.json ([@ogruendel] - [#154332]) +- Move URLs out of SABnzbd strings.json ([@shaiu] - [#154333]) +- Move developer url out of strings.json for coinbase setup flow ([@ogruendel] - [#154339]) +- Fix Bluetooth discovery for devices with alternating advertisement names ([@bdraco] - [#154347]) +- Bump opower to 0.15.7 ([@tronikos] - [#154351]) +- update pysqueezebox lib to 0.13.0 ([@wollew] - [#154358]) +- Move URL out of sfr_box strings.json ([@epenet] - [#154364]) +- Move translatable URLs out of strings.json for huawei lte ([@sonianuj287] - [#154368]) +- Bump aioairq to 0.4.7 ([@Sibgatulin] - [#154386]) +- Bump aiocomelit to 1.1.2 ([@chemelli74] - [#154393]) +- Use `async_schedule_reload` instead of `async_reload` for ZHA ([@puddly] - [#154397]) +- Move igloohome API access URL into constant placeholders ([@DannyS95] - [#154430]) +- Add missing`long_press` entry for trigger_type in strings.json for Hue ([@mvdwetering] - [#154437]) +- Move translatable URLs out of strings.json for isy994 ([@sonianuj287] - [#154464]) +- OpenUV: Fix update by skipping when protection window is null ([@wbyoung] - [#154487]) +- Bump aioamazondevices to 6.4.4 ([@chemelli74] - [#154538]) +- Move URL out of Nuheat strings.json ([@tstabrawa] - [#154580]) +- Bump pyvesync version to 3.1.2 ([@cdnninja] - [#154650]) + +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153209]: https://github.com/home-assistant/core/pull/153209 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#154109]: https://github.com/home-assistant/core/pull/154109 +[#154126]: https://github.com/home-assistant/core/pull/154126 +[#154164]: https://github.com/home-assistant/core/pull/154164 +[#154181]: https://github.com/home-assistant/core/pull/154181 +[#154218]: https://github.com/home-assistant/core/pull/154218 +[#154228]: https://github.com/home-assistant/core/pull/154228 +[#154230]: https://github.com/home-assistant/core/pull/154230 +[#154231]: https://github.com/home-assistant/core/pull/154231 +[#154240]: https://github.com/home-assistant/core/pull/154240 +[#154243]: https://github.com/home-assistant/core/pull/154243 +[#154244]: https://github.com/home-assistant/core/pull/154244 +[#154245]: https://github.com/home-assistant/core/pull/154245 +[#154249]: https://github.com/home-assistant/core/pull/154249 +[#154252]: https://github.com/home-assistant/core/pull/154252 +[#154254]: https://github.com/home-assistant/core/pull/154254 +[#154264]: https://github.com/home-assistant/core/pull/154264 +[#154265]: https://github.com/home-assistant/core/pull/154265 +[#154268]: https://github.com/home-assistant/core/pull/154268 +[#154284]: https://github.com/home-assistant/core/pull/154284 +[#154293]: https://github.com/home-assistant/core/pull/154293 +[#154315]: https://github.com/home-assistant/core/pull/154315 +[#154322]: https://github.com/home-assistant/core/pull/154322 +[#154332]: https://github.com/home-assistant/core/pull/154332 +[#154333]: https://github.com/home-assistant/core/pull/154333 +[#154339]: https://github.com/home-assistant/core/pull/154339 +[#154347]: https://github.com/home-assistant/core/pull/154347 +[#154351]: https://github.com/home-assistant/core/pull/154351 +[#154358]: https://github.com/home-assistant/core/pull/154358 +[#154364]: https://github.com/home-assistant/core/pull/154364 +[#154368]: https://github.com/home-assistant/core/pull/154368 +[#154386]: https://github.com/home-assistant/core/pull/154386 +[#154393]: https://github.com/home-assistant/core/pull/154393 +[#154397]: https://github.com/home-assistant/core/pull/154397 +[#154430]: https://github.com/home-assistant/core/pull/154430 +[#154437]: https://github.com/home-assistant/core/pull/154437 +[#154464]: https://github.com/home-assistant/core/pull/154464 +[#154487]: https://github.com/home-assistant/core/pull/154487 +[#154538]: https://github.com/home-assistant/core/pull/154538 +[#154580]: https://github.com/home-assistant/core/pull/154580 +[#154650]: https://github.com/home-assistant/core/pull/154650 +[@CFenner]: https://github.com/CFenner +[@DannyS95]: https://github.com/DannyS95 +[@LennartC]: https://github.com/LennartC +[@Sibgatulin]: https://github.com/Sibgatulin +[@Vaskivskyi]: https://github.com/Vaskivskyi +[@Yvan13120]: https://github.com/Yvan13120 +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@bdraco]: https://github.com/bdraco +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@dschafer]: https://github.com/dschafer +[@elupus]: https://github.com/elupus +[@epenet]: https://github.com/epenet +[@frenck]: https://github.com/frenck +[@iMicknl]: https://github.com/iMicknl +[@jbouwh]: https://github.com/jbouwh +[@jpbede]: https://github.com/jpbede +[@kennedyshead]: https://github.com/kennedyshead +[@mvdwetering]: https://github.com/mvdwetering +[@ogruendel]: https://github.com/ogruendel +[@pantherale0]: https://github.com/pantherale0 +[@piitaya]: https://github.com/piitaya +[@puddly]: https://github.com/puddly +[@shaiu]: https://github.com/shaiu +[@sonianuj287]: https://github.com/sonianuj287 +[@srirams]: https://github.com/srirams +[@thecode]: https://github.com/thecode +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@tstabrawa]: https://github.com/tstabrawa +[@wbyoung]: https://github.com/wbyoung +[@wollew]: https://github.com/wollew + +## Release 2025.10.4 - October 24 + +- Bump aioautomower to v2.3.1 ([@Thomas55555] - [#151795]) +- Fix history coordinator in Tesla Fleet and Teslemetry ([@Bre77] - [#153068]) +- Increase connect and configuration time for rfxtrx ([@alec-pinson] - [#153834]) +- Return default temp range if API responds 0 in Huum. ([@vincentwolsink] - [#153871]) +- Improve error message for unsupported hardware in Overkiz ([@iMicknl] - [#154314]) +- Bump pyprobeplus to 1.1.1 ([@pantherale0] - [#154523]) +- Move translatable URL out of strings.json for airnow integration ([@akanksha106-code] - [#154557]) +- Moved non-translatable elements out of strings.json for nuki ([@sonianuj287] - [#154682]) +- Handle location scope in Tesla Fleet vehicle coordinator ([@Bre77] - [#154731]) +- Fix units for Shelly TopAC EVE01-11 sensors ([@bieniu] - [#154740]) +- Fix pterodactyl server config link ([@electricsteve] - [#154758]) +- Move URL out of Tomorrow.io strings.json ([@andrew-codechimp] - [#154759]) +- Move URL out of TheThingsNetwork strings.json ([@andrew-codechimp] - [#154760]) +- Move url out of simplisafe strings ([@andrew-codechimp] - [#154762]) +- Move url out of sensorpush_cloud strings.json ([@andrew-codechimp] - [#154768]) +- Move URLs out of strings.json for auth ([@jbouwh] - [#154769]) +- Move url out of starline strings.json ([@andrew-codechimp] - [#154773]) +- Move url out of orsoenergy strings.json ([@andrew-codechimp] - [#154776]) +- Move url out of motionblinds strings.json ([@andrew-codechimp] - [#154777]) +- Move url out of rachio strings.json ([@andrew-codechimp] - [#154781]) +- Move url out of Flume strings.json ([@andrew-codechimp] - [#154787]) +- Remove opower violation from hassfest requirements check ([@cdce8p] - [#154797]) +- Bump opower to 0.15.8 ([@tronikos] - [#154811]) +- Move url out of nightscout strings and change to field descriptions ([@andrew-codechimp] - [#154812]) +- vesync show fan speed for smart tower fans ([@cdnninja] - [#154842]) +- Bump bring-api to v1.1.1 ([@tr4nt0r] - [#154854]) +- Bump PyCync to 0.4.2 ([@Kinachi249] - [#154856]) +- Bump aioamazondevices to 6.4.6 ([@chemelli74] - [#154865]) +- YoLink remove unsupported remoters ([@matrixd2] - [#154918]) +- Fix BrowseError import in yamaha_musiccast media_player.py ([@wimb0] - [#154980]) +- Remove async-modbus exception from hassfest requirements check ([@cdce8p] - [#154988]) +- Lametric remove translatable URL ([@erwindouna] - [#154991]) +- Add SensorDeviceClass and unit for LCN humidity sensor. ([@alengwenus] - [#155044]) +- Add shared BleakScanner to probe_plus ([@pantherale0] - [#155051]) +- Improve migration to Uptime Kuma v2.0.0 ([@tr4nt0r] - [#155055]) +- Move URL out of system_bridge strings.json ([@MichaelMKKelly] - [#155067]) +- Update aioairzone to v1.0.2 ([@Noltari] - [#155088]) +- Bump pydroplet version to 2.3.4 ([@sarahseidman] - [#155103]) +- Bump holidays to 0.83 ([@gjohansson-ST] - [#155107]) + +[#151795]: https://github.com/home-assistant/core/pull/151795 +[#152881]: https://github.com/home-assistant/core/pull/152881 +[#153068]: https://github.com/home-assistant/core/pull/153068 +[#153582]: https://github.com/home-assistant/core/pull/153582 +[#153834]: https://github.com/home-assistant/core/pull/153834 +[#153871]: https://github.com/home-assistant/core/pull/153871 +[#154181]: https://github.com/home-assistant/core/pull/154181 +[#154314]: https://github.com/home-assistant/core/pull/154314 +[#154523]: https://github.com/home-assistant/core/pull/154523 +[#154557]: https://github.com/home-assistant/core/pull/154557 +[#154682]: https://github.com/home-assistant/core/pull/154682 +[#154718]: https://github.com/home-assistant/core/pull/154718 +[#154731]: https://github.com/home-assistant/core/pull/154731 +[#154740]: https://github.com/home-assistant/core/pull/154740 +[#154758]: https://github.com/home-assistant/core/pull/154758 +[#154759]: https://github.com/home-assistant/core/pull/154759 +[#154760]: https://github.com/home-assistant/core/pull/154760 +[#154762]: https://github.com/home-assistant/core/pull/154762 +[#154768]: https://github.com/home-assistant/core/pull/154768 +[#154769]: https://github.com/home-assistant/core/pull/154769 +[#154773]: https://github.com/home-assistant/core/pull/154773 +[#154776]: https://github.com/home-assistant/core/pull/154776 +[#154777]: https://github.com/home-assistant/core/pull/154777 +[#154781]: https://github.com/home-assistant/core/pull/154781 +[#154787]: https://github.com/home-assistant/core/pull/154787 +[#154797]: https://github.com/home-assistant/core/pull/154797 +[#154811]: https://github.com/home-assistant/core/pull/154811 +[#154812]: https://github.com/home-assistant/core/pull/154812 +[#154842]: https://github.com/home-assistant/core/pull/154842 +[#154854]: https://github.com/home-assistant/core/pull/154854 +[#154856]: https://github.com/home-assistant/core/pull/154856 +[#154865]: https://github.com/home-assistant/core/pull/154865 +[#154918]: https://github.com/home-assistant/core/pull/154918 +[#154980]: https://github.com/home-assistant/core/pull/154980 +[#154988]: https://github.com/home-assistant/core/pull/154988 +[#154991]: https://github.com/home-assistant/core/pull/154991 +[#155044]: https://github.com/home-assistant/core/pull/155044 +[#155051]: https://github.com/home-assistant/core/pull/155051 +[#155055]: https://github.com/home-assistant/core/pull/155055 +[#155067]: https://github.com/home-assistant/core/pull/155067 +[#155088]: https://github.com/home-assistant/core/pull/155088 +[#155103]: https://github.com/home-assistant/core/pull/155103 +[#155107]: https://github.com/home-assistant/core/pull/155107 +[@Bre77]: https://github.com/Bre77 +[@Kinachi249]: https://github.com/Kinachi249 +[@MichaelMKKelly]: https://github.com/MichaelMKKelly +[@Noltari]: https://github.com/Noltari +[@Thomas55555]: https://github.com/Thomas55555 +[@akanksha106-code]: https://github.com/akanksha106-code +[@alec-pinson]: https://github.com/alec-pinson +[@alengwenus]: https://github.com/alengwenus +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@bieniu]: https://github.com/bieniu +[@cdce8p]: https://github.com/cdce8p +[@cdnninja]: https://github.com/cdnninja +[@chemelli74]: https://github.com/chemelli74 +[@electricsteve]: https://github.com/electricsteve +[@erwindouna]: https://github.com/erwindouna +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@iMicknl]: https://github.com/iMicknl +[@jbouwh]: https://github.com/jbouwh +[@matrixd2]: https://github.com/matrixd2 +[@pantherale0]: https://github.com/pantherale0 +[@sarahseidman]: https://github.com/sarahseidman +[@sonianuj287]: https://github.com/sonianuj287 +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@vincentwolsink]: https://github.com/vincentwolsink +[@wimb0]: https://github.com/wimb0 + [#112867]: https://github.com/home-assistant/core/pull/112867 [#123446]: https://github.com/home-assistant/core/pull/123446 [#132164]: https://github.com/home-assistant/core/pull/132164 diff --git a/source/community/index.html b/source/community/index.html index 6dfb1f7edaa..3ad028c21c6 100644 --- a/source/community/index.html +++ b/source/community/index.html @@ -5,7 +5,7 @@ description: "Connect and share ideas with makers, tinkerers, and smart home ent og_image: /images/community/og.jpeg frontpage: false --- - + \ No newline at end of file + diff --git a/source/developers/cla_sign.html b/source/developers/cla_sign.html index c8bb689edcb..779a535b188 100644 --- a/source/developers/cla_sign.html +++ b/source/developers/cla_sign.html @@ -92,7 +92,7 @@ description: "The Home Assistant contributor license agreement (CLA) signature p src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"> - + + +
Check supported languages here
diff --git a/source/voice_control/s3_box_voice_assistant.markdown b/source/voice_control/s3_box_voice_assistant.markdown index 7f2078d46a2..dd857924f08 100644 --- a/source/voice_control/s3_box_voice_assistant.markdown +++ b/source/voice_control/s3_box_voice_assistant.markdown @@ -49,7 +49,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - Select the **Connect** button below to display a list of available USB devices. Do not connect the ESP32-S3-BOX-3 yet. We want to see the list of available USB devices first, so that it is easier to recognize the ESP device afterward. - If your browser does not support web serial, you will see a warning message indicating this instead of a button. - + - **For advanced users**: The configuration files are available on GitHub: @@ -94,7 +94,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - If your browser does not support web serial, you will see a warning message indicating this instead of a button. - + - **For advanced users**: The configuration files are available on GitHub: @@ -131,7 +131,7 @@ Before you can use this device with Home Assistant, you need to install a bit of - If your browser does not support web serial, you will see a warning message indicating this instead of a button. - + - **For advanced users**: The configuration files are available on GitHub: diff --git a/source/voice_control/thirteen-usd-voice-remote.markdown b/source/voice_control/thirteen-usd-voice-remote.markdown index 079419eeed9..4e5221ad87b 100644 --- a/source/voice_control/thirteen-usd-voice-remote.markdown +++ b/source/voice_control/thirteen-usd-voice-remote.markdown @@ -43,7 +43,7 @@ Before you can use this device with Home Assistant, you need to install a bit of 1. Make sure this page is opened in a Chromium-based browser on a desktop. It does not work on a tablet or phone. - Select the **Connect** button below. If your browser does not support web serial, you will see a warning instead of a button. - + - **For advanced users**: The configuration file is available on [GitHub](https://github.com/esphome/wake-word-voice-assistants/blob/main/m5stack-atom-echo/m5stack-atom-echo.yaml). @@ -109,7 +109,7 @@ If you no longer use the device or want to pass it on to someone else, you can r 1. Make sure this page is opened in a Chromium-based browser on a desktop. It does not work on a tablet or phone. - Select the **Connect** button below. If your browser does not support web serial, you will see a warning instead of a button. - + 2. To connect the ATOM Echo to your computer, follow these steps: diff --git a/source/voice_control/voice_remote_local_assistant.markdown b/source/voice_control/voice_remote_local_assistant.markdown index aed1b8fdf86..d1386cf2c4f 100644 --- a/source/voice_control/voice_remote_local_assistant.markdown +++ b/source/voice_control/voice_remote_local_assistant.markdown @@ -25,7 +25,7 @@ For Assist to be able to talk to your Home Assistant setup your setup needs to b In Home Assistant, the Assist pipelines are made up of various components that together form a voice assistant. For each component, you can choose from different options. - For listening and talking back, it needs your phone with the Home Assistant app, or a voice activated device. -- For understanding, it needs to have a text-to-speech and speech-to-text software integrated.  +- For understanding, it needs to have a speech-to-text and text-to-speech software integrated.  - For running all together, it needs to have the Home Assistant Operating System running. ## Some options for speech-to-text and text-to-speech