Merge branch 'current' into rc

This commit is contained in:
Franck Nijhof 2024-12-03 18:09:37 +01:00
commit 11a2f66ec6
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
74 changed files with 597 additions and 454 deletions

View File

@ -10,7 +10,7 @@ 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.81.0'
gem 'sass-embedded', '1.81.1'
gem 'rubocop', '1.69.0'
gem 'ruby-lsp', '0.22.1'
gem 'rackup', '2.2.1'
@ -24,7 +24,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '4.1.1'
gem 'nokogiri', '1.16.7'
gem 'nokogiri', '1.16.8'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -76,14 +76,14 @@ GEM
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.1)
logger (1.6.2)
mercenary (0.4.0)
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
nokogiri (1.16.7-arm64-darwin)
nokogiri (1.16.8-arm64-darwin)
racc (~> 1.4)
nokogiri (1.16.7-x86_64-linux)
nokogiri (1.16.8-x86_64-linux)
racc (~> 1.4)
parallel (1.26.3)
parser (3.3.6.0)
@ -110,7 +110,7 @@ GEM
ffi (~> 1.0)
rbs (3.6.1)
logger
regexp_parser (2.9.2)
regexp_parser (2.9.3)
rexml (3.3.9)
rouge (4.5.1)
rubocop (1.69.0)
@ -134,9 +134,9 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.81.0-arm64-darwin)
sass-embedded (1.81.1-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.81.0-x86_64-linux-gnu)
sass-embedded (1.81.1-x86_64-linux-gnu)
google-protobuf (~> 4.28)
sass-globbing (1.1.5)
sass (>= 3.1)
@ -151,7 +151,7 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11670)
sorbet-runtime (0.5.11672)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@ -161,7 +161,7 @@ GEM
tzinfo-data (1.2024.2)
tzinfo (>= 1.0.0)
unicode-display_width (2.6.0)
webrick (1.9.0)
webrick (1.9.1)
PLATFORMS
arm64-darwin-23
@ -174,12 +174,12 @@ DEPENDENCIES
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.19.0)
nokogiri (= 1.16.7)
nokogiri (= 1.16.8)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.69.0)
ruby-lsp (= 0.22.1)
sass-embedded (= 1.81.0)
sass-embedded (= 1.81.1)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.1.1)

224
package-lock.json generated
View File

