Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2022-09-26 19:41:06 +02:00
commit c71fce96da
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
37 changed files with 583 additions and 288 deletions

View File

@ -11,7 +11,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v5
- uses: actions/stale@v6.0.0
if: ${{ github.repository_owner == 'home-assistant' }}
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -19,7 +19,7 @@ group :jekyll_plugins do
gem 'jekyll-toc', '0.17.1'
end
gem 'sinatra', '2.2.2'
gem 'sinatra', '3.0.0'
gem 'nokogiri', '1.13.8'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem

View File

@ -5,7 +5,7 @@ GEM
public_suffix (>= 2.0.2, < 6.0)
chunky_png (1.4.0)
colorator (1.1.0)
commonmarker (0.23.5)
commonmarker (0.23.6)
compass (1.0.3)
chunky_png (~> 1.2)
compass-core (~> 1.0.2)
@ -68,7 +68,7 @@ GEM
mercenary (0.4.0)
mini_portile2 (2.8.0)
multi_json (1.15.0)
mustermann (2.0.2)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
nokogiri (1.13.8)
mini_portile2 (~> 2.8.0)
@ -80,7 +80,7 @@ GEM
public_suffix (5.0.0)
racc (1.6.0)
rack (2.2.4)
rack-protection (2.2.2)
rack-protection (3.0.0)
rack
rake (13.0.6)
rb-fsevent (0.11.2)
@ -97,10 +97,10 @@ GEM
ffi (~> 1.9)
sassc (2.1.0-x64-mingw32)
ffi (~> 1.9)
sinatra (2.2.2)
mustermann (~> 2.0)
rack (~> 2.2)
rack-protection (= 2.2.2)
sinatra (3.0.0)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.0.0)
tilt (~> 2.0)
stringex (2.8.5)
terminal-table (2.0.0)
@ -108,7 +108,7 @@ GEM
tilt (2.0.11)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.3)
tzinfo-data (1.2022.4)
tzinfo (>= 1.0.0)
unicode-display_width (1.8.0)
@ -127,7 +127,7 @@ DEPENDENCIES
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 2.2.2)
sinatra (= 3.0.0)
stringex (= 2.8.5)
tzinfo (~> 2.0)
tzinfo-data

View File

@ -91,7 +91,7 @@ twitter_user: balloob
twitter_tweet_button: true
# Google Analytics
google_analytics_tracking_id: UA-57927901-1
# google_analytics_tracking_id: UA-57927901-1
# Facebook Like
facebook_like: true
@ -107,8 +107,8 @@ social:
# Home Assistant release details
current_major_version: 2022
current_minor_version: 9
current_patch_version: 5
date_released: 2022-09-18
current_patch_version: 7
date_released: 2022-09-26
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

328
package-lock.json generated
View File

