mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-14 12:56:54 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
c71fce96da
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v5
|
- uses: actions/stale@v6.0.0
|
||||||
if: ${{ github.repository_owner == 'home-assistant' }}
|
if: ${{ github.repository_owner == 'home-assistant' }}
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
2
Gemfile
2
Gemfile
@ -19,7 +19,7 @@ group :jekyll_plugins do
|
|||||||
gem 'jekyll-toc', '0.17.1'
|
gem 'jekyll-toc', '0.17.1'
|
||||||
end
|
end
|
||||||
|
|
||||||
gem 'sinatra', '2.2.2'
|
gem 'sinatra', '3.0.0'
|
||||||
gem 'nokogiri', '1.13.8'
|
gem 'nokogiri', '1.13.8'
|
||||||
|
|
||||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||||
|
18
Gemfile.lock
18
Gemfile.lock
@ -5,7 +5,7 @@ GEM
|
|||||||
public_suffix (>= 2.0.2, < 6.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
chunky_png (1.4.0)
|
chunky_png (1.4.0)
|
||||||
colorator (1.1.0)
|
colorator (1.1.0)
|
||||||
commonmarker (0.23.5)
|
commonmarker (0.23.6)
|
||||||
compass (1.0.3)
|
compass (1.0.3)
|
||||||
chunky_png (~> 1.2)
|
chunky_png (~> 1.2)
|
||||||
compass-core (~> 1.0.2)
|
compass-core (~> 1.0.2)
|
||||||
@ -68,7 +68,7 @@ GEM
|
|||||||
mercenary (0.4.0)
|
mercenary (0.4.0)
|
||||||
mini_portile2 (2.8.0)
|
mini_portile2 (2.8.0)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
mustermann (2.0.2)
|
mustermann (3.0.0)
|
||||||
ruby2_keywords (~> 0.0.1)
|
ruby2_keywords (~> 0.0.1)
|
||||||
nokogiri (1.13.8)
|
nokogiri (1.13.8)
|
||||||
mini_portile2 (~> 2.8.0)
|
mini_portile2 (~> 2.8.0)
|
||||||
@ -80,7 +80,7 @@ GEM
|
|||||||
public_suffix (5.0.0)
|
public_suffix (5.0.0)
|
||||||
racc (1.6.0)
|
racc (1.6.0)
|
||||||
rack (2.2.4)
|
rack (2.2.4)
|
||||||
rack-protection (2.2.2)
|
rack-protection (3.0.0)
|
||||||
rack
|
rack
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
rb-fsevent (0.11.2)
|
rb-fsevent (0.11.2)
|
||||||
@ -97,10 +97,10 @@ GEM
|
|||||||
ffi (~> 1.9)
|
ffi (~> 1.9)
|
||||||
sassc (2.1.0-x64-mingw32)
|
sassc (2.1.0-x64-mingw32)
|
||||||
ffi (~> 1.9)
|
ffi (~> 1.9)
|
||||||
sinatra (2.2.2)
|
sinatra (3.0.0)
|
||||||
mustermann (~> 2.0)
|
mustermann (~> 3.0)
|
||||||
rack (~> 2.2)
|
rack (~> 2.2, >= 2.2.4)
|
||||||
rack-protection (= 2.2.2)
|
rack-protection (= 3.0.0)
|
||||||
tilt (~> 2.0)
|
tilt (~> 2.0)
|
||||||
stringex (2.8.5)
|
stringex (2.8.5)
|
||||||
terminal-table (2.0.0)
|
terminal-table (2.0.0)
|
||||||
@ -108,7 +108,7 @@ GEM
|
|||||||
tilt (2.0.11)
|
tilt (2.0.11)
|
||||||
tzinfo (2.0.5)
|
tzinfo (2.0.5)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
tzinfo-data (1.2022.3)
|
tzinfo-data (1.2022.4)
|
||||||
tzinfo (>= 1.0.0)
|
tzinfo (>= 1.0.0)
|
||||||
unicode-display_width (1.8.0)
|
unicode-display_width (1.8.0)
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ DEPENDENCIES
|
|||||||
rake (= 13.0.6)
|
rake (= 13.0.6)
|
||||||
sass-globbing (= 1.1.5)
|
sass-globbing (= 1.1.5)
|
||||||
sassc (= 2.1.0)
|
sassc (= 2.1.0)
|
||||||
sinatra (= 2.2.2)
|
sinatra (= 3.0.0)
|
||||||
stringex (= 2.8.5)
|
stringex (= 2.8.5)
|
||||||
tzinfo (~> 2.0)
|
tzinfo (~> 2.0)
|
||||||
tzinfo-data
|
tzinfo-data
|
||||||
|
@ -91,7 +91,7 @@ twitter_user: balloob
|
|||||||
twitter_tweet_button: true
|
twitter_tweet_button: true
|
||||||
|
|
||||||
# Google Analytics
|
# Google Analytics
|
||||||
google_analytics_tracking_id: UA-57927901-1
|
# google_analytics_tracking_id: UA-57927901-1
|
||||||
|
|
||||||
# Facebook Like
|
# Facebook Like
|
||||||
facebook_like: true
|
facebook_like: true
|
||||||
@ -107,8 +107,8 @@ social:
|
|||||||
# Home Assistant release details
|
# Home Assistant release details
|
||||||
current_major_version: 2022
|
current_major_version: 2022
|
||||||
current_minor_version: 9
|
current_minor_version: 9
|
||||||
current_patch_version: 5
|
current_patch_version: 7
|
||||||
date_released: 2022-09-18
|
date_released: 2022-09-26
|
||||||
|
|
||||||
# Either # or the anchor link to latest release notes in the blog post.
|
# Either # or the anchor link to latest release notes in the blog post.
|
||||||
# Must be prefixed with a # and have double quotes around it.
|
# Must be prefixed with a # and have double quotes around it.
|
||||||
|
328
package-lock.json
generated
328
package-lock.json
generated
@ -14,7 +14,7 @@
|
|||||||
"remark-lint-fenced-code-flag": "^3.1.1",
|
"remark-lint-fenced-code-flag": "^3.1.1",
|
||||||
"remark-lint-no-shell-dollars": "^3.1.1",
|
"remark-lint-no-shell-dollars": "^3.1.1",
|
||||||
"remark-stringify": "^10.0.2",
|
"remark-stringify": "^10.0.2",
|
||||||
"textlint": "^12.2.1",
|
"textlint": "^12.2.2",
|
||||||
"textlint-filter-rule-comments": "^1.2.2",
|
"textlint-filter-rule-comments": "^1.2.2",
|
||||||
"textlint-rule-common-misspellings": "^1.0.1",
|
"textlint-rule-common-misspellings": "^1.0.1",
|
||||||
"textlint-rule-terminology": "^3.0.3"
|
"textlint-rule-terminology": "^3.0.3"
|
||||||
@ -228,44 +228,44 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/ast-node-types": {
|
"node_modules/@textlint/ast-node-types": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.2.tgz",
|
||||||
"integrity": "sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==",
|
"integrity": "sha512-VQAXUSGdmEajHXrMxeM9ZTS8UBJSVB0ghJFHpFfqYKlcDsjIqClSmTprY6521HoCoSLoUIGBxTC3jQyUMJFIWw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/ast-tester": {
|
"node_modules/@textlint/ast-tester": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.2.tgz",
|
||||||
"integrity": "sha512-QGg7wxFLpsEAb7uxYPAO6F/QxDoX50wQ8aQ378RbpcQK57J9r9TQfV5Sieuta5dJORUrrMIuIrP4qU7P+1YyUw==",
|
"integrity": "sha512-l5VP2LG+cFCjVvBR3uRrXBeoElKLic2rG+tTQUsH/rywh3TeeDKsHZBk1gGz8kAHVoeEuuH7lx0Wu8AjP4AqGw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/ast-traverse": {
|
"node_modules/@textlint/ast-traverse": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.2.tgz",
|
||||||
"integrity": "sha512-uwppnDZRmRhH8R4WrkKAvwAbKcYux2yG/XqKlADuFd2T4hSMTlZOBLxDvXohLKY617HHM32/G99HJlmFFvP4GA==",
|
"integrity": "sha512-ROd6W9P76DFA9hv7wCf1+Dc6aehLcsd0/3qKerQN/Luc3B2ek+/qJbGgWeAEsSBKl9LVLJhTBydmdgOAHrVjwA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/feature-flag": {
|
"node_modules/@textlint/feature-flag": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.2.tgz",
|
||||||
"integrity": "sha512-Vwn1VKaqNvhMteXNdvk+5duGzlG0MwSjkufU3AVaBQsS4SH4dchSvULpKc+r4BOTSzybNappN0APEcMjOx0Lxg==",
|
"integrity": "sha512-L0v/ZjxmdzRXygja1WiXBjA2ZczvU3cG6qkwME4JGKwUsbEa9UzpwD8i3yBoO7ISkjkMpPM5BYD3AtJgQpCuEg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/fixer-formatter": {
|
"node_modules/@textlint/fixer-formatter": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.2.tgz",
|
||||||
"integrity": "sha512-Y4FT2zVyYCxZCJ19tdfhBKr/FtCDP03iW+gfF6zHAjQaNPEGUU7ZfVUBJVVYBWOuHT/Zk22kcJZVFSINacPybQ==",
|
"integrity": "sha512-uKJScqlJvIP9ttVxSq4632kYUjeEhsqc1mLmbViFd+H+GGtrKMwhHYI4zs9/6PQQxE1sUy6dBVkh/LAjgqOaUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"diff": "^4.0.2",
|
"diff": "^4.0.2",
|
||||||
@ -277,33 +277,33 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/kernel": {
|
"node_modules/@textlint/kernel": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.2.tgz",
|
||||||
"integrity": "sha512-imKBeglOKVwsVmrCDzIHf8uiYXtEy0VFyPPb7GYiLhA2pImh59QOtuoPiMT0h8ctV5Aa2konOQVV6jM+JJ9xkQ==",
|
"integrity": "sha512-rDa//HGBQh2BTcJvsgMDP1WRaVxwa57zeE6FPXUdaIA41GGKupQq9GXX8P0PcAVo9gxzOFnMrtbBw7mkQYu4hQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"@textlint/ast-tester": "^12.2.1",
|
"@textlint/ast-tester": "^12.2.2",
|
||||||
"@textlint/ast-traverse": "^12.2.1",
|
"@textlint/ast-traverse": "^12.2.2",
|
||||||
"@textlint/feature-flag": "^12.2.1",
|
"@textlint/feature-flag": "^12.2.2",
|
||||||
"@textlint/source-code-fixer": "^12.2.1",
|
"@textlint/source-code-fixer": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"@textlint/utils": "^12.2.1",
|
"@textlint/utils": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"structured-source": "^3.0.2"
|
"structured-source": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/linter-formatter": {
|
"node_modules/@textlint/linter-formatter": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.2.tgz",
|
||||||
"integrity": "sha512-xfVRM+DRrJzBswzrYpmNDJDfapYyogOGlwOXb9Omc7/MvipVreG0WvtgSgxchJ+1nPJwsOPES8PAgQYcPR20+Q==",
|
"integrity": "sha512-R4/n02lNPqiTT1WuxBe4Lh1vUZUME020y+cD8fDn++GR4QlEcWaWWaYNz5ZDtRJ6Li9CYnc6MC6uf2jnTcmFXw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@azu/format-text": "^1.0.1",
|
"@azu/format-text": "^1.0.1",
|
||||||
"@azu/style-format": "^1.0.0",
|
"@azu/style-format": "^1.0.0",
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"is-file": "^1.0.0",
|
"is-file": "^1.0.0",
|
||||||
@ -319,13 +319,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/markdown-to-ast": {
|
"node_modules/@textlint/markdown-to-ast": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.2.tgz",
|
||||||
"integrity": "sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==",
|
"integrity": "sha512-OP0cnGCzt8Bbfhn8fO/arQSHBhmuXB4maSXH8REJAtKRpTADWOrbuxAOaI9mjQ7EMTDiml02RZ9MaELQAWAsqQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
|
"mdast-util-gfm-autolink-literal": "^0.1.0",
|
||||||
"remark-footnotes": "^3.0.0",
|
"remark-footnotes": "^3.0.0",
|
||||||
"remark-frontmatter": "^3.0.0",
|
"remark-frontmatter": "^3.0.0",
|
||||||
"remark-gfm": "^1.0.0",
|
"remark-gfm": "^1.0.0",
|
||||||
@ -653,61 +654,61 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/module-interop": {
|
"node_modules/@textlint/module-interop": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.2.tgz",
|
||||||
"integrity": "sha512-/SixwKngWuTvVl9AArK4FEWGrNAwD7/ABvLCy/pdFprljnUa87P5JvSi7/v1PjpAXcnMQ2r04wDJjegs9oblBA==",
|
"integrity": "sha512-3OVZDJ8GCgQ3V+dm5btCwhZhJUEO5xR7jEMI6i9n1/gA6yePBM4b1qT1gwYUItthNRFqy6q5x4zTx9MKqBGVGg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/source-code-fixer": {
|
"node_modules/@textlint/source-code-fixer": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.2.tgz",
|
||||||
"integrity": "sha512-yNkWcTxCcoz24b64rGUVDr2MzQdv3I1o2o7HuphCmGlAQztVzMGvY/GNzqUWW42+k8S0zRq3Saxz1XoMUvR5UA==",
|
"integrity": "sha512-wk/8MmF3m1U9IAqGrvR0yehHsRGDfXuVAkXSahyRmafSwn88p8oS/iY6qDjECADVXJEnuRuxOcQ1GPlKM/eFOg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/text-to-ast": {
|
"node_modules/@textlint/text-to-ast": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.2.tgz",
|
||||||
"integrity": "sha512-NcuFa8iQglIMBQ1OaR1IYAIYJfBcTACVD0YtPGrdN0gkqC8TEfP5xIldiSxhkWiLPr3TQ4Mg7d6Ev5RH67n7pA==",
|
"integrity": "sha512-LgCqy1y4oQfDws6rqYSlQaYyiIGRQHcGMT+ukbpBkwEtzzh9urbr6NIeVnHhEuZUITl+pZCHyHeKF2/RlGsn6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/textlint-plugin-markdown": {
|
"node_modules/@textlint/textlint-plugin-markdown": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.2.tgz",
|
||||||
"integrity": "sha512-BAjkVPMO5fzf6n5M5SwgHNyTwByE86BmjaNpBDhKNcSBctUnfX7nLCvQY8mGMkvefHufyi3oWIqDcZoZQn0PYQ==",
|
"integrity": "sha512-ougYCuGavxCPwsFZZ/fCGzoaMxwvy2yM1siKa7Ra9chZHjxtj3y76m0QtJkboFcz/FEZV8tqh96T9Bq/4jD+nQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/markdown-to-ast": "^12.2.1"
|
"@textlint/markdown-to-ast": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/textlint-plugin-text": {
|
"node_modules/@textlint/textlint-plugin-text": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.2.tgz",
|
||||||
"integrity": "sha512-8Dt1Sn9AdqvweVxCLvlj1IC+pDxPRpdgERY6FzD6kLNpMAyl7luVWtpql19CvTYlxhPUHRxsETDBkRCQFClXsw==",
|
"integrity": "sha512-0HLOr9kQRXKqEcZvIaNAnOhixNfTSpveOHBuhHepByDXkXcUrb+BJdxZzhtgVu4twBAR3qJ3KYhDE8XPHc9iDg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/text-to-ast": "^12.2.1"
|
"@textlint/text-to-ast": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/types": {
|
"node_modules/@textlint/types": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.2.tgz",
|
||||||
"integrity": "sha512-nOQ3udAz9ulDZgETFY3vr3R+ubL2cevPLA3GmDs29ErvIHfK3pD+PpyO/OsS7HZKXolmpuMonVA9+J9Jybf3/Q==",
|
"integrity": "sha512-fmKH9w8O3XOvIvf3cPNI7PWdJScRIiJYJ5VsoIMp/o41Hlkt5m//MObfAPYpQ/3nuXhzlB05kfRUxyj/NvcPAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@textlint/utils": {
|
"node_modules/@textlint/utils": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.2.tgz",
|
||||||
"integrity": "sha512-e4jDM6bMZddFi48e5CzbvnG9ombeK2ZkjLnCaSWalJI3NTlCDm/ZDqfaqac/YPFbzoRQMqNkaoTW/9GZVjr6Hg==",
|
"integrity": "sha512-74p3VWj5KlmXs+gFRJALEuUsyt/Sz4t91KQ//LAX1zNTY/aK0nk8LxipUcDZeBHArn3Gh5nf3SwlTgUZ7jvNrQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/concat-stream": {
|
"node_modules/@types/concat-stream": {
|
||||||
@ -1443,9 +1444,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/get-intrinsic": {
|
"node_modules/get-intrinsic": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
|
||||||
"integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
|
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"function-bind": "^1.1.1",
|
"function-bind": "^1.1.1",
|
||||||
@ -5291,22 +5292,22 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/textlint": {
|
"node_modules/textlint": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.2.tgz",
|
||||||
"integrity": "sha512-e6xKNLbTt10KbnG0x3eVE7l8A7uOC9bj0Hc8cWk6VoLffjrdw4o8kJjWVIspNzfb0kUEs2dBKgXZo0ob4tMWAg==",
|
"integrity": "sha512-+xORGVnAceaP3+77vGuALOtnNNtexh8VK9ssAK2r3vAr0iMApSMyvGaXousbsfLiwK5L/X0X/78yJDvXwGQPjA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"@textlint/ast-traverse": "^12.2.1",
|
"@textlint/ast-traverse": "^12.2.2",
|
||||||
"@textlint/feature-flag": "^12.2.1",
|
"@textlint/feature-flag": "^12.2.2",
|
||||||
"@textlint/fixer-formatter": "^12.2.1",
|
"@textlint/fixer-formatter": "^12.2.2",
|
||||||
"@textlint/kernel": "^12.2.1",
|
"@textlint/kernel": "^12.2.2",
|
||||||
"@textlint/linter-formatter": "^12.2.1",
|
"@textlint/linter-formatter": "^12.2.2",
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/textlint-plugin-markdown": "^12.2.1",
|
"@textlint/textlint-plugin-markdown": "^12.2.2",
|
||||||
"@textlint/textlint-plugin-text": "^12.2.1",
|
"@textlint/textlint-plugin-text": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"@textlint/utils": "^12.2.1",
|
"@textlint/utils": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"file-entry-cache": "^5.0.1",
|
"file-entry-cache": "^5.0.1",
|
||||||
@ -6377,44 +6378,44 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/ast-node-types": {
|
"@textlint/ast-node-types": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.2.2.tgz",
|
||||||
"integrity": "sha512-NXYza6aG1+LdZ4g83gjRhDht+gdrTjJYkdcQhpvzNCtTar/sVpaykkauRcAKLhkIWrQpfb311pfMlU6qNDW76Q==",
|
"integrity": "sha512-VQAXUSGdmEajHXrMxeM9ZTS8UBJSVB0ghJFHpFfqYKlcDsjIqClSmTprY6521HoCoSLoUIGBxTC3jQyUMJFIWw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/ast-tester": {
|
"@textlint/ast-tester": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.2.2.tgz",
|
||||||
"integrity": "sha512-QGg7wxFLpsEAb7uxYPAO6F/QxDoX50wQ8aQ378RbpcQK57J9r9TQfV5Sieuta5dJORUrrMIuIrP4qU7P+1YyUw==",
|
"integrity": "sha512-l5VP2LG+cFCjVvBR3uRrXBeoElKLic2rG+tTQUsH/rywh3TeeDKsHZBk1gGz8kAHVoeEuuH7lx0Wu8AjP4AqGw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/ast-traverse": {
|
"@textlint/ast-traverse": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.2.2.tgz",
|
||||||
"integrity": "sha512-uwppnDZRmRhH8R4WrkKAvwAbKcYux2yG/XqKlADuFd2T4hSMTlZOBLxDvXohLKY617HHM32/G99HJlmFFvP4GA==",
|
"integrity": "sha512-ROd6W9P76DFA9hv7wCf1+Dc6aehLcsd0/3qKerQN/Luc3B2ek+/qJbGgWeAEsSBKl9LVLJhTBydmdgOAHrVjwA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/feature-flag": {
|
"@textlint/feature-flag": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.2.2.tgz",
|
||||||
"integrity": "sha512-Vwn1VKaqNvhMteXNdvk+5duGzlG0MwSjkufU3AVaBQsS4SH4dchSvULpKc+r4BOTSzybNappN0APEcMjOx0Lxg==",
|
"integrity": "sha512-L0v/ZjxmdzRXygja1WiXBjA2ZczvU3cG6qkwME4JGKwUsbEa9UzpwD8i3yBoO7ISkjkMpPM5BYD3AtJgQpCuEg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/fixer-formatter": {
|
"@textlint/fixer-formatter": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.2.2.tgz",
|
||||||
"integrity": "sha512-Y4FT2zVyYCxZCJ19tdfhBKr/FtCDP03iW+gfF6zHAjQaNPEGUU7ZfVUBJVVYBWOuHT/Zk22kcJZVFSINacPybQ==",
|
"integrity": "sha512-uKJScqlJvIP9ttVxSq4632kYUjeEhsqc1mLmbViFd+H+GGtrKMwhHYI4zs9/6PQQxE1sUy6dBVkh/LAjgqOaUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"diff": "^4.0.2",
|
"diff": "^4.0.2",
|
||||||
@ -6426,33 +6427,33 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/kernel": {
|
"@textlint/kernel": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.2.2.tgz",
|
||||||
"integrity": "sha512-imKBeglOKVwsVmrCDzIHf8uiYXtEy0VFyPPb7GYiLhA2pImh59QOtuoPiMT0h8ctV5Aa2konOQVV6jM+JJ9xkQ==",
|
"integrity": "sha512-rDa//HGBQh2BTcJvsgMDP1WRaVxwa57zeE6FPXUdaIA41GGKupQq9GXX8P0PcAVo9gxzOFnMrtbBw7mkQYu4hQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"@textlint/ast-tester": "^12.2.1",
|
"@textlint/ast-tester": "^12.2.2",
|
||||||
"@textlint/ast-traverse": "^12.2.1",
|
"@textlint/ast-traverse": "^12.2.2",
|
||||||
"@textlint/feature-flag": "^12.2.1",
|
"@textlint/feature-flag": "^12.2.2",
|
||||||
"@textlint/source-code-fixer": "^12.2.1",
|
"@textlint/source-code-fixer": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"@textlint/utils": "^12.2.1",
|
"@textlint/utils": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"structured-source": "^3.0.2"
|
"structured-source": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/linter-formatter": {
|
"@textlint/linter-formatter": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.2.2.tgz",
|
||||||
"integrity": "sha512-xfVRM+DRrJzBswzrYpmNDJDfapYyogOGlwOXb9Omc7/MvipVreG0WvtgSgxchJ+1nPJwsOPES8PAgQYcPR20+Q==",
|
"integrity": "sha512-R4/n02lNPqiTT1WuxBe4Lh1vUZUME020y+cD8fDn++GR4QlEcWaWWaYNz5ZDtRJ6Li9CYnc6MC6uf2jnTcmFXw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@azu/format-text": "^1.0.1",
|
"@azu/format-text": "^1.0.1",
|
||||||
"@azu/style-format": "^1.0.0",
|
"@azu/style-format": "^1.0.0",
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"is-file": "^1.0.0",
|
"is-file": "^1.0.0",
|
||||||
@ -6468,13 +6469,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/markdown-to-ast": {
|
"@textlint/markdown-to-ast": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.2.2.tgz",
|
||||||
"integrity": "sha512-p+LlVcrgHnSNEWWflYU412uu+v4Cejs6hmI4SgZCheNg4u7Ik78aKgpe4jT5BhjLSBZ/KP6IrJxtCUOoJIUWmQ==",
|
"integrity": "sha512-OP0cnGCzt8Bbfhn8fO/arQSHBhmuXB4maSXH8REJAtKRpTADWOrbuxAOaI9mjQ7EMTDiml02RZ9MaELQAWAsqQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
|
"mdast-util-gfm-autolink-literal": "^0.1.0",
|
||||||
"remark-footnotes": "^3.0.0",
|
"remark-footnotes": "^3.0.0",
|
||||||
"remark-frontmatter": "^3.0.0",
|
"remark-frontmatter": "^3.0.0",
|
||||||
"remark-gfm": "^1.0.0",
|
"remark-gfm": "^1.0.0",
|
||||||
@ -6690,61 +6692,61 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/module-interop": {
|
"@textlint/module-interop": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.2.2.tgz",
|
||||||
"integrity": "sha512-/SixwKngWuTvVl9AArK4FEWGrNAwD7/ABvLCy/pdFprljnUa87P5JvSi7/v1PjpAXcnMQ2r04wDJjegs9oblBA==",
|
"integrity": "sha512-3OVZDJ8GCgQ3V+dm5btCwhZhJUEO5xR7jEMI6i9n1/gA6yePBM4b1qT1gwYUItthNRFqy6q5x4zTx9MKqBGVGg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/source-code-fixer": {
|
"@textlint/source-code-fixer": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.2.2.tgz",
|
||||||
"integrity": "sha512-yNkWcTxCcoz24b64rGUVDr2MzQdv3I1o2o7HuphCmGlAQztVzMGvY/GNzqUWW42+k8S0zRq3Saxz1XoMUvR5UA==",
|
"integrity": "sha512-wk/8MmF3m1U9IAqGrvR0yehHsRGDfXuVAkXSahyRmafSwn88p8oS/iY6qDjECADVXJEnuRuxOcQ1GPlKM/eFOg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"debug": "^4.3.4"
|
"debug": "^4.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/text-to-ast": {
|
"@textlint/text-to-ast": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.2.2.tgz",
|
||||||
"integrity": "sha512-NcuFa8iQglIMBQ1OaR1IYAIYJfBcTACVD0YtPGrdN0gkqC8TEfP5xIldiSxhkWiLPr3TQ4Mg7d6Ev5RH67n7pA==",
|
"integrity": "sha512-LgCqy1y4oQfDws6rqYSlQaYyiIGRQHcGMT+ukbpBkwEtzzh9urbr6NIeVnHhEuZUITl+pZCHyHeKF2/RlGsn6Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/textlint-plugin-markdown": {
|
"@textlint/textlint-plugin-markdown": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.2.2.tgz",
|
||||||
"integrity": "sha512-BAjkVPMO5fzf6n5M5SwgHNyTwByE86BmjaNpBDhKNcSBctUnfX7nLCvQY8mGMkvefHufyi3oWIqDcZoZQn0PYQ==",
|
"integrity": "sha512-ougYCuGavxCPwsFZZ/fCGzoaMxwvy2yM1siKa7Ra9chZHjxtj3y76m0QtJkboFcz/FEZV8tqh96T9Bq/4jD+nQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/markdown-to-ast": "^12.2.1"
|
"@textlint/markdown-to-ast": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/textlint-plugin-text": {
|
"@textlint/textlint-plugin-text": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.2.2.tgz",
|
||||||
"integrity": "sha512-8Dt1Sn9AdqvweVxCLvlj1IC+pDxPRpdgERY6FzD6kLNpMAyl7luVWtpql19CvTYlxhPUHRxsETDBkRCQFClXsw==",
|
"integrity": "sha512-0HLOr9kQRXKqEcZvIaNAnOhixNfTSpveOHBuhHepByDXkXcUrb+BJdxZzhtgVu4twBAR3qJ3KYhDE8XPHc9iDg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/text-to-ast": "^12.2.1"
|
"@textlint/text-to-ast": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.2.2.tgz",
|
||||||
"integrity": "sha512-nOQ3udAz9ulDZgETFY3vr3R+ubL2cevPLA3GmDs29ErvIHfK3pD+PpyO/OsS7HZKXolmpuMonVA9+J9Jybf3/Q==",
|
"integrity": "sha512-fmKH9w8O3XOvIvf3cPNI7PWdJScRIiJYJ5VsoIMp/o41Hlkt5m//MObfAPYpQ/3nuXhzlB05kfRUxyj/NvcPAQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1"
|
"@textlint/ast-node-types": "^12.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/utils": {
|
"@textlint/utils": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.2.2.tgz",
|
||||||
"integrity": "sha512-e4jDM6bMZddFi48e5CzbvnG9ombeK2ZkjLnCaSWalJI3NTlCDm/ZDqfaqac/YPFbzoRQMqNkaoTW/9GZVjr6Hg==",
|
"integrity": "sha512-74p3VWj5KlmXs+gFRJALEuUsyt/Sz4t91KQ//LAX1zNTY/aK0nk8LxipUcDZeBHArn3Gh5nf3SwlTgUZ7jvNrQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/concat-stream": {
|
"@types/concat-stream": {
|
||||||
@ -7320,9 +7322,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"get-intrinsic": {
|
"get-intrinsic": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
|
||||||
"integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
|
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"function-bind": "^1.1.1",
|
"function-bind": "^1.1.1",
|
||||||
@ -9990,22 +9992,22 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"textlint": {
|
"textlint": {
|
||||||
"version": "12.2.1",
|
"version": "12.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.2.2.tgz",
|
||||||
"integrity": "sha512-e6xKNLbTt10KbnG0x3eVE7l8A7uOC9bj0Hc8cWk6VoLffjrdw4o8kJjWVIspNzfb0kUEs2dBKgXZo0ob4tMWAg==",
|
"integrity": "sha512-+xORGVnAceaP3+77vGuALOtnNNtexh8VK9ssAK2r3vAr0iMApSMyvGaXousbsfLiwK5L/X0X/78yJDvXwGQPjA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^12.2.1",
|
"@textlint/ast-node-types": "^12.2.2",
|
||||||
"@textlint/ast-traverse": "^12.2.1",
|
"@textlint/ast-traverse": "^12.2.2",
|
||||||
"@textlint/feature-flag": "^12.2.1",
|
"@textlint/feature-flag": "^12.2.2",
|
||||||
"@textlint/fixer-formatter": "^12.2.1",
|
"@textlint/fixer-formatter": "^12.2.2",
|
||||||
"@textlint/kernel": "^12.2.1",
|
"@textlint/kernel": "^12.2.2",
|
||||||
"@textlint/linter-formatter": "^12.2.1",
|
"@textlint/linter-formatter": "^12.2.2",
|
||||||
"@textlint/module-interop": "^12.2.1",
|
"@textlint/module-interop": "^12.2.2",
|
||||||
"@textlint/textlint-plugin-markdown": "^12.2.1",
|
"@textlint/textlint-plugin-markdown": "^12.2.2",
|
||||||
"@textlint/textlint-plugin-text": "^12.2.1",
|
"@textlint/textlint-plugin-text": "^12.2.2",
|
||||||
"@textlint/types": "^12.2.1",
|
"@textlint/types": "^12.2.2",
|
||||||
"@textlint/utils": "^12.2.1",
|
"@textlint/utils": "^12.2.2",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"file-entry-cache": "^5.0.1",
|
"file-entry-cache": "^5.0.1",
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"remark-lint-fenced-code-flag": "^3.1.1",
|
"remark-lint-fenced-code-flag": "^3.1.1",
|
||||||
"remark-lint-no-shell-dollars": "^3.1.1",
|
"remark-lint-no-shell-dollars": "^3.1.1",
|
||||||
"remark-stringify": "^10.0.2",
|
"remark-stringify": "^10.0.2",
|
||||||
"textlint": "^12.2.1",
|
"textlint": "^12.2.2",
|
||||||
"textlint-filter-rule-comments": "^1.2.2",
|
"textlint-filter-rule-comments": "^1.2.2",
|
||||||
"textlint-rule-common-misspellings": "^1.0.1",
|
"textlint-rule-common-misspellings": "^1.0.1",
|
||||||
"textlint-rule-terminology": "^3.0.3"
|
"textlint-rule-terminology": "^3.0.3"
|
||||||
|
@ -558,7 +558,7 @@ automation:
|
|||||||
|
|
||||||
{% endraw %}
|
{% 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:
|
Although the actual amount of light depends on weather, topography and land cover, they are defined as:
|
||||||
|
|
||||||
|
@ -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 7 Pro (700 series)
|
||||||
- Z-Wave.Me Razberry 2 (500 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'>
|
<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.
|
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.
|
||||||
|
@ -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
|
3. Update Home Assistant core to the latest beta version
|
||||||
|
|
||||||
```bash
|
```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 %}
|
{% endtabbed_block %}
|
||||||
|
|
||||||
{% elsif page.installation == "container" %}
|
{% elsif page.installation == "container" %}
|
||||||
|
@ -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
|
3. Update Home Assistant core to the latest dev version
|
||||||
|
|
||||||
```bash
|
```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" %}
|
{% elsif page.installation == "container" %}
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -2,14 +2,22 @@
|
|||||||
|
|
||||||
{% assign current_version = site.current_major_version | append: "." | append: site.current_minor_version | append: "." | append: site.current_patch_version %}
|
{% 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.
|
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" %}
|
{% 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
|
```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" %}
|
{% elsif page.installation == "container" %}
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -29,9 +29,11 @@ To update Home Assistant Core when you run Home Assistant {{ page.installation_n
|
|||||||
content: |
|
content: |
|
||||||
|
|
||||||
```bash
|
```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 %}
|
{% endtabbed_block %}
|
||||||
|
|
||||||
{% elsif page.installation == "container" %}
|
{% elsif page.installation == "container" %}
|
||||||
|
@ -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 %}
|
|
@ -51,7 +51,7 @@ If you change the configuration you have to restart the server. To do that you h
|
|||||||
content: |
|
content: |
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose restart
|
docker compose restart
|
||||||
```
|
```
|
||||||
|
|
||||||
{% endtabbed_block %}
|
{% endtabbed_block %}
|
||||||
@ -59,19 +59,19 @@ If you change the configuration you have to restart the server. To do that you h
|
|||||||
### Docker Compose
|
### Docker Compose
|
||||||
|
|
||||||
<div class="note tip">
|
<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>
|
</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 %}
|
{% include installation/container/compose.md %}
|
||||||
|
|
||||||
Start it by running:
|
Start it by running:
|
||||||
|
|
||||||
```bash
|
```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.
|
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.
|
||||||
|
@ -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 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>
|
<script src="{{ '/javascripts/prism.js' | cache_buster }}" type="text/javascript" defer></script>
|
||||||
|
@ -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.
|
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
|
## Configuration
|
||||||
|
|
||||||
To enable the Bayesian sensor, add the following lines to your `configuration.yaml`:
|
To enable the Bayesian sensor, add the following lines to your `configuration.yaml`:
|
||||||
@ -37,12 +54,15 @@ binary_sensor:
|
|||||||
{% configuration %}
|
{% configuration %}
|
||||||
prior:
|
prior:
|
||||||
description: >
|
description: >
|
||||||
The prior probability of the event. At any point in time
|
The prior probability of the event (0 to 1). At any point in time
|
||||||
(ignoring all external influences) how likely is this event to occur?
|
(ignoring all external influences) how likely is this event to be occurring?
|
||||||
required: true
|
required: true
|
||||||
type: float
|
type: float
|
||||||
probability_threshold:
|
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
|
required: false
|
||||||
type: float
|
type: float
|
||||||
default: 0.5
|
default: 0.5
|
||||||
@ -52,7 +72,7 @@ name:
|
|||||||
type: string
|
type: string
|
||||||
default: Bayesian Binary Sensor
|
default: Bayesian Binary Sensor
|
||||||
observations:
|
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
|
required: true
|
||||||
type: list
|
type: list
|
||||||
keys:
|
keys:
|
||||||
@ -67,23 +87,23 @@ observations:
|
|||||||
description: Name of the entity to monitor. Required for `state` and `numeric_state`.
|
description: Name of the entity to monitor. Required for `state` and `numeric_state`.
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
to_state:
|
||||||
|
description: The entity state that defines the observation. Required (for `state`).
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
value_template:
|
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
|
required: false
|
||||||
type: template
|
type: template
|
||||||
prob_given_true:
|
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
|
required: true
|
||||||
type: float
|
type: float
|
||||||
prob_given_false:
|
prob_given_false:
|
||||||
description: The probability of the observation occurring, given the event is `false` can be set as well.
|
description: Assuming the bayesian binary_sensor is `false` the probability of this entity state is occurring.
|
||||||
required: false
|
required: true
|
||||||
type: float
|
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 %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
## Full examples
|
## Full examples
|
||||||
@ -95,27 +115,33 @@ The following is an example for the `state` observation platform.
|
|||||||
binary_sensor:
|
binary_sensor:
|
||||||
name: "in_bed"
|
name: "in_bed"
|
||||||
platform: "bayesian"
|
platform: "bayesian"
|
||||||
prior: 0.25
|
prior: 0.25 # I spend 6 hours a day in bed 6hr/24hr is 0.25
|
||||||
probability_threshold: 0.95
|
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:
|
observations:
|
||||||
- platform: "state"
|
- platform: "state"
|
||||||
entity_id: "sensor.living_room_motion"
|
entity_id: "sensor.living_room_motion"
|
||||||
prob_given_true: 0.4
|
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
|
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"
|
to_state: "off"
|
||||||
- platform: "state"
|
- platform: "state"
|
||||||
entity_id: "sensor.basement_motion"
|
entity_id: "sensor.basement_motion"
|
||||||
prob_given_true: 0.5
|
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.4
|
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"
|
to_state: "off"
|
||||||
- platform: "state"
|
- platform: "state"
|
||||||
entity_id: "sensor.bedroom_motion"
|
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"
|
to_state: "on"
|
||||||
- platform: "state"
|
- platform: "state"
|
||||||
entity_id: "sun.sun"
|
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"
|
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,
|
Next up an example which targets the `numeric_state` observation platform,
|
||||||
@ -132,10 +158,11 @@ binary_sensor:
|
|||||||
- platform: "numeric_state"
|
- platform: "numeric_state"
|
||||||
entity_id: "sensor.outside_air_temperature_fahrenheit"
|
entity_id: "sensor.outside_air_temperature_fahrenheit"
|
||||||
prob_given_true: 0.95
|
prob_given_true: 0.95
|
||||||
|
prob_given_false: 0.05
|
||||||
below: 50
|
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 %}
|
{% raw %}
|
||||||
|
|
||||||
@ -150,7 +177,8 @@ binary_sensor:
|
|||||||
- platform: template
|
- platform: template
|
||||||
value_template: >
|
value_template: >
|
||||||
{{is_state('device_tracker.paulus','not_home') and ((as_timestamp(now()) - as_timestamp(states.device_tracker.paulus.last_changed)) > 300)}}
|
{{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 %}
|
{% endraw %}
|
||||||
|
@ -151,7 +151,7 @@ entity_category:
|
|||||||
type: string
|
type: string
|
||||||
default: None
|
default: None
|
||||||
expire_after:
|
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
|
required: false
|
||||||
type: integer
|
type: integer
|
||||||
force_update:
|
force_update:
|
||||||
|
@ -28,16 +28,23 @@ While this integration is part of [`default_config:`](/integrations/default_conf
|
|||||||
bluetooth:
|
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 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 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.
|
- 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 %}
|
{% 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 %}
|
{% 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 %}
|
{% 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
|
### 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.
|
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.
|
||||||
- Use a USB3 extension cable with proper shielding and ferrite clamps.
|
|
||||||
- Use a (good quality) external Bluetooth adapter with an antenna.
|
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.
|
||||||
|
@ -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.
|
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:
|
You might need some additional system packages to compile the Python CalDAV library. On a Debian based system, install them by:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
|
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{% enddetails %}
|
||||||
|
|
||||||
## Basic Setup
|
## Basic Setup
|
||||||
|
|
||||||
To integrate a WebDAV calendar in Home Assistant, add the following section to your `configuration.yaml` file:
|
To integrate a WebDAV calendar in Home Assistant, add the following section to your `configuration.yaml` file:
|
||||||
|
@ -42,6 +42,7 @@ These devices have been sold under many brands, including:
|
|||||||
- ILC
|
- ILC
|
||||||
- LEDBlue
|
- LEDBlue
|
||||||
- LED BLE
|
- LED BLE
|
||||||
|
- Magic Blue
|
||||||
- MCWOFI
|
- MCWOFI
|
||||||
- PHOPOLLO
|
- PHOPOLLO
|
||||||
- RESHAKE
|
- RESHAKE
|
||||||
|
@ -159,5 +159,6 @@ The list with all known valid keys can be found [here](https://github.com/floria
|
|||||||
- TX-P42VT30E
|
- TX-P42VT30E
|
||||||
- TX-P50GT30Y
|
- TX-P50GT30Y
|
||||||
- TX-P50GT60E
|
- 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).
|
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).
|
||||||
|
@ -143,7 +143,7 @@ entity_category:
|
|||||||
type: string
|
type: string
|
||||||
default: None
|
default: None
|
||||||
expire_after:
|
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
|
required: false
|
||||||
type: integer
|
type: integer
|
||||||
default: 0
|
default: 0
|
||||||
|
@ -59,7 +59,7 @@ Switch entities are created for each Smappee Switch and Smappee Comfort Plug.
|
|||||||
|
|
||||||
## Cloud API configuration
|
## 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).
|
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
|
```yaml
|
||||||
|
@ -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
|
### 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 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)
|
- [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)(
|
- [Huawei E3372](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))
|
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)
|
- [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)
|
- [Huawei E3272](https://www.amazon.com/Huawei-E3272s-506-Unlocked-Americas-Europe/dp/B00HBL51OQ)
|
||||||
- ZTE K3565-Z
|
- ZTE K3565-Z
|
||||||
|
|
||||||
### List of modems known to NOT work
|
### List of modems known to NOT work
|
||||||
|
|
||||||
- No known modems
|
- Huawei E3372h-320
|
||||||
|
|
||||||
### List of modems that may work
|
### List of modems that may work
|
||||||
|
|
||||||
|
@ -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_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_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`.
|
| `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_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 oldest and newest measurement is divided by seconds between them.
|
| `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 oldest and newest measurement.
|
| `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`.
|
| `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_newest` | The timestamp of the newest measurement.
|
||||||
| `datetime_oldest` | The timestamp of the oldest measurement.
|
| `datetime_oldest` | The timestamp of the oldest measurement.
|
||||||
|
@ -25,7 +25,7 @@ ha_platforms:
|
|||||||
ha_integration_type: integration
|
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 %}
|
{% 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.
|
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 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.
|
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.
|
||||||
|
@ -22,7 +22,7 @@ You can also click the following button to be redirected to the Helpers page of
|
|||||||
|
|
||||||
{% my helpers badge %}
|
{% 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:
|
Timers can also be configured via configuration.yaml:
|
||||||
To add a timer to your installation, add the following to your `configuration.yaml` file:
|
To add a timer to your installation, add the following to your `configuration.yaml` 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.
|
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.
|
Alternatively, call the `homeassistant.update_entity` service to force the integration to update the lock state.
|
||||||
|
|
||||||
## Door Sensors
|
## Door Sensors
|
||||||
|
@ -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.
|
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 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 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.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**Option 4: Run the Z-Wave JS server yourself**
|
**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'>
|
<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.
|
**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.
|
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).
|
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
|
## 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?
|
#### 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)
|
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 %}
|
{% 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.
|
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.
|
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.
|
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.
|
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.
|
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 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.
|
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 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.
|
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
|
### 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.
|
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'>
|
<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.
|
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.
|
||||||
|
@ -12,7 +12,9 @@ categories:
|
|||||||
og_image: /images/blog/2022-05-matter-in-home-assistant-workshop-announcement/social.png
|
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)
|
## [The workshop instructions can be found here.](/matter-june-22)
|
||||||
|
|
||||||
|
@ -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.3 - September 13](#release-202293---september-13)
|
||||||
- [Release 2022.9.4 - September 14](#release-202294---september-14)
|
- [Release 2022.9.4 - September 14](#release-202294---september-14)
|
||||||
- [Release 2022.9.5 - September 18](#release-202295---september-18)
|
- [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)
|
- [Need help? Join the community](#need-help-join-the-community)
|
||||||
- [Breaking Changes](#breaking-changes)
|
- [Breaking Changes](#breaking-changes)
|
||||||
- [All changes](#all-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/
|
[yalexs_ble docs]: /integrations/yalexs_ble/
|
||||||
[zwave_js docs]: /integrations/zwave_js/
|
[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
|
## Need help? Join the community
|
||||||
|
|
||||||
Home Assistant has a great community of users who are all more than willing
|
Home Assistant has a great community of users who are all more than willing
|
||||||
|
@ -464,14 +464,15 @@ description: "The Home Assistant contributor license agreement (CLA) signature p
|
|||||||
"region": $("#region").val(),
|
"region": $("#region").val(),
|
||||||
"signing_for": $('input[name="signing_for"]:checked').val(),
|
"signing_for": $('input[name="signing_for"]:checked').val(),
|
||||||
"i_agree": $("#i_agree").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() != "") {
|
if ($("#company_name").val() != "") {
|
||||||
payload.company_name = $("#company_name").val();
|
payload.company_name = $("#company_name").val();
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "https://cla.home-assistant.io/sign",
|
url: "https://service-hub-bots.home-assistant.io/cla-sign",
|
||||||
data: JSON.stringify(payload),
|
data: JSON.stringify(payload),
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
}).done(function(data){
|
}).done(function(data){
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 126 KiB |
BIN
source/images/frontpage/state-of-the-open-home-2022.png
Normal file
BIN
source/images/frontpage/state-of-the-open-home-2022.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
@ -89,7 +89,15 @@ feedback: false
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="grid__item two-thirds lap-two-thirds palm-one-whole">
|
<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 -->
|
<!-- Home Assistant Yellow -->
|
||||||
<a
|
<a
|
||||||
|
@ -10,8 +10,41 @@ Without this check you will face an increased number of errors and performance i
|
|||||||
|
|
||||||
## The solution
|
## 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
|
```sh
|
||||||
busctl set-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager ConnectivityCheckEnabled b true
|
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.
|
||||||
|
26
source/more-info/unsupported/restart_policy.markdown
Normal file
26
source/more-info/unsupported/restart_policy.markdown
Normal 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.
|
Loading…
x
Reference in New Issue
Block a user