Merge branch 'current' into rc

This commit is contained in:
Bram Kragten 2024-08-28 18:36:24 +02:00
commit d92e61f75d
112 changed files with 1511 additions and 572 deletions

View File

@ -11,7 +11,7 @@ group :development do
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
gem 'sassc', '2.1.0'
gem 'rubocop', '1.65.1'
gem 'ruby-lsp', '0.17.11'
gem 'ruby-lsp', '0.17.16'
gem 'rackup', '2.1.0'
end

View File

@ -21,14 +21,14 @@ GEM
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
concurrent-ruby (1.3.3)
concurrent-ruby (1.3.4)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.27.3-x86_64-linux)
google-protobuf (4.27.4-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
@ -75,12 +75,12 @@ GEM
logger (1.6.0)
mercenary (0.4.0)
multi_json (1.15.0)
mustermann (3.0.1)
mustermann (3.0.2)
ruby2_keywords (~> 0.0.1)
nokogiri (1.16.7-x86_64-linux)
racc (~> 1.4)
parallel (1.25.1)
parser (3.3.4.1)
parallel (1.26.3)
parser (3.3.4.2)
ast (~> 2.4.1)
racc
pathutil (0.16.2)
@ -102,10 +102,10 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rbs (3.5.2)
rbs (3.5.3)
logger
regexp_parser (2.9.2)
rexml (3.3.4)
rexml (3.3.6)
strscan
rouge (4.3.0)
rubocop (1.65.1)
@ -119,9 +119,9 @@ GEM
rubocop-ast (>= 1.31.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.32.0)
rubocop-ast (1.32.1)
parser (>= 3.3.1.0)
ruby-lsp (0.17.11)
ruby-lsp (0.17.16)
language_server-protocol (~> 3.17.0)
prism (>= 0.29.0, < 0.31)
rbs (>= 3, < 4)
@ -142,7 +142,7 @@ GEM
rack-protection (= 4.0.0)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11514)
sorbet-runtime (0.5.11549)
stringex (2.8.6)
strscan (3.1.0)
terminal-table (3.0.2)
@ -169,7 +169,7 @@ DEPENDENCIES
rackup (= 2.1.0)
rake (= 13.2.1)
rubocop (= 1.65.1)
ruby-lsp (= 0.17.11)
ruby-lsp (= 0.17.16)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.0.0)

View File

@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2024
current_minor_version: 8
current_patch_version: 0
date_released: 2024-08-07
current_patch_version: 3
date_released: 2024-08-25
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