@ -14,7 +14,7 @@
"remark-lint-fenced-code-flag": "^3.1.1",
"remark-lint-no-shell-dollars": "^3.1.1",
"remark-stringify": "^10.0.2",
"textlint": "^12.2.1",
"textlint": "^12.2.2",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.3"
@ -228,44 +228,44 @@
"dev": true
},
"node_modules/@textlint/ast-node-types": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.1.tgz",
"integrity": "sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.2.tgz",
"integrity": "sha512-VQAXUSGdmEajHXrMxeM9ZTS8UBJSVB0ghJFHpFfqYKlcDsjIqClSmTprY6521HoCoSLoUIGBxTC3jQyUMJFIWw==",
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.1.tgz",
"integrity": "sha512-QGg7wxFLpsEAb7uxYPAO6F/QxDoX50wQ8aQ378RbpcQK57J9r9TQfV5Sieuta5dJORUrrMIuIrP4qU7P+1YyUw==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.2.tgz",
"integrity": "sha512-l5VP2LG+cFCjVvBR3uRrXBeoElKLic2rG+tTQUsH/rywh3TeeDKsHZBk1gGz8kAHVoeEuuH7lx0Wu8AjP4AqGw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-traverse": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.1.tgz",
"integrity": "sha512-uwppnDZRmRhH8R4WrkKAvwAbKcYux2yG/XqKlADuFd2T4hSMTlZOBLxDvXohLKY617HHM32/G99HJlmFFvP4GA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.2.tgz",
"integrity": "sha512-ROd6W9P76DFA9hv7wCf1+Dc6aehLcsd0/3qKerQN/Luc3B2ek+/qJbGgWeAEsSBKl9LVLJhTBydmdgOAHrVjwA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"node_modules/@textlint/feature-flag": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.1.tgz",
"integrity": "sha512-Vwn1VKaqNvhMteXNdvk+5duGzlG0MwSjkufU3AVaBQsS4SH4dchSvULpKc+r4BOTSzybNappN0APEcMjOx0Lxg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.2.tgz",
"integrity": "sha512-L0v/ZjxmdzRXygja1WiXBjA2ZczvU3cG6qkwME4JGKwUsbEa9UzpwD8i3yBoO7ISkjkMpPM5BYD3AtJgQpCuEg==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.1.tgz",
"integrity": "sha512-Y4FT2zVyYCxZCJ19tdfhBKr/FtCDP03iW+gfF6zHAjQaNPEGUU7ZfVUBJVVYBWOuHT/Zk22kcJZVFSINacPybQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.2.tgz",
"integrity": "sha512-uKJScqlJvIP9ttVxSq4632kYUjeEhsqc1mLmbViFd+H+GGtrKMwhHYI4zs9/6PQQxE1sUy6dBVkh/LAjgqOaUA==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/module-interop": "^12.2.2",
"@textlint/types": "^12.2.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^4.0.2",
@ -277,33 +277,33 @@
}
},
"node_modules/@textlint/kernel": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.1.tgz",
"integrity": "sha512-imKBeglOKVwsVmrCDzIHf8uiYXtEy0VFyPPb7GYiLhA2pImh59QOtuoPiMT0h8ctV5Aa2konOQVV6jM+JJ9xkQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.2.tgz",
"integrity": "sha512-rDa//HGBQh2BTcJvsgMDP1WRaVxwa57zeE6FPXUdaIA41GGKupQq9GXX8P0PcAVo9gxzOFnMrtbBw7mkQYu4hQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-tester": "^12.2.1",
"@textlint/ast-traverse": "^12.2.1",
"@textlint/feature-flag": "^12.2.1",
"@textlint/source-code-fixer": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/utils": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"@textlint/ast-tester": "^12.2.2",
"@textlint/ast-traverse": "^12.2.2",
"@textlint/feature-flag": "^12.2.2",
"@textlint/source-code-fixer": "^12.2.2",
"@textlint/types": "^12.2.2",
"@textlint/utils": "^12.2.2",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"structured-source": "^3.0.2"
}
},
"node_modules/@textlint/linter-formatter": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.1.tgz",
"integrity": "sha512-xfVRM+DRrJzBswzrYpmNDJDfapYyogOGlwOXb9Omc7/MvipVreG0WvtgSgxchJ+1nPJwsOPES8PAgQYcPR20+Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.2.tgz",
"integrity": "sha512-R4/n02lNPqiTT1WuxBe4Lh1vUZUME020y+cD8fDn++GR4QlEcWaWWaYNz5ZDtRJ6Li9CYnc6MC6uf2jnTcmFXw==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.1",
"@azu/style-format": "^1.0.0",
"@textlint/module-interop": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/module-interop": "^12.2.2",
"@textlint/types": "^12.2.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"is-file": "^1.0.0",
@ -319,13 +319,14 @@
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.1.tgz",
"integrity": "sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.2.tgz",
"integrity": "sha512-OP0cnGCzt8Bbfhn8fO/arQSHBhmuXB4maSXH8REJAtKRpTADWOrbuxAOaI9mjQ7EMTDiml02RZ9MaELQAWAsqQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.0",
"remark-footnotes": "^3.0.0",
"remark-frontmatter": "^3.0.0",
"remark-gfm": "^1.0.0",
@ -653,61 +654,61 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.1.tgz",
"integrity": "sha512-/SixwKngWuTvVl9AArK4FEWGrNAwD7/ABvLCy/pdFprljnUa87P5JvSi7/v1PjpAXcnMQ2r04wDJjegs9oblBA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.2.tgz",
"integrity": "sha512-3OVZDJ8GCgQ3V+dm5btCwhZhJUEO5xR7jEMI6i9n1/gA6yePBM4b1qT1gwYUItthNRFqy6q5x4zTx9MKqBGVGg==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.1.tgz",
"integrity": "sha512-yNkWcTxCcoz24b64rGUVDr2MzQdv3I1o2o7HuphCmGlAQztVzMGvY/GNzqUWW42+k8S0zRq3Saxz1XoMUvR5UA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.2.tgz",
"integrity": "sha512-wk/8MmF3m1U9IAqGrvR0yehHsRGDfXuVAkXSahyRmafSwn88p8oS/iY6qDjECADVXJEnuRuxOcQ1GPlKM/eFOg==",
"dev": true,
"dependencies": {
"@textlint/types": "^12.2.1",
"@textlint/types": "^12.2.2",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.1.tgz",
"integrity": "sha512-NcuFa8iQglIMBQ1OaR1IYAIYJfBcTACVD0YtPGrdN0gkqC8TEfP5xIldiSxhkWiLPr3TQ4Mg7d6Ev5RH67n7pA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.2.tgz",
"integrity": "sha512-LgCqy1y4oQfDws6rqYSlQaYyiIGRQHcGMT+ukbpBkwEtzzh9urbr6NIeVnHhEuZUITl+pZCHyHeKF2/RlGsn6Q==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.1.tgz",
"integrity": "sha512-BAjkVPMO5fzf6n5M5SwgHNyTwByE86BmjaNpBDhKNcSBctUnfX7nLCvQY8mGMkvefHufyi3oWIqDcZoZQn0PYQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.2.tgz",
"integrity": "sha512-ougYCuGavxCPwsFZZ/fCGzoaMxwvy2yM1siKa7Ra9chZHjxtj3y76m0QtJkboFcz/FEZV8tqh96T9Bq/4jD+nQ==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^12.2.1"
"@textlint/markdown-to-ast": "^12.2.2"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.1.tgz",
"integrity": "sha512-8Dt1Sn9AdqvweVxCLvlj1IC+pDxPRpdgERY6FzD6kLNpMAyl7luVWtpql19CvTYlxhPUHRxsETDBkRCQFClXsw==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.2.tgz",
"integrity": "sha512-0HLOr9kQRXKqEcZvIaNAnOhixNfTSpveOHBuhHepByDXkXcUrb+BJdxZzhtgVu4twBAR3qJ3KYhDE8XPHc9iDg==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^12.2.1"
"@textlint/text-to-ast": "^12.2.2"
}
},
"node_modules/@textlint/types": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.1.tgz",
"integrity": "sha512-nOQ3udAz9ulDZgETFY3vr3R+ubL2cevPLA3GmDs29ErvIHfK3pD+PpyO/OsS7HZKXolmpuMonVA9+J9Jybf3/Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.2.tgz",
"integrity": "sha512-fmKH9w8O3XOvIvf3cPNI7PWdJScRIiJYJ5VsoIMp/o41Hlkt5m//MObfAPYpQ/3nuXhzlB05kfRUxyj/NvcPAQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"node_modules/@textlint/utils": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.1.tgz",
"integrity": "sha512-e4jDM6bMZddFi48e5CzbvnG9ombeK2ZkjLnCaSWalJI3NTlCDm/ZDqfaqac/YPFbzoRQMqNkaoTW/9GZVjr6Hg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.2.tgz",
"integrity": "sha512-74p3VWj5KlmXs+gFRJALEuUsyt/Sz4t91KQ//LAX1zNTY/aK0nk8LxipUcDZeBHArn3Gh5nf3SwlTgUZ7jvNrQ==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -1443,9 +1444,9 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
"integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.1",
@ -5291,22 +5292,22 @@
"dev": true
},
"node_modules/textlint": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.1.tgz",
"integrity": "sha512-e6xKNLbTt10KbnG0x3eVE7l8A7uOC9bj0Hc8cWk6VoLffjrdw4o8kJjWVIspNzfb0kUEs2dBKgXZo0ob4tMWAg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.2.tgz",
"integrity": "sha512-+xORGVnAceaP3+77vGuALOtnNNtexh8VK9ssAK2r3vAr0iMApSMyvGaXousbsfLiwK5L/X0X/78yJDvXwGQPjA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-traverse": "^12.2.1",
"@textlint/feature-flag": "^12.2.1",
"@textlint/fixer-formatter": "^12.2.1",
"@textlint/kernel": "^12.2.1",
"@textlint/linter-formatter": "^12.2.1",
"@textlint/module-interop": "^12.2.1",
"@textlint/textlint-plugin-markdown": "^12.2.1",
"@textlint/textlint-plugin-text": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/utils": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"@textlint/ast-traverse": "^12.2.2",
"@textlint/feature-flag": "^12.2.2",
"@textlint/fixer-formatter": "^12.2.2",
"@textlint/kernel": "^12.2.2",
"@textlint/linter-formatter": "^12.2.2",
"@textlint/module-interop": "^12.2.2",
"@textlint/textlint-plugin-markdown": "^12.2.2",
"@textlint/textlint-plugin-text": "^12.2.2",
"@textlint/types": "^12.2.2",
"@textlint/utils": "^12.2.2",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"file-entry-cache": "^5.0.1",
@ -6377,44 +6378,44 @@
"dev": true
},
"@textlint/ast-node-types": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.1.tgz",
"integrity": "sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.2.tgz",
"integrity": "sha512-VQAXUSGdmEajHXrMxeM9ZTS8UBJSVB0ghJFHpFfqYKlcDsjIqClSmTprY6521HoCoSLoUIGBxTC3jQyUMJFIWw==",
"dev": true
},
"@textlint/ast-tester": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.1.tgz",
"integrity": "sha512-QGg7wxFLpsEAb7uxYPAO6F/QxDoX50wQ8aQ378RbpcQK57J9r9TQfV5Sieuta5dJORUrrMIuIrP4qU7P+1YyUw==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.2.tgz",
"integrity": "sha512-l5VP2LG+cFCjVvBR3uRrXBeoElKLic2rG+tTQUsH/rywh3TeeDKsHZBk1gGz8kAHVoeEuuH7lx0Wu8AjP4AqGw==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"debug": "^4.3.4"
}
},
"@textlint/ast-traverse": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.1.tgz",
"integrity": "sha512-uwppnDZRmRhH8R4WrkKAvwAbKcYux2yG/XqKlADuFd2T4hSMTlZOBLxDvXohLKY617HHM32/G99HJlmFFvP4GA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.2.tgz",
"integrity": "sha512-ROd6W9P76DFA9hv7wCf1+Dc6aehLcsd0/3qKerQN/Luc3B2ek+/qJbGgWeAEsSBKl9LVLJhTBydmdgOAHrVjwA==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"@textlint/feature-flag": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.1.tgz",
"integrity": "sha512-Vwn1VKaqNvhMteXNdvk+5duGzlG0MwSjkufU3AVaBQsS4SH4dchSvULpKc+r4BOTSzybNappN0APEcMjOx0Lxg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.2.tgz",
"integrity": "sha512-L0v/ZjxmdzRXygja1WiXBjA2ZczvU3cG6qkwME4JGKwUsbEa9UzpwD8i3yBoO7ISkjkMpPM5BYD3AtJgQpCuEg==",
"dev": true
},
"@textlint/fixer-formatter": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.1.tgz",
"integrity": "sha512-Y4FT2zVyYCxZCJ19tdfhBKr/FtCDP03iW+gfF6zHAjQaNPEGUU7ZfVUBJVVYBWOuHT/Zk22kcJZVFSINacPybQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.2.tgz",
"integrity": "sha512-uKJScqlJvIP9ttVxSq4632kYUjeEhsqc1mLmbViFd+H+GGtrKMwhHYI4zs9/6PQQxE1sUy6dBVkh/LAjgqOaUA==",
"dev": true,
"requires": {
"@textlint/module-interop": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/module-interop": "^12.2.2",
"@textlint/types": "^12.2.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^4.0.2",
@ -6426,33 +6427,33 @@
}
},
"@textlint/kernel": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.1.tgz",
"integrity": "sha512-imKBeglOKVwsVmrCDzIHf8uiYXtEy0VFyPPb7GYiLhA2pImh59QOtuoPiMT0h8ctV5Aa2konOQVV6jM+JJ9xkQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.2.tgz",
"integrity": "sha512-rDa//HGBQh2BTcJvsgMDP1WRaVxwa57zeE6FPXUdaIA41GGKupQq9GXX8P0PcAVo9gxzOFnMrtbBw7mkQYu4hQ==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-tester": "^12.2.1",
"@textlint/ast-traverse": "^12.2.1",
"@textlint/feature-flag": "^12.2.1",
"@textlint/source-code-fixer": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/utils": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"@textlint/ast-tester": "^12.2.2",
"@textlint/ast-traverse": "^12.2.2",
"@textlint/feature-flag": "^12.2.2",
"@textlint/source-code-fixer": "^12.2.2",
"@textlint/types": "^12.2.2",
"@textlint/utils": "^12.2.2",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"structured-source": "^3.0.2"
}
},
"@textlint/linter-formatter": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.1.tgz",
"integrity": "sha512-xfVRM+DRrJzBswzrYpmNDJDfapYyogOGlwOXb9Omc7/MvipVreG0WvtgSgxchJ+1nPJwsOPES8PAgQYcPR20+Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.2.tgz",
"integrity": "sha512-R4/n02lNPqiTT1WuxBe4Lh1vUZUME020y+cD8fDn++GR4QlEcWaWWaYNz5ZDtRJ6Li9CYnc6MC6uf2jnTcmFXw==",
"dev": true,
"requires": {
"@azu/format-text": "^1.0.1",
"@azu/style-format": "^1.0.0",
"@textlint/module-interop": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/module-interop": "^12.2.2",
"@textlint/types": "^12.2.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"is-file": "^1.0.0",
@ -6468,13 +6469,14 @@
}
},
"@textlint/markdown-to-ast": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.1.tgz",
"integrity": "sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.2.tgz",
"integrity": "sha512-OP0cnGCzt8Bbfhn8fO/arQSHBhmuXB4maSXH8REJAtKRpTADWOrbuxAOaI9mjQ7EMTDiml02RZ9MaELQAWAsqQ==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.0",
"remark-footnotes": "^3.0.0",
"remark-frontmatter": "^3.0.0",
"remark-gfm": "^1.0.0",
@ -6690,61 +6692,61 @@
}
},
"@textlint/module-interop": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.1.tgz",
"integrity": "sha512-/SixwKngWuTvVl9AArK4FEWGrNAwD7/ABvLCy/pdFprljnUa87P5JvSi7/v1PjpAXcnMQ2r04wDJjegs9oblBA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.2.tgz",
"integrity": "sha512-3OVZDJ8GCgQ3V+dm5btCwhZhJUEO5xR7jEMI6i9n1/gA6yePBM4b1qT1gwYUItthNRFqy6q5x4zTx9MKqBGVGg==",
"dev": true
},
"@textlint/source-code-fixer": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.1.tgz",
"integrity": "sha512-yNkWcTxCcoz24b64rGUVDr2MzQdv3I1o2o7HuphCmGlAQztVzMGvY/GNzqUWW42+k8S0zRq3Saxz1XoMUvR5UA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.2.tgz",
"integrity": "sha512-wk/8MmF3m1U9IAqGrvR0yehHsRGDfXuVAkXSahyRmafSwn88p8oS/iY6qDjECADVXJEnuRuxOcQ1GPlKM/eFOg==",
"dev": true,
"requires": {
"@textlint/types": "^12.2.1",
"@textlint/types": "^12.2.2",
"debug": "^4.3.4"
}
},
"@textlint/text-to-ast": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.1.tgz",
"integrity": "sha512-NcuFa8iQglIMBQ1OaR1IYAIYJfBcTACVD0YtPGrdN0gkqC8TEfP5xIldiSxhkWiLPr3TQ4Mg7d6Ev5RH67n7pA==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.2.tgz",
"integrity": "sha512-LgCqy1y4oQfDws6rqYSlQaYyiIGRQHcGMT+ukbpBkwEtzzh9urbr6NIeVnHhEuZUITl+pZCHyHeKF2/RlGsn6Q==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"@textlint/textlint-plugin-markdown": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.1.tgz",
"integrity": "sha512-BAjkVPMO5fzf6n5M5SwgHNyTwByE86BmjaNpBDhKNcSBctUnfX7nLCvQY8mGMkvefHufyi3oWIqDcZoZQn0PYQ==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.2.tgz",
"integrity": "sha512-ougYCuGavxCPwsFZZ/fCGzoaMxwvy2yM1siKa7Ra9chZHjxtj3y76m0QtJkboFcz/FEZV8tqh96T9Bq/4jD+nQ==",
"dev": true,
"requires": {
"@textlint/markdown-to-ast": "^12.2.1"
"@textlint/markdown-to-ast": "^12.2.2"
}
},
"@textlint/textlint-plugin-text": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.1.tgz",
"integrity": "sha512-8Dt1Sn9AdqvweVxCLvlj1IC+pDxPRpdgERY6FzD6kLNpMAyl7luVWtpql19CvTYlxhPUHRxsETDBkRCQFClXsw==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.2.tgz",
"integrity": "sha512-0HLOr9kQRXKqEcZvIaNAnOhixNfTSpveOHBuhHepByDXkXcUrb+BJdxZzhtgVu4twBAR3qJ3KYhDE8XPHc9iDg==",
"dev": true,
"requires": {
"@textlint/text-to-ast": "^12.2.1"
"@textlint/text-to-ast": "^12.2.2"
}
},
"@textlint/types": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.1.tgz",
"integrity": "sha512-nOQ3udAz9ulDZgETFY3vr3R+ubL2cevPLA3GmDs29ErvIHfK3pD+PpyO/OsS7HZKXolmpuMonVA9+J9Jybf3/Q==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.2.tgz",
"integrity": "sha512-fmKH9w8O3XOvIvf3cPNI7PWdJScRIiJYJ5VsoIMp/o41Hlkt5m//MObfAPYpQ/3nuXhzlB05kfRUxyj/NvcPAQ==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1"
"@textlint/ast-node-types": "^12.2.2"
}
},
"@textlint/utils": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.1.tgz",
"integrity": "sha512-e4jDM6bMZddFi48e5CzbvnG9ombeK2ZkjLnCaSWalJI3NTlCDm/ZDqfaqac/YPFbzoRQMqNkaoTW/9GZVjr6Hg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.2.tgz",
"integrity": "sha512-74p3VWj5KlmXs+gFRJALEuUsyt/Sz4t91KQ//LAX1zNTY/aK0nk8LxipUcDZeBHArn3Gh5nf3SwlTgUZ7jvNrQ==",
"dev": true
},
"@types/concat-stream": {
@ -7320,9 +7322,9 @@
"dev": true
},
"get-intrinsic": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
"integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@ -9990,22 +9992,22 @@
"dev": true
},
"textlint": {
"version": "12.2.1",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.1.tgz",
"integrity": "sha512-e6xKNLbTt10KbnG0x3eVE7l8A7uOC9bj0Hc8cWk6VoLffjrdw4o8kJjWVIspNzfb0kUEs2dBKgXZo0ob4tMWAg==",
"version": "12.2.2",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.2.tgz",
"integrity": "sha512-+xORGVnAceaP3+77vGuALOtnNNtexh8VK9ssAK2r3vAr0iMApSMyvGaXousbsfLiwK5L/X0X/78yJDvXwGQPjA==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.2.1",
"@textlint/ast-traverse": "^12.2.1",
"@textlint/feature-flag": "^12.2.1",
"@textlint/fixer-formatter": "^12.2.1",
"@textlint/kernel": "^12.2.1",
"@textlint/linter-formatter": "^12.2.1",
"@textlint/module-interop": "^12.2.1",
"@textlint/textlint-plugin-markdown": "^12.2.1",
"@textlint/textlint-plugin-text": "^12.2.1",
"@textlint/types": "^12.2.1",
"@textlint/utils": "^12.2.1",
"@textlint/ast-node-types": "^12.2.2",
"@textlint/ast-traverse": "^12.2.2",
"@textlint/feature-flag": "^12.2.2",
"@textlint/fixer-formatter": "^12.2.2",
"@textlint/kernel": "^12.2.2",
"@textlint/linter-formatter": "^12.2.2",
"@textlint/module-interop": "^12.2.2",
"@textlint/textlint-plugin-markdown": "^12.2.2",
"@textlint/textlint-plugin-text": "^12.2.2",
"@textlint/types": "^12.2.2",
"@textlint/utils": "^12.2.2",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"file-entry-cache": "^5.0.1",

View File

@ -9,7 +9,7 @@
"remark-lint-fenced-code-flag": "^3.1.1",
"remark-lint-no-shell-dollars": "^3.1.1",
"remark-stringify": "^10.0.2",
"textlint": "^12.2.1",
"textlint": "^12.2.2",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.3"

View File

@ -558,7 +558,7 @@ automation:
{% endraw %}
If you want to get more precise, you can use this [solar calculator](https://www.esrl.noaa.gov/gmd/grad/solcalc/), which will help you estimate what the solar elevation will be at any specific time. Then from this, you can select from the defined twilight numbers.
If you want to get more precise, you can use this [solar calculator](https://gml.noaa.gov/grad/solcalc/), which will help you estimate what the solar elevation will be at any specific time. Then from this, you can select from the defined twilight numbers.
Although the actual amount of light depends on weather, topography and land cover, they are defined as:

View File

@ -42,7 +42,7 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17.
- Z-Wave.Me RaZberry 7 Pro (700 series)
- Z-Wave.Me Razberry 2 (500 series)
If you are just starting out, we recommend that you purchase a 500 series controller.
If you are just starting out, we recommend that you purchase a 700 series controller.
<div class='note'>
If you're using Home Assistant OS, Supervised, or Container, it's recommended to use a USB stick, not a module. Passing a module through Docker is more complicated than passing a USB stick through.

View File

@ -33,9 +33,11 @@ If you would like to test next release before anyone else, you can install the b
3. Update Home Assistant core to the latest beta version
```bash
ha core update
ha core update --backup
```
_The_ `--backup` _flag here ensures that you have a partial backup of your current setup incase you need to downgrade._
{% endtabbed_block %}
{% elsif page.installation == "container" %}

View File

@ -25,9 +25,11 @@ If you want to stay on the bleeding-edge Home Assistant Core development branch,
3. Update Home Assistant core to the latest dev version
```bash
ha core update
ha core update --backup
```
_The_ `--backup` _flag here ensures that you have a partial backup of your current setup incase you need to downgrade._
{% elsif page.installation == "container" %}
```bash

View File

@ -2,14 +2,22 @@
{% assign current_version = site.current_major_version | append: "." | append: site.current_minor_version | append: "." | append: site.current_patch_version %}
{% if page.installation != "os" and page.installation != "supervised" %}
In the event that a Home Assistant Core version doesn't play well with your hardware setup, you can downgrade to a previous release. In this example `{{current_version}}` is used as the target version but you can choose the version you desire to run.
{% endif %}
{% if page.installation == "os" or page.installation == "supervised" %}
You can use the CLI to upgrade to a specific version (`{{current_version}}` in this example), to downgrade your installation you should do a partial restore of a [backup](#backups) instead.
```bash
ha core update --version {{current_version}}
ha core update --version {{current_version}} --backup
```
_The_ `--backup` _flag here ensures that you have a partial backup of your current setup incase you need to downgrade._
{% elsif page.installation == "container" %}
```bash

View File

@ -29,9 +29,11 @@ To update Home Assistant Core when you run Home Assistant {{ page.installation_n
content: |
```bash
ha core update
ha core update --backup
```
_The_ `--backup` _flag here ensures that you have a partial backup of your current setup incase you need to downgrade._
{% endtabbed_block %}
{% elsif page.installation == "container" %}

View File

@ -1,13 +0,0 @@
{% if site.google_analytics_tracking_id %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ site.google_analytics_tracking_id }}']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
{% endif %}

View File

@ -51,7 +51,7 @@ If you change the configuration you have to restart the server. To do that you h
content: |
```bash
docker-compose restart
docker compose restart
```
{% endtabbed_block %}
@ -59,19 +59,19 @@ If you change the configuration you have to restart the server. To do that you h
### Docker Compose
<div class="note tip">
In order to use `docker-compose` you first need to [install `docker-compose`](https://docs.docker.com/compose/install/) on your system.
`docker compose` should [already be installed](https://www.docker.com/blog/announcing-compose-v2-general-availability/) on your system. If not, you can [manually](https://docs.docker.com/compose/install/linux/) install it.
</div>
As the Docker command becomes more complex, switching to `docker-compose` can be preferable and support automatically restarting on failure or system restart. Create a `docker-compose.yml` file:
As the Docker command becomes more complex, switching to `docker compose` can be preferable and support automatically restarting on failure or system restart. Create a `compose.yml` file:
{% include installation/container/compose.md %}
Start it by running:
```bash
docker-compose up -d
docker compose up -d
```
Once the Home Assistant Container is running Home Assistant should be accessible using `http://<host>:8123` (replace <host> with the hostname or IP of the system). You can continue with onboarding.

View File

@ -1,10 +1,3 @@
<script>
var _gaq=[['_setAccount','{{ site.google_analytics_tracking_id }}'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.3.1/lite-youtube.js"></script>
<script src="{{ '/javascripts/prism.js' | cache_buster }}" type="text/javascript" defer></script>

View File

@ -17,6 +17,23 @@ The `bayesian` binary sensor platform observes the state from multiple sensors a
This allows for the detection of complex events that may not be readily observable, e.g., cooking, showering, in bed, the start of a morning routine, etc. It can also be used to gain greater confidence about events that _are_ directly observable, but for which the sensors can be unreliable, e.g., presence.
## Theory
A key concept in Bayes' Rule is the difference between the probability of the 'event given the observation' and the probability of the 'observation given the event'. In some cases these probabilities will be similar. The probability that someone is in the room given that motion is detected is similar to the probability motion is detected given that someone is in the room. In other cases, the distinction is much more important. The probability I have just arrived home (the event) each time the front door contact sensor reports `open` (the observation) (p=0.2) is not the same as the probability the front door contact sensor reports `open` (the observation) when I come home (the event) (p=0.999).
In the configuration use the probability of the observation (the sensor state in question) given the event (the assumed state of the Bayesian binary_sensor).
## Estimating probabilities
1. Avoid `0` and `1`, these will mess with the odds and are rarely true - sensors fail.
2. When using `0.99` and `0.001`. The number of `9`s and `0`s matters.
3. Most probabilities will be time-based - the fraction of time something is true is also the probability it will be true.
4. Use your Home Assistant history to help estimate the probabilities.
- `prob_given_true:` - Select the sensor in question over a time range when you think the `bayesian` sensor should have been `true`. `prob_given_true:` is the fraction of the time the sensor was in `to_state:`.
- `prob_given_false:` - Select the sensor in question over a time range when you think the `bayesian` sensor should have been `false`. `prob_given_false:` is the fraction of the time the sensor was in `to_state:`.
5. Don't work backwards by tweaking `prob_given_true:` and `prob_given_false:` to give the results and behaviors you want, use #4 to try and get probabilities as close to the 'truth' as you can, if your behavior is not as expected consider adding more sensors or see #7.
6. If your Bayesian sensor ends up triggering `on` too easily, re-check that the probabilities set and estimated make sense, then consider increasing `probability_threshold:` and vice-versa.
## Configuration
To enable the Bayesian sensor, add the following lines to your `configuration.yaml`:
@ -37,12 +54,15 @@ binary_sensor:
{% configuration %}
prior:
description: >
The prior probability of the event. At any point in time
(ignoring all external influences) how likely is this event to occur?
The prior probability of the event (0 to 1). At any point in time
(ignoring all external influences) how likely is this event to be occurring?
required: true
type: float
probability_threshold:
description: The probability at which the sensor should trigger to `on`.
description: >
The posterior probability at which the sensor should trigger to `on`.
use higher values to reduce false positives (and increase false negatives)
Note: If the threshold is higher than the prior then the default state will be `off`
required: false
type: float
default: 0.5
@ -52,7 +72,7 @@ name:
type: string
default: Bayesian Binary Sensor
observations:
description: The observations which should influence the likelihood that the given event has occurred.
description: The observations which should influence the probability that the given event is occurring.
required: true
type: list
keys:
@ -67,23 +87,23 @@ observations:
description: Name of the entity to monitor. Required for `state` and `numeric_state`.
required: false
type: string
to_state:
description: The entity state that defines the observation. Required (for `state`).
required: false
type: string
value_template:
description: Defines the template to be used. Required for `template`.
description: Defines the template to be used, should evaluate to `true` or `false`. Required for `template`.
required: false
type: template
prob_given_true:
description: The probability of the observation occurring, given the event is `true`.
description: >
Assuming the bayesian binary_sensor is `true`, the probability the entity state is occurring.
required: true
type: float
prob_given_false:
description: The probability of the observation occurring, given the event is `false` can be set as well.
required: false
description: Assuming the bayesian binary_sensor is `false` the probability of this entity state is occurring.
required: true
type: float
default: "`1 - prob_given_true` if `prob_given_false` is not set"
to_state:
description: The target state. Required (for `state`).
required: false
type: string
{% endconfiguration %}
## Full examples
@ -95,27 +115,33 @@ The following is an example for the `state` observation platform.
binary_sensor:
name: "in_bed"
platform: "bayesian"
prior: 0.25
probability_threshold: 0.95
prior: 0.25 # I spend 6 hours a day in bed 6hr/24hr is 0.25
probability_threshold: 0.8 # I am going to be using this sensor to turn out the lights so I only want to to activate when I am sure
observations:
- platform: "state"
entity_id: "sensor.living_room_motion"
prob_given_true: 0.4
prob_given_false: 0.2
prob_given_true: 0.05 # If I am in bed then I shouldn't be in the living room, very occasionally I have guests, however
prob_given_false: 0.2 # My sensor history shows If I am not in bed I spend about a fifth of my time in the living room
to_state: "off"
- platform: "state"
entity_id: "sensor.basement_motion"
prob_given_true: 0.5
prob_given_false: 0.4
prob_given_true: 0.5 # My sensor history shows, when I am in bed, my basement motion sensor is active about half the time because of my cat
prob_given_false: 0.3 # As above but my cat tends to spend more time upstairs or outside when I am awake and I rarely use the basement
to_state: "off"
- platform: "state"
entity_id: "sensor.bedroom_motion"
prob_given_true: 0.5
prob_given_true: 0.5 # My sensor history shows when I am in bed the sensor picks me up about half the time
prob_given_false: 0.1 # My sensor history shows I spend about 10% of my waking hours in my bedroom
to_state: "on"
- platform: "state"
entity_id: "sun.sun"
prob_given_true: 0.7
prob_given_true: 0.7 # If I am in bed then there is a good chance the sun will be down, but in the summer mornings I may still be in bed
to_state: "below_horizon"
- platform: "state"
entity_id: "sensor.android_charger_type"
prob_given_true: 0.95 # When I am in bed, I nearly always plug my phone in to charge
prob_given_false: 0.1 # When I am awake, I occasionally AC charge my phone
to_state: "ac"
```
Next up an example which targets the `numeric_state` observation platform,
@ -132,10 +158,11 @@ binary_sensor:
- platform: "numeric_state"
entity_id: "sensor.outside_air_temperature_fahrenheit"
prob_given_true: 0.95
prob_given_false: 0.05
below: 50
```
Finally, here's an example for `template` observation platform, as seen in the configuration it requires `value_template`.
Finally, here's an example for `template` observation platform, as seen in the configuration it requires `value_template`. This template will evaluate to true if the device tracker `device_tracker.paulus` shows `not_home` and it last changed its status more than 5 minutes ago.
{% raw %}
@ -150,7 +177,8 @@ binary_sensor:
- platform: template
value_template: >
{{is_state('device_tracker.paulus','not_home') and ((as_timestamp(now()) - as_timestamp(states.device_tracker.paulus.last_changed)) > 300)}}
prob_given_true: 0.95
prob_given_true: 0.05
prob_given_false: 0.99
```
{% endraw %}

View File

@ -151,7 +151,7 @@ entity_category:
type: string
default: None
expire_after:
description: Defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`.
description: If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires.
required: false
type: integer
force_update:

View File

@ -28,16 +28,23 @@ While this integration is part of [`default_config:`](/integrations/default_conf
bluetooth:
```
## D-Bus and BlueZ are required on Linux
## Requirements for Linux systems
For Bluetooth to function on Linux systems, the [D-Bus](https://en.wikipedia.org/wiki/D-Bus) socket must be accessible to Home Assistant. The Bluetooth adapter must be accessible to D-Bus and running [BlueZ](http://www.bluez.org/) >= 5.43.
For Bluetooth to function on Linux systems:
- Home Assistant Operating System: no additional steps are required. Home Assistant OS version 8.4 or later is recommended for performance reasons.
- The [D-Bus](https://en.wikipedia.org/wiki/D-Bus) socket must be accessible to Home Assistant.
- The Bluetooth adapter must be accessible to D-Bus and running [BlueZ](http://www.bluez.org/) >= 5.43. It is highly recommended to use BlueZ >= 5.63 as older versions have been reported to be unreliable.
- The D-Bus implementation should be [dbus-broker](https://github.com/bus1/dbus-broker).
- The host system should be running Linux kernel 5.15.62 or later.
### Additional requirements by install method
- Home Assistant Operating System: Upgrade to Home Assistant OS version 9.0 or later.
- Home Assistant Container: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container.
- Home Assistant Supervised: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container.
- Home Assistant Core: The system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant.
### Additional details for Container installs
### Additional details for Container, Core, and Supervised installs
{% details Making the DBus socket available in the Docker container %}
@ -45,7 +52,11 @@ For most systems, the Dbus socket is in `/run/dbus`. The socket must be availabl
{% enddetails %}
### Additional details for Container and Supervised installs
{% details Switching from dbus-daemon to dbus-broker %}
Follow [the instructions](https://github.com/bus1/dbus-broker/wiki) to switch to dbus-broker.
{% enddetails %}
{% details Installing BlueZ %}
@ -128,10 +139,42 @@ Deleting the config entry for this integration will release control of the adapt
### Bluetooth interference with other devices
Devices that are using the 2.4 GHz band, like Wi-Fi, Zigbee, and USB3 devices (and their cable connections) are known to affect Bluetooth reception. Especially external SSD drives with USB3 cables are known to block the Bluetooth signal. Also, metal casings can decrease the Bluetooth performance of internal Bluetooth Adapters.
Sources of interference for radios can lead to transmission/reception loss or connection problems and show symptoms such as errors/failures when sending and receiving Bluetooth messages that can cause significant degradation in performance. Below are some basic but essential tips for getting a good setup starting point to achieve better signal quality, coverage, and extended range.
The following tips may improve reception of the Bluetooth Adapter:
Following all these optimization tips below should significantly improve the reception of your Bluetooth radio adapter. The below insights describe working around the well-known limitations of low-power 2.4 GHz digital radio. It can resolve or avoid many known issues caused by interference or poor placement of your Bluetooth radio adapter or devices.
- Try to place USB3 devices (SSD, etc.) as far away as possible from your Bluetooth Adapter, e.g., by using an extension cable.
- Use a USB3 extension cable with proper shielding and ferrite clamps.
- Use a (good quality) external Bluetooth adapter with an antenna.
Computers, peripherals, and devices generate [electromagnetic interference (also known as EMI/EMI/RMI)](https://en.wikipedia.org/wiki/Electromagnetic_interference), which can interfere with signals transmissions on the 2.4 GHz radio band frequency, and degrade the wireless communication with your Bluetooth adapter/devices.
For example, unshielded USB 3 port and their cables are especially infamously known to affect 2.4 GHz radio reception. Place your Bluetooth adapter far away as possible from any potential sources of EMI/EMI/RMI by using a long, adequately shielded USB extension cable.
#### Simple actions that should improve most Bluetooth setups and common root causes of interference
- Bluetooth adapter hardware:
- Bad performance from old/outdated Bluetooth adapter hardware or poor Bluetooth adapter antenna:
- Buy and use a supported Bluetooth USB adapter based on newer/modern chip hardware.
- Consider a Bluetooth adapter that has an external antenna.
- While older adapters might work, they could have obsolete hardware or old firmware, which prevents reliable operation.
- Poor or outdated Bluetooth adapter firmware on the Bluetooth adapter:
- Update to the latest Bluetooth chip firmware on the Bluetooth adapter. Updating firmware is usually straightforward if the manufacturer or the chip maker provides one.
- Bluetooth adapters are RFI sensitive and can be very susceptible to all types of EMI/EMF interference:
- Poor placement of the Bluetooth adapter or wrong orientation of Bluetooth adapter antenna:
- Use a long USB extension cable to place the Bluetooth adapter away from interference and obstacles.
- Ensure the USB extension cable is adequately shielded (thick cables usually have this).
- A USB extension cable makes orienting the Bluetooth adapter/antenna easier.
- Try different physical placement and orientations of the Bluetooth adapter or its antenna:
- The optimal placement of the Bluetooth adapter is close to the middle of the house as possible.
- Try to place the Bluetooth adapter at some distance away from walls, ceilings, and floors.
- Try different orientations of the adapter's external antenna (or whole Bluetooth adapter).
- USB 3.0 ports/computers/peripherals are known culprits of RFI/EMI/EMF disruption. (See Ref. [1](https://www.usb.org/sites/default/files/327216.pdf) and [2](https://www.unit3compliance.co.uk/2-4ghz-intra-system-or-self-platform-interference-demonstration/)).
- Make sure to only connect the Bluetooth USB adapter to a USB 2.0 port (and not to a USB 3.x port).
- If your computer only has a USB 3.x port then connect the adapter via a powered USB 2.0 hub:
- A USB 2.0 hub will convert USB 3.0 to a USB 2.0 port and avoid USB 3.0 EMF.
- A USB 2.0 hub that uses an external power supply will ensure power requirements are fulfilled.
- Shield any unshielded computers/peripherals/devices by adding all-metal enclosures/chassis/casings.
- Single-board-computers and USB 3.x hard drives are especially known as source of EMF/EMI/RFI.
- Be aware metal casings can decrease the performance of internal/built-in Bluetooth adapters.
- Also, be sure to use adequately shielded USB cables for any such peripherals/devices too.
- 2.4 GHz RF Interference (RFI) from Wi-Fi Routers and Wi-Fi Access Points or other devices:
- While Bluetooth is designed to coexist with Wi-Fi, its stronger signal can interfere.
- To play it safe, try to place your Bluetooth adapter away from Wi-Fi access points.
- Place Bluetooth adapters far away from electrical/power wires/cables, power supplies, and household appliances.

View File

@ -17,12 +17,16 @@ The `caldav` platform allows you to connect to your WebDAV calendar and generate
You need to have a CalDAV server and credentials for it. This integration was tested against [Baikal](http://sabre.io/baikal/) but any integration complying with the RFC4791 should work. [Nextcloud](https://nextcloud.com/) and [Owncloud](https://owncloud.org/) work fine.
{% details "Notes for Home Assistant Core Installations" %}
You might need some additional system packages to compile the Python CalDAV library. On a Debian based system, install them by:
```bash
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
```
{% enddetails %}
## Basic Setup
To integrate a WebDAV calendar in Home Assistant, add the following section to your `configuration.yaml` file:

View File

@ -42,6 +42,7 @@ These devices have been sold under many brands, including:
- ILC
- LEDBlue
- LED BLE
- Magic Blue
- MCWOFI
- PHOPOLLO
- RESHAKE

View File

@ -159,5 +159,6 @@ The list with all known valid keys can be found [here](https://github.com/floria
- TX-P42VT30E
- TX-P50GT30Y
- TX-P50GT60E
- TX-65HZ1000W
If your model is not on the list, give it a test. If everything works correctly, then add it to the list on [GitHub](https://github.com/home-assistant/home-assistant.io/blob/current/source/_integrations/panasonic_viera.markdown).

View File

@ -143,7 +143,7 @@ entity_category:
type: string
default: None
expire_after:
description: Defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`.
description: If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires.
required: false
type: integer
default: 0

View File

@ -59,7 +59,7 @@ Switch entities are created for each Smappee Switch and Smappee Comfort Plug.
## Cloud API configuration
To use the Smappee cloud integration you need a personal `client_id` and `client_secret` and add these to your `configuration.yaml` file. The `client_id` and `client_secret` can be obtained by contacting [info@smappee.com](mailto:info@smappee.com) and require a recurring monthly fee.
To use the Smappee cloud integration you need a personal `client_id` and `client_secret` and add these to your `configuration.yaml` file. For personal use, access to the API is free and credentials can be obtained by contacting [support@smappee.com](mailto:support@smappee.com). For commercial usage, it is based on a recurring fee and credentials can be obtained by contacting [info@smappee.com](mailto:info@smappee.com).
For any information about the use of the API please refer to the [Smappee API space](https://smappee.atlassian.net/wiki/spaces/DEVAPI/overview).
```yaml

View File

@ -117,15 +117,15 @@ You will need a USB GSM stick modem or device like SIM800L v2 connected via USB
### List of modems known to work
- [SIM800C HAT form factor](https://www.amazon.com/gp/product/B07PQLRCNR/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) Make sure to `enable_uart=1` on your `config.txt` boot file.
- [SIM800C](https://www.amazon.com/gp/product/B087Z6F953/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)
- [Huawei E3372-510](https://www.amazon.com/gp/product/B01N6P3HI2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)(
Need to unlock it using [this guide](http://blog.asiantuntijakaveri.fi/2015/07/convert-huawei-e3372h-153-from.html))
- [Huawei E3531](https://www.amazon.com/Modem-Huawei-Unlocked-Caribbean-Desbloqueado/dp/B011YZZ6Q2/ref=sr_1_1?keywords=Huawei+E3531&qid=1581447800&sr=8-1)
- [Huawei E3372](https://www.amazon.com/gp/product/B01N6P3HI2/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)(
Note: E3372h-153 and E3372h-510 need to be unlocked [this guide](http://blog.asiantuntijakaveri.fi/2015/07/convert-huawei-e3372h-153-from.html), The Huawei E3372h-320 won't work at all, since it is locked down too much)
- [Huawei E3531](https://www.amazon.com/Modem-Huawei-Unlocked-Caribbean-Desbloqueado/dp/B011YZZ6Q2/ref=sr_1_1?keywords=Huawei+E3531&qid=1581447800&sr=8-1) (note: Devices with firmare versions 22.XX need to be unlocked using [this guide](https://community.home-assistant.io/t/trouble-setting-up-huawei-e3531s-2-with-sms-notifications-via-gsm-modem-integration/462737/9?u=alexschmitz222))
- [Huawei E3272](https://www.amazon.com/Huawei-E3272s-506-Unlocked-Americas-Europe/dp/B00HBL51OQ)
- ZTE K3565-Z
### List of modems known to NOT work
- No known modems
- Huawei E3372h-320
### List of modems that may work

View File

@ -43,9 +43,9 @@ The following characteristics are supported for `sensor` source sensors:
| `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 oldest and newest measurement is divided by the number of in-between measurements (n-1).
| `change_second` | The average change per second. The difference between the oldest and newest measurement is divided by seconds between them.
| `change` | The difference between the oldest and newest measurement.
| `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.

View File

@ -25,7 +25,7 @@ ha_platforms:
ha_integration_type: integration
---
The Synology DSM sensor platform provides access to various statistics from your [Synology NAS](https://www.synology.com) as well as cameras from the [Surveillance Station](https://www.synology.com/en-us/surveillance).
The Synology DSM integration provides access to various statistics from your [Synology NAS](https://www.synology.com) (_DSM 5.x and higher_) as well as cameras from the [Surveillance Station](https://www.synology.com/en-us/surveillance).
{% include integrations/config_flow.md %}
@ -52,6 +52,8 @@ Due to the nature of the Synology DSM API, it is required to grant the user admi
When creating the user, it is possible to deny access to all locations and applications. By doing this, the user will not be able to login to the web interface or view any of the files on the Synology NAS. It is still able to read the utilization and storage information using the API.
If you want to add cameras from [Surveillance Station](https://www.synology.com/en-us/surveillance), the user needs application permission for [Surveillance Station](https://www.synology.com/en-us/surveillance).
### If you utilize 2-Step Verification or Two Factor Authentication (2FA) with your Synology NAS
If you have the "Enforce 2-step verification for the following users" option checked under **Control Panel > User > Advanced > 2-Step Verification**, you'll need to configure the 2-step verification/one-time password (OTP) for the user you just created before the credentials for this user will work with Home Assistant.

View File

@ -22,7 +22,7 @@ You can also click the following button to be redirected to the Helpers page of
{% my helpers badge %}
To be able to add Helpers via the user interface you should have default_config: in your configuration.yaml, it should already be there by default unless you removed it. If you removed default_config: from your configuration, you must add timer: to your configuration.yaml first, then you can use the UI.
To be able to add Helpers via the user interface you should have `default_config:` in your `configuration.yaml`, it should already be there by default unless you removed it. If you removed `default_config:` from your configuration, you must add `timer:` to your `configuration.yaml` first, then you can use the UI.
Timers can also be configured via configuration.yaml:
To add a timer to your installation, add the following to your `configuration.yaml` file:

View File

@ -49,6 +49,8 @@ These devices do not send updates, but can be locked and unlocked.
Some locks only send push updates when they have an active HomeKit pairing. If your lock is not sending push updates, ensure it's paired with a HomeKit using an iOS device or the HomeKit controller integration. The lock cannot be paired via HomeKit Controller and the Yale Access Bluetooth integration on the same Home Assistant instance as they will both try to access the lock simultaneously and fail.
One easy way to fix this is to create a new/second home in the Apple Home app and add the lock to that new home. Push updates should occur as intended after the lock is added.
Alternatively, call the `homeassistant.update_entity` service to force the integration to update the lock state.
## Door Sensors

View File

@ -649,23 +649,21 @@ _This option is only available for Home Assistant OS (the recommended installati
This add-on can only be configured via the built-in Z-Wave control panel in Home Assistant.
**Option 2: The Zwavejs2Mqtt (aka "Z-Wave JS to MQTT") add-on installed from the community add-on store**
**Option 2: The Z-Wave JS UI add-on installed from the community add-on store**
_This option is only available for Home Assistant OS (the recommended installation type) and Home Assistant Supervised installations._
This add-on includes the Z-Wave JS Server as part of the Zwavejs2Mqtt application. Despite the name, MQTT is not required to run this add-on and both provide the same Z-Wave JS driver.
This add-on includes the Z-Wave JS Server as part of the Z-Wave JS UI application. The Z-Wave network can be configured via the built-in Z-Wave control panel in Home Assistant and alternatively via the Z-Wave control panel built into Z-Wave JS UI. It provides you with a full-fledged, attractive, and feature-complete UI to manage your Z-Wave nodes and settings, which may support more advanced use cases as development continues on the Z-Wave control panel.
The Z-Wave network can be configured via the built-in Z-Wave control panel in Home Assistant and alternatively via the Z-Wave control panel built into Zwavejs2Mqtt. It provides you with a full-fledged, attractive, and feature-complete UI to manage your Z-Wave nodes and settings, which may support more advanced use cases as development continues on the Z-Wave control panel.
**Option 3: The Z-Wave JS UI Docker container**
**Option 3: The Zwavejs2Mqtt Docker container**
This is the recommended approach if you're running Home Assistant Container. See the [Z-Wave JS UI documentation](https://zwave-js.github.io/zwave-js-ui//#/getting-started/quick-start) for instructions.
This is the recommended approach if you're running Home Assistant Container. See the [Zwavejs2Mqtt documentation](https://zwave-js.github.io/zwavejs2mqtt/#/getting-started/quick-start) for instructions.
This method provides the same server application and UI as the Zwavejs2Mqtt add-on. After installing the Docker image, make sure you enable the WS Server in the Home Assistant section of Settings page.
This method provides the same server application and UI as the Z-Wave JS UI add-on. After installing the Docker image, make sure you enable the WS Server in the Home Assistant section of Settings page.
**Option 4: Run the Z-Wave JS server yourself**
This is considered a very advanced use case. In this case you run the Z-Wave JS Server or Zwavejs2Mqtt NodeJS application directly. Installation and maintaining this is out of scope for this document. See the [Z-Wave JS server](https://github.com/zwave-js/zwave-js-server) or [Zwavejs2Mqtt](https://github.com/zwave-js/zwavejs2mqtt) GitHub repository for information.
This is considered a very advanced use case. In this case you run the Z-Wave JS Server or Z-Wave JS UI NodeJS application directly. Installation and maintaining this is out of scope for this document. See the [Z-Wave JS server](https://github.com/zwave-js/zwave-js-server) or [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui/) GitHub repository for information.
<div class='note info'>
@ -677,7 +675,7 @@ This is considered a very advanced use case. In this case you run the Z-Wave JS
**Network keys** are used to connect securely to compatible devices. The network keys consist of 32 hexadecimal characters, for example, `2232666D100F795E5BB17F0A1BB7A146` (do not use this one, pick a random one). Without network keys security enabled devices cannot be added securely and will not function correctly. You must provide these network keys in the configuration part of the Z-Wave JS Server.
For new installations, unique default keys will be auto-generated for you by the Z-Wave JS add-on. You can also generate those network keys in the Settings section of Zwavejs2Mqtt.
For new installations, unique default keys will be auto-generated for you by the Z-Wave JS add-on. You can also generate those network keys in the Settings section of Z-Wave JS UI.
If migrating from the legacy `zwave` integration, your network key from those integration should be entered as the S0 network key. Those integrations did not support S2 security, so you will not yet have S2 network keys to configure.
@ -689,9 +687,9 @@ Make sure that you keep a backup of these keys in a safe place. You will need to
Once you have the Z-Wave JS server up and running, you need to install and configure the integration in Home Assistant (as described above).
If you're running full Home Assistant with supervisor, you will be presented with a dialog that asks if you want to use the Z-Wave JS Supervisor add-on. You **must** uncheck this box if you are running the Z-Wave JS server in any manner other than the official Z-Wave JS add-on, including using Z-Wave JS to MQTT add-on.
If you're running full Home Assistant with supervisor, you will be presented with a dialog that asks if you want to use the Z-Wave JS Supervisor add-on. You **must** uncheck this box if you are running the Z-Wave JS server in any manner other than the official Z-Wave JS add-on, including using Z-Wave JS UI add-on.
If you're not running the supervisor or you've unchecked the above mentioned box, you will be asked to enter a websocket URL (defaults to ws://localhost:3000). It is very important that you fill in the correct (Docker) IP/hostname here. For example for the Z-Wave JS to MQTT add-on this is `ws://a0d7b954-zwavejs2mqtt:3000`.
If you're not running the supervisor or you've unchecked the above-mentioned box, you will be asked to enter a websocket URL (defaults to ws://localhost:3000). It is very important that you fill in the correct (Docker) IP/hostname here. For example for the Z-Wave JS UI add-on this is `ws://a0d7b954-zwavejs2mqtt:3000`.
## Frequently Asked Questions
@ -707,7 +705,7 @@ You can also keep track of the roadmap for the Z-Wave integration [here](https:/
#### Which Z-Wave controller should I buy?
Z-Wave supports all known 500 and 700 series Z-Wave controllers. If you are just starting out, we recommend that you purchase a 500 series controller.
Z-Wave supports all known 500 and 700 series Z-Wave controllers. If you are just starting out, we recommend that you purchase a 700 series controller (with firmware updated to >=7.17.2).
For more information, see [Supported Z-Wave dongles](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules)
@ -741,11 +739,15 @@ Node {{ node }};{{ s.name }};{{ s.entity_id }}{% endfor %}
{% endraw %}
#### Can I switch between the Official Z-Wave JS add-on and Zwavejs2Mqtt?
#### What happened to Zwavejs2Mqtt or the Z-Wave JS to MQTT add-on?
Zwavejs2Mqtt was renamed Z-Wave JS UI in September 2022. They are synonymous with no difference between their capabilities.
#### Can I switch between the Official Z-Wave JS add-on and the Z-Wave JS UI add-on?
You can, but you cannot run them both at the same time. Only one of them can be active at the same time.
#### How do I switch between the Official Z-Wave JS add-on and Zwavejs2Mqtt?
#### How do I switch between the Official Z-Wave JS add-on and the Z-Wave JS UI add-on?
Switching does not require renaming your devices.
@ -753,7 +755,7 @@ Switching does not require renaming your devices.
2. Note your network security keys from the official add-on.
3. Install and configure the Z-Wave JS to MQTT add-on, including setting the location of your Z-Wave device and the network security keys.
3. Install and configure the Z-Wave JS UI add-on, including setting the location of your Z-Wave device and the network security keys.
4. Add the Z-Wave integration again (even though it is still installed), and uncheck the "Use the Z-Wave JS Supervisor add-on". Enter the correct address for the community add-on in the URL field in the next step.
@ -761,30 +763,30 @@ Switching does not require renaming your devices.
6. Enable the Z-Wave integration.
#### What's the benefit of using Zwavejs2Mqtt over the official Add-On?
#### What's the benefit of using Z-Wave JS UI add-on over the official Add-On?
The official add-on provides the Z-Wave Server in its bare minimum variant, just enough to serve the Home Assistant integration.
The Zwavejs2Mqtt project includes the Z-Wave JS Server for convenience but also provides a Z-Wave Control panel and the ability (hence its name) to serve your Z-Wave network to MQTT. You can leave the MQTT Gateway disabled and only use the Control panel but you can even have the MQTT features enabled at the same time. For example to interact with Z-Wave from other devices, while the Home Assistant integration still works (as long as you keep the WS Server enabled in Zwavejs2Mqtt).
The Z-Wave JS UI project includes the Z-Wave JS Server for convenience but also provides a Z-Wave Control panel and the ability to serve your Z-Wave network to MQTT. This allows you to use the control panel, and if you so choose, to also use MQTT at the same time. For example, some users may use MQTT to interact with Z-Wave from other devices, while the Home Assistant integration still works (as long as you keep the WS Server enabled in Z-Wave JS UI).
#### Zwavejs2Mqtt seems to provide discovery of Home Assistant devices on its own too, now I'm confused
#### Z-Wave JS UI seems to provide discovery of Home Assistant devices on its own too, now I'm confused
Correct, the Zwavejs2Mqtt project existed before Home Assistant had plans to move to the Z-Wave JS Driver. You should use the integration for device discovery and _not_ the MQTT discovery provided by Zwavejs2Mqtt.
Correct, the Z-Wave JS UI project existed before Home Assistant had plans to move to the Z-Wave JS Driver. You should use the integration for device discovery and _not_ the MQTT discovery provided by Z-Wave JS UI.
#### Can I run Zwavejs2Mqtt only for the control panel and nothing else?
#### Can I run Z-Wave JS UI only for the control panel and nothing else?
Sure, in the settings of Zwavejs2Mqtt, make sure to enable "WS Server" and disable "Gateway".
Sure, in the settings of Z-Wave JS UI, make sure to enable "WS Server" and disable "Gateway".
#### How do I use my OZW network key in Zwavejs2Mqtt?
#### How do I use my OZW network key in Z-Wave JS UI?
You can use your existing network key in Zwavejs2Mqtt but you need to slightly adjust it.
The OZW looks like this: `0x01, 0x02, 0x03 etc.` while the network key format accepted in Zwavejs2Mqtt looks like this `0102030405 etc.`. You can simply edit your existing key and remove the `"0x"` part and the `", "` part so it becomes one large string of numbers.
You can use your existing network key in Z-Wave JS UI but you need to slightly adjust it.
The OZW looks like this: `0x01, 0x02, 0x03 etc.` while the network key format accepted in Z-Wave JS UI looks like this `0102030405 etc.`. You can simply edit your existing key and remove the `"0x"` part and the `", "` part so it becomes one large string of numbers.
#### Should I name my devices in Home Assistant, or in Zwavejs2Mqtt?
#### Should I name my devices in Home Assistant, or in Z-Wave JS UI?
Ultimately, this is a personal decision. If you provide a name or location for a device in the Zwavejs2Mqtt UI, that name will be imported into Home Assistant when the integration is reloaded or Home Assistant is restarted. Any entity names, however, will not change if the device has already been set up by Home Assistant. Names set in Zwavejs2Mqtt _will not_ overwrite changes that have already been made in Home Assistant.
Ultimately, this is a personal decision. If you provide a name or location for a device in the Z-Wave JS UI, that name will be imported into Home Assistant when the integration is reloaded or Home Assistant is restarted. Any entity names, however, will not change if the device has already been set up by Home Assistant. Names set in Z-Wave JS UI _will not_ overwrite changes that have already been made in Home Assistant.
Names set in Home Assistant will not import into Zwavejs2Mqtt.
Names set in Home Assistant will not import into Z-Wave JS UI.
### Using Z-Wave
@ -848,9 +850,9 @@ Your device might not send automatic status updates to the controller. While the
Z-Wave does not automatically poll devices on a regular basis. Polling can quickly lead to network congestion and should be used very sparingly and only where necessary.
- We provide a `zwave_js.refresh_value` service to allow you to manually poll a value, for example from an automation that only polls a device when there is motion in that same room. If you **really** need polling, you can enable this in Zwavejs2Mqtt but not in the official add-on.
- We provide a `zwave_js.refresh_value` service to allow you to manually poll a value, for example from an automation that only polls a device when there is motion in that same room. If you **really** need polling, you can enable this in Z-Wave JS UI but not in the official add-on.
- Zwavejs2Mqtt allows you to configure scheduled polling on a per-value basis, which you can use to keep certain values updated. It also allows you to poll individual values on-demand from your automations, which should be preferred over blindly polling all the time if possible.
- Z-Wave JS UI allows you to configure scheduled polling on a per-value basis, which you can use to keep certain values updated. It also allows you to poll individual values on-demand from your automations, which should be preferred over blindly polling all the time if possible.
<div class='note warning'>
Polling should only be used as a last resort. You must use it with care and accept the negative impact on your network. Z-Wave is a very low speed network and poll requests can easily flood your network and slow down your commands.

View File

@ -12,7 +12,9 @@ categories:
og_image: /images/blog/2022-05-matter-in-home-assistant-workshop-announcement/social.png
---
<img src='/images/blog/2022-05-matter-in-home-assistant-workshop-announcement/header.png' alt="Decorative header." class='no-shadow'>
<!--<img src='/images/blog/2022-05-matter-in-home-assistant-workshop-announcement/header.png' alt="Decorative header." class='no-shadow'>-->
<lite-youtube videoid="9fOHBl5w0_k" videotitle="Matter in Home Assistant workshop"></lite-youtube>
## [The workshop instructions can be found here.](/matter-june-22)

View File

@ -42,6 +42,8 @@ Now I know that everyone usually expects [@frenck] to be writing these release n
- [Release 2022.9.3 - September 13](#release-202293---september-13)
- [Release 2022.9.4 - September 14](#release-202294---september-14)
- [Release 2022.9.5 - September 18](#release-202295---september-18)
- [Release 2022.9.6 - September 22](#release-202296---september-22)
- [Release 2022.9.7 - September 26](#release-202297---september-26)
- [Need help? Join the community](#need-help-join-the-community)
- [Breaking Changes](#breaking-changes)
- [All changes](#all-changes)
@ -602,6 +604,150 @@ The following integrations are now available via the Home Assistant UI:
[yalexs_ble docs]: /integrations/yalexs_ble/
[zwave_js docs]: /integrations/zwave_js/
## Release 2022.9.6 - September 22
- Handle Modalias missing from the bluetooth adapter details on older BlueZ ([@bdraco] - [#78716]) ([bluetooth docs])
- Refactor MQTT tests to use modern platform schema part 1 ([@jbouwh] - [#77387]) ([mqtt docs])
- Refactor MQTT tests to use modern platform schema part 2 ([@jbouwh] - [#77525]) ([mqtt docs])
- Refactor common MQTT tests to use modern schema ([@jbouwh] - [#77583]) ([mqtt docs])
- Make hass.data["mqtt"] an instance of a DataClass ([@jbouwh] - [#77972]) ([mqtt docs])
- Add status codes 23 and 26 to Xiaomi Miio vacuum ([@starkillerOG] - [#78289]) ([xiaomi_miio docs])
- Link manually added MQTT entities the the MQTT config entry ([@jbouwh] - [#78547]) ([mqtt docs])
- Drop PARALLEL_UPDATES from switchbot ([@bdraco] - [#78713]) ([switchbot docs])
- Bump aioimaplib to 1.0.1 ([@N1c093] - [#78738]) ([imap docs]) (dependency)
- Fix bug wherein RainMachine services use the wrong controller ([@bachya] - [#78780]) ([rainmachine docs])
- Guard Guardian switches from redundant on/off calls ([@bachya] - [#78791]) ([guardian docs])
- Bump dbus-fast to 1.5.1 ([@bdraco] - [#78802]) ([bluetooth docs]) (dependency)
- If brightness is not available, don't set a value ([@elupus] - [#78827]) ([google_assistant docs])
- Pin Python patch versions [ci] ([@cdce8p] - [#78830])
- Fix parsing Eve Energy characteristic data ([@Jc2k] - [#78880]) ([homekit_controller docs])
- Check Surveillance Station permissions during setup of Synology DSM integration ([@mib1185] - [#78884]) ([synology_dsm docs])
- Handle default RSSI values from bleak in bluetooth ([@bdraco] - [#78908]) ([bluetooth docs])
- Disable force update Netatmo ([@balloob] - [#78913]) ([netatmo docs])
- Correct return typing for `catch_log_exception` ([@jbouwh] - [#78399])
- Fix samsungtv to abort when ATTR_UPNP_MANUFACTURER is missing ([@bdraco] - [#78895]) ([samsungtv docs])
- Handle timeout fetching bond token in config flow ([@bdraco] - [#78896]) ([bond docs])
- Bump bimmer_connected to 0.10.4 ([@rikroe] - [#78910]) ([bmw_connected_drive docs]) (dependency)
[#77387]: https://github.com/home-assistant/core/pull/77387
[#77525]: https://github.com/home-assistant/core/pull/77525
[#77583]: https://github.com/home-assistant/core/pull/77583
[#77968]: https://github.com/home-assistant/core/pull/77968
[#77972]: https://github.com/home-assistant/core/pull/77972
[#78081]: https://github.com/home-assistant/core/pull/78081
[#78169]: https://github.com/home-assistant/core/pull/78169
[#78289]: https://github.com/home-assistant/core/pull/78289
[#78399]: https://github.com/home-assistant/core/pull/78399
[#78410]: https://github.com/home-assistant/core/pull/78410
[#78438]: https://github.com/home-assistant/core/pull/78438
[#78547]: https://github.com/home-assistant/core/pull/78547
[#78703]: https://github.com/home-assistant/core/pull/78703
[#78713]: https://github.com/home-assistant/core/pull/78713
[#78716]: https://github.com/home-assistant/core/pull/78716
[#78738]: https://github.com/home-assistant/core/pull/78738
[#78780]: https://github.com/home-assistant/core/pull/78780
[#78791]: https://github.com/home-assistant/core/pull/78791
[#78802]: https://github.com/home-assistant/core/pull/78802
[#78827]: https://github.com/home-assistant/core/pull/78827
[#78830]: https://github.com/home-assistant/core/pull/78830
[#78880]: https://github.com/home-assistant/core/pull/78880
[#78884]: https://github.com/home-assistant/core/pull/78884
[#78895]: https://github.com/home-assistant/core/pull/78895
[#78896]: https://github.com/home-assistant/core/pull/78896
[#78908]: https://github.com/home-assistant/core/pull/78908
[#78910]: https://github.com/home-assistant/core/pull/78910
[#78913]: https://github.com/home-assistant/core/pull/78913
[@Jc2k]: https://github.com/Jc2k
[@N1c093]: https://github.com/N1c093
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bdraco]: https://github.com/bdraco
[@cdce8p]: https://github.com/cdce8p
[@elupus]: https://github.com/elupus
[@frenck]: https://github.com/frenck
[@jbouwh]: https://github.com/jbouwh
[@mib1185]: https://github.com/mib1185
[@rikroe]: https://github.com/rikroe
[@starkillerOG]: https://github.com/starkillerOG
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[bluetooth docs]: /integrations/bluetooth/
[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
[bond docs]: /integrations/bond/
[frontend docs]: /integrations/frontend/
[google_assistant docs]: /integrations/google_assistant/
[guardian docs]: /integrations/guardian/
[homekit_controller docs]: /integrations/homekit_controller/
[imap docs]: /integrations/imap/
[mqtt docs]: /integrations/mqtt/
[netatmo docs]: /integrations/netatmo/
[rainmachine docs]: /integrations/rainmachine/
[samsungtv docs]: /integrations/samsungtv/
[switchbot docs]: /integrations/switchbot/
[synology_dsm docs]: /integrations/synology_dsm/
[xiaomi_miio docs]: /integrations/xiaomi_miio/
## Release 2022.9.7 - September 26
- Bump pyipma to 3.0.5 ([@dgomes] - [#78936]) ([ipma docs])
- Bump motionblinds to 0.6.13 ([@starkillerOG] - [#78946]) ([motion_blinds docs])
- Set OWM default mode to hourly legacy API ([@jbouwh] - [#78951]) ([openweathermap docs])
- Bump yalexs to 1.2.2 ([@bdraco] - [#78978]) ([august docs])
- Fix velbus matching ignored entries in config flow ([@Cereal2nd] - [#78999]) ([velbus docs])
- Bumped boschshcpy 0.2.30 to 0.2.35 ([@tschamm] - [#79017]) ([bosch_shc docs])
- Fix failing LaMetric pairing message during config flow ([@frenck] - [#79031]) ([lametric docs])
- Fix MQTT device_tracker generating unique id-s - regression on #78547 ([@jbouwh] - [#79033]) ([mqtt docs])
- Bump govee-ble to 0.19.0 ([@bdraco] - [#79038]) ([govee_ble docs])
- Always install requirements of after_dependencies ([@emontnemery] - [#79094])
- Pin pyOpenSSL to 22.0.0 ([@balloob] - [#79066])
[#77968]: https://github.com/home-assistant/core/pull/77968
[#78081]: https://github.com/home-assistant/core/pull/78081
[#78169]: https://github.com/home-assistant/core/pull/78169
[#78410]: https://github.com/home-assistant/core/pull/78410
[#78438]: https://github.com/home-assistant/core/pull/78438
[#78703]: https://github.com/home-assistant/core/pull/78703
[#78916]: https://github.com/home-assistant/core/pull/78916
[#78936]: https://github.com/home-assistant/core/pull/78936
[#78946]: https://github.com/home-assistant/core/pull/78946
[#78951]: https://github.com/home-assistant/core/pull/78951
[#78978]: https://github.com/home-assistant/core/pull/78978
[#78999]: https://github.com/home-assistant/core/pull/78999
[#79017]: https://github.com/home-assistant/core/pull/79017
[#79031]: https://github.com/home-assistant/core/pull/79031
[#79033]: https://github.com/home-assistant/core/pull/79033
[#79038]: https://github.com/home-assistant/core/pull/79038
[#79066]: https://github.com/home-assistant/core/pull/79066
[#79094]: https://github.com/home-assistant/core/pull/79094
[@Cereal2nd]: https://github.com/Cereal2nd
[@balloob]: https://github.com/balloob
[@bdraco]: https://github.com/bdraco
[@dgomes]: https://github.com/dgomes
[@emontnemery]: https://github.com/emontnemery
[@frenck]: https://github.com/frenck
[@jbouwh]: https://github.com/jbouwh
[@starkillerOG]: https://github.com/starkillerOG
[@tschamm]: https://github.com/tschamm
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[august docs]: /integrations/august/
[bluetooth docs]: /integrations/bluetooth/
[bosch_shc docs]: /integrations/bosch_shc/
[frontend docs]: /integrations/frontend/
[google_assistant docs]: /integrations/google_assistant/
[govee_ble docs]: /integrations/govee_ble/
[guardian docs]: /integrations/guardian/
[homekit_controller docs]: /integrations/homekit_controller/
[imap docs]: /integrations/imap/
[ipma docs]: /integrations/ipma/
[lametric docs]: /integrations/lametric/
[motion_blinds docs]: /integrations/motion_blinds/
[mqtt docs]: /integrations/mqtt/
[openweathermap docs]: /integrations/openweathermap/
[velbus docs]: /integrations/velbus/
## Need help? Join the community
Home Assistant has a great community of users who are all more than willing

View File

@ -464,14 +464,15 @@ description: "The Home Assistant contributor license agreement (CLA) signature p
"region": $("#region").val(),
"signing_for": $('input[name="signing_for"]:checked').val(),
"i_agree": $("#i_agree").val(),
"github_user_id": $("#github_user_id").val()
"github_user_id": $("#github_user_id").val(),
"pull_request": localStorage.getItem("pr"),
};
if ($("#company_name").val() != "") {
payload.company_name = $("#company_name").val();
}
$.ajax({
type: "POST",
url: "https://cla.home-assistant.io/sign",
url: "https://service-hub-bots.home-assistant.io/cla-sign",
data: JSON.stringify(payload),
contentType: "application/json",
}).done(function(data){

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -89,7 +89,15 @@ feedback: false
</a>
</div>
<div class="grid__item two-thirds lap-two-thirds palm-one-whole">
<!-- State of the Open Home 2022 -->
<div
class="material-card picture-promo"
style="
background-image: url(/images/frontpage/state-of-the-open-home-2022.png);
background-size: cover;
padding-top: 45%;
"
></div>
<!-- Home Assistant Yellow -->
<a

View File

@ -10,8 +10,41 @@ Without this check you will face an increased number of errors and performance i
## The solution
From the host shell execute the following command to re-enable Network Manager's connectivity check:
From the host shell, first execute the following:
```sh
busctl get-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager ConnectivityCheckAvailable
```
### Output is `b true`
You just need to re-enable connectivity checks by executing this command:
```sh
busctl set-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager ConnectivityCheckEnabled b true
```
It may take a bit for the message to go away as all checks are scheduled on timers. You can force it to recheck immediately by executing the following commands:
```sh
ha host reload
ha resolution healthcheck
```
### Output is `b false`
You need to set the connectivity uri in Network Manager's config. You can do this by adding the following to `/etc/NetworkManager/NetworkManager.conf`:
```txt
[connectivity]
uri=http://checkonline.home-assistant.io/online.txt
interval=600
```
Afterwards you will need to restart NetworkManager by either rebooting the host or executing this command:
```sh
systemctl restart NetworkManager
```
As mentioned above, the checks are on timers so the message may not go away immediately unless you force an immediate re-check. If you continue to see the message after a while or after forcing a re-check then start over at the top of this solution. You may need to separately enable the check now that it is available.

View File

@ -0,0 +1,26 @@
---
title: "Restart policy"
description: "More information on why changing the docker restart policy for containers marks the system as unsupported."
---
## The issue
Supervisor needs to start the containers it manages for addons, plugins and Home Assistant in the
correct order after a system reboot. Changing the restart policy it sets on those containers may
cause them to start in the wrong order and create errors.
## The solution
If the restart policy of observer was changed, fix it from the host shell with this:
```sh
docker update hassio_observer --restart always
```
For everything else, the restart policy can be fixed with the following command:
```sh
docker update <container_name> --restart no
```
The supervisor log should contain a list of container names with incorrect restart policies.