@ -20,7 +20,7 @@
"remark-lint-prohibited-strings": "^4.0.0",
"remark-lint-unordered-list-marker-style": "^4.0.0",
"remark-stringify": "^11.0.0",
"textlint": "^14.3.0",
"textlint": "^14.4.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"
@ -416,66 +416,66 @@
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.3.0.tgz",
"integrity": "sha512-K1TbF1Kko1XAKCWuFY/TkZO521ZWv2DAHu4JYsqqY/PnqqySHZorjSG78EfYBhkVq1E3ktprlAJmp8GNmpoYWQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz",
"integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/ast-traverse": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.3.0.tgz",
"integrity": "sha512-1YA5M2T+KeIHC0br5FwhkTwuLEUxkf5K5QtXJmXSF0Mf06ZlLfZ44RMlKYD3ElmzG+TmpmFdKIs4FzFSJRtslw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz",
"integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0"
"@textlint/ast-node-types": "^14.4.0"
}
},
"node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/config-loader": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.3.0.tgz",
"integrity": "sha512-z7g3dArU7EhWHHy0lvMDQF+6TWDppvqkXh7J6YRTXnq00ftEC1MbHGfrsZNJF1av6rBJ8r8nquKyCoeYZBz7cw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz",
"integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^14.3.0",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"@textlint/kernel": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.3"
}
},
"node_modules/@textlint/feature-flag": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.3.0.tgz",
"integrity": "sha512-wWKbyHpmwxEEcyoBMd2u6GB5bw7vJ2a68HmBRknUABFL7vvp8JAzf4D/I2cLXgV06OoMbWE+hnV2CInayJiCpA==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz",
"integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.3.0.tgz",
"integrity": "sha512-xbSH4vb1wdjJngHxpfBu65Y+uTZdU/w0b7Hd6TJ7Q5FaZD1pftyUHGisLMN+xX3V56t28e+qAkSBTQ4Mq4UdYQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz",
"integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^5.2.0",
@ -485,40 +485,40 @@
}
},
"node_modules/@textlint/kernel": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.3.0.tgz",
"integrity": "sha512-RLkIJjP+GtrLmjLtAYSCORKF55z5wtw2E9Vb4h3RSQLjzYopQ3s9N1LbUwLJDr8tz0AphtOb6t1efF3d+NIemw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz",
"integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-tester": "^14.3.0",
"@textlint/ast-traverse": "^14.3.0",
"@textlint/feature-flag": "^14.3.0",
"@textlint/source-code-fixer": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-tester": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/source-code-fixer": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"fast-equals": "^4.0.3",
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/linter-formatter": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.3.0.tgz",
"integrity": "sha512-9Rzq0y9Qi6L43To9GIUd1kh/7Pq202qU9nQ15atyK5BlvPFlzJnc98X/hCE1tN+uDriZnxu4v4Vs7+mHFT9VPw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz",
"integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"js-yaml": "^3.14.1",
@ -531,12 +531,12 @@
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.3.0.tgz",
"integrity": "sha512-z4UMKFh3r5KtylPt5OO6su7DScU+fMZ7Qv5LTrJNaOqcmOzFho64Y1I26BJv86f8BC+MUYP0kza5MZGaR2LYQA==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz",
"integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"neotraverse": "^0.6.15",
@ -548,9 +548,9 @@
}
},
"node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/markdown-to-ast/node_modules/bail": {
@ -780,79 +780,79 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.3.0.tgz",
"integrity": "sha512-Adxkx8GSFVPhCZiveTD/u66f5T3W6yIlPUsKi7ZLar7ahYI/D4P/XfA0RNhgMF3xM4uw+vNrer2LcY4KY7cUfw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz",
"integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==",
"dev": true
},
"node_modules/@textlint/resolver": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.3.0.tgz",
"integrity": "sha512-v17n8eUJPNaE9SblemmEnAeIcGHBfn/hEMuZe0iSl3hLyJueDM7zP3GP54FoWyuTIMyQqPt21l6+48+BjJ9tfQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz",
"integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.3.0.tgz",
"integrity": "sha512-KJJoiN1Ha9R6tJrg3KHnYkq0s86D53PUjYxxCYJxo9Q8yTcXx+aXPspvgW+qGD+qcQxjarqbLl6m8uRlbyrg3Q==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz",
"integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==",
"dev": true,
"dependencies": {
"@textlint/types": "^14.3.0",
"@textlint/types": "^14.4.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.3.0.tgz",
"integrity": "sha512-wCjJmpwlff/wPsGaECBbNn0hPfiCnbr4mPJKFE59M3aeISoH3zqITCx9RCVPBYbYHzqTWmHPNLYI7egVIbZgrA==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz",
"integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0"
"@textlint/ast-node-types": "^14.4.0"
}
},
"node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.3.0.tgz",
"integrity": "sha512-0lyYK/SUOgww+sxBtvjjsinHKMvFZUpLKvxCepymGlTyuOTYo7QmjmfhLc5G97PChOpUG41dpQoZt9miohQT1A==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz",
"integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^14.3.0"
"@textlint/markdown-to-ast": "^14.4.0"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.3.0.tgz",
"integrity": "sha512-XpgyWTy2CqoKGuBrEsBJOVJqoXREAB6RFjPaa5bHvdvjwzU+EFqCNR9RXXs3Iov1ip/AaXDz/JeB4IYk6zj8GQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz",
"integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^14.3.0"
"@textlint/text-to-ast": "^14.4.0"
}
},
"node_modules/@textlint/types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.3.0.tgz",
"integrity": "sha512-zvPCQUpK1hOQA6Bg4XLYvKbOvFcQT65Nm25wsDdOGRgOvZbUzA+DJkiaH9Z8DAaJx83tTknIeLl4qwu97Hw1Ew==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz",
"integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0"
"@textlint/ast-node-types": "^14.4.0"
}
},
"node_modules/@textlint/types/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/@textlint/utils": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.3.0.tgz",
"integrity": "sha512-Q7bKiPobKCDXM5z+xByLZzSjcOBhvlDufQGHNgHR8EFie2/AFc68cN8RYCY0MmwCMBMuHuYaOzfIOpQpK9oTcQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz",
"integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -6036,24 +6036,24 @@
"dev": true
},
"node_modules/textlint": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.3.0.tgz",
"integrity": "sha512-oarGVGz7KwRd08QOvNDSffzjEyfS5mnGp7ZAxr799QC0HDBp0VM358WGyxdaboDXav1RlkQ3TWkvOvHBBMXCXw==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz",
"integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-traverse": "^14.3.0",
"@textlint/config-loader": "^14.3.0",
"@textlint/feature-flag": "^14.3.0",
"@textlint/fixer-formatter": "^14.3.0",
"@textlint/kernel": "^14.3.0",
"@textlint/linter-formatter": "^14.3.0",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/textlint-plugin-markdown": "^14.3.0",
"@textlint/textlint-plugin-text": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/config-loader": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/fixer-formatter": "^14.4.0",
"@textlint/kernel": "^14.4.0",
"@textlint/linter-formatter": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/textlint-plugin-markdown": "^14.4.0",
"@textlint/textlint-plugin-text": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"get-stdin": "^5.0.1",
@ -6178,9 +6178,9 @@
}
},
"node_modules/textlint/node_modules/@textlint/ast-node-types": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"dev": true
},
"node_modules/textlint/node_modules/brace-expansion": {

View File

@ -15,7 +15,7 @@
"remark-lint-prohibited-strings": "^4.0.0",
"remark-lint-unordered-list-marker-style": "^4.0.0",
"remark-stringify": "^11.0.0",
"textlint": "^14.3.0",
"textlint": "^14.4.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"

View File

@ -241,6 +241,11 @@ automation:
{% endraw %}
{% note %}
Listing above and below together means the numeric_state has to be between the two values.
In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again.
{% endnote %}
When the `attribute` option is specified the trigger is compared to the given `attribute` instead of the state of the entity.
{% raw %}
@ -288,11 +293,6 @@ automation:
{% endraw %}
{% note %}
Listing above and below together means the numeric_state has to be between the two values.
In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again.
{% endnote %}
Number helpers (`input_number` entities), `number`, `sensor`, and `zone` entities
that contain a numeric value, can be used in the `above` and `below` thresholds.
However, the comparison will only be made when the entity specified in the trigger is updated. This would look like:

View File

@ -11,7 +11,7 @@ All data on the target disk will be overwritten!
{% endcaution %}
{% important %}
The storage ca pacity of the external data disk must be larger than the storage capacity of the existing (boot) disk.
The storage capacity of the external data disk must be larger than the storage capacity of the existing (boot) disk.
{% endimportant %}
{% important %}

View File

@ -49,29 +49,23 @@ The Anthropic API key is used to authenticate requests to the Anthropic API. To
{% include integrations/config_flow.md %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
Instructions:
description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/).
Control Home Assistant:
description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it.
Recommended settings:
description: If enabled, the recommended model and settings are chosen.
{% endconfiguration_basic %}
If you choose not to use the recommended settings, you can configure the following options:
{% configuration_basic %}
Model:
description: The model that will complete your prompt. See [models](https://docs.anthropic.com/en/docs/about-claude/models#model-names) for additional details and options.
Maximum Tokens to Return in Response:
description: The maximum number of tokens to generate before stopping. Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. Different models have different maximum values for this parameter. See [models](https://docs.anthropic.com/en/docs/models-overview) for details.
Temperature:
description: Amount of randomness injected into the response. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. Note that even with `temperature` of `0.0`, the results will not be fully deterministic.
{% endconfiguration_basic %}

View File

@ -66,8 +66,12 @@ If you have a battery connected to your system, you can monitor the battery stat
- Charged energy this month (kWh)
- Charged energy total (kWh)
## Remove integration
## Known limitations
This integration follows standard integration removal, no extra steps are required.
The integration does not show data about your self-sufficiency or CO2 savings.
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -44,16 +44,13 @@ Balboa Spa Client integration is not compatible with ControlMySpa™ cloud API u
{% configuration_basic %}
host:
description: "Hostname or IP address of your Balboa Spa Wifi Device, e.g., `192.168.1.58`."
required: true
type: string
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
sync_time:
description: Sync the Spa's internal clock with Home Assistant daily
type: boolean
default: false
{% endconfiguration_basic %}
## Known limitations

View File

@ -41,12 +41,8 @@ and any other [Mozart](https://support.bang-olufsen.com/hc/en-us/articles/247669
{% configuration_basic %}
IP Address:
description: The IP address of your device. Can be found by navigating to the device on the [Bang & Olufsen app](https://www.bang-olufsen.com/en/dk/story/apps) and selecting `Settings``About``IP address`.
required: true
type: string
Device model:
description: The model name of your Bang & Olufsen device. This is used to determine some capabilities of the device. If the device is not in the list yet, choose a product similar to yours.
required: true
type: string
{% endconfiguration_basic %}
## Data updates
@ -319,8 +315,8 @@ beolink:
The **Bang & Olufsen** integration supports [Home Assistant debug logs and diagnostics](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics).
Where all received WebSocket events are provided through debug logs and the WebSocket connection state, config entry and media player state is provided through diagnostics.
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -46,18 +46,16 @@ use a different protocol and are not currently supported.
{% configuration_basic %}
Host:
description: The IP address of your device can be found by navigating to the device on the [StreamMagic app](https://www.cambridgeaudio.com/usa/en/products/streammagic) and selecting `Settings``IP address`.
required: true
type: string
description: The IP address of your device can be found by navigating to the device on the [StreamMagic app](https://www.cambridgeaudio.com/usa/en/products/streammagic) and selecting `Settings``IP address`.
{% endconfiguration_basic %}
## Data updates
Cambridge Audio devices push data directly to Home Assistant, enabling immediate updates for device state changes, media information, and playback status.
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -21,14 +21,14 @@ ha_integration_type: integration
Support for mDNS discovery in your local network is mandatory for automatic discovery. Make sure that your router has this feature enabled. If mDNS does not work in your network, the IP addresses of the Cast devices can be manually entered in the configuration as mentioned below.
{% include integrations/option_flow.md %}
{% configuration_basic %}
Known hosts:
description: "A comma-separated list of hostnames or IP-addresses of cast devices, use if mDNS discovery is not working"
Allowed UUIDs:
description: A comma-separated list of UUIDs of Cast devices to add to Home Assistant. **Use only if you don't want to add all available devices.** The device won't be added until discovered through either mDNS or if it's included in the list of known hosts. In order to find the UUID for your device use a mDNS browser or advanced users can use the following Python command (adjust friendly names as required) - `python3 -c "import pychromecast; print(pychromecast.get_listed_chromecasts(friendly_names=['Living Room TV', 'Bedroom TV', 'Office Chromecast']))"`. This option is only visible if advanced mode is enabled in your user profile.
Ignore CEC:
description: A comma-separated list of Chromecasts that should ignore CEC data for determining the
active input. [See the upstream documentation for more information](https://github.com/home-assistant-libs/pychromecast#ignoring-cec-data). This option is only visible if advanced mode is enabled in your user profile.
description: A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information](https://github.com/home-assistant-libs/pychromecast#ignoring-cec-data). This option is only visible if advanced mode is enabled in your user profile.
{% endconfiguration_basic %}
## Home Assistant Cast

View File

@ -17,7 +17,7 @@ related:
ha_quality_scale: legacy
---
The `cisco_webex_teams` notification platform allows you to deliver rich notifications from Home Assistant to [Cisco Webex Teams](https://www.webex.com/team-collaboration.html) (formerly known as Cisco Spark or Cisco Webex Teams).
The `cisco_webex_teams` notification platform allows you to deliver rich notifications from Home Assistant to [Cisco Webex](https://www.webex.com/suite/messaging.html) (formerly known as Cisco Spark or Cisco Webex Teams).
To use this notification platform you will need an app (bot) token. To obtain a token visit [Cisco Webex for Developers](https://developer.webex.com/).
@ -26,7 +26,7 @@ To use this notification platform you will need an app (bot) token. To obtain a
You also need to specify the `room_id` that you wish to post messages into. The `room_id` can be found in one of two ways:
1. Logging in at [Cisco Webex for Developers](https://developer.webex.com/) and navigate to `Documentation`>`API Reference`>`Messages` and select List Messages, or
2. Log into the web client at [teams.webex.com](https://teams.webex.com/),
2. Log into the web client at [web.webex.com](https://web.webex.com/),
- select the room (or create a new room),
- then copying the room ID from the URL.
3. Within the Webex Client, press Control+Shift+K (Windows) or Command+Shift+K (macOS), which will automatically copy the space information to your clipboard, which you

View File

@ -134,14 +134,8 @@ zone3:
description: Specifies if zone 3 should be activated. Zones are displayed as additional media players with the same functionality as the Main Zone of the device supports. Some receivers do not support a second zone.
update_audyssey:
description: Specifies if Audyssey settings should be updated. This can take up to 10 seconds for some receivers.
required: false
default: false
type: boolean
use_telnet:
description: Specifies if a telnet connection should be used to receive device status updates. Using telnet provides realtime updates (local push) for many values but each receiver is limited to a single connection. If you enable this setting, no other connection to your device can be made via telnet. This will be set to true for new installations of the integration but false for existing installs to prevent compatibility issues.
required: false
default: true
type: boolean
{% endconfiguration_basic %}
A few notes:

View File

@ -29,7 +29,7 @@ ha_zeroconf: true
ha_integration_type: device
---
The **devolo Home Network** {% term integration %} integration allows you to monitor and control your [devolo](https://www.devolo.global) PLC network.
The **devolo Home Network** {% term integration %} allows you to monitor and control your [devolo](https://www.devolo.global) PLC network. Depending on the device you add to Home Assistant, different use cases are possible. Roughly you can categorize the devices into Wi-Fi and non-Wi-Fi devices. Non-Wi-Fi devices are more or less limited in monitoring your PLC network. The Wi-Fi devices, however, can help with presence detection and remote control of your guest Wi-Fi. For details, please continue reading about the [entities](#entities) and look at the [supported devices](#supported-devolo-devices).
{% include integrations/config_flow.md %}
@ -38,9 +38,9 @@ IP address:
description: "IP address of your devolo Home Network device. This can be found in the devolo Home Network App on the device dashboard."
{% endconfiguration_basic %}
## Device types
## Entities
Currently the following device types within Home Assistant are supported.
Currently, the following entities within Home Assistant are supported.
### Binary sensors
@ -131,8 +131,8 @@ This integration only supports using the API the devolo Home Network App uses. T
The devolo Gigabridge is the only device that comes with a default password. However, it seems that in factory default the password works for the device website but not for the API. If you give the device a new password via the website, it is applied to both and the integration starts working. Even using the same password again works.
## Removal
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -62,17 +62,11 @@ If you still want to use the predefined user, please note that as of FRITZ!OS 7.
{% configuration_basic %}
Host:
description: "The hostname or IP address of your FRITZ!Box router."
required: true
type: string
description: "The hostname or IP address of your FRITZ!Box router."
Username:
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
required: true
type: string
description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
Password:
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
required: true
type: string
description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)"
{% endconfiguration_basic %}
## Data fetching and limitations

View File

@ -159,8 +159,8 @@ target:
device_id: a674c90eca95eca91f6020415de07713
```
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -31,9 +31,9 @@ To setup the integration you need the following information:
{% configuration_basic %}
Email:
description: "The email address used to access the FYTA account."
description: "The email address used to access the FYTA account."
Password:
description: "The password used to access the FYTA account."
description: "The password used to access the FYTA account."
{% endconfiguration_basic %}
## Configuration options

View File

@ -46,7 +46,7 @@ Some parking garages don't have long-term parking spaces, in which case the 2 sp
Each parking garage also has a binary sensor, which indicates whether there are problems in the data provision from the API. When it indicates `ok` everything is fine. If the state changes to `problem`, the upstream data might not be up to date or reliable and will remain in this state until new data is coming in.
## Remove integration
## Removing the integration
You can remove each parking garage instance by following the default removal process.

View File

@ -44,41 +44,31 @@ On the same page, you can see your plan: *free of charge* if the associated Goog
Comparison of the plans is available [at this pricing page](https://ai.google.dev/pricing). The major differences include: the free of charge plan is rate limited, free prompts/responses are used for product improvement, and the free plan is not available in all [regions](https://ai.google.dev/gemini-api/docs/available-regions).
{% include integrations/option_flow.md %}
{% configuration_basic %}
{% configuration_basic %}
Instructions:
description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/).
Control Home Assistant:
description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it.
Recommended settings:
description: If enabled, the recommended model and settings are chosen.
{% endconfiguration_basic %}
If you choose to not use the recommended settings, you can configure the following options:
{% configuration_basic %}
Model:
description: Model used to generate response.
Temperature:
description: Creativity allowed in the responses. Higher values produce a more random and varied response. A temperature of zero will be deterministic.
Top P:
description: Probability threshold for top-p sampling.
Top K:
description: Number of top-scored tokens to consider during generation.
Maximum Tokens to Return in Response:
description: The maximum number of words or "tokens" that the AI model should generate.
Safety settings:
description: Thresholds for different [harmful categories](https://ai.google.dev/gemini-api/docs/safety-settings).
{% endconfiguration_basic %}
## Talking to Super Mario

View File

@ -55,9 +55,9 @@ The Habitica integration lets you automate task management, such as creating to-
{% configuration_basic %}
"Email or username":
description: "Email or username (case-sensitive) to connect Home Assistant to your Habitica account"
description: "Email or username (case-sensitive) to connect Home Assistant to your Habitica account"
Password:
description: "Password for the account to connect Home Assistant to Habitica"
description: "Password for the account to connect Home Assistant to Habitica"
{% endconfiguration_basic %}
### Advanced configuration
@ -66,11 +66,11 @@ If you choose "**Login to other instances**" you will be presented the following
{% configuration_basic %}
"User ID":
description: "User ID of your Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
description: "User ID of your Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
API Token:
description: "API Token of the Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
description: "API Token of the Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
URL:
description: "URL of the Habitica installation to connect to. Defaults to `https://habitica.com` (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
description: "URL of the Habitica installation to connect to. Defaults to `https://habitica.com` (*see [prerequisites](#prerequisites-for-habitica-integration)*)"
Verify SSL certificate:
description: Enable SSL certificate verification for secure connections. Disable only if connecting to a Habitica instance using a self-signed certificate
{% endconfiguration_basic %}

View File

@ -45,7 +45,7 @@ You have to enable the local API to allow Home Assistant to communicate with you
{% configuration_basic %}
IP address:
description: "The IP address of your device. You can find it in your router."
description: "The IP address of your device. You can find it in your router."
{% endconfiguration_basic %}
## Sensors

View File

@ -78,11 +78,11 @@ Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://hom
{% configuration_basic %}
Name:
description: "Enter the name for the provided credentials. You can choose your favorite name."
description: "Enter the name for the provided credentials. You can choose your favorite name."
OAuth Client ID:
description: "Enter the Application key from your Husqvarna developer application."
description: "Enter the Application key from your Husqvarna developer application."
OAuth Client Secret:
description: "Enter the Application secret from your Husqvarna developer application."
description: "Enter the Application secret from your Husqvarna developer application."
{% endconfiguration_basic %}
## Troubleshooting

View File

@ -44,8 +44,6 @@ This integration provides two buttons to connect and disconnect to/from the desk
## Sensors
{% configuration_basic %}
Height:
description: The current height of the desk, in meters.
{% endconfiguration_basic %}

View File

@ -87,20 +87,12 @@ You can use **Developer Tools** to test your [Webhooks](https://ifttt.com/maker_
{% configuration_basic %}
event:
description: The name of the event to send.
required: true
type: string
value1:
description: Generic field to send data via the event.
required: false
type: string
value2:
description: Generic field to send data via the event.
required: false
type: string
value3:
description: Generic field to send data via the event.
required: false
type: string
{% endconfiguration_basic %}
When your screen looks like this, select the **Perform action** button.

View File

@ -130,7 +130,6 @@ initial:
description: Returns `True` if this is the initial event for the last message received. When a message within the search scope is removed and the last message received has not been changed, then an `imap_content` event is generated and the `initial` property is set to `False`. Note that if no `Message-ID` header was set on the triggering email, the `initial` property will always be set to `True`.
uid:
description: Latest `uid` of the message.
{% endconfiguration_basic %}
The `event_type` for the custom event should be set to `imap_content`. The configuration below shows how you can use the event data in a template `sensor`.

View File

@ -40,8 +40,7 @@ Metric prefix:
Integration time:
description: SI unit of time to integrate over.
Max sub-interval:
description: Applies time-based integration if the source did not change for this duration. This implies that at least every `max sub-interval`, the integral is updated. If you don't want time-based updates, enter 0.
description: Applies time-based integration if the source did not change for this duration. This implies that at least every `max sub-interval`, the integral is updated. If you don't want time-based updates, enter `0`.
{% endconfiguration_basic %}

View File

@ -43,10 +43,10 @@ The integration currently supports only the German EcoTrend service.
{% include integrations/config_flow.md %}
{% configuration_basic %}
"Email":
description: "Enter the email address associated with your ista EcoTrend account to connect it to Home Assistant."
Email:
description: "Enter the email address associated with your ista EcoTrend account to connect it to Home Assistant."
Password:
description: "Enter the password for your ista EcoTrend account to enable the connection with Home Assistant."
description: "Enter the password for your ista EcoTrend account to enable the connection with Home Assistant."
{% endconfiguration_basic %}
## Sensors

View File

@ -64,5 +64,4 @@ Password:
{% configuration_basic %}
Audio Codec:
description: Sets the audio encoding codec to a Jellyfin API supported codec (aac, mp3, vorbis, wma)
required: false
{% endconfiguration_basic %}

View File

@ -53,9 +53,10 @@ The integration will automatically discover devices once the [Bluetooth](/integr
Due to the device going into deep sleep after extended periods of no activity, the response time can be up to a minute in extreme cases. On average it will be much quicker.
{% configuration_basic %}
"Failed to pair":
description: Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial.
"No unconfigured devices found":
description: Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial.
{% endconfiguration_basic %}
{% details "Failed to pair" %}
Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial.
{% enddetails %}
{% details "No unconfigured devices found" %}
Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial.
{% enddetails %}

View File

@ -47,16 +47,10 @@ By default, this integration will query your machine every 30 seconds for an upd
{% configuration_basic %}
Username:
description: "Your username you use to log into the La Marzocco app."
required: true
type: string
Password:
description: "Password you use to log into the La Marzocco app."
required: true
type: string
Host:
description: "IP address of your machine in your local network. If not set, no local connections will be used."
required: false
type: boolean
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}
@ -68,77 +62,81 @@ Use Bluetooth:
# Available platforms & entities
{% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} = La Marzocco Cloud
<iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> = Bluetooth
{% icon "material-symbols:wifi" title="Local connection" %} = Local network
## Buttons
| Button name | Description | Available for machines |
|-------------|-------------| ---------------------- |
| Start backflush | Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation. | all |
| Button name | Description | Available for machines | Controllable through |
|-------------|-------------| ---------------------- | -------------------- |
| **Start backflush** | Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
## Numbers
| Number name | Description | Available for machines | Remarks |
|-------------|-------------| ---------------------- | ------- |
| Coffee target temperature | Temperature the coffee boiler is set to | GS3 AV, GS3 MP | - |
| Steam target temperature | Temperature the steam boiler is set to | GS3 AV, GS3 MP | - |
| Tea water duration | Dose hot water (in seconds) | GS3 AV, GS3 MP | - |
| Dose | Doseage (in ticks) for each key | GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| Prebrew on time | Time prebrew wets the puck | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| Prebrew off time | Time prebrew waits before turning on the pump | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| Preinfusion time | Duration of preinfusion | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| Smart standby time | Time until the machine will automatically stand by (if enabled) | all | - |
| Number name | Description | Available for machines | Controllable through | Remarks |
|-------------|-------------| ---------------------- |--------------------- | ------- |
| **Coffee target temperature** | Temperature the coffee boiler is set to | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} <iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> | - |
| **Steam target temperature** | Temperature the steam boiler is set to | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} <iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> | - |
| **Tea water duration** | Dose hot water (in seconds) | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Dose** | Doseage (in ticks) for each key | `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| **Prebrew on time** | Time prebrew wets the puck | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| **Prebrew off time** | Time prebrew waits before turning on the pump | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| **Preinfusion time** | Duration of preinfusion | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default |
| **Smart standby time** | Time until the machine will automatically stand by (if enabled) | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
## Switches
| Switch name | Description | Available for machines |
|-------------|-------------| ---------------------- |
| Main | Allows to turn machines on-/off | all |
| Steam boiler | Allows to enable/disable the steam boiler | all |
| Smart standby enabled | Whether smart standby is on (machine will automatically stand by after given time) | all |
| Switch name | Description | Available for machines | Controllable through |
|-------------|-------------| ---------------------- | -------------------- |
| **Main** | Allows to turn machines on-/off | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} <iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> |
| **Steam boiler** | Allows to enable/disable the steam boiler | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} <iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> |
| **Smart standby enabled** | Whether smart standby is on (machine will automatically stand by after given time) | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
## Binary sensors
| Binary sensor name | Description | Available for machines | Remarks |
|-------------|-------------| ---------------------- | ------- |
| Water tank empty | Indicates whether the water tank needs a refill. | all | - |
| Brewing active | Is on if you are in the process of making coffee. | all | Only available when the *Host* was set during component configuration. |
| Backflush enabled | Is on if you started the backflushing process. | all | - |
| Binary sensor name | Description | Available for machines | Retrievable from | Remarks |
|------------------- |-------------| ---------------------- | ----------------- | ------- |
| **Water tank empty** | Indicates whether the water tank needs a refill. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - |
| **Brewing active** | Is on if you are in the process of making coffee. | `all` | {% icon "material-symbols:wifi" title="Local connection" %} | Only available when the `Host` was set during component configuration. |
| **Backflush enabled** | Is on if you started the backflushing process. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - |
## Sensors
| Sensor name | Description | Available for machines | Remarks |
|-------------|-------------| ---------------------- | ------- |
| Current coffee temperature | Current temperature of the coffee boiler | all | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. |
| Current steam temperature| Current temperature of the steam boiler | Linea Micra, GS3 AV, GS3 MP | - |
| Total coffees made | Counter for total coffees made| all | - |
| Total flushes made | Counter for total flushes done | all | - |
| Shot timer | Time the current brew is running | all | Only available when the *Host* was set during component configuration. |
| Sensor name | Description | Available for machines | Retrievable from | Remarks |
|-------------|-------------| ---------------------- | ---------------- | ------- |
| **Current coffee temperature** | Current temperature of the coffee boiler | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. |
| **Current steam temperature**| Current temperature of the steam boiler | `Linea Micra`, `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - |
| **Total coffees made** | Counter for total coffees made| `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - |
| **Total flushes made** | Counter for total flushes done | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %}| - |
| **Shot timer** | Time the current brew is running | `all` | {% icon "material-symbols:wifi" title="Local connection" %} | Only available when the `Host` was set during component configuration. |
## Updates
| Update name | Description | Available for machines |
|-------------|-------------| ---------------------- |
| Gateway firmware | Firmware status of the gateway | all |
| Machine firmware | Firmware status of the machine | all |
| Update name | Description | Available for machines | Retrievable from |
|-------------|-------------| ---------------------- |---------------- |
| **Gateway firmware** | Firmware status of the gateway | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
| **Machine firmware** | Firmware status of the machine | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
## Selects
| Select name | Description | Options | Available for machines |
|-------------|-------------| ------------------------| ---------------------- |
| Prebrew/-infusion mode | Whether to use prebrew, preinfusion, or neither | Disabled, Prebrew, Preinfusion | Linea Micra, Linea Mini, GS3 AV |
| Steam level | The level your steam boiler should run at | 1,2,3 | Linea Micra |
| Smart standby mode | The smart standby mode, that decides from which events the timer to standby will run. | Last brewing, Power on | all |
| Select name | Description | Options | Available for machines | Controllable through |
|-------------|-------------| --------| ---------------------- | -------------------- |
| **Prebrew/-infusion mode** | Whether to use prebrew, preinfusion, or neither | `Disabled`, `Prebrew`, `Preinfusion` | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
| **Steam level** | The level your steam boiler should run at | `1`,`2`,`3` | `Linea Micra` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} <iconify-icon inline title="Bluetooth" icon="material-symbols:bluetooth"></iconify-icon> |
| **Smart standby mode** | The smart standby mode, that decides from which events the timer to standby will run. | `Last brewing`, `Power on` | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} |
## Supported devices
Currently, only devices from the **"Home"** range are supported:
- Linea Mini
- Linea Mini R
- Linea Micra
- GS3 AV
- GS3 MP
- `Linea Mini`
- `Linea Mini R`
- `Linea Micra`
- `GS3 AV`
- `GS3 MP`
## Possible use-cases
@ -187,9 +185,9 @@ mode: single
- Only La Marzocco native app accounts are supported, social logins (Google, Apple & WeChat) are not supported
- Currently it is only possible to view the schedules configured in the La Marzocco Home app, but not to edit the schedules from Home Assistant. You can, of course, build Home Assistant native automations to reflect the same functionality in Home Assistant.
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -40,8 +40,6 @@ Your code will expire within 60 minutes after activation. Make sure to configure
{% include integrations/config_flow.md %}
{% configuration_basic %}
code:
Code:
description: "Auth Code that can be obtained in the laundrify App (see above), e.g., `123-456`."
required: true
type: string
{% endconfiguration_basic %}

View File

@ -115,7 +115,7 @@ For more on how to use notifications in your automations, please see the [gettin
The integration only allows reading the status of the authenticated account and posting to that account. It does not provide functionality to get the stream, favorite, bookmark, or boost posts of that account.
## Remove integration
## Removing the integration
This integration follows standard integration removal, once the integration is removed you can remove the application registration (assuming it was only used by this integration) from your Mastodon account by going to **Preferences** in the Mastodon web interface, then to **Development** and deleting the application you created for Home Assistant.

View File

@ -164,7 +164,7 @@ template:
{% enddetails %}
## Remove integration
## Removing the integration
This integration follows standard integration removal, once the integration is removed you can remove the API token (assuming it was only used by this integration) by going to your Account in the Mealie web interface, then to **Manage Your API Tokens** and deleting the token you created for Home Assistant.

View File

@ -24,6 +24,7 @@ The sensor provided by this integration will always show you the lowest/highest/
If the source sensor provides an unknown state, it will be ignored in the calculation except for sum where it will set the state to unknown. If the unit of measurement of the sensors differs, the Min/Max sensor will go to an error state where the value is `UNKNOWN` and unit of measurement is `ERR`.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Name:
description: The name the sensor should have. You can change it again later.

View File

@ -27,24 +27,14 @@ and visualization of multiple types of cameras.
{% configuration_basic %}
url:
description: The URL of the motionEye server itself -- **not** the URL for the camera stream(s) that it makes available.
required: true
type: string
admin_username:
description: The username of the motionEye administrative account, used for changing camera settings.
required: true
type: string
admin_password:
description: The password of the motionEye administrative account.
required: true
type: string
surveillance_username:
description: The username of the motionEye surveillance user, used to authenticate video streams.
required: true
type: string
surveillance_password:
description: The password of the motionEye surveillance account.
required: true
type: string
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}

View File

@ -26,18 +26,22 @@ ha_platforms:
ha_integration_type: integration
---
The myUplink integration lets you get information about the devices supporting myUplink using the [official cloud API](https://dev.myuplink.com).
The **myUplink** {% term integration %} lets you get information about and control heat-pump devices supporting myUplink using the [official cloud API](https://dev.myuplink.com).
Depending on the type of devices in your system, one or more entities are added to Home Assistant. Currently, there is support for reading sensor states. There is also support for switch, select and number entities if suitable data points are discovered in the system. Note that you may need a valid subscription with MyUplink to control your equipment with switch, select, and number entities.
The integration will connect to your account and download all available data from the API. The downloaded information will be used to create devices and entities in Home Assistant. There can be from a few entities up to many hundreds depending on the type of equipment. The integration will make the best effort to map the data-points in the API to sensors, switches, number, and select entities.
{% note %}
You may need a valid subscription with myUplink to control your equipment with switch, select, and number entities.
{% endnote %}
## Prerequisites
1. Visit [https://myuplink.com/register](https://myuplink.com/register) and sign up for a user account.
2. Go to [**Applications**](https://dev.myuplink.com/apps), and register a new App:
- **Application ID**: Home Assistant (or whatever name makes sense to you)
- **OAuth Flow**: Authorization Code Grant Flow
- **Redirect URI**: `https://my.home-assistant.io/redirect/oauth`
- **Application Name**: Home Assistant (or whatever name makes sense to you)
- **Description**: A brief description of how you'll use this application (e.g., "Home Assistant integration for controlling my heat pump")
- **Callback URL**: `https://my.home-assistant.io/redirect/oauth`
{% details "I have manually disabled My Home Assistant" %}
@ -55,3 +59,24 @@ Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://hom
{% include integrations/config_flow.md %}
The integration configuration will require the **Client ID** and **Client Secret** created above. See [Application Credentials](/integrations/application_credentials) for more details.
## Data updates
The integration will poll the API for data every 60 seconds. This polling interval is designed to work within the rate limits of myUplink APIs while providing timely updates.
## Known limitations
- The integration makes the best effort to map data-points from the API to relevant entities in Home Assistant. However, some sensors may not appear for certain heat-pump models, or in other cases, numerous irrelevant entities might be created. Please create an issue on GitHub and include a diagnostic download file from your installation if you believe that the mapping can be improved.
- Entity names are available in English and cannot be automatically translated by Home Assistant. The reason is that the names are defined by the API and can be changed by updates of the API or the firmware in the appliance. However, most entity names are self-explanatory, e.g., "Room temperature (BT50)".
## Troubleshooting
{% details "Can't log in to myUplink API" %}
Make sure that you have entered the application credentials correctly. A common problem is that leading or trailing spaces are included in the entered credential strings. You may have to delete the application credentials from Home Assistant and install the integration again to get everything right.
{% enddetails %}
## Removing the integration
After removing the integration, go to the myUplink [developer site](https://dev.myuplink.com/apps) and remove the credentials unless you will use them again.
{% include integrations/remove_device_service.md %}

View File

@ -29,12 +29,14 @@ Attached devices are only tracked on NETGEAR devices set to the router mode, oth
{% include integrations/config_flow.md %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
Consider_home:
description: "The consider home time is the number of seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. This option helps prevent false alarms in presence detection."
{% endconfiguration_basic %}
## Router entities
The NETGEAR router will have the following entities.
Note that not all routers support all features, if a router does not support a feature, the corresponding entity will have the unavailable status even when the entity is disabled.

View File

@ -32,21 +32,12 @@ An example of how the Nmap scanner can be customized:
{% configuration_basic %}
Network addresses to scan:
description: Network range to scan using [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). In the example above it will scan addresses from `192.168.1.1` to `192.168.1.254`.
required: true
type: string
Minimum number of minutes between scans of active devices:
description: Frequency of the scans. The lower the number, the quicker it will detect devices connected and disconnected usually at the cost of the devices battery life. The example above will scan every minute.
required: true
type: integer
Network addresses to exclude from scanning:
description: A comma-separated list of IP addresses not to scan. The above example will skip `192.168.1.8`.
required: false
type: string
Raw configurable scan options for Nmap:
description: Nmap command line parameters which can be used to configure how Nmap scans the network. For more details see [Nmap reference guide](https://nmap.org/book/man.html).
required: false
type: string
default: -F T4 --min-rate 10 --host-timeout 5s
{% endconfiguration_basic %}
See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked.

View File

@ -29,14 +29,14 @@ For faster updates, the callback function of the Nuki bridge can be used. This r
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: Hostname or IP address of your Nuki bridge, e.g., `192.168.1.25`.
Port:
description: Port of the Nuki bridge HTTP API, default is `8080`.
Token:
description: Token to authenticate against the Nuki bridge HTTP API.
Use an encrypted token for authentication:
description: Use an encrypted token for API calls to the bridge. This should only be deactivated if you experience issues with the API (authentication, etc). The default is `True`.
Host:
description: Hostname or IP address of your Nuki bridge, e.g., `192.168.1.25`.
Port:
description: Port of the Nuki bridge HTTP API, default is `8080`.
Token:
description: Token to authenticate against the Nuki bridge HTTP API.
Use an encrypted token for authentication:
description: Use an encrypted token for API calls to the bridge. This should only be deactivated if you experience issues with the API (authentication, etc). The default is `True`.
{% endconfiguration_basic %}
## Actions

View File

@ -29,35 +29,20 @@ ha_integration_type: integration
{% configuration_basic %}
username:
description: Username for the server.
required: true
type: string
host:
description: Address of the server, e.g., 192.168.1.32.
required: true
type: string
description: Address of the server, e.g., `192.168.1.32`.
port:
description: Port of the server.
required: false
type: string
default: 80
path:
description: URL path of the server
required: false
type: string
default: /
ssl:
description: Whether to use SSL or not when communicating.
required: false
type: boolean
default: false
verify ssl:
description: Should the SSL certificate be validated.
required: false
type: boolean
default: false
{% endconfiguration_basic %}
### API key
For the integration to work, please check that in Octoprint, the [Discovery Plugin](https://docs.octoprint.org/en/master/bundledplugins/discovery.html) is enabled and in the **Settings** -> **Printer Notifications** menu that **Enable popups** is checked.
The Octoprint integration will attempt to register itself via the [Application Keys Plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, log in to Octoprint as the user whose credentials you just entered in Home Assistant, and select **Allow** on the prompt.

View File

@ -32,27 +32,22 @@ This integration requires an external Ollama server, which is available for macO
{% include integrations/config_flow.md %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
URL:
description: The URL of the external Ollama server, such as `http://localhost:11434`.
Model:
description: Name of the [Ollama model](https://ollama.com/library) to use, such as `mistral` or `llama2:13b`. Models will be automatically downloaded during setup.
Instructions:
description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/).
Control Home Assistant:
description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. This feature is considered experimental and see [Controlling Home Assistant](#controlling-home-assistant) below for details on model limitations.
Context window size:
description: "The context window size is the number of tokens the model can take as input. Home Assistant defaults to 8k, which is larger than the default value in Ollama Server (2k), and you may adjust it based on the maximum context size of the specific model used. A larger value will better support larger homes with more entities, and smaller values may lower Ollama server RAM usage."
Max history messages:
description: Maximum number of messages to keep for each conversation (0 = no limit). Limiting this value will cause older messages in a conversation to be dropped.
Keep alive:
description: Duration in seconds for the Ollama host to keep the model in memory after receiving a message (-1 = no limit, 0 = no retention). Default value is -1.
{% endconfiguration_basic %}
## Controlling Home Assistant

View File

@ -133,8 +133,8 @@ UPDATE states SET entity_id='sensor.<sensor_name>_humidity' WHERE entity_id LIKE
Remember to replace `<sensor_name>` with the actual name of the sensor, as seen in the `SELECT` query.
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -25,13 +25,10 @@ Please be aware that you need to enable "Network Standby" for this integration t
{% configuration_basic %}
Host:
description: Hostname or IP address of the device, for example:`192.168.1.2`.
type: string
Volume Resolution:
description: Number of steps it takes for the receiver to go from the lowest to the highest possible volume. Possible values are 50, 80, 100, 200. For older Onkyo receivers, this typically is 80; newer Onkyo receivers use 200.
type: integer
Input sources:
description: List of input sources supported by the receiver.
type: list
{% endconfiguration_basic %}
The above settings can also be adjusted later. To do this, click the three-dot menu on the integration entry and select **Reconfigure**.
@ -41,11 +38,8 @@ The above settings can also be adjusted later. To do this, click the three-dot m
{% configuration_basic %}
Max Volume:
description: Maximum volume limit as a percentage. Often the maximum volume of the receiver is far too loud. Setting this will set Home Assistant's 100% volume to be this setting on the amp, i.e., if you set this to 50%, when you set Home Assistant to be 100%, then your receiver will be set to 50% of its maximum volume.
default: 100
type: integer
Input sources:
description: Mappings of input sources to their names.
type: list
{% endconfiguration_basic %}
### Zones

View File

@ -43,34 +43,27 @@ The OpenAI key is used to authenticate requests to the OpenAI API. To generate a
- Visit the [API Keys page](https://platform.openai.com/account/api-keys) to retrieve the API key you'll use to configure the integration.
{% include integrations/option_flow.md %}
{% configuration_basic %}
Instructions:
description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/).
Control Home Assistant:
description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it.
Recommended settings:
description: If enabled, the recommended model and settings are chosen.
{% endconfiguration_basic %}
If you choose to not use the recommended settings, you can configure the following options:
{% configuration_basic %}
Model:
description: The GPT language model is used for text generation. You can find more details on the available models in the [OpenAI GPT-3.5 Turbo Documentation](https://platform.openai.com/docs/models/gpt-3-5-turbo), [OpenAI GPT-4 Turbo and GPT-4 Documentation](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4), or [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o".
Maximum Tokens to Return in Response:
description: The maximum number of words or "tokens" that the AI model should generate in its completion of the prompt. For more information, see the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction).
Temperature:
description: A value that determines the level of creativity and risk-taking the model should use when generating text. A higher temperature means the model is more likely to generate unexpected results, while a lower temperature results in more deterministic results. See the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction) for more information.
Top P:
description: An alternative to temperature, top_p determines the proportion of the most likely word choices the model should consider when generating text. A higher top_p means the model will only consider the most likely words, while a lower top_p means a wider range of words, including less likely ones, will be considered. For more information, see the [OpenAI Completion API Reference](https://platform.openai.com/docs/api-reference/completions/create#completions/create-top_p).
{% endconfiguration_basic %}
## Talking to Super Mario over the phone

View File

@ -79,8 +79,8 @@ You can use the rates set in P1 Monitor for your calculations in Home Assistant.
- Energy Consumption Price Low/High
- Energy Production Price Low/High
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -30,18 +30,18 @@ Select the area, where you want to search for available water measuring stations
{% configuration_basic %}
Latitude:
description: "The latitude of the center of the search area (_automatically filled by the location picker_)."
description: "The latitude of the center of the search area (_automatically filled by the location picker_)."
Longitude:
description: "The longitude of the center of the search area (_automatically filled by the location picker_)."
description: "The longitude of the center of the search area (_automatically filled by the location picker_)."
Radius:
description: "Search radius (_in km_)"
description: "Search radius (_in km_)"
{% endconfiguration_basic %}
### Step 2 - Station selection
{% configuration_basic %}
Station:
description: "Select the measurement station you want to add."
description: "Select the measurement station you want to add."
{% endconfiguration_basic %}
## Sensors

View File

@ -58,6 +58,22 @@ For example, if you have an Adam setup with a Lisa named 'Living' and a Tom name
Under each device there will be entities shown like binary_sensors, sensors, etc. depending on the capabilities of the device: for instance centralized measurements such as 'power' for a P1, 'outdoor_temperature' on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as 'boiler_temperature' will be assigned to the OpenTherm/OnOff device.
## Data updates
The interval which the integration fetches data from the Smile depends on the device:
- Power entities, such as the P1, will be refreshed every 10 seconds.
- Climate entities will be refreshed every 60 seconds.
- Stretch entities will be refreshed every 60 seconds.
## Removing the integration
This integration follows standard integration removal. No extra steps are required within Home Assistant or on your Plugwise devices.
{% include integrations/remove_device_service.md %}
This will also remove all connected Adam devices (such as Anna, Tom or Lisa) or connected Adam/Stretch plugs.
## Configuration
The Plugwise Smile(s) present in your network will be automatically detected via Zeroconf discovery and will be shown on the Integrations-page. To set up an integration, click the "CONFIGURATION" button on the discovered integration and you will be presented with a dialog requesting your Smile password. After you click submit, you will have the opportunity to select the area(s) where individual Smile appliances are located. The username `smile` is shown as a default, when configuring your Stretch change this to `stretch` accordingly.

View File

@ -49,11 +49,7 @@ In some cases the access token may not be available right away, then you will se
{% configuration_basic %}
host:
description: "Hostname or IP address of the device."
required: true
type: string
description: Hostname or IP address of the device.
access_token:
description: "Access Token that can be obtained in the Rabbit Air app."
required: true
type: string
description: Access Token that can be obtained in the Rabbit Air app.
{% endconfiguration_basic %}

View File

@ -48,10 +48,9 @@ irrigations schedules on a calendar.
{% configuration_basic %}
Host:
description: "The IP address of your Rain Bird device. You can find the IP address under the
device in the Rain Bird app under **Controller Settings** -> **Network Info**."
description: "The IP address of your Rain Bird device. You can find the IP address under the device in the Rain Bird app under **Controller Settings** -> **Network Info**."
Password:
description: "The password used to authenticate the Rain Bird device."
description: "The password used to authenticate the Rain Bird device."
{% endconfiguration_basic %}
## Configuration options

View File

@ -37,13 +37,13 @@ This integration provides the following platforms:
{% configuration_basic %}
Locale:
description: "The country code (e.g., 'fr_FR', 'en_GB') used to connect to the Renault servers. This should match your MyRenault account's locale setting."
description: "The country code (e.g., `fr_FR`, `en_GB`) used to connect to the Renault servers. This should match your MyRenault account's locale setting."
Username:
description: "The username used to connect to the Renault servers."
description: "The username used to connect to the Renault servers."
Password:
description: "The password used to connect to the Renault servers."
description: "The password used to connect to the Renault servers."
Kamereon account id:
description: "The Kamereon account ID that your vehicles are assigned to. If there is only one account available it will be automatically selected."
description: "The Kamereon account ID that your vehicles are assigned to. If there is only one account available it will be automatically selected."
{% endconfiguration_basic %}
All vehicles linked to the account should then get added as devices, with sensors added as linked entity.
@ -132,8 +132,8 @@ Notes:
duration: 15
```
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -43,22 +43,18 @@ A brand new Reolink camera needs to be connected to the network and initialized.
- The password used for the Reolink device can only contain characters `a-z, A-Z, 0-9 or @$*~_-+=!?.,:;'()[]`. Other special characters will cause encoding issues in the video streams used by this integration and are, therefore, not allowed. When using an incompatible special character in the password, the integration will prompt you to change the password.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The hostname or IP address of your Reolink device. For example: '192.168.1.25'. You can find it in your router or in the Reolink app under **Settings** -> **Device** (top icon) -> **Networkinformation** -> **IP-address**. Normally, the Reolink device is automatically discovered, and you do not need to provide this."
required: false
type: string
description: "The hostname or IP address of your Reolink device. For example: '192.168.1.25'. You can find it in your router or in the Reolink app under **Settings** -> **Device** (top icon) -> **Networkinformation** -> **IP-address**. Normally, the Reolink device is automatically discovered, and you do not need to provide this."
Username:
description: "Username to log in to the Reolink device itself. Not the Reolink cloud account."
required: true
type: string
description: "Username to log in to the Reolink device itself. Not the Reolink cloud account."
Password:
description: "Password to log in to the Reolink device itself. Not the Reolink cloud account."
required: true
type: string
description: "Password to log in to the Reolink device itself. Not the Reolink cloud account."
{% endconfiguration_basic %}
{% include integrations/option_flow.md %}
{% configuration_basic %}
Protocol:
description: Switch between <abbr title="real-time streaming protocol">RTSP</abbr>, <abbr title="real-time messaging protocol">RTMP</abbr>, or <abbr title="flash video">FLV</abbr> streaming protocol. <abbr title="real-time streaming protocol">RTSP</abbr> supports 4K streams (h265 encoding) while <abbr title="real-time messaging protocol">RTMP</abbr> and <abbr title="flash video">FLV</abbr> do not. <abbr title="flash video">FLV</abbr> is the least demanding on the camera.

View File

@ -157,6 +157,7 @@ KEY_LEFT|NavigationLeft
KEY_RIGHT|NavigationRight
KEY_RETURN|NavigationReturn/Back
KEY_ENTER|NavigationEnter
KEY_EXIT|NavigationExit
____________
**Media Keys**

View File

@ -77,7 +77,7 @@ fields:
description: The name of this script parameter field.
type: string
description:
description: A description of this of this script parameter.
description: A description of this script parameter.
type: string
advanced:
description: Marks this field as an advanced parameter. This causes it only to be shown in the UI, when the user has advanced mode enabled.

View File

@ -33,8 +33,8 @@ The integration uses the REST API, which is known to be available on models `NB4
However, `NCC` models do not appear to expose this REST API, and are therefore unsupported by the integration.
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -43,13 +43,13 @@ To setup the integration you need the following information:
{% configuration_basic %}
Name:
description: "The name for your Solar-Log device in Home Assistant. This will also be uses as prefix for the entity names."
description: "The name for your Solar-Log device in Home Assistant. This will also be uses as prefix for the entity names."
Host:
description: "The URL or IP address of your Solar-Log."
description: "The URL or IP address of your Solar-Log."
User password available:
description: "Check the box, if you have the password for the Solar-Log user to securely access [all data](#additional-data)."
description: "Check the box, if you have the password for the Solar-Log user to securely access [all data](#additional-data)."
Password:
description: "Password for the Solar-Log user. Will only be asked for in a second step, if in the first step the checkbox has been selected."
description: "Password for the Solar-Log user. Will only be asked for in a second step, if in the first step the checkbox has been selected."
{% endconfiguration_basic %}
## Configuration options

View File

@ -21,11 +21,11 @@ The [Swiss public transport API](https://transport.opendata.ch/) only allows 100
{% configuration_basic %}
Start station:
description: "The departure station for the start of the connection (e.g., 'Zürich HB')"
description: "The departure station for the start of the connection (e.g., `Zürich HB`)"
End station:
description: "The arrival station for the end of the connection (e.g., 'Geneva')"
description: "The arrival station for the end of the connection (e.g., `Geneva`)"
Via stations:
description: "List of up to 5 via stations (e.g., 'Bern, Lausanne')"
description: "List of up to 5 via stations (e.g., `Bern`, `Lausanne`)"
{% endconfiguration_basic %}
Use the [Stationboard](https://transport.opendata.ch/examples/stationboard.html) to find exact station names.
@ -95,8 +95,8 @@ Fetch the connections for a specific instance.
{% include common-tasks/define_custom_polling.md %}
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -39,6 +39,7 @@ Using the **Change device type of a switch** helper integration, you can convert
entity types that best matches your use case.
{% include integrations/config_flow.md name="Switch as X" %}
{% configuration_basic %}
Switch entity:
description: The switch entity you want to convert into something else.

View File

@ -166,12 +166,13 @@ cover:
The SwitchBot integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional.
{% configuration_basic %}
"Config flow could not be loaded":
description: Possible custom integration conflict, using a different version of PySwitchbot; Try uninstalling the custom integration.
"No unconfigured devices found":
description: Make sure your devices are powered on and are in range.
{% endconfiguration_basic %}
{% details "Config flow could not be loaded" %}
Possible custom integration conflict, using a different version of PySwitchbot; Try uninstalling the custom integration.
{% enddetails %}
{% details "No unconfigured devices found" %}
Make sure your devices are powered on and are in range.
{% enddetails %}
### Slow connection times

View File

@ -40,12 +40,8 @@ The integration will try to configure webhooks to receive near-real-time push up
{% configuration_basic %}
Host:
description: "The IP address of your bridge. You can find it in your router or in the Tedee app under **Bridge Settings** -> **Local API**."
required: false
type: string
Local Access Token:
description: "The local access token for your bridge. You can find it in the Tedee app under **Bridge Settings** -> **Local API**."
required: false
type: string
{% endconfiguration_basic %}
## Supported devices
@ -110,9 +106,9 @@ This integration only supports functionality that is available locally. This mea
- Updates
- Key pads
## Remove integration
## Removing the integration
This integration follows standard integration removal, no extra steps are required.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -20,6 +20,7 @@ The threshold integration observes the state of another sensor. If the value is
If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not upper or lower with respect to the threshold.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Name:
description: The name the sensor should have. You can change it again later.

View File

@ -17,6 +17,7 @@ ha_integration_type: helper
The Times of the Day integration provides a binary sensor that gets its values by checking if the current time is within defined time ranges.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Name:
description: The name the binary sensor should have. This can be changed later.

View File

@ -188,3 +188,9 @@ data:
spread: 1
direction: 1
```
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -40,7 +40,6 @@ Examples:
All events will also have the following data:
{% configuration_basic %}
Device ID:
description: (`device_traccar_id`) This will be the device ID that the event is related to.
Device name:
@ -51,7 +50,6 @@ Server time:
description: (`serverTime`) This will be the time the event was received by the Traccar Server.
Attributes:
description: (`attributes`) This will be a dictionary of attributes related to the event.
{% endconfiguration_basic %}
{% details "Example" %}

View File

@ -24,6 +24,7 @@ Thus it can take some time to show an accurate state. It can be useful
as part of automations, where you want to base an action on a trend.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Name:
description: The name the sensor should have. You can change it again later.

View File

@ -72,13 +72,13 @@ It is recommended you use the Administrator or a user with full read/write acces
but it is not required. The entities that are created will automatically adjust based on the permissions of the user you
use has.
1. Login to your _Local Portal_ on your UniFi OS device, and click on _Users_. **Note**: This **must** be done from
the UniFi OS by accessing it directly by IP address (i.e. _Local Portal_), not via `unifi.ui.com` or within the
UniFi Protect app.
2. Go to **Admins** from the left hand side menu or [IP address]/admins/users e.g. 192.168.1.1/admins/users.
3. Click on **Add New Admin**.
4. Select **Full Management** for the role. Uncheck **Allow Remote Access** and fill out the fields for your user.
5. Click **Add** in the bottom right.
1. Login to your _Local Portal_ on your UniFi OS device, and click on _Users_.
**Note**: This **must** be done from the UniFi OS by accessing it directly by IP address (e.g. _192.168.1.1_), not via `unifi.ui.com` or within the UniFi Protect app.
2. Go to **Admins & Users** from the left hand side menu and select the **Admins** tab or go to [IP address]/admins/ (e.g. _192.168.1.1/admins/_).
3. Click on **+** in the top right corner and select **Add Admin**.
4. Select **Restrict to local access only** and enter a new _username_ and _password_.
5. Select **Full Management** for the _Protect_ role.
6. Click **Add** in the bottom right.
![UniFi OS User Creation](/images/integrations/unifiprotect/user.png)

View File

@ -79,24 +79,13 @@ If the local API is successfully enabled on the thermostat, you should see some
{% configuration_basic %}
host:
description: Address of your thermostat, e.g., 192.168.1.32.
required: true
type: string
description: Address of your thermostat, e.g., `192.168.1.32`.
username:
description: Username for the thermostat.
required: false
type: string
password:
description: Password for the thermostat.
required: false
type: string
pin:
description: Pin for Lockscreen (required if lock screen enabled)
required: false
type: string
ssl:
description: Whether to use SSL or not when communicating.
required: false
type: boolean
default: false
{% endconfiguration_basic %}

View File

@ -27,21 +27,16 @@ The **Version** {% term integration %} can display the current Home Assistant Co
With this {% term integration %} you can select various sources to get a version from.
{% configuration_basic %}
"Local installation":
description: This will get the version you are currently running.
"Home Assistant Versions":
description: This will use the same source that are used by the Supervisor to check for updates based on the channel and image you choose.
"Home Assistant Website":
description: This will check the website you are reading this on to find the latest version.
"Docker Hub":
description: This will check the latest tag published to Docker Hub based on the channel and image you choose.
"Python Package Index (PyPI)":
description: This will check PyPI for the latest published package.
Local installation:
description: This will get the version you are currently running.
Home Assistant Versions:
description: This will use the same source that are used by the Supervisor to check for updates based on the channel and image you choose.
Home Assistant Website:
description: This will check the website you are reading this on to find the latest version.
Docker Hub:
description: This will check the latest tag published to Docker Hub based on the channel and image you choose.
Python Package Index (PyPI):
description: This will check PyPI for the latest published package.
{% endconfiguration_basic %}
## Entities

View File

@ -154,6 +154,22 @@ data:
{% endraw %}
It is recommended to select an effect that matches the capabilities of your WLED device (e.g., 1D, 2D, or Sound Reactive). You can refer to the [WLED effect list](https://kno.wled.ge/features/effects/) to explore available options. Once you identify compatible effects, you can randomize them based on their IDs.
Below is an example of how to select a random effect with an ID between 1 and 117, excluding retired effects:
{% raw %}
```yaml
action: light.turn_on
target:
entity_id: light.wled
data:
effect: "{{ state_attr('light.wled', 'effect_list')[1:118] | reject('equalto', 'RSVD') | list | random }}"
```
{% endraw %}
### Activating random palette
Activating a random palette is very similar to the above random effect,

View File

@ -1695,7 +1695,6 @@ Enter remote control mode, make one move, stop, and exit remote control mode.
### Sensors
{% configuration_basic %}
DnD Start*:
description: The timestamp when the next DnD (Do not disturb) period will start
DnD End*:
@ -1732,7 +1731,6 @@ Water Box Attached**:
description: If the watter box is attached
Water Shortage\*\*:
description: If the water box is low on water
{% endconfiguration_basic %}
{% note %}

View File

@ -43,16 +43,10 @@ This integration allows you to control a Z-Wave network via the [Z-Wave.Me Z-Way
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: The IP address with the port of the Z-Way server. The IP address can be prefixed with wss:// if HTTPS should be used instead of HTTP (when using find.z-wave.me remote access service or public IP with SSL).
required: true
type: string
API Token:
description: Z-Way API access token of the Z-Way server. To get the token go to the Z-Way user interface Smart Home UI > Menu > Settings > Users > Administrator > API token.
required: true
type: string
{% endconfiguration_basic %}
When connecting via find.z-wave.me remote access service you need to use a token with a global scope (log-in to Z-Way via [find.z-wave.me](https://find.z-wave.me) for this).

View File

@ -0,0 +1,211 @@
---
title: The month of 'What the Heck?!' 2024
description: "Ever felt that 'What the heck Home Assistant?!' moment? This month, we would like to learn about your 'what the heck?!' moments..."
date: 2024-11-30 00:00:00
date_formatted: "November 30, 2024"
author: Franck Nijhof
author_twitter: frenck
categories: Announcements
og_image: /images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg
---
<a href='https://community.home-assistant.io/c/month-of-what-the-heck/61'><img src='/images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg' style='border: 0;box-shadow: none;'></a>
**TL;DR**: For all of December 🎄, we are opening up to share any issue, idea,
suggestion, or annoyance you have with Home Assistant
[on our community forums]!
[on our community forums]: https://community.home-assistant.io/c/month-of-what-the-heck/61
## Welcome to the month of “What the heck?!”: Third edition
**Its back!** 🎉 We are thrilled to announce the **third** edition of the month
of “What the heck?!” (WTH for short). Every [two] [years], we take the time to
pause, listen, and dive deep into the little things that maybe you go
*“What the heck?!”* about Home Assistant.
Weve been [growing really hard for years now] with over a million
Home Assistant-powered smart homes out there, and, as of this year, we are also
[the \#1 open source project on GitHub]!
A lot has happened since [the last edition two years ago]. Lots of effort went
into making a [voice-controlled Home Assistant] a reality. We have implemented
[new dashboards and cards] (with drag-and-drop!),
[added organization capabilities] with labels and categories, and so [much]
[more]! But did everything turn out the way it should? Did we miss things?
Or, worse, did something start to annoy you?
That is what this month is about! This year, we are kicking it off in the month
of **December** as a nice closing activity for this year, and we cant wait to
hear from 👉 **YOU** 👈!
[added organization capabilities]: /blog/2024/04/03/release-20244/#three-new-ways-to-organize
[growing really hard for years now]: https://analytics.home-assistant.io/
[more]: /blog/2023/11/01/release-202311/#there-is-a-lot-to-do
[much]: /blog/2024/06/05/release-20246/#dipping-our-toes-in-the-world-of-ai-using-llms
[new dashboards and cards]: /blog/2024/11/06/release-202411/#sections-dashboard-no-longer-experimental
[the \#1 open source project on GitHub]: /blog/2024/11/18/event-wrapup-github-universe-24/#we-are-number-1
[the last edition two years ago]: /blog/2022/09/30/the-month-of-what-the-heck/
[two]: /blog/2020/08/18/the-month-of-what-the-heck/
[voice-controlled Home Assistant]: /blog/2022/12/20/year-of-voice/
[years]: /blog/2022/09/30/the-month-of-what-the-heck/
### Lowering the barrier for sharing WTH?! moments
We realize reporting bugs on our [GitHub] might be a steep hill and, for some,
maybe even a bit scary. You need a GitHub account to report an issue following
issue templates and forms, and the report itself needs to be written in a way
that a developer can work with. Above all, we use our issue tracker to track
actual issues and bugs, not small feature requests or annoyances.
While this is a common and reasonable process to collect, track, and process
bugs, our issue tracking-process might not be the ideal way to learn about your
*“What the heck?!”* moments, small tweaks, and improvements that can make us
all enjoy Home Assistant even more.
Today, we have opened up a [Community Forum category] as a safe, lower-barrier
place to talk about your Home Assistant “What the heck?!” moments.
More importantly: discuss and vote on topics your fellow home automators have
brought up.
[Community Forum category]: https://community.home-assistant.io/c/month-of-what-the-heck/61
[GitHub]: https://github.com/home-assistant/core/issues/new/choose
## What are we looking for?
Just as with previous editions, I sent out a related question on my socials
earlier this week:
> 🎅 𝘚𝘢𝘯𝘵𝘢 𝘮𝘪𝘨𝘩𝘵 𝘣𝘦 𝘭𝘪𝘴𝘵𝘦𝘯𝘪𝘯𝘨… If you could ask for one small Home Assistant
> improvement this holiday season, what would it be?
The answers to this question pretty much capture the goal behind this month:
Finding those nice quality-of-life features and little annoyances, highlighting
inconsistencies, suggestions for things that could be streamlined more, and even
big-ticket items. All of those things would make Home Assistant even more
awesome for everyone.
Ive received many responses on these social media posts on [X], [Mastodon],
and [Bluesky]. Most of the responses there are **exactly** what we are looking
for this month. Ive picked a few from these platforms to show you what I mean:
- “*Makes exposing entities to HomeKit the same as to Alexa & Google*” ([Peter Hardy-vanDoorn])
- *"Polygon zones would be so very helpful instead of just the base circle"* ([KrispKiwi])
- “*Edit a scene without activating it. I can only edit my sleep scene after everyone goes to sleep or in YAML.”* ([codebuild21])
- *"The possibility of catching errors in automations and being able to take actions when they occur 🙂"* ([Sergio Mayoral])
- *"Not Fancy! Better backup management, especially pruning options!"* ([Alex Alami])
- *"Persist my prefered dashboard across my different devices/browsers."* ([Carlos Sánchez López])
- *"Home Assistant voice hardware!"* ([Paulus Schoutsen]) 😆
These are all great topics for the month of “What the heck?!”, I hope they inspire you for more topics to share 💖.
[Alex Alami]: https://bsky.app/profile/aaposutry.bsky.social/post/3lby3xqhzzk2w
[Bluesky]: https://bsky.app/profile/did:plc:ofidofdlypuxb2dlfdmbh3a3/post/3lbx2w2kh5a2p
[Carlos Sánchez López]: https://bsky.app/profile/chayotejarocho.space/post/3lbx7yorfms2c
[codebuild21]: https://bsky.app/profile/codebuild21.bsky.social/post/3lbx72g4l6s2n
[KrispKiwi]: https://x.com/KrispKiwi/status/1861825026825265406
[Mastodon]: https://fosstodon.org/@frenck/113556074335097996
[Paulus Schoutsen]: https://bsky.app/profile/paulusschoutsen.nl/post/3lbx32dabes2s
[Peter Hardy-vanDoorn]: https://x.com/peterjvandoorn/status/1861898354038292579
[Sergio Mayoral]: https://x.com/sermayoral/status/1862109088139583917
[X]: https://x.com/Frenck/status/1861823068735181154
## Roadmap
As you might be aware, we also create and publish a bigger, high level, roadmap
for the greater direction of Home Assistant. A few weeks back, [Madelena]
and [JLo] shared the [2024 Year-end update of our roadmap].
This years month of “What the heck?!” is thus different in this regard, as in
previous editions we didnt have any roadmap in place. For this years WTH,
the product team will also be watching for items that will help shape and
prioritize our roadmap for the near future.
As a matter of fact, many items on this years roadmap that weve worked on
have their origins or have been shaped by topics from the previous WTH from
2022. For example, the [ability to organize automations] and the ability to
[drag-and-drop cards on your dashboards].
[2024 Year-end update of our roadmap]: https://www.home-assistant.io/blog/2024/11/15/roadmap-2024h2/
[ability to organize automations]: https://community.home-assistant.io/t/why-are-all-automations-in-one-big-list/467153?u=frenck
[drag-and-drop cards on your dashboards]: https://community.home-assistant.io/t/wth-cant-we-drag-drop-in-the-dashboard/467205?u=frenck
[JLo]: https://github.com/jlpouffier
[Madelena]: https://github.com/madelena
## Why December?
In the previous editions, we had this month in October; this year, we decided to
move it to December. We figured, the holiday season is perfect for this event. 🎄
Many of us have a bit more time on our hands during the holidays, whether thats
tinkering with automations, exploring our new dashboards, contributing to our
project, or simply enjoying engaging our active and vibrant community.
## Start sharing your WTH!
👆That title says it all really. Start sharing **your** “What the heck?!”
moment, browse through all the WTH moments others brought up, and vote for the
ones you feel the same about.
We are excited about this month and looking forward to everything brought up!
**[Join us on the forums!]**, or read the **[FAQ](#faq)** below.
[Join us on the forums!]: https://community.home-assistant.io/c/month-of-what-the-heck/61
<p class='img'>
<img src='/images/blog/2020-08-18-the-month-of-what-the-heck/jackie-chan-what-the-heck.jpg' alt='Image of a person expressing a what the heck moment'></a>
So, when does Home Assistant trigger this moment for you?
</p>
## FAQ
- **_“Great! I have multiple things! Should I put all my stuff in a single
topic?!”_**
**No**, please create **multiple**, **smaller** topics. There is no limitation
on how many forum topics one can create for WTH. Each topic can be voted on,
picked up, and maybe even resolved. Also, having multiple things stacked in
a single forum topic makes resolving, discussing, and voting on them hard.
<br />
- **_“Is everything reported going to be fixed/addressed?”_**
Sorry, but the answer here is **no**; there is no guarantee that it will
happen. The goal is to lower the barrier reporting things for one month.
Code contributors will definitely join the effort and address a few of the
listed things. Still, in the end, the number of submissions in WTH is,
in general, simply too much to address. However, we have picked up a lot of
items over the years (including bigger topics); it helps us shape our roadmap.
<br /><a name='no-new-integrations'></a>
- **_"I really want this new integration or add-on to be implemented, so I can
use my devices. Is this the right place for it?”_**
**No**, this event is **not** for requesting new add-ons or device/services
integrations. Please use the "[Feature Requests]" forum category instead.
<br />
- **_“My WTH topic is one of the top-voted ones, so it is going to be
fixed/addressed, right?”_**
This is **not** a contest. Voting will help with visibility and give a sense
of the suggestion's impact. However, it might be difficult or too big to
implement. A topic with lots of votes is more likely to be noticed by a
contributor, but it is not guaranteed to be picked up.
Topics with a lot of engagement, of course, help us shape our future roadmap.
<br />
- **_“Ive found a bug and am comfortable with GitHub. Where should I report my
issue now?”_**
If you are comfortable using GitHub, please, by all means,
[file an issue report on GitHub] instead.
[Feature Requests]: https://community.home-assistant.io/c/feature-requests/13
[file an issue report on GitHub]: https://github.com/home-assistant/core/issues/new/choose

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@ -25,7 +25,7 @@ As for the rest of Home Assistant core functionalities, Assist can be personaliz
<lite-youtube videoid="XF53wUbeLxA" videotitle="Voice at Home Assistant"></lite-youtube>
Although adding voice to your smart home configuration is exciting, it will require you to check your existing setup of Home Assistant, especially if you made a lot of customization. But we have prepared a guide of steps and best practices to help you out, as well as our [Troubleshooting](/voice_source/troubleshooting/) guides.
Although adding voice to your smart home configuration is exciting, it will require you to check your existing setup of Home Assistant, especially if you made a lot of customization. But we have prepared a guide of steps and best practices to help you out, as well as our [Troubleshooting](/voice_control/troubleshooting/) guides.
Ready? Now let's get started