Merge branch 'current' into rc
2
Gemfile
@ -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
|
||||
|
||||
|
22
Gemfile.lock
@ -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)
|
||||
|
@ -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
@ -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",
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
</div>
|
||||
</button>
|
||||
<div class='details-block-content' id="content_#{idx}" hidden>#{contents}</div>
|
||||
<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>
|
||||
</summary>
|
||||
<div class='details-block-content' id="content_#{idx}">#{contents}</div>
|
||||
</details>
|
||||
</div>
|
||||
MARKUP
|
||||
end
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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**.
|
||||
{% 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 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.
|
||||

|
||||
5. Select **OK**.
|
||||
|
||||

|
||||
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.
|
||||

|
||||
|
@ -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:
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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 |
|
||||
|
@ -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
|
||||
|
@ -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`
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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`
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
| -------------- | -------- | ---------------------------------------------------- | -------------------------------- |
|
||||
| `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
|
||||
|
||||
@ -99,11 +99,11 @@ 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
|
||||
| -------------- | -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------- |
|
||||
| `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
|
||||
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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,7 +164,7 @@ 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`). |
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 |
|
||||
| ---------------------- | -------- | ----------------------------------------------- | ------------------- |
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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,7 +280,7 @@ 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. |
|
||||
@ -305,7 +305,7 @@ 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. |
|
||||
@ -329,7 +329,7 @@ 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. |
|
||||
|
||||
#### Example
|
||||
@ -351,7 +351,7 @@ 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. |
|
||||
|
||||
#### Example
|
||||
@ -373,7 +373,7 @@ 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. |
|
||||
|
||||
#### Example
|
||||
@ -392,7 +392,7 @@ 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. |
|
||||
|
||||
#### Example
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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 you’re 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)
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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,7 +96,7 @@ 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. |
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 |
|
||||
| ---------------------- | -------- | ----------- | --------|
|
||||
|
@ -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).
|
||||
|
||||
@ -35,8 +39,11 @@ 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.
|
||||
|
@ -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 |
|
||||
|
@ -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
|
||||
|
@ -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 |
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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: "%"
|
||||
|
@ -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 }}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
|
@ -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**.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -85,14 +85,14 @@ 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 |
|
||||
|
||||
|
@ -45,14 +45,14 @@ 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` |
|
||||
|
||||
This is a full example that returns all to-do items that have not been completed:
|
||||
@ -71,7 +71,7 @@ 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 |
|
||||
@ -96,7 +96,7 @@ 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` |
|
||||
@ -121,7 +121,7 @@ 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 |
|
||||
|
||||
This is a full example that deletes a to-do Item with the specified name.
|
||||
|
@ -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.
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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 |
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
@ -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
|
||||
|
@ -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/), we’re 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 you’re 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 we’re making this shift from Nabu Casa to the Open Home Foundation, we’re 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. We’d recommend users to always consider these products first, and also encourage more brands to [get in touch to join](https://partner.home-assistant.io/). Let’s build a more open hardware ecosystem together.
|
@ -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, [](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.
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 38 KiB |
BIN
source/images/blog/2024-08-hacs2/art.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
source/images/blog/2024-08-hacs2/downloads.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
source/images/blog/2024-08-hacs2/frontend.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
source/images/blog/2024-08-hacs2/updates-repairs.png
Normal file
After Width: | Height: | Size: 34 KiB |