310
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.0.5",
"textlint": "^14.2.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"
@ -416,65 +416,65 @@
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.5.tgz",
"integrity": "sha512-fXIffKbOXwULZwMib9BtGf+IkARXs/CnEmFhAGwLhzPjLTB9YgNftjTyxmVvNbpKA02KTMdK3JFpgZ5Vyxsykg==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.2.0.tgz",
"integrity": "sha512-k7HAVjv5hUFNWUeb1h+3yaoSnwhjKJ55FaFVlUPsW5qFRIAkWaZ0Xpo2IEAyGaa5jgulWe8vEX6ZTmvwi6bzUA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5",
"@textlint/ast-node-types": "^14.2.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/ast-traverse": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.5.tgz",
"integrity": "sha512-5q/7vifbG8mqDEpByaUjAfHHjJlFiS737axziNQ8qXVswyrMdmRIRE9Wv0unvrs0W9mLKHcsPHh8JQd1RGpfIg==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.2.0.tgz",
"integrity": "sha512-qmB+bbLTndlgIObMxoXhdE/t1o6JUQxgw1pzLEtd7rvZO7sNH4Agui1ddlWjaIczj+K40tm8jsfi/74NJtJ9fg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5"
"@textlint/ast-node-types": "^14.2.0"
}
},
"node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/config-loader": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.5.tgz",
"integrity": "sha512-nZZGwXei1kizl8+3uvahfHcMg2npMnuE2WWQ8z8c8seNsnHLitoTNoSR8IQYZ0XDQ9Iy3ROOkRX2qUvKCQPgQQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.2.0.tgz",
"integrity": "sha512-LDIr0zykTVsIWz/q+NIiYXoF0Fqdl1X+JLGIAG6E2CTKJhsGW4naKvt2d9zWhCjSM7E9ZX6XAdvo16WDJALYlg==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^14.0.5",
"@textlint/module-interop": "^14.0.5",
"@textlint/types": "^14.0.5",
"@textlint/utils": "^14.0.5",
"@textlint/kernel": "^14.2.0",
"@textlint/module-interop": "^14.2.0",
"@textlint/types": "^14.2.0",
"@textlint/utils": "^14.2.0",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.3",
"try-resolve": "^1.0.1"
}
},
"node_modules/@textlint/feature-flag": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.5.tgz",
"integrity": "sha512-hTlCE+cyJ6BxsXgDJfe/mF/b/GVKrPUMzgqbd6n5bbGuhdTYO0hDrl/nCAbasQz4oJh6TGq4WH2dNts38TlZng==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.2.0.tgz",
"integrity": "sha512-KjO4ACoKhA10XUi4Wp3dKixfEMFQAE+WLgCDEB5k+cAKPkwaFYjN5vezA1TGe+fSHcQiBjv268F0r3hmtsPf8Q==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.5.tgz",
"integrity": "sha512-fRXWUQVBbg4Gp2k254YLbEzn42GwBcmAmRUODSJkXkF8oAu91uEQJ6uJlOE0/plQfZUOgQebco9KPmeL8+Jb+A==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.2.0.tgz",
"integrity": "sha512-Ji4Kq0hckDj1WranfNwnN87nUE4EldMyf7z2AEQ51vDSqLeYk+WCQo6/Gc+a+ytQt5s/QPyfcpiHItr75xHF8g==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^14.0.5",
"@textlint/types": "^14.0.5",
"@textlint/module-interop": "^14.2.0",
"@textlint/types": "^14.2.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^5.2.0",
@ -485,39 +485,39 @@
}
},
"node_modules/@textlint/kernel": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.5.tgz",
"integrity": "sha512-AfCGRSq4XuH1UCAcKKurbBRxxypTJzdWmG3Netpa/cGmkdI4tcL+kfaimG3hSnXvQfv6VIzHASBB6u2WpUAGXg==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.2.0.tgz",
"integrity": "sha512-QYF2ZGnkLhd+GYGWL2wpZNjK0ec8HqwGjAsmc49E0g5NKMDvX3U/TYGwjsM8g6WCxGVGS625wr0tm6UxIAK5+Q==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5",
"@textlint/ast-tester": "^14.0.5",
"@textlint/ast-traverse": "^14.0.5",
"@textlint/feature-flag": "^14.0.5",
"@textlint/source-code-fixer": "^14.0.5",
"@textlint/types": "^14.0.5",
"@textlint/utils": "^14.0.5",
"@textlint/ast-node-types": "^14.2.0",
"@textlint/ast-tester": "^14.2.0",
"@textlint/ast-traverse": "^14.2.0",
"@textlint/feature-flag": "^14.2.0",
"@textlint/source-code-fixer": "^14.2.0",
"@textlint/types": "^14.2.0",
"@textlint/utils": "^14.2.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.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/linter-formatter": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.5.tgz",
"integrity": "sha512-Ht9/FNwoZuW95rsgJ4aR+d0LSkVqw5dC+wp5Hab4HtPhdSsDcTEA1Q53JUubjhcpKnwNxv/aNxh1iXMBiNrSqA==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.2.0.tgz",
"integrity": "sha512-9+5n3UIhbKGNCvI5s0BJexHrWqw/TZQnUQLpvbL04SnJqwSH2xlUQfEwPAybPO1Tb9coUGHYlBZObRxy9tRwig==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.0.5",
"@textlint/types": "^14.0.5",
"@textlint/module-interop": "^14.2.0",
"@textlint/types": "^14.2.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.0.5",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.5.tgz",
"integrity": "sha512-m6EIJL/qhvGuB5zXCQNHBF8MdhPpN4s2F2WPxfwFunXb/K58murSEkUTCviuHiDG/7XOFT030dY9eck3Pez0gg==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.2.0.tgz",
"integrity": "sha512-vDcj8fuo1ZJinLtDwMO8yh9hxWujDFQRJ/MDd4Y+vxGDJRnB0c9ZVPOOPlQjaumlVNI7CB1fDsz+jx8z6/d8iw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5",
"@textlint/ast-node-types": "^14.2.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.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/markdown-to-ast/node_modules/bail": {
@ -780,73 +780,73 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.5.tgz",
"integrity": "sha512-naK1z6omW/1C0UF8kLlnmtx0Ikmnp2DUUm5C2mEt5dpEqpXF39/dKFNbMOrac0nLh/65QCpj8m9GlpbbrKKjHw==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.2.0.tgz",
"integrity": "sha512-1X3DfCwF3y07eVyK41K6As0L+Ekyn5lAh98hVoUNOGDJQtjRvM3aKZ8z0o0BtbCeH7nYTyExo31lUgURWuDWnQ==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.5.tgz",
"integrity": "sha512-JNSBVFQ09LXxeiebQ4PI72N1XTW/CZb3gVewnojL/un39oAo3yGjzFox/59TL5rdrGAqsijOq4CrWkJ+3Xb2kg==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.2.0.tgz",
"integrity": "sha512-xMFtpwcs5Z1WTiFBmLN2Fe2GQg3u0kEZgF42AvFHKphbmToKYlGUMw1jaMsEXaxrTOTjqwj3SycRR7rrgKgOxg==",
"dev": true,
"dependencies": {
"@textlint/types": "^14.0.5",
"@textlint/types": "^14.2.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.5.tgz",
"integrity": "sha512-3dq1OL6gU522H+/b+NmE4z8OXMG5aLgKAlBu1zBbcXGAjgtIEdplYn6XGvpkGRM2FnypMzsDIUjzwUS8bjbpWw==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.2.0.tgz",
"integrity": "sha512-i71ksLnlkb6epmeOiRv/xiHHLBWOtCx3gUBiTr8YC/9xbdhzBehFblJ6IjeikIJYPTfpzDECRmDqDNq7Cvos3Q==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5"
"@textlint/ast-node-types": "^14.2.0"
}
},
"node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.5.tgz",
"integrity": "sha512-QjfATGYKuPkLVT+GsG8WjwrkgNpksKED6Qd4TDL/q2LwNVEZ6ULFLZmufL9z9ENCeBs6y0YDE7IbE26Vhq5zww==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.2.0.tgz",
"integrity": "sha512-TDd132D816R5q+/ZDfxe15Cxua6RNegkQzPv0iaZZKob6t8lhMND6lUHfbXEEGHCtyignxZUXQXZGZcjKtWL4A==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^14.0.5"
"@textlint/markdown-to-ast": "^14.2.0"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.5.tgz",
"integrity": "sha512-OJJP5WXo3rqqL7bXYy44f8z9s1Ssb/2/nmTStbTepSOujQjOoEwehtwV+QBwdzwRkzbQFcZ0HS+dJ/yNdneKWA==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.2.0.tgz",
"integrity": "sha512-5E39BWG9T5c0XOz5Vxdffa17FDwu9Woud29bYyq3OQ+JjwMQXSz3JPQ1MTNsJbqn0R58+ZKXfaWEZ/Gsoau5UA==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^14.0.5"
"@textlint/text-to-ast": "^14.2.0"
}
},
"node_modules/@textlint/types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.0.5.tgz",
"integrity": "sha512-scrY5Zzz/SSAXaxw6OspbgFuiyQpHq88iK7OhUYE3BMnM90ijKzSohGMUHHK872zenzGTTOepE2sdjkIyXr1pA==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.2.0.tgz",
"integrity": "sha512-lK8HCnkNg+spOHVw1HX0AvwP1BZVlJsbL4OLIHnwfvakfUxLQFXtJ6x2asAXMNMQGqwSWKQrLBCmWZWVsDtReg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5"
"@textlint/ast-node-types": "^14.2.0"
}
},
"node_modules/@textlint/types/node_modules/@textlint/ast-node-types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/@textlint/utils": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.5.tgz",
"integrity": "sha512-+EDQlPx4t/DcH4EYXB62J+5mTRdJaMlFEyzCK7QUfZ9u2JeIE+AFt4D7xDAeiXcdxYTAm2ASdJ+lw7z3Z+vasQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.2.0.tgz",
"integrity": "sha512-eXRygFRC1CK+BHRqIe2RRFiC8VJMpV7NwsLdBKsFMcivgNRgL6hkhhbrMI6MbPg+jdWM+nK5Z9+QpPYL9c9/pg==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -3604,9 +3604,9 @@
}
},
"node_modules/minipass": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz",
"integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==",
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
"engines": {
"node": ">=16 || 14 >=14.17"
@ -3637,9 +3637,9 @@
"dev": true
},
"node_modules/neotraverse": {
"version": "0.6.15",
"resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.15.tgz",
"integrity": "sha512-HZpdkco+JeXq0G+WWpMJ4NsX3pqb5O7eR9uGz3FfoFt+LYzU8iRWp49nJtud6hsDoywM8tIrDo3gjgmOqJA8LA==",
"version": "0.6.18",
"resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz",
"integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==",
"dev": true,
"engines": {
"node": ">= 10"
@ -3749,6 +3749,12 @@
"node": ">=4"
}
},
"node_modules/package-json-from-dist": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
"dev": true
},
"node_modules/parse-entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
@ -3823,29 +3829,26 @@
"dev": true
},
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
"dependencies": {
"lru-cache": "^9.1.1 || ^10.0.0",
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.17"
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
"integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
"dev": true,
"engines": {
"node": "14 || >=16.14"
}
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true
},
"node_modules/path-to-glob-pattern": {
"version": "2.0.1",
@ -6027,27 +6030,27 @@
"dev": true
},
"node_modules/textlint": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.0.5.tgz",
"integrity": "sha512-k2x1itoYuUPE6FCodxV7cW0Rcnycx8DVYMGQd8G/iFGPaT8As3XdXMfATTGRQIkMR5TkbCeBVVrWKTNHotCx2g==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.2.0.tgz",
"integrity": "sha512-f3vT1mwpHuP2IWNG7AiE7n4nRKiOI/4Rxz7wQSv6KWaCgigcwi9x4JCMWKn1gpEvC/bssKW1/G0XxzHvKybCKg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.0.5",
"@textlint/ast-traverse": "^14.0.5",
"@textlint/config-loader": "^14.0.5",
"@textlint/feature-flag": "^14.0.5",
"@textlint/fixer-formatter": "^14.0.5",
"@textlint/kernel": "^14.0.5",
"@textlint/linter-formatter": "^14.0.5",
"@textlint/module-interop": "^14.0.5",
"@textlint/textlint-plugin-markdown": "^14.0.5",
"@textlint/textlint-plugin-text": "^14.0.5",
"@textlint/types": "^14.0.5",
"@textlint/utils": "^14.0.5",
"@textlint/ast-node-types": "^14.2.0",
"@textlint/ast-traverse": "^14.2.0",
"@textlint/config-loader": "^14.2.0",
"@textlint/feature-flag": "^14.2.0",
"@textlint/fixer-formatter": "^14.2.0",
"@textlint/kernel": "^14.2.0",
"@textlint/linter-formatter": "^14.2.0",
"@textlint/module-interop": "^14.2.0",
"@textlint/textlint-plugin-markdown": "^14.2.0",
"@textlint/textlint-plugin-text": "^14.2.0",
"@textlint/types": "^14.2.0",
"@textlint/utils": "^14.2.0",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"get-stdin": "^5.0.1",
"glob": "^7.2.3",
"glob": "^10.4.5",
"md5": "^2.3.0",
"mkdirp": "^0.5.6",
"optionator": "^0.9.3",
@ -6169,11 +6172,70 @@
}
},
"node_modules/textlint/node_modules/@textlint/ast-node-types": {
"version": "14.0.5",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.5.tgz",
"integrity": "sha512-pOMQX9MGee9VYKYVsmQzJpZxllEiTHUgZgpRxorHDNqojrlU6cBKWDX1+cQhptpP+Ry/wS2VsWK6kHx6u1v7CQ==",
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.0.tgz",
"integrity": "sha512-dOnBuqvsmiNkhHHp1ZaZed1uwvDpVNZWGvZlrckWaJpzsrTTNtxtd627MkMRCdGvIT3+RkfmV9OHqh51JfexRg==",
"dev": true
},
"node_modules/textlint/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/textlint/node_modules/glob": {
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
"minimatch": "^9.0.4",
"minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0",
"path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/textlint/node_modules/jackspeak": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/textlint/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

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.0.5",
"textlint": "^14.2.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"

View File

@ -40,29 +40,17 @@ module Jekyll
end
<<~MARKUP
<script>
function showDetails(el) {
const content = el.parentElement.querySelector(".details-block-content");
const up = el.querySelector("svg#up");
const down = el.querySelector("svg#down");
const shouldExpand = down.style.display === "block";
up.style.display = shouldExpand ? "block" : "none";
down.style.display = !shouldExpand ? "block" : "none";
content.hidden = !shouldExpand;
el.ariaExpanded = shouldExpand;
}
</script>
<div class="details-block">
<div class='details-block-item'>
<button class='details-block-title' onclick='showDetails(this)' aria-controls="content_#{idx}" aria-expanded="false">
<details class='details-block-item'>
<summary class='details-block-title'>
<span>#{icon}#{title}</span>
<div class='details-block-arrow'>
<svg id="down" style="display: block;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
<svg id="up" style="display: none;" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" /></svg>
<svg class="down" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" /></svg>
<svg class="up" width="24" height="24" viewBox="0 0 24 24"><path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" /></svg>
</div>
</button>
<div class='details-block-content' id="content_#{idx}" hidden>#{contents}</div>
</div>
</summary>
<div class='details-block-content' id="content_#{idx}">#{contents}</div>
</details>
</div>
MARKUP
end

View File

@ -10,6 +10,16 @@ div.details-block {
border: 1px solid rgba(0, 0, 0, .12);
border-radius: 16px;
&[open] .details-block-title {
.up {
display: block;
}
.down {
display: none;
}
}
.details-block-title {
font-weight: bold;
font-size: 18px;
@ -23,6 +33,14 @@ div.details-block {
border: 0px;
width: 100%;
padding: 0;
.up {
display: none;
}
.down {
display: block;
}
}
.details-block-content {
margin: 4px 0 12px 0;

View File

@ -155,6 +155,9 @@
Covers are devices such as blinds, garage doors, etc that can be opened and
closed and optionally set to a specific position.
link: /integrations/cover
- term: Custom integration
definition: >-
A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the [Spook](https://spook.boo/) integration.
- term: Customize
definition: >-
Customization allows you to overwrite the default parameters of your devices
@ -350,7 +353,7 @@
excerpt: >
Integrations connect and integrate Home Assistant with your devices,
services, and more.
link: /integrations/
link: /getting-started/concepts-terminology/#integrations
aliases:
- integrations
- term: Intent
@ -489,7 +492,7 @@
entities for organic, paper, and packaging waste. In terms of functionality,
the information service is like a device. It is called *service* to avoid
confusion, as it does not come with a piece of hardware.
link: /docs/scripts/service-calls/
link: /docs/scripts/perform-actions/
aliases:
- services
- term: State

View File

@ -292,8 +292,8 @@ In the example above, the trigger would fire a single time if a numeric_state go
{% 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,
making the trigger more dynamic, like:
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:
```yaml
automation:

View File

@ -72,9 +72,10 @@ homeassistant:
keys:
min_version:
description: >
Minimum required version of Home Assistant to use the blueprint. For example,
`2022.4.0`. It is important to set this if the blueprint uses any features
introduced in recent releases to head off issues.
Minimum required version of Home Assistant to use the blueprint in the format of
*major*.*minor*.*patch* (all parts are required). For example, `2022.4.0`. It is
important to set this if the blueprint uses any features introduced in recent
releases to head off issues.
type: string
required: false
input:
@ -149,12 +150,14 @@ A blueprint can have as many inputs as you like.
### Blueprint input sections
One or more input sections can be added under the main `input` key. Each section visually groups the inputs in that section,
allows an optional description, and optionally allows for collapsing those inputs.
allows an optional description, and optionally allows for collapsing those inputs. Note that the section only impacts how
inputs are displayed to the user when they fill in the blueprint. Inputs must have unique names and be referenced directly
by their name; not by section and name.
A section is differentiated from an input by the presence of an additional `input` key within that section.
{% caution %}
Input sections are a new feature in version 2024.6. Set the `min_version` for the blueprint to at least this version if using input sections. Otherwise, the blueprint will generate errors on older versions.
Input sections are a new feature in version 2024.6.0. Set the `min_version` for the blueprint to at least this version if using input sections. Otherwise, the blueprint will generate errors on older versions.
{% endcaution %}
The full configuration for a section is below:

View File

@ -63,7 +63,7 @@ action:
The options that can be used with the `trigger` object are listed under [automation trigger variables](/docs/automation/templating/#available-trigger-data).
In this example, a [state trigger](/docs/automation/templating/#state) is used.
`turn_on` and `turn_off` are [`homeassistant` actions](/docs/scripts/service-calls/#homeassistant-actions). They are not tied to a specific domain. You can use them on lights, switches, and other domains.
`turn_on` and `turn_off` are [`homeassistant` actions](/docs/scripts/perform-actions/#homeassistant-actions). They are not tied to a specific domain. You can use them on lights, switches, and other domains.
### Creating the blueprint file

View File

@ -722,7 +722,7 @@ For example, if you wanted to select a field from `trigger` in an automation bas
- `utcnow()` returns a datetime object of the current time in the UTC timezone.
- For specific values: `utcnow().second`, `utcnow().minute`, `utcnow().hour`, `utcnow().day`, `utcnow().month`, `utcnow().year`, `utcnow().weekday()` and `utcnow().isoweekday()`.
- Using `utcnow()` will cause templates to be refreshed at the start of every new minute.
- `today_at(value)` converts a string containing a military time format to a datetime object with today's date in your time zone.
- `today_at(value)` converts a string containing a military time format to a datetime object with today's date in your time zone. Defaults to midnight (`00:00`).
- Using `today_at()` will cause templates to be refreshed at the start of every new minute.

View File

@ -1006,7 +1006,7 @@ will not be used by anything.
[Script integration]: /integrations/script/
[automations]: /docs/automation/action/
[Alexa/Amazon Echo]: /integrations/alexa/
[actions page]: /docs/scripts/service-calls/
[actions page]: /docs/scripts/perform-actions/
[conditions page]: /docs/scripts/conditions/
[shorthand-template]: /docs/scripts/conditions/#template-condition-shorthand-notation
[script variables]: /integrations/script/#configuration-variables

View File

@ -41,7 +41,7 @@
{% icon "mdi:script-text" %} {% active_link /docs/scripts/ Scripts %}
{% if doc == 'scripts' or include.docs_index %}
<ul>
<li>{% active_link /docs/scripts/service-calls/ Actions %}</li>
<li>{% active_link /docs/scripts/perform-actions/ Actions %}</li>
<li>{% active_link /docs/scripts/conditions/ Conditions %}</li>
</ul>
{% endif %}

View File

@ -12,14 +12,10 @@ As an alternative, Home Assistant OS can be installed in a Linux guest VM. Runni
This is an advanced installation process, and some steps might differ on your system. Considering the nature of this installation type, we assume you can handle subtle differences between this document and the system configuration you are using. When in doubt, please consider one of the [other installation methods](/installation/), as they might be a better fit instead.
{% endcaution %}
{% important %}
<b>Prerequisites</b>
### Prerequisites
This guide assumes that you already have an operating system setup and have installed Python {{site.installation.versions.python}} (including the package `python3-dev`) or newer.
{% endimportant %}
### Install dependencies
Before you start, make sure your system is fully updated, all packages in this guide are installed with `apt`, if your OS does not have that, look for alternatives.
@ -86,6 +82,8 @@ Once you have installed the required Python package, it is now time to install H
pip3 install homeassistant=={{ site.current_major_version }}.{{ site.current_minor_version }}.{{ site.current_patch_version }}
```
**Troubleshooting**: If you do not see the above version of Home Assistant package in your environment, make sure you have the correct Python version installed, as defined under the [Prerequisites](#prerequisites).
Start Home Assistant Core for the first time. This will complete the installation for you, automatically creating the `.homeassistant` configuration directory in the `/home/homeassistant` directory, and installing any basic dependencies.
```bash

View File

@ -479,7 +479,7 @@ With the Home Assistant Operating System installed and accessible, you can conti
{% endif %}
[generic-x86-64]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_generic-x86-64-{{site.data.version_data.hassos['generic-x86-64']}}.img.xz
[generic-x86-64]: {{release_url}}/{{site.data.version_data.hassos['generic-x86-64']}}/haos_generic-x86-64-{{site.data.version_data.hassos['generic-x86-64']}}.img.xz
[vmdk]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vmdk.zip
[vhdx]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vhdx.zip
[vdi]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vdi.zip

View File

@ -1,33 +0,0 @@
{% capture product_name %}{{ include.name | default: page.product_name }}{% endcapture %}
2. To connect the {{ product_name }} to your computer, follow these steps:
- In the pop-up window, view the available ports.
- Plug the USB-C cable into the {{ product_name }} and connect it to your computer.{% if page.product_name == 'ESP32-S3-BOX' %}
- If you have an ESP32-S3-BOX-3, plug it into the box directly, not into the docking station (not into the blue part).
- **Troubleshooting**: If your ESP32-S3-BOX-3 does not appear in the list of devices presented by your browser, you need to manually invoke "flash mode":
- Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button).
- After a few seconds, the ESP32-S3-BOX-3 should appear in the list of USB devices presented by your browser.
- Follow the steps until step 3. After selecting the **Next** button, on the S3-Box, tap the "Reset" button again.
- Then, select the blue **Connect button** again, select the USB device and follow the prompts to configure the Wi-Fi.{% endif %}
- In the pop-up window, there should now appear a new entry. Select this USB serial port and select **Connect**.{% if page.product_name == 'ATOM Echo' %}
- **Troubleshooting**: If no new port shows, your system may be missing a driver. Close the pop-up window.
- In the dialog, select the CH342 driver, install it, then **Try again**.
![Open My link](/images/assist/esp32-atom-flash-no-port.png){% endif %}
3. Select **Install Voice Assistant**, then **Install**.
- Once the installation is complete, select **Next**.
- Add the {{ product_name }} to your Wi-Fi:
- When prompted, select your network from the list and enter the credentials to your 2.4&nbsp;GHz Wi-Fi network.
- Select **Connect**.
- The {{ product_name }} now joined your network. Select **Add to Home Assistant**.
4. This opens the **My** link to Home Assistant.
- If you have not used My Home Assistant before, you will need to configure it. If your Home Assistant URL is not accessible on `http://homeassistant.local:8123`, replace it with the URL to your Home Assistant instance.
- Open the link.
![Open My link](/images/assist/esp32-atom-flash-06.png)
5. Select **OK**.
![Set up ESPHome](/images/assist/esp32-atom-flash-07.png)
6. To add the newly discovered device, select the {{ product_name }} from the list.
- Add your {{ product_name }} to a room and select **Finish**.
7. You should now see the **ESPHome** integration.
![New ESPHome device discovered](/images/assist/m5stack-atom-echo-discovered-33.png)

View File

@ -317,8 +317,8 @@ cards:
- type: button
icon: mdi:arrow-up-bold
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_UP
target:
@ -334,8 +334,8 @@ cards:
- type: button
icon: mdi:arrow-left-bold
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_LEFT
target:
@ -345,15 +345,15 @@ cards:
- type: button
icon: mdi:circle
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_CENTER
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_CENTER
hold_secs: 0.5
@ -362,8 +362,8 @@ cards:
- type: button
icon: mdi:arrow-right-bold
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_RIGHT
target:
@ -373,15 +373,15 @@ cards:
- type: button
icon: mdi:arrow-left
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: BACK
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: BACK
hold_secs: 0.5
@ -390,8 +390,8 @@ cards:
- type: button
icon: mdi:arrow-down-bold
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: DPAD_DOWN
target:
@ -401,15 +401,15 @@ cards:
- type: button
icon: mdi:home-outline
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: HOME
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: HOME
hold_secs: 0.5
@ -422,15 +422,15 @@ cards:
- type: button
icon: mdi:skip-previous
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_PREVIOUS
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_REWIND
target:
@ -438,15 +438,15 @@ cards:
- type: button
icon: mdi:play-pause
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_PLAY_PAUSE
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_STOP
target:
@ -454,15 +454,15 @@ cards:
- type: button
icon: mdi:skip-next
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_NEXT
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MEDIA_FAST_FORWARD
target:
@ -470,8 +470,8 @@ cards:
- type: button
icon: mdi:volume-off
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: MUTE
target:
@ -481,8 +481,8 @@ cards:
- type: button
icon: mdi:volume-medium
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: VOLUME_DOWN
target:
@ -492,8 +492,8 @@ cards:
- type: button
icon: mdi:volume-high
tap_action:
action: call-service
action: remote.send_command
action: perform-action
perform_action: remote.send_command
data:
command: VOLUME_UP
target:
@ -507,8 +507,8 @@ cards:
- type: button
icon: mdi:youtube
tap_action:
action: call-service
action: remote.turn_on
action: perform-action
perform_action: remote.turn_on
data:
activity: https://www.youtube.com
target:
@ -518,8 +518,8 @@ cards:
- type: button
icon: mdi:netflix
tap_action:
action: call-service
action: remote.turn_on
action: perform-action
perform_action: remote.turn_on
data:
activity: com.netflix.ninja
target:
@ -530,8 +530,8 @@ cards:
image: >-
https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Amazon_Prime_Video_logo.svg/450px-Amazon_Prime_Video_logo.svg.png
tap_action:
action: call-service
action: remote.turn_on
action: perform-action
perform_action: remote.turn_on
data:
activity: com.amazon.amazonvideo.livingroom
target:
@ -542,8 +542,8 @@ cards:
image: >-
https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Disney%2B_logo.svg/440px-Disney%2B_logo.svg.png
tap_action:
action: call-service
action: remote.turn_on
action: perform-action
perform_action: remote.turn_on
data:
activity: com.disney.disneyplus
target:

View File

@ -27,5 +27,6 @@ The Aranet integration will automatically discover devices once the [Bluetooth](
- [Aranet2](https://aranet.com/products/aranet2/)
- [Aranet4](https://aranet.com/products/aranet4/)
- [Aranet Radiation](https://aranet.com/products/aranet-radiation-sensor/)
The Aranet integration requires that your Aranet device is updated to at least firmware version 1.2.0 and has the "Smart Home integration" feature enabled. Both of these can be done within the settings portion of the Aranet Home mobile application on both Android and iOS.

View File

@ -13,6 +13,13 @@ ha_integration_type: integration
ha_config_flow: true
ha_platforms:
- diagnostics
related:
- docs: /docs/configuration/
title: Configuration file
- docs: /integrations/default_config/
title: Default config
- url: https://esphome.io/projects/?type=bluetooth
title: Bluetooth proxy page
---
The **Bluetooth** {% term integration %} will detect nearby Bluetooth devices. Discovered devices will show up in the discovered section on the integrations page in the configuration panel.

View File

@ -142,7 +142,7 @@ automation:
## Actions
Some calendar {% term integrations %} allow Home Assistant to manage your calendars
directly using {% term actions %}. The actions provided by some calendar {% term entity %} are described below or you can read more about [actions](/docs/scripts/service-calls/).
directly using {% term actions %}. The actions provided by some calendar {% term entity %} are described below or you can read more about [actions](/docs/scripts/perform-actions/).
### Action `calendar.create_event`
@ -193,7 +193,7 @@ data:
### Action `calendar.get_events`
This action populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This action populates [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with calendar events within a date range. It can return events from multiple calendars.
| Data attribute | Optional | Description | Example |

View File

@ -11,11 +11,14 @@ ha_domain: config
ha_platforms:
- scene
ha_integration_type: system
related:
- docs: /docs/configuration/
title: Configuration file
---
The `config` integration is designed to display panels in the frontend to configure and manage parts of Home Assistant.
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your {% term "`configuration.yaml`" %} file. If that is the case, the following example shows you how to enable this integration manually:
```yaml
# Example configuration.yaml entry

View File

@ -166,7 +166,7 @@ Send a message to a conversation agent for processing.
| `agent_id` | yes | ID of conversation agent. The conversation agent is the brains of the assistant. It processes the incoming text commands. |
| `conversation_id` | yes | ID of a new or previous conversation. Will continue an old conversation or start a new one. |
This action is able to return [response data](/docs/scripts/service-calls/#use-templates-to-handle-response-data). The response is the same response as for the
This action is able to return [response data](/docs/scripts/perform-actions/#use-templates-to-handle-response-data). The response is the same response as for the
[`/api/conversation/process` API](https://developers.home-assistant.io/docs/intent_conversation_api#conversation-response).
## Action `conversation.reload`

View File

@ -47,7 +47,7 @@ Note that setting `track_new_devices: false` will still result in new devices be
{% endnote %}
The extended example from above would look like the following sample:
In the {% term "`configuration.yaml`" %}, the extended example from above would look like the following sample:
```yaml
# Example configuration.yaml entry for Netgear device

View File

@ -16,7 +16,7 @@ The **DHCP discovery** {% term integration %} will watch the network for DHCP re
## Configuration
This {% term integration %} is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
This {% term integration %} is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually in the {% term "`configuration.yaml`" %} file:
```yaml
# Example configuration.yaml entry

View File

@ -68,7 +68,7 @@ For the dynamic gas prices, only entities are created that display the
## Actions
The energy and gas prices are exposed using [actions](/docs/scripts/service-calls/). The actions populate [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with price data.
The energy and gas prices are exposed using [actions](/docs/scripts/perform-actions/). The actions populate [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data) with price data.
### Action `easyenergy.get_gas_prices`

View File

@ -122,7 +122,7 @@ entities:
type: list
{% endconfiguration %}
A full configuration sample looks like the one below.
A full configuration sample looks like the one below. Configuration entries are added to the {% term "`configuration.yaml`" %} file.
```yaml
# Example configuration.yaml entry

View File

@ -57,18 +57,18 @@ For the dynamic gas prices, only entities are created that display the
## Actions
The energy and gas prices are exposed using [actions](/docs/scripts/service-calls/). The actions populate [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with price data.
The energy and gas prices are exposed using [actions](/docs/scripts/perform-actions/). The actions populate [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data) with price data.
### Action `energyzero.get_gas_prices`
Fetches the gas prices. The `config_entry` value be found using the **Actions** tab in the **Developer Tools**, selecting the desired entity and then switching to YAML.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `config_entry` | no | Config entry to use. | 1b4a46c6cba0677bbfb5a8c53e8618b0
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| Data attribute | Optional | Description | Example |
| -------------- | -------- | ---------------------------------------------------- | -------------------------------- |
| `config_entry` | no | Config entry to use. | 1b4a46c6cba0677bbfb5a8c53e8618b0 |
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false |
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00 |
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00 |
### Response data
@ -98,12 +98,12 @@ The response data is a dictionary with the gas timestamps and prices as string a
Fetches the energy prices. The `config_entry` value be found using the **Actions** tab in the **Developer Tools**, selecting the desired entity and then switching to YAML.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `config_entry` | no | Config entry to use. Can be found using the **Actions** tab in the **Developer Tools** and switching to YAML. | 1b4a46c6cba0677bbfb5a8c53e8618b0
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00
| Data attribute | Optional | Description | Example |
| -------------- | -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------- |
| `config_entry` | no | Config entry to use. Can be found using the **Actions** tab in the **Developer Tools** and switching to YAML. | 1b4a46c6cba0677bbfb5a8c53e8618b0 |
| `incl_vat` | no | Defines whether the prices include or exclude VAT. | false |
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00 |
| `end` | yes | End time to get prices. Defaults to today 00:00:00 | 2023-01-01 00:00:00 |
### Response data

View File

@ -25,7 +25,7 @@ ability to run scripts or invoke actions for each of the `turn_on`, `turn_off`,
## Configuration
To enable template fans in your installation, add the following to your
`configuration.yaml` file:
{% term "`configuration.yaml`" %} file:
{% raw %}

View File

@ -52,10 +52,12 @@ name:
start_time:
description: The start time.
required: false
default: sunrise
type: time
stop_time:
description: The stop time.
required: false
default: dusk
type: time
start_colortemp:
description: The color temperature at the start.
@ -102,7 +104,7 @@ unique_id:
type: string
{% endconfiguration %}
Full example:
Full example of an entry in the {% term "`configuration.yaml`" %} file:
```yaml
# Example configuration.yaml entry

View File

@ -11,7 +11,7 @@ ha_domain: frontend
ha_integration_type: system
---
This offers the official frontend to control Home Assistant. This integration is enabled by default unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
This offers the official frontend to control Home Assistant. This integration is enabled by default unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your {% term "`configuration.yaml`" %} file. If that is the case, the following example shows you how to enable this integration manually in the {% term "`configuration.yaml`" %} file.
```yaml
# Example configuration.yaml entry
@ -52,6 +52,7 @@ frontend:
### Theme format
The frontend integration allows you to create custom themes to influence the look and feel of the user interface.
Example of a configuration entry in the {% term "`configuration.yaml`" %} file:
```yaml
# Example configuration.yaml entry
@ -163,9 +164,9 @@ There are two themes-related actions:
### Action `set_theme`
| Data attribute | Description |
| ---------------------- | --------------------------------------------------------------------------------------------------- |
| `name` | Name of the theme to set, `default` for the default theme or `none` to restore to the default. |
| `mode` | If the theme should be applied in light or dark mode `light` or `dark` (Optional, default `light`). |
| -------------- | --------------------------------------------------------------------------------------------------- |
| `name` | Name of the theme to set, `default` for the default theme or `none` to restore to the default. |
| `mode` | If the theme should be applied in light or dark mode `light` or `dark` (Optional, default `light`). |
If no dark mode backend theme is set, the light mode theme will also be used in dark mode.
The backend theme settings will be saved and restored on a restart of Home Assistant.

View File

@ -33,7 +33,7 @@ If you need more specific features for your use case, the manual [YAML-configura
Alternatively, this integration can be configured and set up manually via YAML
as well. To enable the generic hygrostat in your installation, add the
following to your `configuration.yaml` file:
following to your {% term "`configuration.yaml`" %} file:
```yaml
# Example configuration.yaml entry
@ -122,6 +122,8 @@ Time for `min_cycle_duration` and `keep_alive` must be set as "hh:mm:ss" or it m
## Full YAML configuration example
To be added to the {% term "`configuration.yaml`" %} file.
```yaml
generic_hygrostat:
- name: Bedroom

View File

@ -97,7 +97,7 @@ This action isn't tied to any integration entry, so it won't use the model, prom
{% endtip %}
Allows you to ask Gemini Pro or Gemini Pro Vision to generate content from a prompt consisting of text and optionally images.
This action populates [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with the generated content.
This action populates [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data) with the generated content.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------------------------------------------- | ------------------- |

View File

@ -39,16 +39,26 @@ ha_integration_type: helper
The group integration lets you combine multiple entities into a single entity. Entities that are members of a group can be controlled and monitored as a whole.
This can be useful for cases where you want to control, for example, the
multiple bulbs in a light fixture as a single light in Home Assistant.
This can be useful, for example, in cases where you want to control multiple bulbs in a light fixture as a single light in Home Assistant. You also have the option of hiding the individual member entities in a group.
Home Assistant can group multiple binary sensors, covers, events, fans, lights, locks, media players, switches as a single entity, with the option of hiding the individual member entities.
The following entities can be grouped:
- [binary sensor (binary sensors)](/integrations/binary_sensor/)
- [button (buttons)](/integrations/button/)
- [cover (covers)](/integrations/cover/)
- [fan (fans)](/integrations/fan/)
- [switch (switches)](/integrations/switch/)
- [lock (locks)](/integrations/lock/)
- [light (lights)](/integrations/light/)
- [event (events)](/integrations/event/)
- [media player (media players)](/integrations/media_player/)
- [notify (notifications)](/integrations/notify/)
{% include integrations/config_flow.md %}
{% note %}
Notification entities can only be grouped via the UI.
The older notification services can only be grouped via YAML configuration.
The older notification actions can only be grouped via YAML configuration.
{% endnote %}
## Group behavior
@ -344,7 +354,7 @@ services:
required: true
type: list
keys:
service:
action:
description: The name part of an entity ID, e.g., if you use `notify.html5` normally, just put `html5`. Note that you must put everything in lower case here. Although you might have capitals written in the actual notification actions!
required: true
type: string

View File

@ -172,7 +172,7 @@ Here are some examples of periods you could work with, and what to write in your
{% raw %}
```yaml
start: "{{ today_at() }}"
start: "{{ today_at('00:00') }}"
end: "{{ now() }}"
```
@ -183,7 +183,7 @@ Here are some examples of periods you could work with, and what to write in your
{% raw %}
```yaml
end: "{{ today_at() }}"
end: "{{ today_at('00:00') }}"
duration:
hours: 24
```
@ -209,7 +209,7 @@ Here, last Monday is today at 00:00, minus the current weekday (the weekday is 0
{% raw %}
```yaml
start: "{{ today_at() - timedelta(days=now().weekday()) }}"
start: "{{ today_at('00:00') - timedelta(days=now().weekday()) }}"
end: "{{ now() }}"
```
@ -220,7 +220,7 @@ Here, last Monday is today at 00:00, minus the current weekday (the weekday is 0
{% raw %}
```yaml
start: "{{ today_at().replace(day=1) }}"
start: "{{ today_at('00:00').replace(day=1) }}"
end: "{{ now() }}"
```
@ -231,8 +231,8 @@ Here, last Monday is today at 00:00, minus the current weekday (the weekday is 0
{% raw %}
```yaml
start: "{{ (today_at().replace(day=1) - timedelta(days=1)).replace(day=1) }}"
end: "{{ today_at().replace(day=1) }}"
start: "{{ (today_at('00:00').replace(day=1) - timedelta(days=1)).replace(day=1) }}"
end: "{{ today_at('00:00').replace(day=1) }}"
```
{% endraw %}
@ -254,7 +254,7 @@ Here, last Monday is today at 00:00, minus the current weekday (the weekday is 0
{% raw %}
```yaml
end: "{{ today_at() }}"
end: "{{ today_at('00:00') }}"
duration:
days: 30
```

View File

@ -24,7 +24,7 @@ The **Home Assistant Core** {% term integration %} provides generic implementati
The Home Assistant Core integration is also responsible for the general settings. These settings are defined during onboarding, but you can change them later under {% my general title="**Settings** > **System** > **General**" %}. For the detailed steps, refer to [Basic settings](/docs/configuration/basic/).
If you prefer editing in YAML, you can define your general settings in the [`configuration.yaml` file](/docs/configuration/).
If you prefer editing in YAML, you can define your general settings in the {% term "`configuration.yaml`" %} file.
Note that for some of the settings, these can't be edited from the UI if they were defined in YAML. They will be grayed out or inaccessible.
<p class='img'>
@ -34,7 +34,7 @@ Note that for some of the settings, these can't be edited from the UI if they we
To get started with the general settings in YAML, follow these steps:
1. Copy the following information to your [`configuration.yaml` file](/docs/configuration/).
1. Copy the following information to your {% term "`configuration.yaml`" %} file.
```yaml
homeassistant:
@ -150,7 +150,7 @@ By default, all of your devices will be visible and have a default icon determin
Most of these settings can be changed from the UI. For the detailed steps, refer to [Customizing entities](/docs/configuration/customizing-devices/).
If you prefer editing in YAML, you can define your general settings in the [`configuration.yaml` file](/docs/configuration/).
If you prefer editing in YAML, you can define your general settings in the {% term "`configuration.yaml`" %} file.
### Possible values
@ -212,7 +212,7 @@ For a list of the supported device classes, refer to the documentation of the pl
### Manual customization
{% important %}
If you implement `customize`, `customize_domain`, or `customize_glob` you must make sure it is done inside of `homeassistant:` or it will fail.
If you implement `customize`, `customize_domain`, or `customize_glob`, in your {% term "`configuration.yaml`" %} file, you must make sure it is done inside of `homeassistant:` or it will fail.
{% endimportant %}
```yaml
@ -280,11 +280,11 @@ will take effect the next time an importing template is rendered.
Reloads an integration config entry.
| Data attribute | Description |
| ---------------------- | ---------------------------------------------------------- |
| `entity_id` | List of entity ids used to reference a config entry. |
| `area_id` | List of area ids used to reference a config entry. |
| `device_id` | List of device ids used to reference a config entry. |
| `entry_id` | A single config entry id used to reference a config entry. |
| -------------- | ---------------------------------------------------------- |
| `entity_id` | List of entity ids used to reference a config entry. |
| `area_id` | List of area ids used to reference a config entry. |
| `device_id` | List of device ids used to reference a config entry. |
| `entry_id` | A single config entry id used to reference a config entry. |
### Action `homeassistant.reload_core_config`
@ -305,10 +305,10 @@ Stops the Home Assistant instance. Home Assistant must be restarted from the Hos
Update the location of the Home Assistant default zone (usually "Home").
| Data attribute | Optional | Description |
| ---------------------- | -------- | --------------------------- |
| `latitude` | no | Latitude of your location. |
| `longitude` | no | Longitude of your location. |
| `elevation` | yes | Elevation of your location. |
| -------------- | -------- | --------------------------- |
| `latitude` | no | Latitude of your location. |
| `longitude` | no | Longitude of your location. |
| `elevation` | yes | Elevation of your location. |
#### Example
@ -329,8 +329,8 @@ action compared the others, is that is can be used to mix different domains,
for example, a light and a switch can be toggled in a single action.
| Data attribute | Optional | Description |
| ---------------------- | -------- | --------------------------------------------- |
| `entity_id` | yes | The entity_id of the device to toggle on/off. |
| -------------- | -------- | --------------------------------------------- |
| `entity_id` | yes | The entity_id of the device to toggle on/off. |
#### Example
@ -351,8 +351,8 @@ action compared the others, is that is can be used to mix different domains,
for example, a light and a switch can be turned on in a single action.
| Data attribute | Optional | Description |
| ---------------------- | -------- | --------------------------------------- |
| `entity_id` | yes | The entity_id of the device to turn on. |
| -------------- | -------- | --------------------------------------- |
| `entity_id` | yes | The entity_id of the device to turn on. |
#### Example
@ -373,8 +373,8 @@ action compared the others, is that is can be used to mix different domains,
for example, a light and a switch can be turned off in a single action.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------- |
| `entity_id` | yes | The entity_id of the device to turn off. |
| -------------- | -------- | ---------------------------------------- |
| `entity_id` | yes | The entity_id of the device to turn off. |
#### Example
@ -392,8 +392,8 @@ action:
Force one or more entities to update its data rather than wait for the next scheduled update.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------- |
| `entity_id` | no | One or multiple entity_ids to update. It can be a list. |
| -------------- | -------- | ------------------------------------------------------- |
| `entity_id` | no | One or multiple entity_ids to update. It can be a list. |
#### Example

View File

@ -22,7 +22,7 @@ dashboard if an alert is found that impacts your system.
## Configuration
This integration is by default enabled unless you've disabled or removed the
[`default_config:`](/integrations/default_config/) line from your configuration.
[`default_config:`](/integrations/default_config/) line from your {% term "`configuration.yaml`" %} file.
If that is the case, the following example shows you how to enable this
integration manually:

View File

@ -86,7 +86,7 @@ ssl_profile:
default: modern
{% endconfiguration %}
The sample below shows a configuration entry with possible values:
The sample below shows a configuration entry in the {% term "`configuration.yaml`" %} file with possible values:
```yaml
# Example configuration.yaml entry

View File

@ -78,3 +78,7 @@ Philips/Signify released a new version of their Hue bridge (square shape) and th
- Scene entities are not automatically created for V1 bridges. To activate a Hue scene on a V1 bridge from Home Assistant we provide an action to active it the Hue scene by name.
- State updates for devices/entities on a V1 bridges are not received instantly but polled on interval.
- Light entities for Hue rooms are not automatically created for V1 bridges, you can opt-in for creating entities for rooms within the Integration's options.
For v1 Hue bridges, you can create a script using the **Scripts** tab.
1. Select **Add New Script** > **Add Action** > **Philips Hue: Activate Scene**
2. Then select the appropriate room name in the **Group** field and the scene name in the **Scene** field stored on your Hue bridge.

View File

@ -19,7 +19,15 @@ The IMAP integration is observing your [IMAP server](https://en.wikipedia.org/wi
{% include integrations/config_flow.md %}
### Gmail with App Password
### IMAP services with App Passwords
### Microsoft 365 and Live IMAP services
Microsoft has removed support for direct use (App) passwords when accessing IMAP without modern verification. You can create an App password, but access is only allowed though OAUTH2 enabled mail clients authorized by Microsoft or via an App registration in Microsoft Entra ID (school or business).
An OAUTH2 authentication flow is not supported for the IMAP integration. This means that unfortunately, it is not possible to use Home Assistant IMAP with Microsoft 365 IMAP services for school and business and the (free) personal Microsoft Live IMAP services.
### Google Gmail IMAP service
If youre going to use Gmail, 2-step verification must be enabled on your Gmail account. Once it is enabled, you need to create an [App Password](https://support.google.com/mail/answer/185833).
@ -54,17 +62,7 @@ By default, this integration will count unread emails. By configuring the search
### Selecting a charset supported by the imap server
Below is an example for setting up the integration to connect to your Microsoft 365 account that requires `US-ASCII` as charset:
- Server: `outlook.office365.com`
- Port: `993`
- Username: Your full email address
- Password: Your password
- Charset: `US-ASCII`
{% important %}
Yahoo also requires the character set `US-ASCII`.
{% endimportant %}
Some IMAP services, like Yahoo, require a `US-ASCII` charset to be configured.
### Selecting message data to include in the IMAP event (advanced mode)

View File

@ -30,7 +30,7 @@ default unless you removed it. If you removed `default_config:` from your
configuration, you must add `input_boolean:` to your {% term "`configuration.yaml`" %} first,
then you can use the UI.
Input booleans can also be configured via {% term "`configuration.yaml`" %}:
Input booleans can also be configured via {% term "`configuration.yaml`" %} file:
{% configuration %}
input_boolean:

View File

@ -19,7 +19,7 @@ templates.
The preferred way to configure input datetime is via the user interface at **{% my helpers title="Settings > Devices & services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain="input_datetime" title="Date and/or time" %}** option.
To be able to add **{% my helpers title="Helpers" %}** via the user interface you should have `default_config:` in your {% term "`configuration.yaml`" %}, it should already be there by default unless you removed it.
If you removed `default_config:` from your configuration, you must add `input_datetime:` to your `configuration.yaml` first, then you can use the UI.
If you removed `default_config:` from your configuration, you must add `input_datetime:` to your {% term "`configuration.yaml`" %} first, then you can use the UI.
`input_datetime` can also be configured via YAML. To add three datetime inputs to your installation,
one with both date and time, and one with date or time each,
@ -96,11 +96,11 @@ Available actions: `input_datetime.set_datetime` and `input_datetime.reload`.
#### input_datetime.set_datetime
| Data attribute | Format String | Description |
| ---------------------- | ------------------- | -------------------------------------------------------------------------------- |
| `date` | `%Y-%m-%d` | This can be used to dynamically set the date. |
| `time` | `%H:%M:%S` | This can be used to dynamically set the time. |
| `datetime` | `%Y-%m-%d %H:%M:%S` | This can be used to dynamically set both the date & time. |
| `timestamp` | N/A | This can be used to dynamically set both the date & time using a UNIX timestamp. |
| -------------- | ------------------- | -------------------------------------------------------------------------------- |
| `date` | `%Y-%m-%d` | This can be used to dynamically set the date. |
| `time` | `%H:%M:%S` | This can be used to dynamically set the time. |
| `datetime` | `%Y-%m-%d %H:%M:%S` | This can be used to dynamically set both the date & time. |
| `timestamp` | N/A | This can be used to dynamically set both the date & time using a UNIX timestamp. |
To set both the date and time in the same call, use `date` and `time` together, or use `datetime` or `timestamp` by itself. Using `datetime` or `timestamp` has the advantage that both can be set using one template.

View File

@ -2,6 +2,7 @@
title: IronOS
description: Instructions on how to integrate IronOS-based Pinecil V2 devices with Home Assistant.
ha_category:
- Number
- Sensor
ha_iot_class: Local Polling
ha_release: 2024.8
@ -17,6 +18,10 @@ ha_platforms:
The **IronOS** {% term integration %} seamlessly connects Home Assistant with PINE64's Pinecil V2 soldering irons, allowing for remote monitoring and control. This integration provides real-time updates on temperature, power, and various other settings and diagnostic information.
## Minimum requirements
- **Pinecil V2** requires IronOS v2.21 or higher to connect to Home Assistant. Please refer to the [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil_Firmware#Overview) for update instructions.
{% include integrations/config_flow.md %}
## Number controls
@ -34,7 +39,7 @@ The **IronOS** {% term integration %} seamlessly connects Home Assistant with PI
- **Max tip temperature:** Indicates the maximum temperature that the currently inserted soldering iron tip supports.
- **Power level:** Displays the duty cycle of the pulse-width modulation (PWM) in percent, indicating the current power output of the soldering iron (for example, "50%" for a 50% duty cycle).
- **Power source:** Identifies the current power source used by the soldering iron, such as DC input, USB Quick Charge, USB Power Delivery, or USB Power Delivery VBUS.
- **Raw tip voltage:** Measures the raw voltage at the soldering iron tip.
- **Raw tip voltage:** Measures the raw voltage at the soldering iron's thermocouple, which is then offset compensated and converted to the tip temperature.
- **Tip resistance:** Indicates the resistance of the currently inserted soldering iron tip (for example, "6.2 Ω" for short tips, "8 Ω" for normal tips)
- **Uptime:** Tracks the total operating time of the soldering iron since its last power-on.
- **Hall effect strength:** (Optional) This feature requires the device to be [modified with a hall effect sensor](https://wiki.pine64.org/wiki/Pinecil_Hall_Effect_Sensor). If a neodymium magnet is attached to the stand, it enables proximity detection and can be utilized to calibrate when the iron enters sleep mode based on its proximity to the stand.

View File

@ -213,12 +213,12 @@ In addition to the [standard automation trigger data](/docs/automation/templatin
- `trigger.dpt_sub` Destination group address sub datapoint type number
- `trigger.dpt_name` DPT value type name - see Sensor value types
- `trigger.payload` Raw telegram payload. DPT 1, 2, and 3 yield integers 0..255; other DPT yield lists of integers 0..255
- `telegram.source` Source individual address
- `telegram.source_name` Source name
- `telegram.telegramtype` APCI type of telegram
- `telegram.timestamp` Timestamp
- `telegram.unit` Unit according to group address DPT
- `telegram.value` Decoded telegram payload according to DPT
- `trigger.source` Source individual address
- `trigger.source_name` Source name
- `trigger.telegramtype` APCI type of telegram
- `trigger.timestamp` Timestamp
- `trigger.unit` Unit according to group address DPT
- `trigger.value` Decoded telegram payload according to DPT
| Template variable | Type | Project data required |
|----------------------------|-----------------------------|-----------------------|
@ -229,12 +229,12 @@ In addition to the [standard automation trigger data](/docs/automation/templatin
| `trigger.dpt_sub` | integer | yes |
| `trigger.dpt_name` | string | yes |
| `trigger.payload` | integer or list of integers | no |
| `telegram.source` | string | no |
| `telegram.source_name` | string | yes |
| `telegram.telegramtype` | string | no |
| `telegram.timestamp` | timestamp | no |
| `telegram.unit` | string | yes |
| `telegram.value` | any | yes |
| `trigger.source` | string | no |
| `trigger.source_name` | string | yes |
| `trigger.telegramtype` | string | no |
| `trigger.timestamp` | timestamp | no |
| `trigger.unit` | string | yes |
| `trigger.value` | any | yes |
For values that require project data: if the information was not found, or if no project file was provided, data will be set to `null`.
@ -242,6 +242,8 @@ For values that require project data: if the information was not found, or if no
Example automation configuration
{% raw %}
```yaml
- alias: Single group address trigger
description: ''
@ -250,11 +252,13 @@ Example automation configuration
destination: 1/2/3
group_value_read: false
outgoing: false
condition: []
condition: "{{ trigger.value == 0 }}"
action: []
mode: single
```
{% endraw %}
Example trigger data
```yaml

View File

@ -23,7 +23,7 @@ ability to run scripts or invoke actions for each of the on, off, and
brightness commands of a light.
To enable Template Lights in your installation, add the following to your
`configuration.yaml` file:
{% term "`configuration.yaml`" %} file:
{% raw %}

View File

@ -19,6 +19,17 @@ ha_integration_type: integration
The Linear integration lets you control Linear garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Linear mobile app.
{% warning %}
Nice North America has begun informing users of the new Nice G.O. app, and dropping support for the Linear app in the coming weeks. Support for the new app will be added as a new integration.
Migrating now will cut off access to the old app and the integration will cease functioning for you.
For more information, refer to the [Nice G.O. migration documentation](https://na.niceforyou.com/features/nice-go-app/#migration).
{% endwarning %}
## Prerequisites
This integration is for garage doors connected to the cloud by Wi-Fi using the Linear mobile app.
{% include integrations/config_flow.md %}
## Cover

View File

@ -9,11 +9,14 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_integration_type: system
related:
- docs: /docs/configuration/
title: Configuration file
---
<img src='/images/screenshots/logbook.png' style='margin-left:10px; float: right;' height="100" />
The logbook integration provides a different perspective on the history of your
The logbook {% term integration %} provides a different perspective on the history of your
house by showing all the changes that happened to your house in reverse
chronological order. It depends on
the [`recorder`](/integrations/recorder/) integration for storing the data. This means that if the
@ -21,7 +24,7 @@ the [`recorder`](/integrations/recorder/) integration for storing the data. This
PostgreSQL as data store, the `logbook` integration does not use the default
SQLite database to store data.
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, the following example shows you how to enable this integration manually:
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your {% term "`configuration.yaml`" %} file. If that is the case, the following example shows you how to enable this integration manually, by adding it to your {% term "`configuration.yaml`" %} file:
```yaml
# Example configuration.yaml entry

View File

@ -322,9 +322,16 @@ This section provides a bit more information on some of the categories:
**IP addresses**: Typically more than one IPv6 address is shown: link local, unique local, and global unicast. In some cases a device also supports IPv4. In that case there will also be listed an IPv4 address here.
## Matter device updates
## Matter OTA device updates
The Matter standard supports OTA (Over-the-Air) updates optionally. Matter devices that support Matter updates will have an [update entity](/integrations/update). Furthermore, the CSA DCL (Distributed Compliance Ledger) stores firmware update information. Home Assistant reads firmware update information directly from the DCL to learn about available updates. By default, the integration checks every 12 hours for an update. If you want to force an update check, use the `homeassistant.update_entity` [action](/integrations/homeassistant/) with the update entity as the target.
The Matter protocol supports OTA (Over-the-Air) software updates. But the OTA software update is an optional feature for Matter devices, so not all Matter devices implement it. Home Assistant creates an update entity for every Matter device which does support Matter updates.
The CSA operates a Distributed Compliance Ledger (DCL) which provides metadata for firmware updates. By default, the Matter update entities check the DCL every 12 hours for updates. If you want to force an update check, use the `homeassistant.update_entity` [action](/integrations/homeassistant/), with the update entity as the target. Currently, Eve and Nanoleaf are using the DCL to provide updates. It is expected that in future, more and more firmware updates become available through the DCL.
<p class='img'>
<img src='/images/integrations/matter/matter_ota_message.png' alt='Matter device OTA update message'>
Notification of an OTA update for a Matter device
</p>
## Experiment with Matter using a ESP32 dev board

View File

@ -55,7 +55,7 @@ The following entities are available for a Motionblinds Bluetooth device:
## Actions
Since Motionblinds Bluetooth motors require a Bluetooth connection to control them, Home Assistant does not get automatic updates of the motor's state by default. Therefore, you can use the [homeassistant.update_entity](https://www.home-assistant.io/docs/scripts/service-calls/#homeassistant-actions) action on any entity belonging to a Motionblinds Bluetooth device, which will connect to your Motionblinds Bluetooth motor and update the state of all entities belong to that device. However, be aware that doing so may impact battery life.
Since Motionblinds Bluetooth motors require a Bluetooth connection to control them, Home Assistant does not get automatic updates of the motor's state by default. Therefore, you can use the [homeassistant.update_entity](https://www.home-assistant.io/docs/scripts/perform-actions/#homeassistant-actions) action on any entity belonging to a Motionblinds Bluetooth device, which will connect to your Motionblinds Bluetooth motor and update the state of all entities belong to that device. However, be aware that doing so may impact battery life.
This can also be automated using a YAML automation. For instance, the following automation connects to your Motionblind every 24 hours to update its state in Home Assistant:

View File

@ -1030,31 +1030,6 @@ Documentation on the MQTT components that support YAML [can be found here](/inte
The MQTT integration supports templating. Read more [about using templates with the MQTT integration](/docs/configuration/templating/#using-templates-with-the-mqtt-integration).
## MQTT Notifications
The MQTT notification support is different than for the other [notification](/integrations/notify/) integrations. It is an action. This means you need to provide more details when calling the action.
**Perform action** section from **Developer Tools** -> **Actions** allows you to send MQTT messages. Choose *mqtt.publish* from the list of available actions, and enter something like the sample below into the **data** field and select **Perform action**.
```json
{
"~":"homeassistant/switch/irrigation",
"name":"garden",
"cmd_t":"~/set",
"stat_t":"~/state"
}
```
<p class='img'>
<img src='/images/screenshots/mqtt-notify.png' alt='Screenshot showing how to publish a message to an MQTT topic'/>
</p>
The same will work for automations.
<p class='img'>
<img src='/images/screenshots/mqtt-notify-action.png' alt='Screenshot showing how to publish a message to an MQTT topic for automations' />
</p>
### Examples
#### REST API
@ -1113,11 +1088,7 @@ The MQTT integration will register the `mqtt.publish` action, which allows publi
| `qos` | yes | Quality of Service to use. (default: 0) |
| `retain` | yes | If message should have the retain flag set. (default: false) |
{% important %}
You must include either `topic` or `topic_template`, but not both. If providing a payload, you need to include either `payload` or `payload_template`, but not both.
{% endimportant %}
### Publish action data examples
```yaml
topic: homeassistant/light/1/command
@ -1128,7 +1099,7 @@ payload: on
```yaml
topic: homeassistant/light/1/state
payload_template: "{{ states('device_tracker.paulus') }}"
payload: "{{ states('device_tracker.paulus') }}"
```
{% endraw %}
@ -1136,27 +1107,24 @@ payload_template: "{{ states('device_tracker.paulus') }}"
{% raw %}
```yaml
topic_template: "homeassistant/light/{{ states('sensor.light_active') }}/state"
payload_template: "{{ states('device_tracker.paulus') }}"
topic: "homeassistant/light/{{ states('sensor.light_active') }}/state"
payload: "{{ states('device_tracker.paulus') }}"
```
{% endraw %}
`payload` must be a string.
Be aware that `payload` must be a string.
If you want to send JSON using the YAML editor then you need to format/escape
it properly. Like:
{% raw %}
```yaml
topic: homeassistant/light/1/state
payload: "{\"Status\":\"off\", \"Data\":\"something\"}"`
```
When using Home Assistant's YAML editor for formatting JSON
you should take special care if `payload` contains template content.
Home Assistant will force you in to the YAML editor and will treat your
definition as a template. Make sure you escape the template blocks as like
in the example below. Home Assistant will convert the result to a string
and will pass it to the MQTT publish action.
{% endraw %}
The example below shows how to publish a temperature sensor 'Bathroom Temperature'.
The `device_class` is set, so it is not needed to set the "name" option. The entity

View File

@ -26,11 +26,11 @@ According to the [API documentation](https://www.weather.gov/documentation/servi
Providing a METAR station code is optional, and if not supplied, the closest station to the latitude and longitude will be chosen. A list of nearby stations is printed to the log with level `DEBUG` if no station is supplied. Stations can also be found on the [NOAA website](https://www.cnrfc.noaa.gov/metar.php). Codes with only three characters, for example, `ADW` should be prefixed with the letter K, `KADW`.
One weather entity is created for each entry in the configuration. Hourly and day/night forecasts are provided through the [`weather.get_forecasts` action](/integrations/weather/action--weatherget_forecasts). The time supplied for each forecast is the start time for the forecast. Sensors are also created as disabled entities after configuration and can be enabled by the user.
One weather entity is created for each entry in the configuration. Hourly and day/night forecasts are provided through the [`weather.get_forecasts` action](/integrations/weather#action-weatherget_forecasts). The time supplied for each forecast is the start time for the forecast. Sensors are also created as disabled entities after configuration and can be enabled by the user.
## Action `nws.get_forecasts_extra`
`nws.get_forecasts_extra` provides extra data in a form similar to `weather.get_forecasts`. See [`weather.get_forecasts` documentation](/integrations/weather/action--weatherget_forecasts).
`nws.get_forecasts_extra` provides extra data in a form similar to `weather.get_forecasts`. See [`weather.get_forecasts` documentation](/integrations/weather#action-weatherget_forecasts).
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|

View File

@ -13,6 +13,8 @@ ha_integration_type: service
related:
- docs: /docs/configuration/templating/
title: Home Assistant Templating
- docs: /voice_control/voice_remote_expose_devices/
title: Exposing entities to Assist
- docs: /docs/automation/trigger/#sentence-trigger
title: Sentence trigger
ha_platforms:
@ -21,7 +23,9 @@ ha_platforms:
The **Ollama** {% term integration %} adds a conversation agent in Home Assistant powered by a local [Ollama](https://ollama.com/) server.
This conversation agent is unable to control your house. The Ollama conversation agent can be used in automations, but not as a [sentence trigger](/docs/automation/trigger/#sentence-trigger). It can only query information that has been provided by Home Assistant. To be able to answer questions about your house, Home Assistant will need to provide Ollama with the details of your house, which include areas, devices, and their states.
Controlling Home Assistant is an experimental feature that provides the AI access to the Assist API of Home Assistant. You can control what devices and entities it can access from the {% my voice_assistants title="exposed entities page" %}. The AI is able to provide you information about your devices and control them.
This integration does not integrate with [sentence triggers](/docs/automation/trigger/#sentence-trigger).
This integration requires an external Ollama server, which is available for macOS, Linux, and Windows. Follow the [download instructions](https://ollama.com/download) to install the server. Once installed, configure Ollama to be [accessible over the network](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-expose-ollama-on-my-network).
@ -34,9 +38,12 @@ URL:
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.
Prompt template:
description: The starting text for the AI language model to generate new text from. This text can include information about your Home Assistant instance, devices, and areas and is written using [Home Assistant Templating](/docs/configuration/templating/).
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.
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.
@ -45,3 +52,18 @@ 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
If you want to experiment with local LLMs using Home Assistant, we currently recommend using the `llama3.1:8b` model and exposing fewer than 25 entities. Note that smaller models are more likely to make mistakes than larger models.
Only models that support [Tools](https://ollama.com/search?c=tools) may control Home Assistant.
Smaller models may not [reliably maintain a conversation](https://llama.meta.com/docs/model-cards-and-prompt-formats/llama3_1/#llama-3.1-instruct) when controlling
Home Assistant is enabled. However, you may use multiple Ollama configurations that
share the same model, but use different prompts:
- Add the Ollama integration without enabling control of Home Assistant. You can use
this conversation agent to have a conversation.
- Add an additional Ollama integration, using the same model, enabling control of Home Assistant.
You can use this conversation agent to control Home Assistant.

View File

@ -82,7 +82,7 @@ You can use an OpenAI Conversation integration to [talk to Super Mario and, if d
### Action `openai_conversation.generate_image`
Allows you to ask OpenAI to generate an image based on a prompt. This action
populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
populates [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with the requested image.
| Data attribute | Optional | Description | Example |

View File

@ -19,7 +19,7 @@ This integration allows you to write Python scripts that are exposed as actions
| `time` | The stdlib `time` available as limited access. |
| `datetime` | The stdlib `datetime` available as limited access. |
| `dt_util` | The ` homeassistant.util.dt` module. |
| `output` | An empty dictionary. Add items to return data as [`response_variable`](/docs/scripts/service-calls#use-templates-to-handle-response-data). |
| `output` | An empty dictionary. Add items to return data as [`response_variable`](/docs/scripts/perform-actions#use-templates-to-handle-response-data). |
Other imports like `min`, `max` are available as builtins. See the [python_script](https://github.com/home-assistant/core/blob/dev/homeassistant/components/python_script/__init__.py) source code for up-to-date information on the available objects inside the script.
@ -137,7 +137,7 @@ current_forecast = hass.services.call("weather", "get_forecasts", service_data,
## Returning data
Python script itself can respond with data. Just add items to the `output` variable in your `python_script` and the whole dictionary will be returned. These can be used in automations to act upon the command results using [`response_variable`](/docs/scripts/service-calls#use-templates-to-handle-response-data).
Python script itself can respond with data. Just add items to the `output` variable in your `python_script` and the whole dictionary will be returned. These can be used in automations to act upon the command results using [`response_variable`](/docs/scripts/perform-actions#use-templates-to-handle-response-data).
```python
# hello_world.py

View File

@ -47,7 +47,7 @@ The qBittorrent integration adds the following switch:
### Action `qbittorrent.get_torrents`
This action populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This action populates [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with a dictionary of torrents based on the provided filter.
| Data attribute | Optional | Description | Example |
@ -66,7 +66,7 @@ The response data contains the field `torrents` which contains a dictionary of t
### Action `qbittorrent.get_all_torrents`
This action populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This action populates [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with a dictionary of torrents based on the provided filter.
| Data attribute | Optional | Description | Example |

View File

@ -35,7 +35,8 @@ The integration allows you to control [Reolink](https://reolink.com/) NVRs or ca
{% include integrations/config_flow.md %}
On the Reolink device, a user account with admin privileges is needed for the proper operation of this integration.
- On the Reolink device, a user account with admin privileges is needed for the proper operation of this integration.
- 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/option_flow.md %}
{% configuration_basic %}
@ -299,7 +300,7 @@ The following models have been tested and confirmed to work with a direct link t
- Reolink Duo Floodlight ([PoE](https://reolink.com/product/reolink-duo-floodlight-poe/) and [Wi-Fi](https://reolink.com/product/reolink-duo-floodlight-wifi/))
- [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/)
- Reolink TrackMix ([PoE](https://reolink.com/product/reolink-trackmix-poe/) and [Wi-Fi](https://reolink.com/product/reolink-trackmix-wifi/))
- Reolink Video Doorbell ([PoE](https://reolink.com/product/reolink-video-doorbell/) and [Wi-Fi](https://reolink.com/product/reolink-video-doorbell-wifi/))
- Reolink Video Doorbell ([PoE Black](https://reolink.com/product/reolink-video-doorbell/), [Wi-Fi Black](https://reolink.com/product/reolink-video-doorbell-wifi/), [PoE White](https://reolink.com/product/reolink-video-doorbell/) and [Wi-Fi White](https://reolink.com/product/reolink-video-doorbell-wifi/))
*These models are discontinued and not sold anymore, they will continue to work with Home Assistant.

View File

@ -95,7 +95,7 @@ rest_command:
### Using REST command Response in automations
REST commands provide an action response in a dictionary containing `status` (containing the HTTP response code) and `content` containing the response body as text or JSON. This response can be accessed in automations using [`response_variable`](/docs/scripts/service-calls#use-templates-to-handle-response-data).
REST commands provide an action response in a dictionary containing `status` (containing the HTTP response code) and `content` containing the response body as text or JSON. This response can be accessed in automations using [`response_variable`](/docs/scripts/perform-actions#use-templates-to-handle-response-data).
The following example shows how the REST command response may be used in automations. In this case, checking the [Traefik API](https://doc.traefik.io/traefik/operations/api/) for errors.

View File

@ -36,7 +36,7 @@ This {% term integrations %} has been tested and confirmed to be working with t
{% include integrations/config_flow.md %}
{% warning %}
The Roomba's MQTT server only allows a single connection. Enabling continuous mode will force the App to connect via the cloud to your Roomba. For more information, refer to the [Roomba 980 repository](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes).
The Roomba's MQTT server only allows a single connection. Continuous mode is enabled by default, which will force the App to connect via the cloud to your Roomba. Continuous mode can be disabled in the configuration options for the integration after it is added. For more information, refer to the [Roomba 980 repository](https://github.com/NickWaterton/Roomba980-Python#firmware-2xx-notes).
{% endwarning %}
## Integration entities

View File

@ -18,4 +18,20 @@ The `russound_rio` {% term integration %} allows you to control Russound devices
The platform automatically discovers all enabled zones and sources. Each zone is added as a media player device with the enabled sources available as inputs. Media information is supported if the selected source reports it.
## Supported devices
This integration allows you to connect the following controllers:
- Russound MBX-PRE
- Russound MBX-AMP
- Russound MCA-C3
- Russound MCA-C5
- Russound MCA-66
- Russound MCA-88
- Rusosund MCA-88x
- Russound XSource
- Russound XZone4
- Russound XZone70V
- Russound XStream-X5
{% include integrations/config_flow.md %}

View File

@ -20,6 +20,16 @@ This has initially been tested against a Russound CAV6.6 unit with six zones and
Connecting to the Russound device is only possible by TCP, you can make use of a TCP to Serial gateway such as [tcp_serial_redirect](https://github.com/pyserial/pyserial/blob/master/examples/tcp_serial_redirect.py)
## Supported devices
This integration allows you to connect the following controllers:
- Russound ACA-E5
- Russound CAS44
- Russound CAA66
- Russound CAM6.6
- Russound CAV6.6
To add an {% term integration %} to your installation, add the following to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}

View File

@ -440,7 +440,7 @@ mqtt:
state_topic: "office/sensor1"
suggested_display_precision: 1
unit_of_measurement: "°C"
value_template: "{{ value_json.temperature }}
value_template: "{{ value_json.temperature }}"
- name: "Humidity"
state_topic: "office/sensor1"
unit_of_measurement: "%"

View File

@ -62,7 +62,7 @@ type: markdown
title: Packages in transit
content: >
{% for package in
states.sensor.seventeentrack_packages_in_transit.attributes.packages %}
states.sensor['17track_in_transit'].attributes.packages %}
>- **{{ package.friendly_name }} ({{ package.tracking_number }}):** {{
package.info_text }}

View File

@ -54,7 +54,7 @@ A `0` exit code means the commands completed successfully without error. In case
## Response
Shell commands provide an action response in a dictionary containing `stdout`, `stderr`, and `returncode`. These can be used in automations to act upon the command results using [`response_variable`](/docs/scripts/service-calls#use-templates-to-handle-response-data).
Shell commands provide an action response in a dictionary containing `stdout`, `stderr`, and `returncode`. These can be used in automations to act upon the command results using [`response_variable`](/docs/scripts/perform-actions#use-templates-to-handle-response-data).
## Examples

View File

@ -308,7 +308,7 @@ shelly:
## Virtual components
Shelly generation 2 devices (Pro models with firmware 1.4.0 or later) and generation 3 devices allow the creation of virtual components. Virtual components are a special set of components that do not initially exist on the device and are dynamically created by the user to interact with Shelly scripts. You can add virtual components to the device configuration in the **Components** section in the device's web panel.
Shelly generation 2 devices (Pro models with firmware 1.4.0 or later) and generation 3 devices (with firmware 1.2.0 or later) allow the creation of virtual components. Virtual components are a special set of components that do not initially exist on the device and are dynamically created by the user to interact with Shelly scripts. You can add virtual components to the device configuration in the **Components** section in the device's web panel.
The integration supports the following virtual components:

View File

@ -2,6 +2,7 @@
title: SimpleFin
description: Instructions on the SimpleFIN Integration for personal finance.
ha_category:
- Finance
- Sensor
ha_iot_class: Cloud Polling
ha_release: 2024.8

View File

@ -31,6 +31,14 @@ ha_integration_type: integration
The SleepIQ integration lets you integrate your SleepNumber Bed via [SleepIQ by SleepNumber](https://www.sleepnumber.com/pages/sleepiq-sleep-tracker).
## Prerequisites
You will need an account on [SleepIQ](https://sleepiq.sleepnumber.com/) to use this integration.
{% include integrations/config_flow.md %}
## Supported device types
There is currently support available for the following platforms within Home Assistant, depending on the bed's capabilities:
- Binary sensor - View occupancy of each side
@ -44,6 +52,7 @@ There is currently support available for the following platforms within Home Ass
- Sensor - View pressure of each side
- Switch - Toggle Privacy mode
You will need an account on [SleepIQ](https://sleepiq.sleepnumber.com/) to use this integration.
## Notes
{% include integrations/config_flow.md %}
- If you are using a DNS-based ad-blocker such as Pi-hole, you may need to disable it temporarily while configuring this item in Home Assistant.
- The Sleep Number bed communicates with endpoints on **sleepnumber.com** as well as the AWS Firehose data collection service at **firehose.us-east-1.amazonaws.com**.

View File

@ -61,33 +61,33 @@ The following are supported for `sensor` source sensors `state_characteristic`:
| State Characteristic | Description |
| -------------------- | ----------- |
| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Good suited to observe a source sensor with non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. outside temperature).
| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. The resulting step function represents well the behavior of non-continuous behavior, like the set temperature of a boiler.
| `average_timeless` | The average value of stored measurements. This method assumes that all measurements are equally spaced and, therefore, time is ignored and a simple average of values is computed. Equal to `mean`.
| `change_sample` | The average change per sample. The difference between the newest and the oldest measurement is divided by the number of in-between measurements (n-1).
| `change_second` | The average change per second. The difference between the newest and the oldest measurement is divided by seconds between them.
| `change` | The difference between the newest and the oldest measurement.
| `count` | The number of stored source sensor readings. This number is limited by `sampling_size` and can be low within the bounds of `max_age`.
| `datetime_newest` | The timestamp of the newest measurement.
| `datetime_oldest` | The timestamp of the oldest measurement.
| `datetime_value_max` | The timestamp of the numerically biggest measurement.
| `datetime_value_min` | The timestamp of the numerically smallest measurement.
| `distance_95_percent_of_values` | A statistical indicator derived from the standard deviation of an assumed normal distribution. 95% of all stored values fall into a range of returned size.
| `distance_99_percent_of_values` | A statistical indicator derived from the standard deviation of an assumed normal distribution. 99% of all stored values fall into a range of returned size.
| `distance_absolute` | The difference or "spread" between the extreme values of measurements. Equals `value_max` minus `value_min`.
| `mean` | The average value computed for all measurements. Be aware that this does not take into account uneven time intervals between measurements.
| `mean_circular` | The [circular mean](https://en.wikipedia.org/wiki/Circular_mean) for angular measurements (_e.g._ wind direction). Assumes that measurements are expressed in degrees (_e.g._, 180° or -90°), and outputs the mean in positive degrees (0-360°).
| `median` | The [median](https://en.wikipedia.org/wiki/Mode_(statistics)#Comparison_of_mean,_median_and_mode) value computed for all measurements.
| `noisiness` | A simplified version of a signal-to-noise ratio. A high value indicates a quickly changing source sensor value, a small value will be seen for a steady source sensor. The absolute change between subsequent source sensor measurement values is summed up and divided by the number of intervals.
| `percentile` | [Percentiles](https://en.wikipedia.org/wiki/Percentile) divide the range of a distribution of all considered source sensor measurements into 100 continuous intervals of equal probability. The characteristic calculates the value for which a given percentage of source sensor measurements are smaller in value. The 20th percentile is the value below which 20 percent of the measurements may be found. The additional configuration parameters `percentile` is needed, see below.
| `standard_deviation` | The [standard deviation](https://en.wikipedia.org/wiki/Standard_deviation) of an assumed normal distribution from all measurements.
| `sum` | The mathematical sum of all source sensor measurement values within the given time and sampling size limits.
| `sum_differences` | The mathematical sum of differences between subsequent source sensor measurement values within the given time and sampling size limits.
| `sum_differences_nonnegative` | The mathematical sum of non-negative differences between subsequent source sensor measurement values within the given time and sampling size limits. The characteristic assumes that the source sensor value can only increase, but might occasionally be reset to zero. If a value is smaller than the previous value, the function assumes the previous value should have been a zero.
| `total` | The mathematical sum of all source sensor measurement values within the given time and sampling size limits. Equal to `sum`.
| `value_max` | The biggest value among the number of measurements.
| `value_min` | The smallest value among the number of measurements.
| `variance` | The [variance](https://en.wikipedia.org/wiki/Variance) of an assumed normal distribution from all measurements.
| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This type of average may show unexpected behavior in cases where values remain stable (e.g. an equally spaced sequence of t1:0 -> t2:0 -> t3:0 -> t4:0 -> t5:10 would produce an average of 5 instead of 1,25 because the non-changing zeros in the middle (t2 to t4) are being filtered out by Home Assistant and so the actually computed curve already starts rising at t1 instead of staying flat until t4). Accordingly, this function is only making sense in the context of noisy sensors that keep changing constantly. |
| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: Even when a time interval is specified by the max age parameter, the average is not necessarily matching the average over that whole interval (e.g. when values were removed due to the sampling size limit). |
| `average_timeless` | The average value of stored measurements. This method assumes that all measurements are equally spaced and, therefore, time is ignored and a simple average of values is computed. Equal to `mean`. |
| `change_sample` | The average change per sample. The difference between the newest and the oldest measurement is divided by the number of in-between measurements (n-1). |
| `change_second` | The average change per second. The difference between the newest and the oldest measurement is divided by seconds between them. |
| `change` | The difference between the newest and the oldest measurement. |
| `count` | The number of stored source sensor readings. This number is limited by `sampling_size` and can be low within the bounds of `max_age`. |
| `datetime_newest` | The timestamp of the newest measurement. |
| `datetime_oldest` | The timestamp of the oldest measurement. |
| `datetime_value_max` | The timestamp of the numerically biggest measurement. |
| `datetime_value_min` | The timestamp of the numerically smallest measurement. |
| `distance_95_percent_of_values` | A statistical indicator derived from the standard deviation of an assumed normal distribution. 95% of all stored values fall into a range of returned size. |
| `distance_99_percent_of_values` | A statistical indicator derived from the standard deviation of an assumed normal distribution. 99% of all stored values fall into a range of returned size. |
| `distance_absolute` | The difference or "spread" between the extreme values of measurements. Equals `value_max` minus `value_min`. |
| `mean` | The average value computed for all measurements. Be aware that this does not consider uneven time intervals between measurements. |
| `mean_circular` | The [circular mean](https://en.wikipedia.org/wiki/Circular_mean) for angular measurements (_e.g._ wind direction). Assumes that measurements are expressed in degrees (_e.g._, 180° or -90°), and outputs the mean in positive degrees (0-360°). |
| `median` | The [median](https://en.wikipedia.org/wiki/Mode_(statistics)#Comparison_of_mean,_median_and_mode) value computed for all measurements. |
| `noisiness` | A simplified version of a signal-to-noise ratio. A high value indicates a quickly changing source sensor value, a small value will be seen for a steady source sensor. The absolute change between subsequent source sensor measurement values is summed up and divided by the number of intervals. |
| `percentile` | [Percentiles](https://en.wikipedia.org/wiki/Percentile) divide the range of a distribution of all considered source sensor measurements into 100 continuous intervals of equal probability. The characteristic calculates the value for which a given percentage of source sensor measurements are smaller in value. The 20th percentile is the value below which 20 percent of the measurements may be found. The additional configuration parameters `percentile` is needed, see below. |
| `standard_deviation` | The [standard deviation](https://en.wikipedia.org/wiki/Standard_deviation) of an assumed normal distribution from all measurements. |
| `sum` | The mathematical sum of all source sensor measurement values within the given time and sampling size limits. |
| `sum_differences` | The mathematical sum of differences between subsequent source sensor measurement values within the given time and sampling size limits. |
| `sum_differences_nonnegative` | The mathematical sum of non-negative differences between subsequent source sensor measurement values within the given time and sampling size limits. The characteristic assumes that the source sensor value can only increase, but might occasionally be reset to zero. If a value is smaller than the previous value, the function assumes the previous value should have been a zero. |
| `total` | The mathematical sum of all source sensor measurement values within the given time and sampling size limits. Equal to `sum`. |
| `value_max` | The largest value among the number of measurements. |
| `value_min` | The smallest value among the number of measurements. |
| `variance` | The [variance](https://en.wikipedia.org/wiki/Variance) of an assumed normal distribution from all measurements. |
### Binary Source Sensor

View File

@ -23,22 +23,6 @@ The [Stationboard](https://transport.opendata.ch/examples/stationboard.html) web
{% include integrations/config_flow.md %}
{% configuration %}
from:
description: The ID of the station of the start station.
required: true
type: string
to:
description: The ID of the station of the end station.
required: true
type: string
name:
description: The name of the sensor.
required: false
type: string
default: Next Departure
{% endconfiguration %}
The public timetables are coming from [Swiss public transport](https://transport.opendata.ch/).
### Defining a custom polling interval

View File

@ -176,7 +176,7 @@ data:
id: 17752
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: 17752
@ -203,7 +203,7 @@ data:
name: discord
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
count: 1
@ -232,7 +232,7 @@ data:
path: "C:\\image.jpg"
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: abc123
@ -255,7 +255,7 @@ data:
url: "https://home-assistant.io"
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: abc123
@ -278,7 +278,7 @@ data:
key: "a"
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: abc123
@ -301,7 +301,7 @@ data:
text: "Hello"
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: abc123
@ -333,7 +333,7 @@ data:
command: "sleep"
```
This returns [Response Data](https://www.home-assistant.io/docs/scripts/service-calls#use-templates-to-handle-response-data) like the following:
This returns [Response Data](https://www.home-assistant.io/docs/scripts/perform-actions#use-templates-to-handle-response-data) like the following:
```yaml
id: abc123

View File

@ -34,11 +34,11 @@ this, please consult the [Tailscale documentation](https://tailscale.com/kb/).
## Prerequisites
To use the Tailscale integration, you will need to obtain an API key,
you can create one in the [Tailscale Admin Panel](https://login.tailscale.com/admin/settings/authkeys).
To use the Tailscale integration, you will need to obtain an API access token,
you can create one in the [Tailscale Admin Panel](https://login.tailscale.com/admin/settings/keys).
Additionally, you will need to know the Tailnet name of your Tailscale network.
You can find it in the top left corner in the [Tailscale Admin Panel](https://login.tailscale.com/admin/settings/authkeys)
You can find it in the top left corner in the [Tailscale Admin Panel](https://login.tailscale.com/admin/settings/keys)
(beside the Tailscale logo).
{% include integrations/config_flow.md %}

View File

@ -58,3 +58,9 @@ scan_interval:
{% endconfiguration %}
The integration will offer configuration through the Home Assistant user interface where it will let you associate it with your Telldus Live account.
{% note %}
If you are receiving the error message: "The path '/tellduslive/authorize' was not found", you have to switch to a web browser that allows HTTP connections. Firefox is known to work fine. Chrome is known to cause issues.
{% endnote %}

View File

@ -138,7 +138,7 @@ unique_id:
required: false
type: string
action:
description: Define actions to be executed when the trigger fires. Optional. Variables set by the action script are available when evaluating entity templates. This can be used to interact with anything using actions, in particular actions with [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data). [See action documentation](/docs/automation/action).
description: Define actions to be executed when the trigger fires. Optional. Variables set by the action script are available when evaluating entity templates. This can be used to interact with anything using actions, in particular actions with [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data). [See action documentation](/docs/automation/action).
required: false
type: list
sensor:
@ -786,7 +786,7 @@ template:
### Trigger based handling of action response data
This example demonstrates how to use an `action` to call a [action with response data](/docs/scripts/service-calls/#use-templates-to-handle-response-data)
This example demonstrates how to use an `action` to call a [action with response data](/docs/scripts/perform-actions/#use-templates-to-handle-response-data)
and use the response in a template.
{% raw %}

View File

@ -24,7 +24,7 @@ The Tesla Fleet API {% term integration %} exposes various sensors from Tesla ve
## Prerequisites
You must have a [Tesla](https://tesla.com) account and a Tesla vehicle, PowerWall, Solar, or Wall Connector.
You must have a [Tesla](https://tesla.com) account and a Tesla vehicle, PowerWall, Solar, or Wall Connector, and must not have disabled the [My Home Assistant](/integrations/my/) integration.
{% include integrations/config_flow.md %}

View File

@ -85,16 +85,16 @@ If you have a Tibber Pulse it will also show the electricity consumption in real
## Actions
The hourly prices are exposed using [actions](/docs/scripts/service-calls/). The actions populate [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data) with price data.
The hourly prices are exposed using [actions](/docs/scripts/perform-actions/). The actions populate [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data) with price data.
### Action `tibber.get_prices`
Fetches hourly energy prices including price level.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2024-01-01 00:00:00 |
| `end` | yes | End time to get prices. Defaults to tomorrow 00:00:00 | 2024-01-01 00:00:00 |
| Data attribute | Optional | Description | Example |
| -------------- | -------- | ----------------------------------------------------- | ------------------- |
| `start` | yes | Start time to get prices. Defaults to today 00:00:00 | 2024-01-01 00:00:00 |
| `end` | yes | End time to get prices. Defaults to tomorrow 00:00:00 | 2024-01-01 00:00:00 |
#### Response data

View File

@ -45,15 +45,15 @@ item to a pre-configured to-do list.
## Actions
Some to-do list integrations allow Home Assistant to manage the to-do items in the list. The
actions provided by some to-do list entities are described below or you can read more about [actions](/docs/scripts/service-calls/).
actions provided by some to-do list entities are described below or you can read more about [actions](/docs/scripts/perform-actions/).
### Action `todo.get_items`
Get to-do items from a to-do list. A to-do list `target` is selected with a [target selector](/docs/blueprint/selectors/#target-selector). The `data` payload supports the following fields:
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------------------------------------- | --------------------------- |
| `status` | yes | Only return to-do items with this status. | `needs_action`, `completed` |
| -------------- | -------- | ----------------------------------------- | --------------------------- |
| `status` | yes | Only return to-do items with this status. | `needs_action`, `completed` |
This is a full example that returns all to-do items that have not been completed:
@ -71,11 +71,11 @@ data:
Add a new to-do item. A to-do list `target` is selected with a [Target Selector](/docs/blueprint/selectors/#target-selector) and the `data` payload supports the following fields:
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ---------------------------------------------------------------- | ------------------------------------------------------------ |
| `item` | no | the name of the to-do Item. | Submit income tax return |
| `due_date` | yes | The date the to-do item is expected to be completed. | 2024-04-10 |
| `due_datetime` | yes | The date and time the to-do item is expected to be completed. | 2024-04-10 23:00:00 |
| `description` | yes | A more complete description than the one provided by the summary | Collect all necessary documents and submit the final return. |
| -------------- | -------- | ---------------------------------------------------------------- | ------------------------------------------------------------ |
| `item` | no | the name of the to-do Item. | Submit income tax return |
| `due_date` | yes | The date the to-do item is expected to be completed. | 2024-04-10 |
| `due_datetime` | yes | The date and time the to-do item is expected to be completed. | 2024-04-10 23:00:00 |
| `description` | yes | A more complete description than the one provided by the summary | Collect all necessary documents and submit the final return. |
Only one of `due_date` or `due_datetime` may be specified.
@ -96,13 +96,13 @@ data:
Update a to-do item. A to-do list `target` is selected with a [Target Selector](/docs/blueprint/selectors/#target-selector) and the `data` payload supports the following fields:
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------------------------------------------------------------- | ------------------------------------------------------------ |
| `item` | no | The name of the to-do Item to update. | Submit income tax return |
| `rename` | yes | The new name of the to-do Item. | Something else |
| `status` | yes | The overall status of the To-do Item. | `needs_action` or `completed` |
| `due_date` | yes | The date the to-do item is expected to be completed. | 2024-04-10 |
| `due_datetime` | yes | The date and time the to-do item is expected to be completed. | 2024-04-10 23:00:00 |
| `description` | yes | A more complete description than the one provided by the summary. | Collect all necessary documents and submit the final return. |
| -------------- | -------- | ----------------------------------------------------------------- | ------------------------------------------------------------ |
| `item` | no | The name of the to-do Item to update. | Submit income tax return |
| `rename` | yes | The new name of the to-do Item. | Something else |
| `status` | yes | The overall status of the To-do Item. | `needs_action` or `completed` |
| `due_date` | yes | The date the to-do item is expected to be completed. | 2024-04-10 |
| `due_datetime` | yes | The date and time the to-do item is expected to be completed. | 2024-04-10 23:00:00 |
| `description` | yes | A more complete description than the one provided by the summary. | Collect all necessary documents and submit the final return. |
At least one of `rename` or `status` is required. Only one of `due_date` or `due_datetime` may be specified. This is a full example that updates the status and the name of a to-do item.
@ -121,8 +121,8 @@ data:
Removing a to-do item. A to-do list `target` is selected with a [Target Selector](/docs/blueprint/selectors/#target-selector), and the `data` payload supports the following fields:
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | --------------------------- | ------------------------ |
| `item` | no | The name of the to-do item. | Submit income tax return |
| -------------- | -------- | --------------------------- | ------------------------ |
| `item` | no | The name of the to-do item. | Submit income tax return |
This is a full example that deletes a to-do Item with the specified name.

View File

@ -78,7 +78,7 @@ The action to route the packet is most likely named "IP Helper". It may support
## Button
The `wake_on_lan` (WOL) switch {% term integration %} allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer.
The `wake_on_lan` (WOL) button {% term integration %} allows you to turn on a [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) enabled computer.
The WOL button can only turn on your computer.
It will send a magic packet to the MAC address specified in the configuration. As a button, it is stateless. This means it can not monitor if the WOL-enabled computer has actually received the wake-up call and has started.

View File

@ -27,7 +27,7 @@ Notes:
## Action `waze_travel_time.get_travel_times`
This service populates [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This service populates [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with route alternatives and travel times between two locations.
| Data attribute | Optional | Description | Example |

View File

@ -70,7 +70,7 @@ wind_speed_unit: km/h
## Action `weather.get_forecasts`
This action populates [response data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This action populates [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with a mapping of weather services and their associated forecasts.
| Data attribute | Optional | Description | Example |

View File

@ -27,11 +27,19 @@ ha_integration_type: device
---
[WLED](https://kno.wled.ge) is a fast and feature-rich
implementation of an ESP8266/ESP32 webserver to control
NeoPixel (WS2812B, WS2811, SK6812, APA102, and similar) LED's.
implementation of an ESP8266/ESP32 webserver to control NeoPixel LEDs
(like WS2812B, WS2811, SK6812, and similar) and SPI based chipsets
(like WS2801 and APA102).
While Home Assistant supports WLED 0.8.4 and higher, the use of WLED 0.10 and
newer is recommended to get the optimal experience.
## Prerequisites
{% important %}
This integration requires a WLED device running WLED 0.14.0 or newer.
{% endimportant %}
You can install the latest version of WLED on your device by going to
the [WLED web installer](https://install.wled.me/) or by downloading the
latest release from the [WLED GitHub releases page](https://github.com/Aircoookie/WLED/releases).
{% include integrations/config_flow.md %}
@ -46,10 +54,8 @@ Only native supported features of a light in Home Assistant are supported
### Using WLED segments
WLED can split a single LED strip into multiple segments.
These segments can be controlled separately in WLED and in Home Assistant as
well. The fully-featured segment control has been introduced in WLED 0.10
but has been partly around via APIs since WLED 0.8.6.
WLED can split a single LED strip into multiple segments. These segments can be
controlled separately in WLED and in Home Assistant as well.
If WLED has 1 segment defined (the default), that one segment controls the whole
LED strip. Home Assistant creates a single light {% term entity %} to control the
@ -63,7 +69,8 @@ Additionally, select and number entities described below will be created for eac
## Select entities
This {% term integration %} provides selects for the following information from WLED:
This {% term integration %} provides [select entities](/integrations/select)
for the following information from WLED:
- Playlist
- Preset
@ -71,52 +78,57 @@ This {% term integration %} provides selects for the following information from
## Number entities
This {% term integration %} provides `number` entities to control the following, segment-specific settings:
This {% term integration %} provides [number entities](/integrations/number)
to control the following, segment-specific settings:
- Intensity
- Speed
## Sensor entities
This {% term integration %} provides sensors for the following information from WLED:
This {% term integration %} provides [sensor entities](/integrations/sensor)
for the following information from WLED:
- Estimated current (in mA).
- Estimated current (in mA)
- Uptime (disabled by default)
- Free memory (in bytes, disabled by default).
- Wi-Fi Signal Strength (in %, disabled by default).
- Wi-Fi Signal Strength (RSSI in dBm, disabled by default).
- Wi-Fi Channel (disabled by default).
- Wi-Fi BSSID (disabled by default).
- IP.
- Free memory (in bytes, disabled by default)
- Wi-Fi Signal Strength (in %, disabled by default)
- Wi-Fi Signal Strength (RSSI in dBm, disabled by default)
- Wi-Fi Channel (disabled by default)
- Wi-Fi BSSID (disabled by default)
- IP Address
## Switches
The {% term integration %} will create a number of switches:
The {% term integration %} will also create a number of
[switch entities](/integrations/switch).
### Nightlight
Toggles the WLED Timer.
Can be configured on the WLED itself under settings > LED Preferences > Timed light.
Can be configured on the WLED itself under
**Settings** > **LED Preferences** > **Timed light**.
### Sync receive and sync send
Toggles the synchronization between multiple WLED devices.
Can be configured on the WLED itself under settings > Sync Interfaces > WLED Broadcast.
Can be configured on the WLED itself under
**Ssettings** > **Sync Interfaces** > **WLED Broadcast**.
[WLED Sync documentation](https://kno.wled.ge/interfaces/udp-realtime/)
## Firmware updates
The {% term integration %} has an [update entity](/integrations/update/) that provides
information on the latest available version of WLED and indicates if a
firmware update is available for installation.
The {% term integration %} has an [update entity](/integrations/update/)
that provides information on the latest available version of WLED
and indicates if a firmware update is available for installation.
The firmware update can be triggered and installed onto your WLED device
directly from Home Assistant.
The update {% term entity %} will only provide updates to stable versions, unless you are
using a beta version of WLED. In that case, the update {% term entity %} will also provide
updates to newer beta versions.
The update {% term entity %} will only provide updates to stable versions,
unless you are using a beta version of WLED. In that case, the update
{% term entity %} will also provide updates to newer beta versions.
{% include integrations/option_flow.md %}
@ -182,7 +194,7 @@ to a preset called My Preset:
An automation to turn on a WLED light and select a specific palette and
set intensity, and speed can be created by first calling the `light.turn_on`
service, then calling the `select.select_option` action to select the
action, then calling the `select.select_option` action to select the
palette, then call the `number.set_value` action to set the intensity
and again to set the speed.

View File

@ -52,7 +52,7 @@ Additional categories can be added through the configuration to include optional
## Action `workday.check_date`
This action populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
This action populates [Response Data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
providing feedback if the date is a workday or not.
| Data attribute | Required | Description | Example |

View File

@ -69,7 +69,7 @@ This {% term integration %} currently supports the following device types within
- [Switch](/integrations/switch/)
- [Update](/integrations/update/)
In addition, it has support for "Zigbee groups" that enable native on-device grouping of multiple Zigbee lights, switches, and fans that enable controlling all entities for those devices in those groups with one command. At least two entities must be added to a Zigbee group inside the ZHA {% term integration %} before a group entity is created. There is also support for native on-device Zigbee [binding and unbinding (i.e. bind a remote to a lightbulb or group)](#binding-and-unbinding).
In addition, it has support for "Zigbee groups" that enable native on-device grouping of multiple Zigbee lights, switches, and fans that enable controlling all entities for those devices in those groups with one command. At least two entities must be added to a Zigbee group inside the ZHA {% term integration %} before a group entity is created. There is also support for native on-device Zigbee [binding and unbinding (i.e. bind a remote to a lightbulb or group)](#zigbee-binding-and-unbinding).
## Introduction

View File

@ -58,6 +58,10 @@ Enjoy the release! 🎉
- [KNX can now be managed via the UI](#knx-can-now-be-managed-via-the-ui)
- [Other noteworthy changes](#other-noteworthy-changes)
- [Integrations and helpers set up via YAML, now visible in the UI!](#integrations-and-helpers-set-up-via-yaml-now-visible-in-the-ui)
- [Patch releases](#patch-releases)
- [2024.8.1 - August 10](#202481---august-10)
- [2024.8.2 - August 16](#202482---august-16)
- [2024.8.3 - August 25](#202483---august-25)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@ -593,7 +597,7 @@ Most popular {% term integrations %} and helpers can be set up directly from the
Home Assistant user interface. However, we still have a lot of older or less
used integrations that can only be set up using [manual YAML configuration](/docs/configuration/yaml/).
We are working hard to move [more and more of these integrations to the UI](#now-available-to-set-up-from-the-ui),
however, this takes time and effort.
however, this takes time and effort.
The problem with these integrations is that they are not visible in the UI
when they are set up using YAML. What we often see is that someone sets up
@ -621,6 +625,305 @@ if you want to change the configuration of these integrations or helpers, you
will need to do so in the YAML configuration files.
{% endnote %}
## Patch releases
We will also release patch releases for Home Assistant 2024.8 in August. These
patch releases only contain bug fixes. Our goal is to release a patch every
week (around Friday).
### 2024.8.1 - August 10
- Add support for v3 Coinbase API ([@TomBrien] - [#116345])
- Bump OpenWeatherMap to 0.1.1 ([@freekode] - [#120178])
- Fix limit and order property for transmission integration ([@fustom] - [#123305])
- Fix doorbird with externally added events ([@bdraco] - [#123313])
- Bump aiorussound to 2.2.2 ([@noahhusby] - [#123319])
- Revert "Fix blocking I/O while validating config schema" ([@emontnemery] - [#123377])
- Ensure legacy event foreign key is removed from the states table when a previous rebuild failed ([@bdraco] - [#123388])
- Bump aiohttp to 3.10.2 ([@bdraco] - [#123394])
- Also migrate dsmr entries for devices with correct serial ([@dupondje] - [#123407])
- Add missing logger to Tessie ([@Bre77] - [#123413])
- Bump YoLink API to 0.4.7 ([@matrixd2] - [#123441])
- Support action YAML syntax in old-style notify groups ([@frenck] - [#123457])
- Bump ZHA library to 0.0.29 ([@puddly] - [#123464])
- Bump pyjvcprojector to 1.0.12 to fix blocking call ([@SteveEasley] - [#123473])
- Bump monzopy to 1.3.2 ([@JakeMartin-ICL] - [#123480])
- Fix startup blocked by bluesound integration ([@LouisChrist] - [#123483])
- Update frontend to 20240809.0 ([@frenck] - [#123485])
- Bump zha lib to 0.0.30 ([@dmulcahey] - [#123499])
- Bumb python-homewizard-energy to 6.2.0 ([@DCSBL] - [#123514])
- Fix cleanup of old orphan device entries in AVM Fritz!Tools ([@mib1185] - [#123516])
- Bump pydaikin to 2.13.2 ([@mattyway] - [#123519])
- Bump AirGradient to 0.8.0 ([@joostlek] - [#123527])
- Upgrade chacon_dio_api to version 1.2.0 ([@cnico] - [#123528])
[#116345]: https://github.com/home-assistant/core/pull/116345
[#120178]: https://github.com/home-assistant/core/pull/120178
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123305]: https://github.com/home-assistant/core/pull/123305
[#123313]: https://github.com/home-assistant/core/pull/123313
[#123319]: https://github.com/home-assistant/core/pull/123319
[#123377]: https://github.com/home-assistant/core/pull/123377
[#123388]: https://github.com/home-assistant/core/pull/123388
[#123394]: https://github.com/home-assistant/core/pull/123394
[#123407]: https://github.com/home-assistant/core/pull/123407
[#123413]: https://github.com/home-assistant/core/pull/123413
[#123441]: https://github.com/home-assistant/core/pull/123441
[#123457]: https://github.com/home-assistant/core/pull/123457
[#123464]: https://github.com/home-assistant/core/pull/123464
[#123473]: https://github.com/home-assistant/core/pull/123473
[#123480]: https://github.com/home-assistant/core/pull/123480
[#123483]: https://github.com/home-assistant/core/pull/123483
[#123485]: https://github.com/home-assistant/core/pull/123485
[#123499]: https://github.com/home-assistant/core/pull/123499
[#123514]: https://github.com/home-assistant/core/pull/123514
[#123516]: https://github.com/home-assistant/core/pull/123516
[#123519]: https://github.com/home-assistant/core/pull/123519
[#123527]: https://github.com/home-assistant/core/pull/123527
[#123528]: https://github.com/home-assistant/core/pull/123528
[@Bre77]: https://github.com/Bre77
[@DCSBL]: https://github.com/DCSBL
[@JakeMartin-ICL]: https://github.com/JakeMartin-ICL
[@LouisChrist]: https://github.com/LouisChrist
[@SteveEasley]: https://github.com/SteveEasley
[@TomBrien]: https://github.com/TomBrien
[@bdraco]: https://github.com/bdraco
[@cnico]: https://github.com/cnico
[@dmulcahey]: https://github.com/dmulcahey
[@dupondje]: https://github.com/dupondje
[@emontnemery]: https://github.com/emontnemery
[@freekode]: https://github.com/freekode
[@frenck]: https://github.com/frenck
[@fustom]: https://github.com/fustom
[@joostlek]: https://github.com/joostlek
[@matrixd2]: https://github.com/matrixd2
[@mattyway]: https://github.com/mattyway
[@mib1185]: https://github.com/mib1185
[@noahhusby]: https://github.com/noahhusby
[@puddly]: https://github.com/puddly
### 2024.8.2 - August 16
- Avoid Exception on Glances missing key ([@wittypluck] - [#114628])
- Fix Madvr sensor values on startup ([@iloveicedgreentea] - [#122479])
- Drop violating rows before adding foreign constraints in DB schema 44 migration ([@emontnemery] - [#123454])
- Handle Yamaha ValueError ([@pssc] - [#123547])
- Bump aiohttp to 3.10.3 ([@bdraco] - [#123549])
- Update knx-frontend to 2024.8.9.225351 ([@farmio] - [#123557])
- Fix secondary russound controller discovery failure ([@noahhusby] - [#123590])
- Change WoL to be secondary on device info ([@gjohansson-ST] - [#123591])
- Ensure HomeKit connection is kept alive for devices that timeout too quickly ([@bdraco] - [#123601])
- Bump `aioshelly` to version 11.2.0 ([@bieniu] - [#123602])
- Bump pydaikin to 2.13.4 ([@kingy444] - [#123623])
- System Bridge package updates ([@timmo001] - [#123657])
- Bump aiohomekit to 3.2.2 ([@bdraco] - [#123669])
- Fix startup block from Swiss public transport ([@miaucl] - [#123704])
- Bump pyschlage to 2024.8.0 ([@dknowles2] - [#123714])
- Update AEMET-OpenData to v0.5.4 ([@Noltari] - [#123716])
- Update aioairzone-cloud to v0.6.2 ([@Noltari] - [#123719])
- Update aioqsw to v0.4.1 ([@Noltari] - [#123721])
- Bump ZHA lib to 0.0.31 ([@dmulcahey] - [#123743])
- Update wled to 0.20.2 ([@frenck] - [#123746])
- Fix error message in html5 ([@mib1185] - [#123749])
- Bump py-nextbusnext to 2.0.4 ([@ViViDboarder] - [#123750])
- Bump python-nest-sdm to 4.0.6 ([@allenporter] - [#123762])
- Update xknx to 3.1.0 and fix climate read only mode ([@farmio] - [#123776])
- Fix KNX UI Light color temperature DPT ([@farmio] - [#123778])
- Fix status update loop in bluesound integration ([@LouisChrist] - [#123790])
- Bump py-synologydsm-api to 2.4.5 ([@mib1185] - [#123815])
- Fix blocking I/O of SSLContext.load_default_certs in Ecovacs ([@edenhaus] - [#123856])
- Fix translation for integration not found repair issue ([@mib1185] - [#123868])
- Handle timeouts on Airzone DHCP config flow ([@Noltari] - [#123869])
- Bump pylutron_caseta to 0.21.1 ([@bdraco] - [#123924])
- Fix PI-Hole update entity when no update available ([@mib1185] - [#123930])
- Bump LaCrosse View to 1.0.2, fixes blocking call ([@IceBotYT] - [#123935])
- Bump pypck to 0.7.20 ([@alengwenus] - [#123948])
- Environment Canada weather format fix ([@gwww] - [#123960])
- Bump pyhomeworks to 1.1.1 ([@emontnemery] - [#123981])
- Ensure event entities are allowed for linked homekit config via YAML ([@bdraco] - [#123994])
- Bump openwebifpy to 4.2.7 ([@autinerd] - [#123995])
- Re-enable concord232 ([@joostlek] - [#124000])
- Bump aiounifi to v80 ([@Kane610] - [#124004])
- Fix rear trunk logic in Tessie ([@Bre77] - [#124011])
- Bump bluetooth-adapters to 0.19.4 ([@bdraco] - [#124018])
- Fix loading KNX integration actions when not using YAML ([@farmio] - [#124027])
- Bump aiomealie to 0.8.1 ([@joostlek] - [#124047])
- Exclude aiohappyeyeballs from license check ([@joostlek] - [#124041])
[#114628]: https://github.com/home-assistant/core/pull/114628
[#122479]: https://github.com/home-assistant/core/pull/122479
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123454]: https://github.com/home-assistant/core/pull/123454
[#123544]: https://github.com/home-assistant/core/pull/123544
[#123547]: https://github.com/home-assistant/core/pull/123547
[#123549]: https://github.com/home-assistant/core/pull/123549
[#123557]: https://github.com/home-assistant/core/pull/123557
[#123590]: https://github.com/home-assistant/core/pull/123590
[#123591]: https://github.com/home-assistant/core/pull/123591
[#123601]: https://github.com/home-assistant/core/pull/123601
[#123602]: https://github.com/home-assistant/core/pull/123602
[#123623]: https://github.com/home-assistant/core/pull/123623
[#123657]: https://github.com/home-assistant/core/pull/123657
[#123669]: https://github.com/home-assistant/core/pull/123669
[#123704]: https://github.com/home-assistant/core/pull/123704
[#123714]: https://github.com/home-assistant/core/pull/123714
[#123716]: https://github.com/home-assistant/core/pull/123716
[#123719]: https://github.com/home-assistant/core/pull/123719
[#123721]: https://github.com/home-assistant/core/pull/123721
[#123743]: https://github.com/home-assistant/core/pull/123743
[#123746]: https://github.com/home-assistant/core/pull/123746
[#123749]: https://github.com/home-assistant/core/pull/123749
[#123750]: https://github.com/home-assistant/core/pull/123750
[#123762]: https://github.com/home-assistant/core/pull/123762
[#123776]: https://github.com/home-assistant/core/pull/123776
[#123778]: https://github.com/home-assistant/core/pull/123778
[#123790]: https://github.com/home-assistant/core/pull/123790
[#123815]: https://github.com/home-assistant/core/pull/123815
[#123856]: https://github.com/home-assistant/core/pull/123856
[#123868]: https://github.com/home-assistant/core/pull/123868
[#123869]: https://github.com/home-assistant/core/pull/123869
[#123924]: https://github.com/home-assistant/core/pull/123924
[#123930]: https://github.com/home-assistant/core/pull/123930
[#123935]: https://github.com/home-assistant/core/pull/123935
[#123948]: https://github.com/home-assistant/core/pull/123948
[#123960]: https://github.com/home-assistant/core/pull/123960
[#123981]: https://github.com/home-assistant/core/pull/123981
[#123994]: https://github.com/home-assistant/core/pull/123994
[#123995]: https://github.com/home-assistant/core/pull/123995
[#124000]: https://github.com/home-assistant/core/pull/124000
[#124004]: https://github.com/home-assistant/core/pull/124004
[#124011]: https://github.com/home-assistant/core/pull/124011
[#124018]: https://github.com/home-assistant/core/pull/124018
[#124027]: https://github.com/home-assistant/core/pull/124027
[#124041]: https://github.com/home-assistant/core/pull/124041
[#124047]: https://github.com/home-assistant/core/pull/124047
[@Bre77]: https://github.com/Bre77
[@IceBotYT]: https://github.com/IceBotYT
[@Kane610]: https://github.com/Kane610
[@LouisChrist]: https://github.com/LouisChrist
[@Noltari]: https://github.com/Noltari
[@ViViDboarder]: https://github.com/ViViDboarder
[@alengwenus]: https://github.com/alengwenus
[@allenporter]: https://github.com/allenporter
[@autinerd]: https://github.com/autinerd
[@bdraco]: https://github.com/bdraco
[@bieniu]: https://github.com/bieniu
[@dknowles2]: https://github.com/dknowles2
[@dmulcahey]: https://github.com/dmulcahey
[@edenhaus]: https://github.com/edenhaus
[@emontnemery]: https://github.com/emontnemery
[@farmio]: https://github.com/farmio
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@gwww]: https://github.com/gwww
[@iloveicedgreentea]: https://github.com/iloveicedgreentea
[@joostlek]: https://github.com/joostlek
[@kingy444]: https://github.com/kingy444
[@miaucl]: https://github.com/miaucl
[@mib1185]: https://github.com/mib1185
[@noahhusby]: https://github.com/noahhusby
[@pssc]: https://github.com/pssc
[@timmo001]: https://github.com/timmo001
[@wittypluck]: https://github.com/wittypluck
### 2024.8.3 - August 25
- Skip NextBus update if integration is still loading ([@drozycki] - [#123564])
- Bump yalexs to 6.5.0 ([@bdraco] - [#123739])
- Bump yalexs to 8.0.2 ([@bdraco] - [#123817])
- Bump aioshelly to 11.2.4 ([@bdraco] - [#124080])
- Add Alt Core300s model to vesync integration ([@cdnninja] - [#124091])
- Bump pybravia to 0.3.4 ([@Drafteed] - [#124113])
- Bump aiohomekit to 3.2.3 ([@bdraco] - [#124115])
- Bump nest to 4.0.7 to increase subscriber deadline ([@allenporter] - [#124131])
- Bump tplink-omada-api to 1.4.2 ([@MarkGodwin] - [#124136])
- Bump aiohttp to 3.10.4 ([@bdraco] - [#124137])
- Update Matter light transition blocklist to include GE Cync Undercabinet Lights ([@cjmaio] - [#124138])
- Shelly RPC - do not stop BLE scanner if a sleeping device ([@thecode] - [#124147])
- Fix shelly available check when device is not initialized ([@bdraco] - [#124182])
- Bump pyhomeworks to 1.1.2 ([@emontnemery] - [#124199])
- Bump aiohttp to 3.10.5 ([@bdraco] - [#124254])
- Update xknx to 3.1.1 ([@farmio] - [#124257])
- Bump python-roborock to 2.6.0 ([@allenporter] - [#124268])
- Prevent KeyError when Matter device sends invalid value for StartUpOnOff ([@marcelveldt] - [#124280])
- Don't abort airgradient user flow if flow in progress ([@joostlek] - [#124300])
- Bump yalexs to 8.1.2 ([@bdraco] - [#124303])
- Bump python-holidays to 0.54 ([@gjohansson-ST] - [#124170])
- Bump python-holidays to 0.55 ([@gjohansson-ST] - [#124314])
- Add missing strings for riemann options flow ([@karwosts] - [#124317])
- Fix Spotify Media Browsing fails for new config entries ([@PeteRager] - [#124368])
- update ttn_client - fix crash with SenseCAP devices ([@angelnu] - [#124370])
- Add supported features for iZone ([@Swamp-Ig] - [#124416])
- Bump yalexs to 8.1.4 ([@bdraco] - [#124425])
- Bump aiohue to version 4.7.3 ([@idekker] - [#124436])
- Don't raise WLED user flow unique_id check ([@joostlek] - [#124481])
- Bump yalexs to 8.3.3 ([@bdraco] - [#124492])
- Bump yalexs to 8.4.0 ([@bdraco] - [#124520])
- Bump yalexs to 8.4.1 ([@bdraco] - [#124553])
- Fix missing id in Habitica completed todos API response ([@tr4nt0r] - [#124565])
- Only support remote activity on Alexa if feature is set and at least one feature is in the activity_list ([@jbouwh] - [#124567])
- Revert "Exclude aiohappyeyeballs from license check" ([@bdraco] - [#124116])
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123544]: https://github.com/home-assistant/core/pull/123544
[#123564]: https://github.com/home-assistant/core/pull/123564
[#123739]: https://github.com/home-assistant/core/pull/123739
[#123817]: https://github.com/home-assistant/core/pull/123817
[#124069]: https://github.com/home-assistant/core/pull/124069
[#124080]: https://github.com/home-assistant/core/pull/124080
[#124091]: https://github.com/home-assistant/core/pull/124091
[#124113]: https://github.com/home-assistant/core/pull/124113
[#124115]: https://github.com/home-assistant/core/pull/124115
[#124131]: https://github.com/home-assistant/core/pull/124131
[#124136]: https://github.com/home-assistant/core/pull/124136
[#124137]: https://github.com/home-assistant/core/pull/124137
[#124138]: https://github.com/home-assistant/core/pull/124138
[#124147]: https://github.com/home-assistant/core/pull/124147
[#124170]: https://github.com/home-assistant/core/pull/124170
[#124182]: https://github.com/home-assistant/core/pull/124182
[#124199]: https://github.com/home-assistant/core/pull/124199
[#124254]: https://github.com/home-assistant/core/pull/124254
[#124257]: https://github.com/home-assistant/core/pull/124257
[#124268]: https://github.com/home-assistant/core/pull/124268
[#124280]: https://github.com/home-assistant/core/pull/124280
[#124300]: https://github.com/home-assistant/core/pull/124300
[#124303]: https://github.com/home-assistant/core/pull/124303
[#124314]: https://github.com/home-assistant/core/pull/124314
[#124317]: https://github.com/home-assistant/core/pull/124317
[#124368]: https://github.com/home-assistant/core/pull/124368
[#124370]: https://github.com/home-assistant/core/pull/124370
[#124416]: https://github.com/home-assistant/core/pull/124416
[#124425]: https://github.com/home-assistant/core/pull/124425
[#124436]: https://github.com/home-assistant/core/pull/124436
[#124481]: https://github.com/home-assistant/core/pull/124481
[#124492]: https://github.com/home-assistant/core/pull/124492
[#124520]: https://github.com/home-assistant/core/pull/124520
[#124553]: https://github.com/home-assistant/core/pull/124553
[#124565]: https://github.com/home-assistant/core/pull/124565
[#124567]: https://github.com/home-assistant/core/pull/124567
[#124116]: https://github.com/home-assistant/core/pull/124116
[@Drafteed]: https://github.com/Drafteed
[@MarkGodwin]: https://github.com/MarkGodwin
[@PeteRager]: https://github.com/PeteRager
[@Swamp-Ig]: https://github.com/Swamp-Ig
[@allenporter]: https://github.com/allenporter
[@angelnu]: https://github.com/angelnu
[@bdraco]: https://github.com/bdraco
[@cdnninja]: https://github.com/cdnninja
[@cjmaio]: https://github.com/cjmaio
[@drozycki]: https://github.com/drozycki
[@emontnemery]: https://github.com/emontnemery
[@farmio]: https://github.com/farmio
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@idekker]: https://github.com/idekker
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@karwosts]: https://github.com/karwosts
[@marcelveldt]: https://github.com/marcelveldt
[@thecode]: https://github.com/thecode
[@tr4nt0r]: https://github.com/tr4nt0r
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing

View File

@ -0,0 +1,48 @@
---
layout: post
title: "Works with Home Assistant becomes part of the Open Home Foundation"
description: "A number of changes to the program are looking to build a better hardware ecosystem for the smart home."
date: 2024-08-08 00:00:01
date_formatted: "August 8, 2024"
author: Guy Sie
comments: true
categories: Announcements
og_image: /images/blog/2024-08-wwha-update/art.jpg
---
<p class='img'><img src='/images/blog/2024-08-wwha-update/art.jpg' style='border: 0;box-shadow: none;' alt="Works with Home Assistant becomes part of the Open Home Foundation">Art by Clelia Rella</p>
After two successful years of [Works with Home Assistant](https://partner.home-assistant.io/), were continuing our work to improve this program. With this in mind, the program will move to the non-profit organization that owns Home Assistant, the [Open Home Foundation](https://www.openhomefoundation.org/), which will ensure it is always aligned with the [values of the Open Home](https://www.openhomefoundation.org/about/).
Read on to see how we're making several small but important changes to add more clarity to the program, and ultimately working to build a better, larger hardware ecosystem of smart home devices.
<!--more-->
## What is Works with Home Assistant
When you want to add something to your smart home the choices can be daunting; we want stable, supported devices that are built on standards that last. We understood how hard it could be to navigate all this and [set up Works with Home Assistant in 2022](/blog/2022/07/12/partner-program/), clearly indicating to users which brands provided the best smart home experiences and will continue to do so into the future. While also encouraging brands to step up their openness, compatibility, and long-term support.
<p class='img'><img src='/images/blog/2024-08-wwha-update/wwha-company-logos.png' style='border: 0;box-shadow: none;' alt="Full list of Works with Home Assistant company logos"></p>
This program has been quite successful and now includes seven companies, including [Leviton](/blog/2022/07/27/leviton-partner/), [Third Reality](/blog/2022/10/13/third-reality-partner/), [Ultraloq](/blog/2022/10/25/ultraloq-partner/), [Jasco](/blog/2022/10/26/jasco-partner/), [Heltun](/blog/2023/03/03/heltun-partner/), [HomeSeer](/blog/2023/04/11/homeseer-partner/), and  [HomeWizard](/blog/2023/12/07/homewizard-joins-works-with-home-assistant-program/). Our community regularly recommends the brands in this program, not only because they carry the “Works with” logo but because they just work. This seamless operation is because Nabu Casa tests devices and works with the brand to ensure their software meets our requirements to provide what we consider to be the best Home Assistant experience. They also guarantee when joining that they will address issues and maintain support with Home Assistant over time.
We have had lots of positive feedback from the brands in the program. First off, if youre already doing things right, i.e. focusing on local control, supporting users, and keeping software compatible, it's relatively easy to join. It is also significantly more affordable compared to other partner programs. We want to connect our users to good hardware and help reward the brands that make the right decisions: win-win.
## Open Home Foundation steps in
This year we [announced the Open Home Foundation](https://www.openhomefoundation.org/blog/announcing-the-open-home-foundation/), a non-profit organization that now owns and governs the Home Assistant project. It makes logical sense that Works with Home Assistant now sits alongside its parent organization, but there are other key benefits. Specifically, it is now clear that this program is not a commercial endeavor; it is solely here to encourage a better-supported hardware ecosystem for Home Assistant.
Nabu Casa, the commercial partner of the Open Home Foundation, previously successfully administered the program. By placing the program under the foundation, it provides another layer to ensure the program remains focused on its mission.
## The update
While were making this shift from Nabu Casa to the Open Home Foundation, were also taking the opportunity to do some housekeeping, improving the program on several fronts.
From now on the program will be certifying individual devices instead of whole brands. Previously, an integration was approved for Works with Home Assistant, and all devices that could work with the integration could fall under the program. By making testing and certification device-specific, it becomes much clearer to users which devices they can purchase with confidence. We will soon start listing devices that have been certified specifically.
<p class='img'><img src='/images/blog/2024-08-wwha-update/wwha-badges.png' style='border: 0;box-shadow: none;' alt="Full list of Works with Home Assistant badges">No brands have used the Cloud badge before, so no one is affected by its removal.</p>
The cloud badge has been discontinued and this is due to our belief, and observation, that all [cloud-based products are always doomed to stop working](https://newsletter.openhomefoundation.org/all-cloud-based-products-will-come-to-an-end/), some sooner than others. Considering the [cases over the past year](https://newsletter.openhomefoundation.org/all-cloud-based-products-will-come-to-an-end/#:~:text=How%20not%20to%20phase%20out%20cloud%2Dbased%20products) of cloud-based devices becoming useless after the cloud service they depended on was shut down, and the lengths needed to keep them somewhat functional, we no longer believe the Works with Home Assistant promise can be upheld by cloud-based devices.
## Conclusion
We want to see Works with Home Assistant continue to grow, ultimately covering every smart home device category, allowing for a home completely made of products that will give the best experience. Wed recommend users to always consider these products first, and also encourage more brands to [get in touch to join](https://partner.home-assistant.io/). Lets build a more open hardware ecosystem together.

View File

@ -0,0 +1,113 @@
---
layout: post
title: "HACS 2.0 - The best way to share community-made projects just got better"
description: "2.0 brings new features making it the best to share community-made integrations and UI elements."
date: 2024-08-21 00:00:01
date_formatted: "August 21, 2024"
author: Joakim Sørensen
comments: true
categories: Announcements
og_image: /images/blog/2024-08-hacs2/art.png
---
<p class='img'><img src='/images/blog/2024-08-hacs2/art.png' style='border: 0;box-shadow: none;' alt="HACS 2.0 - The best way to share community-made projects just got better">Art by Clelia Rella</p>
**TL;DR:** HACS 2.0 is a big step forward, adding an easier install method, faster updates, a new UI, and proper Home Assistant update/repair notifications.
Home Assistant's Community Store, HACS, has now hit v2.0, gaining some big improvements that continue to make it the best way to find, install, and update awesome community-made integrations and UI elements. This follows HACS being added as an [Open Home Foundation](https://www.openhomefoundation.org/) collaboration partner, recognizing its important role in Home Assistant's open ecosystem.
Just note, HACS is an advanced tool that can add custom code to your Home Assistant install, which can cause issues on your Home Assistant system. If you are a beginner or prioritize stability above all else, [HACS might not be for you](#how-to-install).
## Jump to sections <!-- omit from toc -->
- [HACS reaches v2.0](#hacs-reaches-v20)
- [What is HACS?](#what-is-hacs)
- [Why use HACS?](#why-use-hacs)
- [A Brief History of HACS](#a-brief-history-of-hacs)
- [How to install](#how-to-install)
***Want to skip the blog and just start playing with HACS 2.0?*** Just remember to proceed with caution and do not skip the backup step before you [install](#how-to-install).
<!--more-->
## HACS reaches v2.0
This is one of the biggest updates yet for HACS, but if you're not sure what HACS is or why you might consider using it, check out our [explainer below](#what-is-hacs).
### New frontend <!-- omit from toc -->
<img src='/images/blog/2024-08-hacs2/frontend.png' style='border: 0;box-shadow: none;' alt="HACS frontend looks like data tables">
HACS 2.0 [main dashboard](https://www.hacs.xyz/docs/use/repositories/dashboard/) has taken cues from Home Assistant, and now closely matches the native look and functionality of the data tables you find on the entities or automation pages. This includes the options to filter, group, sort, and search.
### Faster downloads <!-- omit from toc -->
<img src='/images/blog/2024-08-hacs2/downloads.png' style='border: 0;box-shadow: none;' alt="HDownload window going very fast">
Previously, HACS 100% relied on GitHub to retrieve information, from file locations to the number of stars, so we needed to limit the API (as there are a lot of HACS users). To speed things up, we've created a [remote dataset](https://www.hacs.xyz/docs/faq/data_sources/) stored in Cloudflare R2 buckets, which are updated at regular intervals.  Files are still downloaded from GitHub and their API is still contacted, but it will see drastically fewer calls, and the speed improvement is massive. Behind the scenes, this was a big piece of work, which has ongoing costs, and shows the kind of support the Open Home Foundation can provide to a community-driven project like HACS.
### Update and repair <!-- omit from toc -->
<img src='/images/blog/2024-08-hacs2/updates-repairs.png' style='border: 0;box-shadow: none;' alt="update all your Home Assistant from the same place">
No more visiting the HACS page every day to check for updates. They'll now appear in the same places system and add-on [updates](https://my.home-assistant.io/redirect/updates/) appear in the native Home Assistant format. Also, once they're finished updating, they will give you suggested repairs (for instance, reloading the dashboards or rebooting Home Assistant).
### Other improvements <!-- omit from toc -->
We have also renamed things to help them make more sense, including changing "category" to "type", and "Lovelace" to "dashboard" (Lovelace needs to make room for [Grace](https://www.home-assistant.io/blog/2024/03/04/dashboard-chapter-1/#what-is-project-grace)). We're also including Template management, which utilizes the new [template type](https://www.hacs.xyz/docs/publish/template/) to enhance your Jinja templates.
{% note %}
**Breaking changes** - There have been some breaking changes, such as removing the YAML configuration, no longer including the NetDaemon type, and moving [beta selection to a switch entity](https://www.hacs.xyz/docs/use/entities/switch/). Many of the changes are more likely to affect those sharing their code via HACS, check the [release notes for the full list](https://github.com/hacs/integration/releases/tag/2.0.0).
{% endnote %}
## What is HACS?
Home Assistant is built around choice, and HACS is the epitome of this, giving you access to hundreds of community-made integrations, cards, themes, and more. HACS isn't actually *a hack*, as Home Assistant has always allowed you to add custom integrations and UI elements - HACS just adds a streamlined interface to find, install, and update these.
HACS stands for *Home Assistant Community Store*, and despite the name it doesn't sell anything - it's all free and open-source. HACS is there for people in the community who write custom code to address something they think is missing from Home Assistant. It allows them to easily share this code with the community unrestricted via submitting their GitHub repository to HACS. This means these are maintained by the community members that upload them, not HACS or Home Assistant. If you want to learn more about what you're installing, or report issues, there is always a link to the original code.  
Just to clear up the biggest misconception about HACS, **it does not install add-ons**. Home Assistant OS natively has its own [built-in store for Home Assistant Add-ons](https://my.home-assistant.io/redirect/supervisor_store/). Add-ons run alongside Home Assistant, while HACS installs custom code that can run in Home Assistant (which has implications for system stability, more on that below).
## Why use HACS?
**More integrations** - Not every device and service is supported by Home Assistant out-of-the-box, and HACS helps fill the gaps. There are hundreds of integrations on HACS, some are there because the authors didn't have the time to meet Home Assistant's requirements, while others are doing something not allowed by Home Assistant, like web scraping (which is sometimes the only way, but [not a good idea](https://github.com/home-assistant/architecture/issues/252)). Just be aware that these decisions can come at the expense of stability.
**Advanced integrations** - Some HACS integrations are more complex and advanced versions of their Core counterparts, while other integrations combine multiple sensors to provide new data points. Some of these "integrations" even give Home Assistant advanced new features and settings. It also allows for rapid development as it allows updates outside the Home Assistant refresh cycle.
**Cards and Themes** - There are some amazing cards, UIs, and themes being built by community developers and designers - BTW if you're one, [our frontend team needs your help](/blog/2024/07/26/dashboard-chapter-2/#process-how-can-we-work-together). HACS has made the installation and updating of these designs very simple and quick.
**Scripts and Templates** - This is the easiest way to share scripts and templates, while also adding the ability to push new improvements to users via updates.
## A Brief History of HACS
HACS started in 2019 as my ([Joakim Sørensen](https://github.com/ludeeus) ) third attempt to build a community store. It started small and quickly became the de facto standard, with so many talented community creators submitting their projects. The Home Assistant team was supportive from day one, and even as HACS gained hundreds of thousands of downloads, we all agreed it should remain an optional addition to Home Assistant. Giving users the choice to add new features to Home Assistant at the cost of stability.
I joined [Nabu Casa](https://www.nabucasa.com/) in 2020, partly due to the work I did on HACS, but I was hired to work on Home Assistant more generally, not to work on HACS. Incidentally, I'm not the only developer working at Nabu Casa who got their start on HACS: [Paul Bottein](https://github.com/piitaya) on the frontend team built [Mushroom Cards](https://github.com/piitaya/lovelace-mushroom), and [Marcel van der Veldt](https://github.com/marcelveldt) who currently supports Matter development built [Music Assistant](https://music-assistant.io/).
Over the years, I continued to work on HACS in my spare time, but there were always aspects of the original version that limited its ability to grow. Recently, the [Open Home Foundation](https://www.openhomefoundation.org/) reached out to make HACS a collaboration partner, and provided development support. Numerous people were brought in to support, from across Nabu Casa and the community, leading to the large list of improvements you see today.
Just before we released this big update, it passed 5,000 stars on GitHub! It's the projects on HACS that make it what it is today, and I'd like to sincerely thank everyone who continues to contribute their code onto the store.
## How to install
{% note %}
**Proceed with caution** - HACS is not for everyone.  If you're a Home Assistant beginner or are looking for the most stable experience in your smart home, HACS is probably not for you. These are community-made projects that do not receive the same rigorous reviews required of projects submitted to Home Assistant. There may be projects that don't work or, even worse, break your system. Unlike add-ons that run separately and alongside Home Assistant, HACS projects run their code directly in Home Assistant, which increases the chances of crashing or harming your system. Before using HACS, always make a [backup of your system](https://hacs.xyz/docs/use/data/#creating-a-backup) and download that backup to another device.
{% endnote %}
HACS should work on any up-to-date version of Home Assistant, it even runs on core installations. It also requires a GitHub account. If you already have HACS 1.X installed, perform a backup, go into HACS and then click the update button for HACS (note: if you update, there is no downgrading).
If you're a Home Assistant OS user here is the installation method (If you're not using our OS, [visit this page](https://www.hacs.xyz/docs/use/download/download/#to-download-hacs-core)),
1. Make a [backup of your system](https://my.home-assistant.io/redirect/backup/) and download it to another device for safekeeping.
2. Install the addon: Using [this link](https://my.home-assistant.io/redirect/supervisor_addon/?repository_url=https%3A%2F%2Fgithub.com%2Fhacs%2Faddons&addon=cb646a50_get), add the HACS add-on repository, and install the add-on it links to, [![Open your Home Assistant instance and show the dashboard of an add-on.](https://my.home-assistant.io/badges/supervisor_addon.svg)](https://my.home-assistant.io/redirect/supervisor_addon/?repository_url=https%3A%2F%2Fgithub.com%2Fhacs%2Faddons&addon=cb646a50_get)
3. Start the add-on (no need to "start on boot", you should only need to run this once).
4. Navigate to the add-on's "Log" and follow the instructions given there.
5. Once finished, reboot Home Assistant and navigate to the [devices page](https://my.home-assistant.io/redirect/devices/). Add the integration HACS, and follow the instructions to link it with your GitHub account.
***It's installed, now what?*** Start downloading some custom integrations and UI elements. There are a lot of great community resources listing the best custom [integrations](https://community.home-assistant.io/c/projects/custom-integrations/47?ascending=false&order=views), [cards](https://community.home-assistant.io/c/projects/frontend/34?ascending=false&order=views), [themes](https://community.home-assistant.io/c/projects/themes/29/l/top), and more.
## Conclusion <!-- omit from toc -->
There are too many people to thank in this blog who have helped the development of HACS over the years.  Thanks for submitting your projects, reporting issues, fixing code, and just using this funny little side project. Most important to this all, thanks to [Home Assistant Cloud subscribers](https://www.nabucasa.com/). They made this update possible, not only do they pay my salary, but they also fund the Open Home Foundation, whose support was critical.

View File

@ -344,7 +344,8 @@ layout: null
/getting-started/installation-virtualenv /docs/installation/virtualenv
/getting-started/installation-raspberry-pi /docs/installation/raspberry-pi
/getting-started/scripts /docs/scripts
/getting-started/scripts-service-calls /docs/scripts/service-calls
/getting-started/scripts-service-calls /docs/scripts/perform-actions/
/docs/scripts/service-calls /docs/scripts/perform-actions/
/getting-started/scripts-conditions /docs/scripts/conditions
/getting-started/securing /docs/configuration/securing
/getting-started/updating /common-tasks/os

View File

@ -123,7 +123,7 @@ action:
Forecast: {{ forecast.condition }} ({{ forecast.temperature }}{{ temperature_unit }}, {{ forecast.precipitation }}% precipitation)
{%- endif %}
Calendar "{{ state_attr(calendar_entity, 'friendly_name') }}" events for the next {{ calendar_duration.hours }}:
Calendar "{{ state_attr(calendar_entity, 'friendly_name') }}" events for the next {{ calendar_duration.hours }} hours:
{%- set agenda = (events_response | items | first)[1] %}
{%- if agenda.events %}
{%- for event in agenda.events %}
@ -148,4 +148,4 @@ action:
data:
target: !input notify_target
title: "{{ now().strftime('%A') }} Agenda"
message: "{{ agent.response.speech.plain.speech }}"
message: "{{ agent.response.speech.plain.speech }}"

View File

@ -1174,6 +1174,299 @@ For a summary in a more readable format:
- Drop Matter Microwave Oven Mode select entity ([@agners] - [#123294])
- Bump intents to 2024.8.7 ([@synesthesiam] - [#123295])
## Release 2024.8.1 - August 10
- Add support for v3 Coinbase API ([@TomBrien] - [#116345])
- Bump OpenWeatherMap to 0.1.1 ([@freekode] - [#120178])
- Fix limit and order property for transmission integration ([@fustom] - [#123305])
- Fix doorbird with externally added events ([@bdraco] - [#123313])
- Bump aiorussound to 2.2.2 ([@noahhusby] - [#123319])
- Revert "Fix blocking I/O while validating config schema" ([@emontnemery] - [#123377])
- Ensure legacy event foreign key is removed from the states table when a previous rebuild failed ([@bdraco] - [#123388])
- Bump aiohttp to 3.10.2 ([@bdraco] - [#123394])
- Also migrate dsmr entries for devices with correct serial ([@dupondje] - [#123407])
- Add missing logger to Tessie ([@Bre77] - [#123413])
- Bump YoLink API to 0.4.7 ([@matrixd2] - [#123441])
- Support action YAML syntax in old-style notify groups ([@frenck] - [#123457])
- Bump ZHA library to 0.0.29 ([@puddly] - [#123464])
- Bump pyjvcprojector to 1.0.12 to fix blocking call ([@SteveEasley] - [#123473])
- Bump monzopy to 1.3.2 ([@JakeMartin-ICL] - [#123480])
- Fix startup blocked by bluesound integration ([@LouisChrist] - [#123483])
- Update frontend to 20240809.0 ([@frenck] - [#123485])
- Bump zha lib to 0.0.30 ([@dmulcahey] - [#123499])
- Bumb python-homewizard-energy to 6.2.0 ([@DCSBL] - [#123514])
- Fix cleanup of old orphan device entries in AVM Fritz!Tools ([@mib1185] - [#123516])
- Bump pydaikin to 2.13.2 ([@mattyway] - [#123519])
- Bump AirGradient to 0.8.0 ([@joostlek] - [#123527])
- Upgrade chacon_dio_api to version 1.2.0 ([@cnico] - [#123528])
[#116345]: https://github.com/home-assistant/core/pull/116345
[#120178]: https://github.com/home-assistant/core/pull/120178
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123305]: https://github.com/home-assistant/core/pull/123305
[#123313]: https://github.com/home-assistant/core/pull/123313
[#123319]: https://github.com/home-assistant/core/pull/123319
[#123377]: https://github.com/home-assistant/core/pull/123377
[#123388]: https://github.com/home-assistant/core/pull/123388
[#123394]: https://github.com/home-assistant/core/pull/123394
[#123407]: https://github.com/home-assistant/core/pull/123407
[#123413]: https://github.com/home-assistant/core/pull/123413
[#123441]: https://github.com/home-assistant/core/pull/123441
[#123457]: https://github.com/home-assistant/core/pull/123457
[#123464]: https://github.com/home-assistant/core/pull/123464
[#123473]: https://github.com/home-assistant/core/pull/123473
[#123480]: https://github.com/home-assistant/core/pull/123480
[#123483]: https://github.com/home-assistant/core/pull/123483
[#123485]: https://github.com/home-assistant/core/pull/123485
[#123499]: https://github.com/home-assistant/core/pull/123499
[#123514]: https://github.com/home-assistant/core/pull/123514
[#123516]: https://github.com/home-assistant/core/pull/123516
[#123519]: https://github.com/home-assistant/core/pull/123519
[#123527]: https://github.com/home-assistant/core/pull/123527
[#123528]: https://github.com/home-assistant/core/pull/123528
[@Bre77]: https://github.com/Bre77
[@DCSBL]: https://github.com/DCSBL
[@JakeMartin-ICL]: https://github.com/JakeMartin-ICL
[@LouisChrist]: https://github.com/LouisChrist
[@SteveEasley]: https://github.com/SteveEasley
[@TomBrien]: https://github.com/TomBrien
[@bdraco]: https://github.com/bdraco
[@cnico]: https://github.com/cnico
[@dmulcahey]: https://github.com/dmulcahey
[@dupondje]: https://github.com/dupondje
[@emontnemery]: https://github.com/emontnemery
[@freekode]: https://github.com/freekode
[@frenck]: https://github.com/frenck
[@fustom]: https://github.com/fustom
[@joostlek]: https://github.com/joostlek
[@matrixd2]: https://github.com/matrixd2
[@mattyway]: https://github.com/mattyway
[@mib1185]: https://github.com/mib1185
[@noahhusby]: https://github.com/noahhusby
[@puddly]: https://github.com/puddly
## Release 2024.8.2 - August 16
- Avoid Exception on Glances missing key ([@wittypluck] - [#114628])
- Fix Madvr sensor values on startup ([@iloveicedgreentea] - [#122479])
- Drop violating rows before adding foreign constraints in DB schema 44 migration ([@emontnemery] - [#123454])
- Handle Yamaha ValueError ([@pssc] - [#123547])
- Bump aiohttp to 3.10.3 ([@bdraco] - [#123549])
- Update knx-frontend to 2024.8.9.225351 ([@farmio] - [#123557])
- Fix secondary russound controller discovery failure ([@noahhusby] - [#123590])
- Change WoL to be secondary on device info ([@gjohansson-ST] - [#123591])
- Ensure HomeKit connection is kept alive for devices that timeout too quickly ([@bdraco] - [#123601])
- Bump `aioshelly` to version 11.2.0 ([@bieniu] - [#123602])
- Bump pydaikin to 2.13.4 ([@kingy444] - [#123623])
- System Bridge package updates ([@timmo001] - [#123657])
- Bump aiohomekit to 3.2.2 ([@bdraco] - [#123669])
- Fix startup block from Swiss public transport ([@miaucl] - [#123704])
- Bump pyschlage to 2024.8.0 ([@dknowles2] - [#123714])
- Update AEMET-OpenData to v0.5.4 ([@Noltari] - [#123716])
- Update aioairzone-cloud to v0.6.2 ([@Noltari] - [#123719])
- Update aioqsw to v0.4.1 ([@Noltari] - [#123721])
- Bump ZHA lib to 0.0.31 ([@dmulcahey] - [#123743])
- Update wled to 0.20.2 ([@frenck] - [#123746])
- Fix error message in html5 ([@mib1185] - [#123749])
- Bump py-nextbusnext to 2.0.4 ([@ViViDboarder] - [#123750])
- Bump python-nest-sdm to 4.0.6 ([@allenporter] - [#123762])
- Update xknx to 3.1.0 and fix climate read only mode ([@farmio] - [#123776])
- Fix KNX UI Light color temperature DPT ([@farmio] - [#123778])
- Fix status update loop in bluesound integration ([@LouisChrist] - [#123790])
- Bump py-synologydsm-api to 2.4.5 ([@mib1185] - [#123815])
- Fix blocking I/O of SSLContext.load_default_certs in Ecovacs ([@edenhaus] - [#123856])
- Fix translation for integration not found repair issue ([@mib1185] - [#123868])
- Handle timeouts on Airzone DHCP config flow ([@Noltari] - [#123869])
- Bump pylutron_caseta to 0.21.1 ([@bdraco] - [#123924])
- Fix PI-Hole update entity when no update available ([@mib1185] - [#123930])
- Bump LaCrosse View to 1.0.2, fixes blocking call ([@IceBotYT] - [#123935])
- Bump pypck to 0.7.20 ([@alengwenus] - [#123948])
- Environment Canada weather format fix ([@gwww] - [#123960])
- Bump pyhomeworks to 1.1.1 ([@emontnemery] - [#123981])
- Ensure event entities are allowed for linked homekit config via YAML ([@bdraco] - [#123994])
- Bump openwebifpy to 4.2.7 ([@autinerd] - [#123995])
- Re-enable concord232 ([@joostlek] - [#124000])
- Bump aiounifi to v80 ([@Kane610] - [#124004])
- Fix rear trunk logic in Tessie ([@Bre77] - [#124011])
- Bump bluetooth-adapters to 0.19.4 ([@bdraco] - [#124018])
- Fix loading KNX integration actions when not using YAML ([@farmio] - [#124027])
- Bump aiomealie to 0.8.1 ([@joostlek] - [#124047])
- Exclude aiohappyeyeballs from license check ([@joostlek] - [#124041])
[#114628]: https://github.com/home-assistant/core/pull/114628
[#122479]: https://github.com/home-assistant/core/pull/122479
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123454]: https://github.com/home-assistant/core/pull/123454
[#123544]: https://github.com/home-assistant/core/pull/123544
[#123547]: https://github.com/home-assistant/core/pull/123547
[#123549]: https://github.com/home-assistant/core/pull/123549
[#123557]: https://github.com/home-assistant/core/pull/123557
[#123590]: https://github.com/home-assistant/core/pull/123590
[#123591]: https://github.com/home-assistant/core/pull/123591
[#123601]: https://github.com/home-assistant/core/pull/123601
[#123602]: https://github.com/home-assistant/core/pull/123602
[#123623]: https://github.com/home-assistant/core/pull/123623
[#123657]: https://github.com/home-assistant/core/pull/123657
[#123669]: https://github.com/home-assistant/core/pull/123669
[#123704]: https://github.com/home-assistant/core/pull/123704
[#123714]: https://github.com/home-assistant/core/pull/123714
[#123716]: https://github.com/home-assistant/core/pull/123716
[#123719]: https://github.com/home-assistant/core/pull/123719
[#123721]: https://github.com/home-assistant/core/pull/123721
[#123743]: https://github.com/home-assistant/core/pull/123743
[#123746]: https://github.com/home-assistant/core/pull/123746
[#123749]: https://github.com/home-assistant/core/pull/123749
[#123750]: https://github.com/home-assistant/core/pull/123750
[#123762]: https://github.com/home-assistant/core/pull/123762
[#123776]: https://github.com/home-assistant/core/pull/123776
[#123778]: https://github.com/home-assistant/core/pull/123778
[#123790]: https://github.com/home-assistant/core/pull/123790
[#123815]: https://github.com/home-assistant/core/pull/123815
[#123856]: https://github.com/home-assistant/core/pull/123856
[#123868]: https://github.com/home-assistant/core/pull/123868
[#123869]: https://github.com/home-assistant/core/pull/123869
[#123924]: https://github.com/home-assistant/core/pull/123924
[#123930]: https://github.com/home-assistant/core/pull/123930
[#123935]: https://github.com/home-assistant/core/pull/123935
[#123948]: https://github.com/home-assistant/core/pull/123948
[#123960]: https://github.com/home-assistant/core/pull/123960
[#123981]: https://github.com/home-assistant/core/pull/123981
[#123994]: https://github.com/home-assistant/core/pull/123994
[#123995]: https://github.com/home-assistant/core/pull/123995
[#124000]: https://github.com/home-assistant/core/pull/124000
[#124004]: https://github.com/home-assistant/core/pull/124004
[#124011]: https://github.com/home-assistant/core/pull/124011
[#124018]: https://github.com/home-assistant/core/pull/124018
[#124027]: https://github.com/home-assistant/core/pull/124027
[#124041]: https://github.com/home-assistant/core/pull/124041
[#124047]: https://github.com/home-assistant/core/pull/124047
[@Bre77]: https://github.com/Bre77
[@IceBotYT]: https://github.com/IceBotYT
[@Kane610]: https://github.com/Kane610
[@LouisChrist]: https://github.com/LouisChrist
[@Noltari]: https://github.com/Noltari
[@ViViDboarder]: https://github.com/ViViDboarder
[@alengwenus]: https://github.com/alengwenus
[@allenporter]: https://github.com/allenporter
[@autinerd]: https://github.com/autinerd
[@bdraco]: https://github.com/bdraco
[@bieniu]: https://github.com/bieniu
[@dknowles2]: https://github.com/dknowles2
[@dmulcahey]: https://github.com/dmulcahey
[@edenhaus]: https://github.com/edenhaus
[@emontnemery]: https://github.com/emontnemery
[@farmio]: https://github.com/farmio
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@gwww]: https://github.com/gwww
[@iloveicedgreentea]: https://github.com/iloveicedgreentea
[@joostlek]: https://github.com/joostlek
[@kingy444]: https://github.com/kingy444
[@miaucl]: https://github.com/miaucl
[@mib1185]: https://github.com/mib1185
[@noahhusby]: https://github.com/noahhusby
[@pssc]: https://github.com/pssc
[@timmo001]: https://github.com/timmo001
[@wittypluck]: https://github.com/wittypluck
## Release 2024.8.3 - August 25
- Skip NextBus update if integration is still loading ([@drozycki] - [#123564])
- Bump yalexs to 6.5.0 ([@bdraco] - [#123739])
- Bump yalexs to 8.0.2 ([@bdraco] - [#123817])
- Bump aioshelly to 11.2.4 ([@bdraco] - [#124080])
- Add Alt Core300s model to vesync integration ([@cdnninja] - [#124091])
- Bump pybravia to 0.3.4 ([@Drafteed] - [#124113])
- Bump aiohomekit to 3.2.3 ([@bdraco] - [#124115])
- Bump nest to 4.0.7 to increase subscriber deadline ([@allenporter] - [#124131])
- Bump tplink-omada-api to 1.4.2 ([@MarkGodwin] - [#124136])
- Bump aiohttp to 3.10.4 ([@bdraco] - [#124137])
- Update Matter light transition blocklist to include GE Cync Undercabinet Lights ([@cjmaio] - [#124138])
- Shelly RPC - do not stop BLE scanner if a sleeping device ([@thecode] - [#124147])
- Fix shelly available check when device is not initialized ([@bdraco] - [#124182])
- Bump pyhomeworks to 1.1.2 ([@emontnemery] - [#124199])
- Bump aiohttp to 3.10.5 ([@bdraco] - [#124254])
- Update xknx to 3.1.1 ([@farmio] - [#124257])
- Bump python-roborock to 2.6.0 ([@allenporter] - [#124268])
- Prevent KeyError when Matter device sends invalid value for StartUpOnOff ([@marcelveldt] - [#124280])
- Don't abort airgradient user flow if flow in progress ([@joostlek] - [#124300])
- Bump yalexs to 8.1.2 ([@bdraco] - [#124303])
- Bump python-holidays to 0.54 ([@gjohansson-ST] - [#124170])
- Bump python-holidays to 0.55 ([@gjohansson-ST] - [#124314])
- Add missing strings for riemann options flow ([@karwosts] - [#124317])
- Fix Spotify Media Browsing fails for new config entries ([@PeteRager] - [#124368])
- update ttn_client - fix crash with SenseCAP devices ([@angelnu] - [#124370])
- Add supported features for iZone ([@Swamp-Ig] - [#124416])
- Bump yalexs to 8.1.4 ([@bdraco] - [#124425])
- Bump aiohue to version 4.7.3 ([@idekker] - [#124436])
- Don't raise WLED user flow unique_id check ([@joostlek] - [#124481])
- Bump yalexs to 8.3.3 ([@bdraco] - [#124492])
- Bump yalexs to 8.4.0 ([@bdraco] - [#124520])
- Bump yalexs to 8.4.1 ([@bdraco] - [#124553])
- Fix missing id in Habitica completed todos API response ([@tr4nt0r] - [#124565])
- Only support remote activity on Alexa if feature is set and at least one feature is in the activity_list ([@jbouwh] - [#124567])
- Revert "Exclude aiohappyeyeballs from license check" ([@bdraco] - [#124116])
[#123276]: https://github.com/home-assistant/core/pull/123276
[#123544]: https://github.com/home-assistant/core/pull/123544
[#123564]: https://github.com/home-assistant/core/pull/123564
[#123739]: https://github.com/home-assistant/core/pull/123739
[#123817]: https://github.com/home-assistant/core/pull/123817
[#124069]: https://github.com/home-assistant/core/pull/124069
[#124080]: https://github.com/home-assistant/core/pull/124080
[#124091]: https://github.com/home-assistant/core/pull/124091
[#124113]: https://github.com/home-assistant/core/pull/124113
[#124115]: https://github.com/home-assistant/core/pull/124115
[#124131]: https://github.com/home-assistant/core/pull/124131
[#124136]: https://github.com/home-assistant/core/pull/124136
[#124137]: https://github.com/home-assistant/core/pull/124137
[#124138]: https://github.com/home-assistant/core/pull/124138
[#124147]: https://github.com/home-assistant/core/pull/124147
[#124170]: https://github.com/home-assistant/core/pull/124170
[#124182]: https://github.com/home-assistant/core/pull/124182
[#124199]: https://github.com/home-assistant/core/pull/124199
[#124254]: https://github.com/home-assistant/core/pull/124254
[#124257]: https://github.com/home-assistant/core/pull/124257
[#124268]: https://github.com/home-assistant/core/pull/124268
[#124280]: https://github.com/home-assistant/core/pull/124280
[#124300]: https://github.com/home-assistant/core/pull/124300
[#124303]: https://github.com/home-assistant/core/pull/124303
[#124314]: https://github.com/home-assistant/core/pull/124314
[#124317]: https://github.com/home-assistant/core/pull/124317
[#124368]: https://github.com/home-assistant/core/pull/124368
[#124370]: https://github.com/home-assistant/core/pull/124370
[#124416]: https://github.com/home-assistant/core/pull/124416
[#124425]: https://github.com/home-assistant/core/pull/124425
[#124436]: https://github.com/home-assistant/core/pull/124436
[#124481]: https://github.com/home-assistant/core/pull/124481
[#124492]: https://github.com/home-assistant/core/pull/124492
[#124520]: https://github.com/home-assistant/core/pull/124520
[#124553]: https://github.com/home-assistant/core/pull/124553
[#124565]: https://github.com/home-assistant/core/pull/124565
[#124567]: https://github.com/home-assistant/core/pull/124567
[#124116]: https://github.com/home-assistant/core/pull/124116
[@Drafteed]: https://github.com/Drafteed
[@MarkGodwin]: https://github.com/MarkGodwin
[@PeteRager]: https://github.com/PeteRager
[@Swamp-Ig]: https://github.com/Swamp-Ig
[@allenporter]: https://github.com/allenporter
[@angelnu]: https://github.com/angelnu
[@bdraco]: https://github.com/bdraco
[@cdnninja]: https://github.com/cdnninja
[@cjmaio]: https://github.com/cjmaio
[@drozycki]: https://github.com/drozycki
[@emontnemery]: https://github.com/emontnemery
[@farmio]: https://github.com/farmio
[@frenck]: https://github.com/frenck
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@idekker]: https://github.com/idekker
[@jbouwh]: https://github.com/jbouwh
[@joostlek]: https://github.com/joostlek
[@karwosts]: https://github.com/karwosts
[@marcelveldt]: https://github.com/marcelveldt
[@thecode]: https://github.com/thecode
[@tr4nt0r]: https://github.com/tr4nt0r
[#103073]: https://github.com/home-assistant/core/pull/103073
[#104079]: https://github.com/home-assistant/core/pull/104079
[#104298]: https://github.com/home-assistant/core/pull/104298

View File

@ -30,6 +30,11 @@ Badges are widgets that sit at the top of a panel, above all the cards.
8. If you want this badge to be visible only to specific users or under a certain condition, open the **Visibility** tab to [define those conditions](/dashboards/cards/#showing-or-hiding-a-card-conditionally).
9. Select **Save**.
<p class="img">
<img src="/images/dashboards/adding_a_badge_to_a_dashboard.webp" alt="screencast showing how to add a badge to a dashboard">
Adding a badge to a dashboard.
</p>
## Entity badge
The Entity badge allows you to display the state of an entity on a badge. This badge supports [actions](/dashboards/actions/).
@ -136,10 +141,6 @@ icon:
required: false
description: Overwrites icon or entity picture. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
type: string
image:
required: false
description: The URL of an image.
type: string
conditions:
required: false
description: List of conditions to check. See [available conditions](#conditions-options).*
@ -152,9 +153,11 @@ state_filter:
*only one filter will be applied: `conditions` or `state_filter` if `conditions` is not present
You may also add any additional configuration options to an entity which are supported by the chosen badge type (`Entity` badge type if no type is chosen).
## Conditions options
You can specify multiple `conditions`, in which case the entity will be displayed if it matches any condition.
You can specify multiple `conditions`, in which case the entity will be displayed if it matches all conditions.
### State

View File

@ -13,7 +13,7 @@ Integrations are pieces of software that allow Home Assistant to connect to othe
Some integration cards show an icon:
- The cloud icon <img height="28px" src="/images/getting-started/cloud-icon.png" alt="Cloud icon"/> indicates that this integration depends on the cloud.
- The YAML icon <img height="28px" src="/images/getting-started/yaml-icon.png" alt="Yaml icon"/>indicates that this integration was not setup via the UI. You have either set it up in YAML or it is a dependency set up by an other integration. If you want to configure it, you will need to do so in your configuration.yaml file.
The file icon <img height="28px" src="/images/getting-started/config-file_icon.png" alt="Configuration file icon"/> indicates that this integration was not set up via the UI. You have either set it up in your {% term "`configuration.yaml`" %} file, or it is a dependency set up by another integration. If you want to configure it, you will need to do so in your {% term "`configuration.yaml`" %} file.
- The custom icon <img height="28px" src="/images/getting-started/custom-icon.png" alt="Custom icon"/> indicates that this is not an official Home Assistant integration but that it was custom made. It could be imported from another source, for example downloaded from HACS.
For a full list of compatible {% term integrations %}, refer to the [integrations](/integrations) documentation.

View File

@ -38,10 +38,11 @@ To change basic settings such as location, unit system, and language, refer to [
You can back up your Home Assistant, add-on data, and configuration. Backups are used to restore a system or parts of it if a rollback is needed, or to migrate your Home Assistant to new hardware. It is good practice to create a backup before updating.
To learn how to create a backup of your Home Assistant installation, refer to the following topics:
To learn how to create a backup of your Home Assistant installation, select the link below that matches your installation type.
- {% term "Home Assistant Operating System" %}: [Creating a backup from OS](/common-tasks/os/#backups)
- {% term "Home Assistant Supervised" %}: [Creating a backup from Supervised](/common-tasks/supervised/#backups)
- {% term "Home Assistant Core" %} or {% term "Home Assistant Container" %}: [Creating a backup from Core or Container](/integrations/backup/)
## Editing the configuration.yaml and configuring file access

View File

@ -2544,6 +2544,24 @@ dark_header: true
</div>
</a>
<a
href="https://www.hashop.nl/Home-Assistant-Green"
target="_blank"
>
<div class="distributor">
<div>
<div>🇳🇱</div>
<div>HAshop</div>
<div>Shipping from the Netherlands</div>
</div>
<svg width="24" height="24" viewBox="0 0 24 24">
<path
d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"
/>
</svg>
</div>
</a>
<a
href="https://www.kjell.com/no/produkter/smarte-hjem/kontroller/nabu-casa-home-assistant-green-p88430"
target="_blank"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Some files were not shown because too many files have changed in this diff Show More