diff --git a/Gemfile b/Gemfile index d90f032ef33..3090ef7435f 100644 --- a/Gemfile +++ b/Gemfile @@ -10,9 +10,9 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - gem 'sass-embedded', '1.86.0' - gem 'rubocop', '1.74.0' - gem 'ruby-lsp', '0.23.12' + gem 'sass-embedded', '1.86.1' + gem 'rubocop', '1.75.1' + gem 'ruby-lsp', '0.23.13' gem 'rackup', '2.2.1' end @@ -24,7 +24,7 @@ group :jekyll_plugins do end gem 'sinatra', '4.1.1' -gem 'nokogiri', '1.18.6' +gem 'nokogiri', '1.18.7' # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem # and associated library diff --git a/Gemfile.lock b/Gemfile.lock index be7e6775323..c4004cddf08 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,10 +30,10 @@ GEM ffi (1.17.1-arm64-darwin) ffi (1.17.1-x86_64-linux-gnu) forwardable-extended (2.6.0) - google-protobuf (4.30.1-arm64-darwin) + google-protobuf (4.30.2-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.30.1-x86_64-linux) + google-protobuf (4.30.2-x86_64-linux) bigdecimal rake (>= 13) http_parser.rb (0.8.0) @@ -81,17 +81,17 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.6) + logger (1.7.0) mercenary (0.4.0) multi_json (1.15.0) mustermann (3.0.3) ruby2_keywords (~> 0.0.1) - nokogiri (1.18.6-arm64-darwin) + nokogiri (1.18.7-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.6-x86_64-linux-gnu) + nokogiri (1.18.7-x86_64-linux-gnu) racc (~> 1.4) parallel (1.26.3) - parser (3.3.7.2) + parser (3.3.7.4) ast (~> 2.4.1) racc pathutil (0.16.2) @@ -114,12 +114,12 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbs (3.9.1) + rbs (3.9.2) logger regexp_parser (2.10.0) rexml (3.4.1) rouge (4.5.1) - rubocop (1.74.0) + rubocop (1.75.1) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -127,13 +127,13 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.38.0, < 2.0) + rubocop-ast (>= 1.43.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) rubocop-ast (1.43.0) parser (>= 3.3.7.2) prism (~> 1.4) - ruby-lsp (0.23.12) + ruby-lsp (0.23.13) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 4) @@ -142,9 +142,10 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.86.0) + sass-embedded (1.86.1-arm64-darwin) + google-protobuf (~> 4.30) + sass-embedded (1.86.1-x86_64-linux-gnu) google-protobuf (~> 4.30) - rake (>= 13) sass-globbing (1.1.5) sass (>= 3.1) sassc (2.1.0) @@ -158,7 +159,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11956) + sorbet-runtime (0.5.11980) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -181,12 +182,12 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.19.0) - nokogiri (= 1.18.6) + nokogiri (= 1.18.7) rackup (= 2.2.1) rake (= 13.2.1) - rubocop (= 1.74.0) - ruby-lsp (= 0.23.12) - sass-embedded (= 1.86.0) + rubocop (= 1.75.1) + ruby-lsp (= 0.23.13) + sass-embedded (= 1.86.1) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.1.1) @@ -198,4 +199,4 @@ RUBY VERSION ruby 2.6.2p47 BUNDLED WITH - 2.5.3 + 2.5.3 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 412647a80e4..89035173efb 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": "^14.5.0", + "textlint": "^14.6.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" @@ -427,73 +427,73 @@ "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.5.0.tgz", - "integrity": "sha512-biwtMuv+B1A5tqDLYSwMSjEr24l4zji69Ttg9ZxAEkr5sGre2W5ojEZRA79edDxcAASDF35XgHkWR+tvMsVAdg==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.6.0.tgz", + "integrity": "sha512-wGoNB35KA/LEWaGp5ccsUqQwNjygCDnkGxe8A8kCMURgM2KYTuCCItGMLrajm0T9BhNdQtK/ST6+EljTFERasA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0", + "@textlint/ast-node-types": "^14.6.0", "debug": "^4.4.0" } }, "node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, "node_modules/@textlint/ast-traverse": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.5.0.tgz", - "integrity": "sha512-K83si1a2s1LdIVPmzrtuI+SdKjNp2A5jmOcoyXAVNLv3qlJc4DTCyKO7Qn/xTq00zQrhLrZXJSaooBSXi4HXvQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.6.0.tgz", + "integrity": "sha512-BkfQ/bWfpO6FErrpYoUF+SzlPqJklxD+o6rs2TwSoqO2EMP5vAgIVdGJiTBjV4kxghTzq0w5UkMi9xtNZw1sUg==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0" + "@textlint/ast-node-types": "^14.6.0" } }, "node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, "node_modules/@textlint/config-loader": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.5.0.tgz", - "integrity": "sha512-kTFF+Sx3lxH1GSBbk2mEslu0VzyHj9DNy1wiwnPuHrQRVv6fsFZXr35mfLWnfBT40s6aEOrtPh1323jfLduHBg==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.6.0.tgz", + "integrity": "sha512-OzcHVwKlyQOm7bVPee9z0AciYUN9L8543JIkHxtj81h8Qc7aGBOo0nqIZSL2GC+G0pnab6Rkt0drOAlpkKKrrA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/kernel": "^14.5.0", - "@textlint/module-interop": "^14.5.0", - "@textlint/resolver": "^14.5.0", - "@textlint/types": "^14.5.0", - "@textlint/utils": "^14.5.0", + "@textlint/kernel": "^14.6.0", + "@textlint/module-interop": "^14.6.0", + "@textlint/resolver": "^14.6.0", + "@textlint/types": "^14.6.0", + "@textlint/utils": "^14.6.0", "debug": "^4.4.0", "rc-config-loader": "^4.1.3" } }, "node_modules/@textlint/feature-flag": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.5.0.tgz", - "integrity": "sha512-fM0W1JRbEkO4IuJhDLDAam50usW+z7B1wA8Y6PciJeojzpTXUiV29MtUISTCfSVkjrDo54aIRgTPn8HogkUGPQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.6.0.tgz", + "integrity": "sha512-WmmFHEt71rtSk2ZjcvrLJPN6dKYtYwC8fAFZcnjw15h80Di7wuw7vrpW85udloq+XYDlJ5GnhumDX5yZ4mt4Ug==", "dev": true, "license": "MIT" }, "node_modules/@textlint/fixer-formatter": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.5.0.tgz", - "integrity": "sha512-vdnrm4tAcJ/KtSiN6szt0MZSWFW8/WKl8kr1owgpQ0NKuxbP1b9dFc+k/V/mq+RnFcuwnbb/r2+7z8oH7HYHEQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.6.0.tgz", + "integrity": "sha512-CSbjhBFfvVFqbEKmmm0xJxxzpYGHO4Y/dguBI9g2aaCBy52EVwBa55rbhkpBV+b9X3OJhnypJEo5IbC+F52CqA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/module-interop": "^14.5.0", - "@textlint/resolver": "^14.5.0", - "@textlint/types": "^14.5.0", + "@textlint/module-interop": "^14.6.0", + "@textlint/resolver": "^14.6.0", + "@textlint/types": "^14.6.0", "chalk": "^4.1.2", "debug": "^4.4.0", "diff": "^5.2.0", @@ -503,43 +503,43 @@ } }, "node_modules/@textlint/kernel": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.5.0.tgz", - "integrity": "sha512-hgq0b7eUJxEwCf1jNx/DCZeU2SJXXRH+qycvyrGVEOWgLYmtizlCm6GQ+ejDgUdcoNpQhzCkiwV2HF0z9UbmMw==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.6.0.tgz", + "integrity": "sha512-Mf8cikqVDHdf0RgjSYxs/G1a+I5UK5GjM+ehc67zSF/vtFUaLRn5bkWcEKrWQ67mjrM24tqH46oqVM9RL+utMQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0", - "@textlint/ast-tester": "^14.5.0", - "@textlint/ast-traverse": "^14.5.0", - "@textlint/feature-flag": "^14.5.0", - "@textlint/source-code-fixer": "^14.5.0", - "@textlint/types": "^14.5.0", - "@textlint/utils": "^14.5.0", + "@textlint/ast-node-types": "^14.6.0", + "@textlint/ast-tester": "^14.6.0", + "@textlint/ast-traverse": "^14.6.0", + "@textlint/feature-flag": "^14.6.0", + "@textlint/source-code-fixer": "^14.6.0", + "@textlint/types": "^14.6.0", + "@textlint/utils": "^14.6.0", "debug": "^4.4.0", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, "node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, "node_modules/@textlint/linter-formatter": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.5.0.tgz", - "integrity": "sha512-5QQsdnsuUBscCq1IX10ynYtsfLmctdoc4GZtJA7L//QFYAAgTrBzpXjfhyWZs7C5VJho9FzfljyuuA7jbhRrFw==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.6.0.tgz", + "integrity": "sha512-52P8jXnxqafbmV1Dg05u8EHitvdCA6nnIGwIWjLCydL1jfM5js6KvA47qRugb6EWWbYxWKCGkbmaIFhKGwFTaA==", "dev": true, "license": "MIT", "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.5.0", - "@textlint/resolver": "^14.5.0", - "@textlint/types": "^14.5.0", + "@textlint/module-interop": "^14.6.0", + "@textlint/resolver": "^14.6.0", + "@textlint/types": "^14.6.0", "chalk": "^4.1.2", "debug": "^4.4.0", "js-yaml": "^3.14.1", @@ -552,13 +552,13 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.5.0.tgz", - "integrity": "sha512-qftHkBnyWEy2PmAhmhrmTemCKMJCpPKtFZt0woaa0yZkMwXo/RN66elnjAEJZenkRntQgphlKJJZ0I/NA2hH4g==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.6.0.tgz", + "integrity": "sha512-T29IbY9cAupWBuds1DPl9TzS4oI2c0wVd0+0E43j5XezJKR3oE4e5/g9v4U2oo/LIbxDLlI22o3IGSyfUv3fFw==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0", + "@textlint/ast-node-types": "^14.6.0", "debug": "^4.4.0", "mdast-util-gfm-autolink-literal": "^0.1.3", "neotraverse": "^0.6.15", @@ -570,9 +570,9 @@ } }, "node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, @@ -819,88 +819,88 @@ } }, "node_modules/@textlint/module-interop": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.5.0.tgz", - "integrity": "sha512-nlFwHSYZJgSwXyF9PuHV3DcvRnObf64Mm4QWt9LaTr5zQB2MwEluaL8ROYL+sLJ4JhqNKpuqBT1EkTixPsN3cQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.6.0.tgz", + "integrity": "sha512-eQFprk37rU6Sl250h52OaoHA4Dal4jSjWYWRdKfjvrdDcNWxPAOenAAGBf66lS7E34No9E9G51jsSc43N0CzJg==", "dev": true, "license": "MIT" }, "node_modules/@textlint/resolver": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.5.0.tgz", - "integrity": "sha512-yvC8gQHKsl/rR3x+884tA9BzVn6naILmHRmOP3FEQogr+ixOW4rL9OgdS6IoMjG8cVh8o4kI40xJfh1l6oX6vQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.6.0.tgz", + "integrity": "sha512-pFB6bRKAQf+6N6JppAnxRNbExDathq325l8MpYGQY1j2bUzaDx0j90pf2EHfTM0mHr3v/6z37GNUk5ZUZkH3Ew==", "dev": true, "license": "MIT" }, "node_modules/@textlint/source-code-fixer": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.5.0.tgz", - "integrity": "sha512-zcokW+MBTppOzGumeB1SZvjDitCnO2sAZrWpmw849L6P11RdxS/iQXakg4jkRTTlWYR1AtzyAa9j0lLCdxsfuQ==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.6.0.tgz", + "integrity": "sha512-GbnKYQ91KHhg3XfiYAIe++E9UI0wsUZVGq3lzVUO9+nzJ4MUtUk1QpTmwP9+DYxnzi7w5jTcXHN6kh/zmHK4AA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/types": "^14.5.0", + "@textlint/types": "^14.6.0", "debug": "^4.4.0" } }, "node_modules/@textlint/text-to-ast": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.5.0.tgz", - "integrity": "sha512-e6SrPeCScmxxfTDpXo+nBh4tt6sbqySX/fE65sYVYupLwpJsCtxTEnYft2jEqifvgaM4JjgzETSQMG799HBTPw==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.6.0.tgz", + "integrity": "sha512-1rNBbC8EfxxAk76jHCMrNduUd2CuaaXyAZvuSWzRM+Fx+YyTOelKEv9sppCWnThcD2A34KKlghHg40YH3CjriQ==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0" + "@textlint/ast-node-types": "^14.6.0" } }, "node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.5.0.tgz", - "integrity": "sha512-riMcW6Sj/IvTnIAA4W0O5pxJxdqth+MUe2li7wg8yCq3jilS0EYIlolNXvX414v/9swsLu8Tztwugrh0E6HJDw==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.6.0.tgz", + "integrity": "sha512-0W5wxWbDxAJoMe6ju2oq0IZ2ZX91JoWLHti+4LrPc9uiMx6CaTS/ZLYlu0hoYSk5DNQ75/bDD9wm78APM07zGA==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/markdown-to-ast": "^14.5.0" + "@textlint/markdown-to-ast": "^14.6.0" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.5.0.tgz", - "integrity": "sha512-aASQwkRnupRlY9w168SBjrsDbO1wtg2EYx8JSnt/YboUnhszQD8Zys178Zu/00ECtpxwpjQYowoYNq0BoP9aig==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.6.0.tgz", + "integrity": "sha512-QglDssLXVBdjk4cVUI5nK9DJtJ6XjtdKGV7Ehgv202MEMvTktGa5mJlIv5tQK0O+zVpLWqVl4q9P76MASk/qOg==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/text-to-ast": "^14.5.0" + "@textlint/text-to-ast": "^14.6.0" } }, "node_modules/@textlint/types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.5.0.tgz", - "integrity": "sha512-z+oJS5GHK5KiV87ZNCYAQnZTgq1MRGl9g301GOV6Zq4RjH75JVQPNa4hUlwzG2sF6jks+wLhMjxwaQaG6cKCpA==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.6.0.tgz", + "integrity": "sha512-XsK3FUdCtVNCe/aUz0TivpCzQchupcyOgNlRKt36AjDCEtqyPCOjpJxj1fmvYnTODG0M/4XKrlufn8onw+qWew==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0" + "@textlint/ast-node-types": "^14.6.0" } }, "node_modules/@textlint/types/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, "node_modules/@textlint/utils": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.5.0.tgz", - "integrity": "sha512-gAKZh1woc0IZGoVjQ8G8Og10dsBJ6UxaCFXofeHveWsZhJAdVzjw49/tJLVu/39t8GTdZQ4BAHuNxHNFgLN57w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.6.0.tgz", + "integrity": "sha512-kQQg38c2wyWtbBnQ4zIGp4KrUmMmcZJKz2hrCn0z2kCMbDFpasTaG2EuteY1Szupl186fuMePGAGB6p7xeVsiQ==", "dev": true, "license": "MIT" }, @@ -6107,25 +6107,25 @@ "dev": true }, "node_modules/textlint": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.5.0.tgz", - "integrity": "sha512-+C5zYpEv0HsQAuz6crm4BjuMXaHi6gKTSwqZZttHI2Jm/WGtpza2SbZxct+STdMgN1XbINcsP58gZ4juQwokcw==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.6.0.tgz", + "integrity": "sha512-C1Wbh5VDvKHmNyyj0q94AWdmI/RBKfweQwja6hno9iWoh8IprWye/Z8WSZd4PsCly/i2e6MNuXKrjU+gE4ku6w==", "dev": true, "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "^14.5.0", - "@textlint/ast-traverse": "^14.5.0", - "@textlint/config-loader": "^14.5.0", - "@textlint/feature-flag": "^14.5.0", - "@textlint/fixer-formatter": "^14.5.0", - "@textlint/kernel": "^14.5.0", - "@textlint/linter-formatter": "^14.5.0", - "@textlint/module-interop": "^14.5.0", - "@textlint/resolver": "^14.5.0", - "@textlint/textlint-plugin-markdown": "^14.5.0", - "@textlint/textlint-plugin-text": "^14.5.0", - "@textlint/types": "^14.5.0", - "@textlint/utils": "^14.5.0", + "@textlint/ast-node-types": "^14.6.0", + "@textlint/ast-traverse": "^14.6.0", + "@textlint/config-loader": "^14.6.0", + "@textlint/feature-flag": "^14.6.0", + "@textlint/fixer-formatter": "^14.6.0", + "@textlint/kernel": "^14.6.0", + "@textlint/linter-formatter": "^14.6.0", + "@textlint/module-interop": "^14.6.0", + "@textlint/resolver": "^14.6.0", + "@textlint/textlint-plugin-markdown": "^14.6.0", + "@textlint/textlint-plugin-text": "^14.6.0", + "@textlint/types": "^14.6.0", + "@textlint/utils": "^14.6.0", "debug": "^4.4.0", "file-entry-cache": "^10.0.5", "get-stdin": "^5.0.1", @@ -6250,9 +6250,9 @@ } }, "node_modules/textlint/node_modules/@textlint/ast-node-types": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.5.0.tgz", - "integrity": "sha512-T7NQ2DUnx1zOrnBqcFpJGFgHder5/M7TV596LZTJS/sc1anT7WVrsoGCMmu3oJh2ALg9oJN+PgSmZQ8Mm0Mg+w==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.6.0.tgz", + "integrity": "sha512-PqWpzFa64M5uKqBSQPV8wPqo14zvmz5JXWIIUkVCMQ/gN8/8IrXjpsp0O+/To8u5D5woVpxihBi/3nJdR8E37g==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index bc92d01c6cb..e7e3e60411d 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": "^14.5.0", + "textlint": "^14.6.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index 4132b0f3eab..dd6de68240e 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -48,7 +48,7 @@ These are the properties available for a [Calendar trigger](/docs/automation/tri ### Device -These are the properties available for a [Device trigger](/docs/automation/trigger/#device-trigger). +These are the properties available for a [Device trigger](/docs/automation/trigger/#device-triggers). Inherites template variables from [event](#event) or [state](#state) template based on the type of trigger selected for the device. diff --git a/source/_docs/blueprint/schema.markdown b/source/_docs/blueprint/schema.markdown index 21df85fa326..02b44b173cb 100644 --- a/source/_docs/blueprint/schema.markdown +++ b/source/_docs/blueprint/schema.markdown @@ -134,6 +134,7 @@ The following example shows a minimal blueprint with a single input: blueprint: name: Example blueprint description: Example showing an input + domain: automation input: my_input: name: Example input diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown index c792feb5e35..8b472c24ecf 100644 --- a/source/_docs/configuration/state_object.markdown +++ b/source/_docs/configuration/state_object.markdown @@ -32,7 +32,7 @@ The `state` prefix indicates that this information is part of the state object ( ### About the state -The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of the `supported_color_modes` attribute is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`. +The screenshot of the Developer Tools States page shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of the `supported_color_modes` attribute is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
diff --git a/source/_docs/scripts/perform-actions.markdown b/source/_docs/scripts/perform-actions.markdown
index ce1120cdd5e..e83c6f6910a 100644
--- a/source/_docs/scripts/perform-actions.markdown
+++ b/source/_docs/scripts/perform-actions.markdown
@@ -5,7 +5,7 @@ description: "Instructions on how to perform actions in Home Assistant."
Various integrations allow performing {% term actions %} when a certain event occurs. The most common one is performing an action when an automation {% term trigger %} happens. But an action can also be called from a {% term script %}, a dashboard, or via voice command devices such as Amazon Echo.
-The configuration options to call a configuration are the same between all integrations and are described on this page.
+The configuration options to perform action are the same between all integrations and are described on this page.
Examples on this page will be given as part of an automation integration configuration but different approaches can be used for other integrations too.
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index ce183118ca0..2f331de65a8 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -59,7 +59,7 @@ Firmware can be upgraded using the below directions:
- GoControl HUSBZB-1 stick
- Sigma Designs UZB stick
- Vision USB stick - Gen5
- - Z-Wave.Me UZB1 stick
+ - Z-Wave.Me UZB1 stick (see Aeotec Z-Stick note below)
- HomeSeer SmartStick+ G2
- HomeSeer Z-NET G2
@@ -94,7 +94,9 @@ Z-Wave JS does not support Z-Wave Long Range yet.
### Aeotec Z-Stick
{% note %}
-There are [known compatibility issues](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245031#p1502030) with older hardware versions of the Aeotec stick not connecting when plugged directly on the Raspberry Pi 4, and requiring a USB Hub to work. Aeotec has released a 2020 hardware revision ZW090-A/B/C Gen5+ with Pi 4 compatibility. Both hardware revisions are still being sold, make informed purchasing decisions if using one paired with a Pi 4.
+
+The Aeotec Z-Stick and some of its variants (e.g. Z-Wave.Me UZB1) are known to have compatibility issues with the Linux kernel because of their [non-compliant behavior](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245031#p1502030). Plugging these controllers through a USB hub can serve as a workaround that sometimes mitigates the issue.
+
{% endnote %}
It's totally normal for your Z-Wave stick to cycle through its LEDs (Yellow, Blue and Red) while plugged into your system.
diff --git a/source/_includes/custom/news.html b/source/_includes/custom/news.html
index f04939719e5..2bdc35e4076 100644
--- a/source/_includes/custom/news.html
+++ b/source/_includes/custom/news.html
@@ -2,6 +2,13 @@
-
-
Example using the Entity Attributes custom card
- diff --git a/source/_integrations/nuki.markdown b/source/_integrations/nuki.markdown index 9c3169df3a7..feefc88a572 100644 --- a/source/_integrations/nuki.markdown +++ b/source/_integrations/nuki.markdown @@ -19,11 +19,12 @@ ha_dhcp: true ha_integration_type: integration --- -The Nuki integration allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via a [Nuki Bridge](https://nuki.io/en/bridge/). +The Nuki integration allows you to control [Nuki Smart Locks](https://nuki.io/en/smart-lock/) via a [Nuki Bridge](https://help.nuki.io/hc/en-001/sections/360004474718-Bridge) or Nuki Smart Lock with [Build-in WiFi](https://help.nuki.io/hc/en-001/sections/4402761196817-Built-in-Wi-Fi) using the cloud. +Many Nuki Smart Locks also support [local integrations](#local-integration-alternatives) using a different integration. ## Prerequisites -To add a Nuki bridge to your installation, you need to enable developer mode on your bridge and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki) or [iPhone app](https://apps.apple.com/app/nuki-smart-lock/id1044998081). Go to manage my devices, and select the bridge. Within the bridge configuration turn on the HTTP API and check the details in the screen. Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one. +To add a Nuki bridge to your installation, you need to connect the device to wifi, enable developer mode and define a port and an access token. This can be achieved using the [Android app](https://play.google.com/store/apps/details?id=io.nuki) or [iPhone app](https://apps.apple.com/app/nuki-smart-lock/id1044998081). Go to manage my devices, and select the bridge or wifi enabled smart lock and connect to the device. Turn on the HTTP API and check the details in the screen. Please note that the API token should be 6-20 characters long, even though the app allows you to set a longer one. For faster updates, the callback function of the Nuki bridge can be used. This requires your Home Assistant to be reachable via HTTP by the Nuki bridge, as HTTPS is not supported by the Nuki bridge. {% include integrations/config_flow.md %} @@ -71,7 +72,19 @@ Events generated by Nuki are sent as events of type `nuki_event` with the follow | `type` | The type of the event. Values: `ring` | `entity_id` | The ID of the entity generating the event. -## MQTT support +## Local integration alternatives -The Nuki Smart Lock 3.0 Pro also [supports MQTT](https://support.nuki.io/hc/en-us/articles/12947926779409-MQTT-support) and can directly integrate with Home Assistant through [MQTT discovery](/integrations/mqtt/#mqtt-discovery). -Specific information can be found [here](https://developer.nuki.io/t/mqtt-api-specification-v1-3/17626). +Many Nuki Smart Locks support local alternatives. Consult the [Nuki website](https://help.nuki.io/hc/en-001/categories/360003042457-Integrations-Services) for an up-to-date list of integration options and supported devices. + +### HomeKit support + +The 2nd and 3rd Generation Smart Locks support [HomeKit via Bluetooth](https://help.nuki.io/hc/en-001/articles/19948907390737-Apple-HomeKit-via-Bluetooth) and can directly integrate with Home Assistant through the (HomeKit integration)(/integrations/homekit_controller/#adding-a-homekit-device-through-bluetooth). + +### MQTT support + +The Nuki Smart Lock 3.0 Pro and 4th generation devices support [MQTT]([https://support.nuki.io/hc/en-us/articles/12947926779409-MQTT-support]) and can directly integrate with Home Assistant through [MQTT discovery](/integrations/mqtt/#mqtt-discovery). +Details can be found [here](https://developer.nuki.io/t/mqtt-api-specification-v1-3/17626). + +### Matter Support + +Smart Lock Ultra, Smart Lock Pro, Smart Lock Go, Smart Locks of 4th Generation support [Matter](https://help.nuki.io/hc/en-001/sections/14596766576401-Matter) over Thread and can directly integrate with Home Assistant through the [Matter integration](/integrations/matter/#adding-a-matter-device-to-home-assistant). diff --git a/source/_integrations/prusalink.markdown b/source/_integrations/prusalink.markdown index 1e0a380f075..b4a3d3c958b 100644 --- a/source/_integrations/prusalink.markdown +++ b/source/_integrations/prusalink.markdown @@ -22,7 +22,7 @@ related: - url: https://help.prusa3d.com/guide/prusalink-and-prusa-connect-setup-mk3-s-_221744 title: PrusaLink installation guide for Prusa MK3 with Raspberry Pi Zero W - url: https://help.prusa3d.com/guide/prusalink-prusa-connect-with-rpi-3-4-usb-mk2-5-s-mk3-s-_469341 - title: Sentence trigger + title: PrusaLink installation guide for Prusa MK2.5/MK3 with Raspberry Pi 3/4 --- The **PrusaLink** {% term integration %} allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI/MINI+, Prusa MK3.9/MK4, Prusa XL, and with the older Raspberry Pi-based Prusa MK2.5/MK3. diff --git a/source/_integrations/qnap_qsw.markdown b/source/_integrations/qnap_qsw.markdown index 325e82eb61e..2e4dfb8415c 100644 --- a/source/_integrations/qnap_qsw.markdown +++ b/source/_integrations/qnap_qsw.markdown @@ -90,3 +90,9 @@ The following *sensors* are created for each port (or LACP): | Update | Description | | :------------------ | :--------------------------------- | | firmware_update | Firmware update status. | + +## 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/reolink.markdown b/source/_integrations/reolink.markdown index 6bb9d1526d5..3015f4ec599 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -768,6 +768,16 @@ Prerequisites: - Reolink cameras can support a limited amount of simultaneous connections. Therefore using third-party software like Frigate, Blue Iris, or Scrypted, or using the ONVIF integration at the same time can cause the camera to drop connections. This results in short unavailabilities of the Reolink entities in Home Assistant. Especially when the connections are coming from the same device (IP) where Home Assistant is running, the Reolink cameras can get confused, dropping one connection in favor of the other originating from the same host IP. If you experience disconnections/unavailabilities of the entities, please first temporarily shut down the other connections (like Frigate) to diagnose if that is the problem. If that is indeed the problem, you could try moving the third-party software to a different host (IP address) since that is known to solve the problem most of the time. You could also try switching the protocol to FLV on Home Assistant and/or the third-party software, as that is known to be less resource-intensive on the camera. - If the Reolink entities go to unavailable for short periods, the camera may be overloaded with requests resulting in short connection drops. To resolve this, first, check if the integration is using `ONVIF push` instead of `ONVIF long polling` (resource intensive) or `Fast polling` (very resource intensive), see the [Reducing latency of motion events](#reducing-latency-of-motion-events) section. Moreover, try switching to the FLV streaming protocol which is the least resource-intensive for the camera, see the [options](#options) section. +### Battery drains fast + +The Reolink Home Assistant integration is supposed to only wake battery cameras once per hour for about 10 seconds, which should not have a big impact on battery life. You can check this using the **Sleep status** entity. However, there are several factors that can have significant impact on battery life: + +- Make sure the **Preload camera stream** option is turned off for all battery camera entities under {% my integrations title="**Settings** > **Devices & services**" %} > Reolink integration card > **x devices** > select the battery camera > select the camera stream (do this for all enabled streams) > Gear icon {% icon "mdi:cog-outline" %}. The Preload camera stream will keep a active stream open, keeping the camera awake. This will drain the battery. +- Make sure the **Manual Record** switch is turned off. While this switch is on, the camera will be awake and recording. Excessive use of this entity will drain the battery. +- **Automations** which use entities from a Reolink battery camera can wake up the camera. Changing settings or requesting a snapshot will wake the battery camera for 10-30 seconds. When automations trigger very often, this can cause excessive battery use. +- Some **Custom cards** that can be used to view the camera in a dashboard are known to keep a battery camera constantly awake, draining its battery. +- Viewing a **dashboard** with a picture-entity card of a Reolink battery camera, will wake that camera to show the latest snapshot and/or stream. Therefore, it is recommended to place the picture-entity cards in a separate dashboard/tab, which is only accessed when actually wanting to view the battery camera streams. + ### Streams or recordings not playing - Most Reolink cameras use h265 encoding for the high resolution recording and clear stream to save storage space and bandwidth. Playback of this h265 encoding is not supported by all browsers or apps. Therefore, the high-resolution recording and/or clear stream may not function on all your devices from which you acces Home Assistant. To see if a Reolink camera is using h264 or h265 encoding, [download the diagnostics text file](/docs/configuration/troubleshooting/#download-diagnostics) and find the `"encoding main": "h265"\"h264"` in the txt file. The low-resolution recording and fluent stream always use h264 encoding and, therefore, do not suffer from this issue. diff --git a/source/_integrations/rpi_power.markdown b/source/_integrations/rpi_power.markdown index f23a835aabd..354d7f665c0 100644 --- a/source/_integrations/rpi_power.markdown +++ b/source/_integrations/rpi_power.markdown @@ -15,6 +15,19 @@ ha_platforms: ha_integration_type: integration --- -The `rpi_power` integration allows you to detect [bad power supply](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#power-supply-warnings) on Raspberry Pi. +The **Raspberry Pi Power Supply Checker** {% term integration %} allows you to detect [bad power supply](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#power-supply-warnings) on the Raspberry Pi that is running Home Assistant. + +{% note %} +This integration can only monitor the Raspberry Pi that Home Assistant is running on. It cannot monitor remote Raspberry Pis over the network. + +If you have multiple Raspberry Pis and are running Home Assistant on one of them, this integration will only check the power supply status of the Pi where Home Assistant is installed. + +{% endnote %} {% include integrations/config_flow.md %} + +## Supported functionality + +This integration interfaces with the kernel's power management system to detect whether the Raspberry Pi is receiving sufficient power. It creates a binary sensor that indicates whether your power supply is adequate (normal state) or if there are voltage issues (problem state). + +If issues are detected, consider upgrading to a higher quality power supply that can deliver stable 5V power with sufficient current for your Raspberry Pi model. diff --git a/source/_integrations/sun.markdown b/source/_integrations/sun.markdown index 715056b6aca..fc7d7101e3b 100644 --- a/source/_integrations/sun.markdown +++ b/source/_integrations/sun.markdown @@ -18,6 +18,8 @@ related: title: Configuration file --- +The sun {% term integration %} calculates all sun-related times (sunrise, sunset, dawn, dusk, etc.) based on your configured home location. This means that all time-based calculations and triggers will be accurate for your specific location, as defined in your [basic configuration](/docs/configuration/basic/). + The sun {% term integration %} will use the location as {% my general title="configured in your Home Assistant configuration" %} to track if the sun is above or below the horizon. The sun can be used within diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index eb3b1b9da84..40e801e714d 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -187,7 +187,7 @@ binary_sensor: type: list keys: state: - description: The sensor is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`. The actual appearance in the frontend (`Open`/`Closed`, `Detected`/`Clear` etc) depends on the sensor’s device_class value + description: The sensor is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`. The actual appearance in the frontend (`Open`/`Closed`, `Detected`/`Clear` etc) depends on the sensor's device_class value required: true type: template delay_on: @@ -258,7 +258,7 @@ number: type: template default: 100.0 optimistic: - description: Flag that defines if number works in optimistic mode. + description: Flag that defines if number works in optimistic mode. When enabled, the number's state will update immediately when changed through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the number will only update when the `state` template returns a new value. required: false type: boolean default: false @@ -280,7 +280,7 @@ select: required: true type: template optimistic: - description: Flag that defines if select works in optimistic mode. + description: Flag that defines if select works in optimistic mode. When enabled, the select's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the select will only update when the `state` template returns a new value. required: false type: boolean default: false @@ -303,7 +303,7 @@ image: required: true type: template verify_ssl: - description: Enable or disable SSL certificate verification. Set to false to use an http-only URL, or you have a self-signed SSL certificate and haven’t installed the CA certificate to enable verification. + description: Enable or disable SSL certificate verification. Set to false to use an http-only URL, or you have a self-signed SSL certificate and haven't installed the CA certificate to enable verification. required: false type: boolean default: true @@ -453,6 +453,22 @@ State-based and trigger-based template entities have the special template variab Self-referencing using `this` provides the state and attributes for the entity before rendering the templates to calculate a new state. To access the new state, use the `value` or `value_json` variable. {% endnote %} +### Optimistic mode + +For template entities that support interactivity (like `number` and `select`), you can enable optimistic mode by setting the `optimistic` parameter to `true`. This affects how the entity's state updates when you interact with it: + +- **With optimistic mode disabled (default)**: When you interact with the entity (for example, selecting a new option in a dropdown or setting a new number value), the entity's state in Home Assistant will only update after the underlying template defined in the `state` parameter returns the new value. + +- **With optimistic mode enabled**: When you interact with the entity, the entity's state in Home Assistant immediately updates to reflect your change, without waiting for the `state` template to update. This provides a more responsive UI experience but may not reflect the actual state if the underlying action fails or takes time to complete. + +Optimistic mode is particularly useful when: + +- The underlying system doesn't provide immediate feedback +- You want a more responsive UI experience +- You're confident the action will succeed + +When optimistic mode is disabled (default), you get more accuracy but potentially a less responsive UI, as the entity only updates after confirmation from the underlying system. + ### Rate limiting updates When there are entities present in the template and no triggers are defined, the template will be re-rendered when one of the entities changes states. To avoid this taking up too many resources in Home Assistant, rate limiting will be automatically applied if too many states are observed. @@ -973,7 +989,7 @@ sensors: type: device_class default: None value_template: - description: The sensor is `on` if the template evaluates as `True` and `off` otherwise. The actual appearance in the frontend (`Open`/`Closed`, `Detected`/`Clear` etc) depends on the sensor’s device_class value + description: The sensor is `on` if the template evaluates as `True` and `off` otherwise. The actual appearance in the frontend (`Open`/`Closed`, `Detected`/`Clear` etc) depends on the sensor's device_class value required: true type: template availability_template: diff --git a/source/_integrations/vodafone_station.markdown b/source/_integrations/vodafone_station.markdown index 1585cf484e4..d97134dd8c0 100644 --- a/source/_integrations/vodafone_station.markdown +++ b/source/_integrations/vodafone_station.markdown @@ -18,7 +18,7 @@ ha_platforms: - diagnostics - sensor ha_integration_type: hub -ha_quality_scale: silver +ha_quality_scale: platinum --- The **Vodafone Station** {% term integration %} allows you to control your [Vodafone Station](https://www.vodafone.it/privati/area-supporto/assistenza-dispositivi/vodafone-station.html) based router. diff --git a/source/_integrations/worxlandroid.markdown b/source/_integrations/worxlandroid.markdown index c783bbcc32e..febd563960e 100644 --- a/source/_integrations/worxlandroid.markdown +++ b/source/_integrations/worxlandroid.markdown @@ -23,9 +23,9 @@ To use your Worx Landroid mower in your installation, add the following to your ```yaml # Example configuration.yaml entry sensor: - platform: worxlandroid - host: 192.168.0.10 - pin: 1234 + - platform: worxlandroid + host: 192.168.0.10 + pin: 1234 ``` {% configuration %} diff --git a/source/_posts/2025-03-27-motionblinds-joins-wwha.markdown b/source/_posts/2025-03-27-motionblinds-joins-wwha.markdown new file mode 100644 index 00000000000..03d0378b3d1 --- /dev/null +++ b/source/_posts/2025-03-27-motionblinds-joins-wwha.markdown @@ -0,0 +1,51 @@ +--- +layout: post +title: "Motionblinds joins Works with Home Assistant" +description: "We’re plugging a blind spot in our Works with program and opening up some exciting options for our community." +date: 2025-03-27 00:00:01 +date_formatted: "March 27, 2025" +author: Miranda Bishop +comments: true +categories: Announcements +og_image: /images/blog/2025-03-motionblinds/art.jpg +--- + +Motionblinds Matter Bridge (CM-55)