Merge branch 'current' into rc

This commit is contained in:
Franck Nijhof 2025-01-03 17:32:04 +01:00
commit 307a50a6fb
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
35 changed files with 712 additions and 417 deletions

View File

@ -24,7 +24,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '4.1.1'
gem 'nokogiri', '1.17.2'
gem 'nokogiri', '1.18.1'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -5,7 +5,7 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.2)
base64 (0.2.0)
bigdecimal (3.1.8)
bigdecimal (3.1.9)
chunky_png (1.4.0)
colorator (1.1.0)
commonmarker (0.23.11)
@ -26,8 +26,8 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
ffi (1.17.1-arm64-darwin)
ffi (1.17.1-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.29.2-arm64-darwin)
bigdecimal
@ -81,9 +81,9 @@ GEM
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
nokogiri (1.17.2-arm64-darwin)
nokogiri (1.18.1-arm64-darwin)
racc (~> 1.4)
nokogiri (1.17.2-x86_64-linux)
nokogiri (1.18.1-x86_64-linux-gnu)
racc (~> 1.4)
parallel (1.26.3)
parser (3.3.6.0)
@ -108,9 +108,9 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rbs (3.7.0)
rbs (3.8.1)
logger
regexp_parser (2.9.3)
regexp_parser (2.10.0)
rexml (3.4.0)
rouge (4.5.1)
rubocop (1.69.2)
@ -150,7 +150,7 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11708)
sorbet-runtime (0.5.11710)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@ -173,7 +173,7 @@ DEPENDENCIES
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.19.0)
nokogiri (= 1.17.2)
nokogiri (= 1.18.1)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.69.2)

506
package-lock.json generated
View File

@ -20,7 +20,7 @@
"remark-lint-prohibited-strings": "^4.0.0",
"remark-lint-unordered-list-marker-style": "^4.0.0",
"remark-stringify": "^11.0.0",
"textlint": "^14.4.0",
"textlint": "^14.4.2",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"
@ -295,6 +295,15 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/@keyv/serialize": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz",
"integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==",
"dev": true,
"dependencies": {
"buffer": "^6.0.3"
}
},
"node_modules/@npmcli/config": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.3.0.tgz",
@ -416,68 +425,68 @@
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz",
"integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.2.tgz",
"integrity": "sha512-w1MlGa9DsJgp2W+ifNZ57vIWDoRVRExy0rXek7/voxBmSpTo76zHq74ggwjOrmoZpX8ADkvDc0tUWWWyiUVskQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4"
"@textlint/ast-node-types": "^14.4.2",
"debug": "^4.4.0"
}
},
"node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/ast-traverse": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz",
"integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.2.tgz",
"integrity": "sha512-HQp1iatBiLn9Qg8wqN3WxYWoiHJnkcv+30MdVPe5d0CmnBBXXRqFO1eSUHUlYarGNc3LyE0GFEkS72D7lefyNg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/config-loader": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz",
"integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.2.tgz",
"integrity": "sha512-qaR38dkGURC5XED5wR8OnJtPrK9Or76Do1P11rvRGgVu0Tn3n6UYQclbh8em8xnWWMuvJUzbTUSg2XE1h1uu3A==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"@textlint/kernel": "^14.4.2",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"rc-config-loader": "^4.1.3"
}
},
"node_modules/@textlint/feature-flag": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz",
"integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.2.tgz",
"integrity": "sha512-jeK7FuaYVr+gqgvjZazYHLCA+0oJybXa26kgF7P0qJ4yWq9qoENnjZtHF1VCi40euIS60z+/VJ8SlQj3LfnaoQ==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz",
"integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.2.tgz",
"integrity": "sha512-zmpM3FXEFAQy6F35nGnsFUV7jIfcrJNBHuu/Vh5TgfvCw9n2h7+KwEzx34bEce4vBhmKTqebHKSzM+2PlZG3NA==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"debug": "^4.4.0",
"diff": "^5.2.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
@ -485,59 +494,59 @@
}
},
"node_modules/@textlint/kernel": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz",
"integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.2.tgz",
"integrity": "sha512-nwUpdOl/whw8Cq9ELYRatmxEUEGApzKRAFJQpdIB/Ex0gKG1S/ctzSYbqSBUZ/Xctnn93yBDgOngDFdgoHbfWg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-tester": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/source-code-fixer": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"@textlint/ast-node-types": "^14.4.2",
"@textlint/ast-tester": "^14.4.2",
"@textlint/ast-traverse": "^14.4.2",
"@textlint/feature-flag": "^14.4.2",
"@textlint/source-code-fixer": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"fast-equals": "^4.0.3",
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/linter-formatter": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz",
"integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.2.tgz",
"integrity": "sha512-gBd+DDFzymFCjv5vcoH23IbQujjib//lH5lvHz61ImtXzVI6SBBL0jnRjER52IFYRE0tll7VlMURvxWiAVlOzw==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/types": "^14.4.2",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"debug": "^4.4.0",
"js-yaml": "^3.14.1",
"lodash": "^4.17.21",
"pluralize": "^2.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"table": "^6.8.1",
"table": "^6.9.0",
"text-table": "^0.2.0"
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz",
"integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.2.tgz",
"integrity": "sha512-hj2xR9hz5/Tu7Hlrn6VORJgdAfUhAd5j6cBkEVpnKAU4LaERkNyVCgK/da2JHK2w84YHmaDjER4D6zUUkllwag==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"debug": "^4.3.4",
"@textlint/ast-node-types": "^14.4.2",
"debug": "^4.4.0",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"neotraverse": "^0.6.15",
"remark-footnotes": "^3.0.0",
@ -548,9 +557,9 @@
}
},
"node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/markdown-to-ast/node_modules/bail": {
@ -780,79 +789,79 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz",
"integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.2.tgz",
"integrity": "sha512-PQqUgLcTnCTJ8qpYxLP6p98VzTP/Ju8QIDwTWYRpH00KHdmH9cR1/9O+l6YaWsJSGDtSL2zkMKIQLezpvBZ4cw==",
"dev": true
},
"node_modules/@textlint/resolver": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz",
"integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.2.tgz",
"integrity": "sha512-P/tdGDpNvxyNGHtHGZJmvwina5bfE92OqiKk1rRJk/B6oIiDolJSPwtVBEJyAeG6N5vtsjqfVnVHnsWnS9/tgw==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz",
"integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.2.tgz",
"integrity": "sha512-8AFoRL0uQPiu7hlszM1jlido+PdL3/3Ddp8sz1XxOpFgnjuTKnlRLYjziaL8X4JCpXQjUy4Q9am8NI6M1Y18lw==",
"dev": true,
"dependencies": {
"@textlint/types": "^14.4.0",
"debug": "^4.3.4"
"@textlint/types": "^14.4.2",
"debug": "^4.4.0"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz",
"integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.2.tgz",
"integrity": "sha512-fLyNHMczXZOP/jkKqBbjntszJR0ytsdQOPg9E8fnnbcX6eBMw3q924+M/vkYno/9ArSnUMPbdfhKBc/lWTXvcQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz",
"integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.2.tgz",
"integrity": "sha512-qtUta0iHEn843Hzhq7VnYPRp5rsYLnaZC5fOGOMh8DIpUlnuNXI1ANs9TkL5LsgexyYyMuPtFbvwr7S4JNu6ig==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^14.4.0"
"@textlint/markdown-to-ast": "^14.4.2"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz",
"integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.2.tgz",
"integrity": "sha512-cg7J6qTgAsV7ms2fP2KpEBIaI+3GQAbQtjNTF4Zu5d8Kn07wNqFqZIpTnsKUC/b64Fn/ujo+HYse76nSU+5EZg==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^14.4.0"
"@textlint/text-to-ast": "^14.4.2"
}
},
"node_modules/@textlint/types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz",
"integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.2.tgz",
"integrity": "sha512-s2UbCeYY8TQNdSusPs0n+g57g6fwx8Vz6nDZLD7vIXMEW10zIwkQnQf9IpxDwvKnstBWYTJ24Kx9nzddpBS9oQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0"
"@textlint/ast-node-types": "^14.4.2"
}
},
"node_modules/@textlint/types/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/@textlint/utils": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz",
"integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.2.tgz",
"integrity": "sha512-bhns1Cws+4dERz6KGFVLLGf0vFK6r5LiKKeg7N3Hnh0QNbzy7TYO+HTfZsgcqBvZSJeAeowzKyDQ8nSsflPbJw==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -1044,6 +1053,26 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@ -1059,16 +1088,6 @@
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
@ -1081,12 +1100,46 @@
"node": ">=8"
}
},
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
"node_modules/cacheable": {
"version": "1.8.7",
"resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.7.tgz",
"integrity": "sha512-AbfG7dAuYNjYxFUtL1lAqmlWdxczCJ47w7cFjhGcnGnUdwSo6VgmSojfoW3tUI12HUkgTJ5kqj78yyq6TsFtlg==",
"dev": true,
"dependencies": {
"hookified": "^1.6.0",
"keyv": "^5.2.3"
}
},
"node_modules/ccount": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
@ -1242,12 +1295,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/concat-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
@ -1287,12 +1334,12 @@
}
},
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
@ -1443,15 +1490,12 @@
}
},
"node_modules/file-entry-cache": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
"integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
"version": "10.0.5",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz",
"integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==",
"dev": true,
"dependencies": {
"flat-cache": "^2.0.1"
},
"engines": {
"node": ">=4"
"flat-cache": "^6.1.5"
}
},
"node_modules/fill-range": {
@ -1479,23 +1523,20 @@
}
},
"node_modules/flat-cache": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
"integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
"version": "6.1.5",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz",
"integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==",
"dev": true,
"dependencies": {
"flatted": "^2.0.0",
"rimraf": "2.6.3",
"write": "1.0.3"
},
"engines": {
"node": ">=4"
"cacheable": "^1.8.7",
"flatted": "^3.3.2",
"hookified": "^1.6.0"
}
},
"node_modules/flatted": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
"integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
"integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
"dev": true
},
"node_modules/foreground-child": {
@ -1523,12 +1564,6 @@
"node": ">=0.4.x"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@ -1558,26 +1593,6 @@
"node": ">=0.12.0"
}
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@ -1617,12 +1632,38 @@
"node": ">=8"
}
},
"node_modules/hookified": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz",
"integrity": "sha512-se7cpwTA+iA/eY548Bu03JJqBiEZAqU2jnyKdj5B5qurtBg64CZGHTgqCv4Yh7NWu6FGI09W61MCq+NoPj9GXA==",
"dev": true
},
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"node_modules/ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@ -1642,16 +1683,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@ -1886,6 +1917,15 @@
"node": ">=6"
}
},
"node_modules/keyv": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz",
"integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==",
"dev": true,
"dependencies": {
"@keyv/serialize": "^1.0.2"
}
},
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@ -3588,18 +3628,6 @@
}
]
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
@ -3637,9 +3665,9 @@
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
"node_modules/neotraverse": {
@ -3696,15 +3724,6 @@
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
},
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@ -3810,15 +3829,6 @@
"node": ">=4"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@ -5730,18 +5740,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@ -6014,9 +6012,9 @@
}
},
"node_modules/table": {
"version": "6.8.2",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz",
"integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==",
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
"dev": true,
"dependencies": {
"ajv": "^8.0.1",
@ -6036,26 +6034,26 @@
"dev": true
},
"node_modules/textlint": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz",
"integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.2.tgz",
"integrity": "sha512-4bHQY0ndqMBrZyLKqkca3dq8d1psBd1Nb6CznPjEZSFQV5WMAs7l8qZTgFsCwbkhSpbDSAxSTvBF/WZlHT71WA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.4.0",
"@textlint/ast-traverse": "^14.4.0",
"@textlint/config-loader": "^14.4.0",
"@textlint/feature-flag": "^14.4.0",
"@textlint/fixer-formatter": "^14.4.0",
"@textlint/kernel": "^14.4.0",
"@textlint/linter-formatter": "^14.4.0",
"@textlint/module-interop": "^14.4.0",
"@textlint/resolver": "^14.4.0",
"@textlint/textlint-plugin-markdown": "^14.4.0",
"@textlint/textlint-plugin-text": "^14.4.0",
"@textlint/types": "^14.4.0",
"@textlint/utils": "^14.4.0",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"@textlint/ast-node-types": "^14.4.2",
"@textlint/ast-traverse": "^14.4.2",
"@textlint/config-loader": "^14.4.2",
"@textlint/feature-flag": "^14.4.2",
"@textlint/fixer-formatter": "^14.4.2",
"@textlint/kernel": "^14.4.2",
"@textlint/linter-formatter": "^14.4.2",
"@textlint/module-interop": "^14.4.2",
"@textlint/resolver": "^14.4.2",
"@textlint/textlint-plugin-markdown": "^14.4.2",
"@textlint/textlint-plugin-text": "^14.4.2",
"@textlint/types": "^14.4.2",
"@textlint/utils": "^14.4.2",
"debug": "^4.4.0",
"file-entry-cache": "^10.0.5",
"get-stdin": "^5.0.1",
"glob": "^10.4.5",
"md5": "^2.3.0",
@ -6178,9 +6176,9 @@
}
},
"node_modules/textlint/node_modules/@textlint/ast-node-types": {
"version": "14.4.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz",
"integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==",
"version": "14.4.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz",
"integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==",
"dev": true
},
"node_modules/textlint/node_modules/brace-expansion": {
@ -7307,24 +7305,6 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/write": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
"integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"dependencies": {
"mkdirp": "^0.5.1"
},
"engines": {
"node": ">=4"
}
},
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",

View File

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

View File

@ -156,6 +156,7 @@ Screenshot of a vertical stack card with 4 buttons and an entity selector.
The image shows a vertical stack card with 4 buttons arranged in a horizontal stack card and an entity selector. The buttons use the toggle action to run a script, for example, the Netflix script, which starts up the TV and opens Netflix. To learn how to create scripts, refer to [scripts](/docs/scripts/).
```yaml
type: vertical-stack
cards:
- entities:
- entity: input_select.living_room_scene
@ -201,5 +202,4 @@ cards:
action: more-info
show_name: true
show_icon: true
type: vertical-stack
```

View File

@ -101,7 +101,7 @@ Use "ha [command] --help" for more information about a command.
You can also access the {% term "Home Assistant Operating System" %} via a directly connected keyboard and monitor, the console.
#### Wiping the data disk wipe from the command line
#### Wiping the data disk from the command line
In {% term "Home Assistant Operating System" %}, the `ha os datadisk wipe` command wipes the data disk. The command deletes all user data as well as Home Assistant Core, Supervisor, and any installed add-ons.
@ -109,7 +109,12 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t
The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal.
Note, if you have a Home Assistant Yellow, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/).
Note, some systems have a reset button you can use to clear the data disk, instead of using the command line:
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above.
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Yellow](https://yellow.home-assistant.io/guides/factory-reset/).
- If you have a Home Assistant Green, there is a black hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Green](https://green.home-assistant.io/guides/reset/).
#### Listing all users from the command line

View File

@ -151,7 +151,7 @@ Next you need create a Lambda function.
- Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home)
**IMPORTANT - Alexa Skills are only supported in specific AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server from the list below ([reference](https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html#deploy)) based on your Amazon account's locale, not your physical location. **Alexa Lambda functions created in other regions will not work properly and may prevent account linking! For example, if your locale is set to English (US) and you live in California, you must use US East (N.Virginia), not US West (Oregon). While the setup process will complete with an incorrect region, the skill will not function, and there will be no clear error messages indicating the cause.**
- **US East (N.Virginia)** region for English (US) or English (CA) skills
- **US East (N.Virginia)** region for English (US), English (CA) or Portuguese (BR) skills
- **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills
- **US West (Oregon)** region for Japanese and English (AU) skills.
@ -256,7 +256,7 @@ Self signed certificates will not work, but you can use a free Let's Encrypt cer
{% endimportant %}
- `Client ID`:
- `https://pitangui.amazon.com/` if you are in US
- `https://pitangui.amazon.com/` if you are in US or BR
- `https://layla.amazon.com/` if you are in EU
- `https://alexa.amazon.co.jp/` if you are in JP and AU (not verified yet)
@ -323,7 +323,7 @@ alexa:
type: map
keys:
locale:
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`, `fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL` and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`,`fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL`, and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
required: false
type: string
default: en-US

View File

@ -71,7 +71,7 @@ A number of features are available through the media player entity:
## Limitations
Currently, some features of the Mozart platform such as:
Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features:
- Creating timers and alarms
- Retrieving detailed alarm and timer information
@ -85,8 +85,6 @@ And more advanced app-centric features such as:
- Adjusting specific sound settings
- Pairing remotes
These features are not available through the API. Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features.
## Actions
### play_media actions

View File

@ -15,14 +15,15 @@ related:
ha_quality_scale: legacy
---
Support for [Leviton Decora Wi-Fi](https://www.leviton.com/products/residential/automation-smart-home/decora-smart-all/decora-smart-with-wifi-technology) dimmers/switches via the MyLeviton API.
Support for [Leviton Decora Wi-Fi](https://leviton.com/products/residential/smart-home/smart-switches) dimmers/switches via the MyLeviton API.
Supported devices (tested):
- [DW6HD1-BZ](https://www.leviton.com/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
- [DW15P-1BW](https://www.leviton.com/products/dw15p-1bw) (Decora Smart Wi-Fi Plug-in Outlet)
- - [DW15S-1BZ](https://www.leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
- [DW15S-1BZ](https://www.leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
- [D215S-2RW](https://store.leviton.com/products/decora-smart-wi-fi-switch-2nd-gen-d215s-2rw) (Decora Smart Wi-Fi 15A Switch - 2nd Gen)
- [DN15S-1BW](https://leviton.com/products/dn15s-1bw) (Decora Smart No-Neutral Switch) via [MLWSB-1BW](https://leviton.com/products/mlwsb-1bw) (Decora Smart Wi-Fi Bridge for No-Neutral Switch and Dimmer)
To enable these lights, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}

View File

@ -47,3 +47,9 @@ data:
```
For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -17,7 +17,7 @@ api2: Google Sheets API
api2_link: https://console.cloud.google.com/apis/enableflow?apiid=sheets.googleapis.com
---
The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an actiion to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like.
The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an action to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like.
**Note**:
The integration currently only has access to that one document that is created during setup.

View File

@ -17,7 +17,7 @@ ha_codeowners:
- '@abmantis'
---
The IKEA IDÅSEN integration allows you to connect your IKEA Idåsen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.
The IKEA IDÅSEN {% term integration %} allows you to connect your [IKEA Idåsen](https://www.ikea.com/us/en/cat/idasen-system-47424/) motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.
{% tip %}
@ -47,3 +47,9 @@ This integration provides two buttons to connect and disconnect to/from the desk
Height:
description: The current height of the desk, in meters.
{% endconfiguration_basic %}
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -74,7 +74,7 @@ lock:
required: false
type: template
default: None
lock:
lock:
description: Defines an action to run when the lock is locked.
required: true
type: action

View File

@ -35,12 +35,17 @@ sensor:
- Elizabeth line
- Hammersmith & City
- Jubilee
- London Overground
- Metropolitan
- Northern
- Piccadilly
- Victoria
- Waterloo & City
- Liberty
- Lioness
- Mildmay
- Suffragette
- Weaver
- Windrush
```
{% configuration %}

View File

@ -22,7 +22,10 @@ The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver no
### Setup
Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application.
If you want to grant only required accesses, uncheck all checkboxes then check only **read:accounts** and **write:statuses**.
Check the following scopes **read:accounts**, **write:statuses** and **write:media**.
Select **Submit** to create the application and generate the key, secret, and token required for the integration.
{% include integrations/config_flow.md %}

View File

@ -3,6 +3,7 @@ title: Monzo
description: Instructions on how to integrate Monzo integration into Home Assistant.
ha_category:
- Sensor
- Finance
ha_release: 2024.6
ha_iot_class: Cloud Polling
ha_codeowners:

View File

@ -40,4 +40,4 @@ relaxdeck:
volume_level: 0.60
```
This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://www.pimusicbox.com/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected.
This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://pimusicbox.github.io/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected.

View File

@ -133,7 +133,7 @@ Note: This action does not remove the [MQTT broker](#setting-up-a-broker) or its
Your first step to get MQTT and Home Assistant working is to choose a broker.
The easiest option is to install the official Mosquitto Broker add-on. You can choose to set up and configure this add-on automatically when you set up the MQTT integration. Home Assistant will automatically generate and assign a safe username and password, and no further attention is required. This also works if you have already set up this add-on yourself in advance.
You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/create-link/?redirect=supervisor_addon&addon=core_mosquitto).
You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/redirect/supervisor_addon/?addon=core_mosquitto).
{% important %}
When MQTT is set up with the official Mosquitto MQTT broker add-on, the broker's credentials are generated and kept secret. If the official Mosquitto MQTT broker needs to be re-installed, make sure you save a copy of the add-on user options, like the additional logins. After re-installing the add-on, the MQTT integration will automatically update the new password for the re-installed broker. It will then reconnect automatically.

View File

@ -57,7 +57,7 @@ If you choose to not use the recommended settings, you can configure the followi
{% configuration_basic %}
Model:
description: The GPT language model is used for text generation. You can find more details on the available models in the [OpenAI GPT-3.5 Turbo Documentation](https://platform.openai.com/docs/models/gpt-3-5-turbo), [OpenAI GPT-4 Turbo and GPT-4 Documentation](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4), or [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o".
description: The GPT language model is used for text generation. You can find more details on the available models in the [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o-mini".
Maximum Tokens to Return in Response:
description: The maximum number of words or "tokens" that the AI model should generate in its completion of the prompt. For more information, see the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction).
Temperature:

View File

@ -1,6 +1,6 @@
---
title: Overkiz
description: Instructions on how to integrate hubs whom use the Overkiz platform with Home Assistant.
description: Instructions on how to integrate hubs that use the Overkiz IoT platform with Home Assistant.
ha_category:
- Alarm
- Binary sensor
@ -49,39 +49,70 @@ ha_platforms:
ha_integration_type: hub
---
The Overkiz (by Somfy) integration platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API.
The Overkiz (by Somfy) IoT platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API.
## Supported hubs
## Supported hubs & devices
- Atlantic Cozytouch
- Bouygues Flexom
- Hitachi Hi Kumo
- Nexity Eugénie
- Rexel Energeasy
- Sauter Cozytouch
- Simu LiveIn2
- Somfy Connectivity Kit
- Somfy Connexoon IO _(local API available)_
- Somfy Connexoon RTS _(local API available)_
- Somfy TaHoma _(local API available)_
- Somfy TaHoma v2 _(local API available)_
- Somfy TaHoma Beecon _(local API available)_
- Somfy TaHoma Switch _(local API available)_
- Thermor Cozytouch
## Supported devices
- Ubiwizz
Over 6000 devices from 60 brands are compatible with the Overkiz platform. This integration will retrieve your devices and map them to the relevant Home Assistant platforms.
{% include integrations/config_flow.md %}
The Overkiz integration supports both the Overkiz cloud API and the local API (only supported by some Somfy hubs). For compatible Somfy hubs, you can connect locally, allowing device control without an internet connection. Start by selecting the server or app that you use to control your devices.
### Login to Overkiz (Cloud API)
{% configuration_basic %}
"Username":
description: "Username for your Overkiz cloud account (account you use in your IoT app)."
Password:
description: "Password for your Overkiz cloud account (account you use in your IoT app)."
{% endconfiguration_basic %}
### Login to Overkiz (Local API)
To use the local API, you will need to activate the [Somfy TaHoma Developer Mode](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode?tab=readme-ov-file#getting-started) via the Somfy website. Activating this mode will enable a local API on your TaHoma box. Your cloud credentials are required to negotiate a token with the cloud API to authenticate your calls to the local API. This is a one-time setup and the token will be stored in your Home Assistant configuration.
Scenarios and climate entities are **not** supported via the Somfy TaHoma Developer Mode.
{% configuration_basic %}
"Host":
description: "The hostname or IP address of your Overkiz hub. The hostname is your Gateway PIN + .local:8443 (e.g. 1234-4567-8912.local)."
"Username":
description: "Username for your Overkiz cloud account (account you use in your IoT app)."
Password:
description: "Password for your Overkiz cloud account (account you use in your IoT app)."
Verify SSL:
description: "Verify the SSL certificate of your hub. This option is available only when connecting via the hostname."
{% endconfiguration_basic %}
## Data updates
This integration retrieves data from Overkiz every 30 seconds to ensure timely updates. If you only have stateless devices (RTS protocol), the integration will poll for new data every hour to reduce unnecessary load on the Overkiz API.
## Known limitations
### Zigbee, Z-Wave, Hue, and Sonos devices not supported
Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant which are more stable and feature-rich.
Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant, which provide more frequent state updates and are more feature-rich.
### Stateless RTS covers
Covers that use the RTS protocol are stateless and do not report their state back to the hub. This means that Home Assistant will not know the state of the device after it has been controlled.
If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will allow you to keep track of the current state (open or closed) and use the cover in automations and scenes.
RTS covers do not report their state back to the hub, so Home Assistant cannot track their state after they are controlled. If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will help you track the current state (open or closed) and use the cover in automations and scenes.
```yaml
cover:
@ -114,18 +145,22 @@ During peak hours, it could happen that the Overkiz platform is unable to execut
The Overkiz API only supports 10 requests in its execution queue. If you try to command more devices at the same time, for example with a group, this will fail with `EXEC_QUEUE_FULL`. To work around this, you can create a scenario in the corresponding application and call that scenario instead after syncing it in the integration.
### Internet connectivity required
### Device support via the local API
This integration communicates via the cloud-based Overkiz API in most cases. Depending on your hub and devices, there are options which communicate over your local network.
Various sensors, scenarios, and climate entities are **not** supported via the Somfy TaHoma Developer Mode due to limitations of the local API. If your device functions with the Cloud API but not with the Local API, this is an inherent limitation of the Local API and cannot be resolved.
#### Local API via Somfy TaHoma Developer Mode
### Device support via HomeKit
The Somfy TaHoma v2, Somfy Connexoon and Somfy TaHoma Switch support the [Somfy TaHoma Developer Mode (local API)](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode). During setup, you can choose **Local API**. This allows you to use the local API in Home Assistant. Climate devices are not supported via the Somfy TaHoma Developer Mode.
If your hub (e.g. Somfy Connectivity Kit) supports HomeKit, a sensor named **HomeKit Setup Code** will be added to Home Assistant. To configure the [HomeKit Controller](/integrations/homekit_controller/) integration for local control, follow these steps:
#### Local API via HomeKit Controller
1. Locate the **HomeKit Setup Code** sensor in Home Assistant.
2. Retrieve the setup code value from the sensor.
3. Use this setup code to configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant.
If your hub (e.g. Somfy Connectivity Kit) supports HomeKit natively, your setup code will be added as a sensor in Home Assistant. Find your hub in Home Assistant and retrieve the value from the **HomeKit Setup Code** sensor. You can now configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant and benefit from local support. Only a [limited set of devices is supported](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf).
Please note that only a [limited set of devices is supported via HomeKit](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf).
#### Local API via Velux KLF200 hub
## Removing the integration
If you are only using Somfy IO-compatible devices, you could purchase a Velux KLF200 hub and use [the Velux integration](/integrations/velux/) which has a local API.
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}

View File

@ -1,6 +1,6 @@
---
title: Plugwise
description: Plugwise Smile platform integration.
description: Plugwise Gateway platform integration.
ha_category:
- Binary sensor
- Button
@ -30,56 +30,135 @@ ha_platforms:
ha_integration_type: hub
---
This enables [Plugwise](https://www.plugwise.com) integrations with a central Smile gateway to be integrated. This integration talks locally to your **Smile** interface, and you will need its password and IP address.
The platform supports [Anna](https://www.plugwise.com/en_US/products/anna), [Adam (zonecontrol)](https://www.plugwise.com/en_US/zonecontrol), [P1](https://www.plugwise.com/en_US/products/smile-p1) Smile products and the Stretch products (not in sale). See below list for more details.
[Plugwise](https://www.plugwise.com) provides smart home devices that allow you to monitor and control your climate, energy (including gas) consumption, and energy production. The energy information can be used for the [energy dashboard](/home-energy-management).
Platforms available - depending on your Smile and setup include:
- `climate` (for the stand-alone Anna, for Adam, a climate entity is shown for each zone containing devices like an Anna or another type of wired-thermostat, Jip or Lisa combined with one or more Tom/Floor devices)
- `binary_sensor` (for showing the status of e.g. domestic hot water heating or secondary heater)
- `button` (for the Adam and the non-legacy Anna and P1 gateways)
- `number` (for changing a boiler setpoint, a temperature offset)
- `sensor` (for all relevant products including the Smile P1)
- `select` (for changing a thermostat schedule, a regulation mode (Adam only))
- `switch` (for Plugs connected to Adam, or Circles and Stealths connected to a Stretch)
This integration supports one or multiple Plugwise Gateways connected to your network. You can connect to these gateways using your browser, the Plugwise App, or Home Assistant. There are 4 [supported](#supported-devices) types of gateways:
- Full zonecontrol using the [Adam](https://www.plugwise.com/en_US/zonecontrol) using [additional devices](#adam) such as zone thermostats, smart valves and smart-plugs.
- A stand-alone smart thermostat called [Anna](https://www.plugwise.com/en_US/products/anna).
- For power and gas-usage monitoring there is a device simply called the [P1](https://www.plugwise.com/en_US/products/smile-p1).
- Although no longer sold, there also is support for Stretch, a gateway to create network connectivity for their older power products.
## Pre-requisites
The Plugwise Smile(s) in your network will be automatically discovered and shown on the integrations dashboard. All you need is the Smile ID as its password, which is an 8-character string printed on the sticker on the bottom of your Smile. Repeat this for each individual Smile.
Plugwise gateways on your network are automatically discovered and displayed on the integrations dashboard. Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password. Repeat this process for each gateway.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: "The hostname or IP address of your Smile. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (&#9776;) -> **System** -> **Network**. If you are looking for a different device in the Plugwise App, on the main screen first select **Gateways** -> the Smile of your choice, and then follow the previous instruction. Normally, the Smile(s) are automatically discovered, and you don't have to provide the hostname or IP address."
description: "The hostname or IP address of your gateway. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (&#9776;) -> **System** -> **Network**. In the Plugwise App, to locate a specific device, select **Gateways** on the main screen, choose your desired gateway, and then follow the previous instructions. Normally, the gateway(s) are automatically discovered, and you don't have to provide the hostname or IP address."
Username:
description: "Username to log in to the Smile. This should be just `smile` - or `stretch` for a Stretch."
description: "Username to log in to the gateway. This should be 'smile' for most devices, or 'stretch' for a Stretch."
Password:
description: "This is the password (i.e. Smile ID) printed on the sticker on the back of your Smile (i.e. Adam, Smile-T, or P1) and should be 8 characters long."
description: "Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password."
{% endconfiguration_basic %}
### Further configuration
### Schedule Management
For a thermostat, the active schedule can be deactivated or reactivated via the climate card. Please note, that when no schedule is active, one must first be activated in the Plugwise App. Once that has been done, the Plugwise Integration can manage future operations.
1. **Initial Setup**: First, activate a schedule using the Plugwise App or browser.
2. **Control via Home Assistant**:
- Use the climate card to activate/deactivate schedules.
- 'Auto' mode indicates the schedule is active.
- 'Heat', 'Cool' or 'Heat_cool' modes signify the schedule is inactive.
3. **Changing Schedules**: Use the thermostat [select](#change-climate-schedule) entity.
Auto means the schedule is active, and Heat means it's not active. The active thermostat schedule can be changed via the connected thermostat select entity. Please note that only schedules with two or more schedule points will be shown as select options.
{% note %}
Only schedules with two or more schedule points will appear as options.
{% endnote %}
## Entities
## Supported functionality
This integration will show all Plugwise devices (like hardware devices, multi-thermostat climate-zones, and virtual switchgroups) present in your Plugwise configuration. In addition, you will see a Gateway device representing your central Plugwise gateway (i.e., the Smile Anna, Smile P1, Adam or Stretch).
This integration displays all Plugwise devices in your configuration, including hardware devices, multi-thermostat climate zones, and virtual switch groups. Additionally, a device representing your Plugwise gateway (e.g., Adam, Smile-T, or P1) will be visible.
For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your Smile will be shown as 'OpenTherm' or 'OnOff', depending on how the Smile communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) those will be shown as devices as well.
For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your gateway will be shown as 'OpenTherm' or 'OnOff', depending on how the gateway communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) or Aqara Smart Plugs, those will be shown as devices as well.
Under each device there will be entities shown like binary_sensors, sensors, etc. depending on the capabilities of the device: for instance centralized measurements such as 'power' for a P1, 'outdoor_temperature' on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as 'boiler_temperature' will be assigned to the OpenTherm/OnOff device.
Each device will list entities such as `binary sensors`, `sensors`, etc., depending on its capabilities: for instance, centralized measurements such as `power` for a P1, `outdoor_temperature` on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as `boiler_temperature` will be assigned to the OpenTherm/OnOff device.
### Climate entities
#### Binary sensors
Depending on your setup, one or more binary sensors will provide the state of your connected elements. Examples include:
- **Cooling** & **Heating**
- **Description**: Indicates if your system is actively cooling or heating.
- **DHW State**
- **Description**: Indicates active heating of domestic hot water.
- **Flame State**
- **Description**: If gas is being consumed by your heater, i.e., firing for space or DHW-heating.
#### Numbers
Modifying specific number-based settings allows you to fine-tune your setup.
- **Maximum boiler temperature setpoint**
- **Description**: Adjust the maximum temperature for secondary heater.
- **Domestic hot water setpoint**
- **Description**: Adjust the temperature for your domestic hot water.
- **Temperature offset**
- **Description**: Fine-tune the perceived temperature.
#### Sensors
A generous number of sensors is provided for your climate setup. Examples include:
- **Setpoint**
- **Description**: The setpoint for the current zone (Adam) or generic (Anna).
- **Indoor temperature**
- **Description**: For Anna, Lisa or Jip this will show the temperature measured at the specific thermostat.
- **Outdoor temperature**
- **Description**: The temperature your climate gateway retrieves online.
- **Outdoor air temperature**
- **Description**: The temperature reported by the sensor present in the outdoor unit of your HVAC system, such as a heat pump.
#### Selects
- **Thermostat schedule**
- **Description**: Select between available schedules, generic (Anna) or for the current zone (Adam).
- **Remark**: Please check the [further configuration](#further-configuration) for requirements on configuring schedules.
#### Switches
- **Cooling**
- **Description**: Toggle if cooling should be enabled.
- **DHW Comfort Mode**
- **Description**: Toggle comfort mode for domestic hot water.
### Power and gas entities
#### Sensors
A generous number of sensors is provided. Examples include:
- **Electricity consumed point**
- **Description**: Electricity (in Watt) consumed currently by a phase (P1) or a plug.
- **Gateways**: Adam, P1 or Stretch.
- **Gas Consumed Interval**
- **Description**: The gas consumed since the last interval.
- **Gateways**: P1.
- **P1 Net Electricity Point**
- **Description**: Your netto electricity use at this time, can be negative when producing energy, i.e. though solar panels.
- **Gateways**: P1.
- **P1 Electricity Produced off-peak cumulative**
- **Description**: The total produced electricity during off-peak.
- **Gateways**: P1.
#### Switches
- **Relay**
- **Description**: Switch a plug on or off
- **Gateways**: Adam, P1 or Stretch.
## Data updates
The interval which the integration fetches data from the Smile depends on the device:
The interval at which the integration fetches data from the gateway depends on the device-type.
- Power entities, such as the P1, will be refreshed every 10 seconds.
- Climate entities will be refreshed every 60 seconds.
- Stretch entities will be refreshed every 60 seconds.
|Device-type|Interval|
--- | ---
| Climate entities |60 seconds|
| Energy and gas entities |10 seconds|
| Stretch entities |60 seconds|
## Removing the integration
@ -236,33 +315,120 @@ script:
preset_mode: asleep
```
### Supported devices
## Supported devices
The current implementation of the Python module (Plugwise-Smile) includes:
### Adam
Adam (zone_control) with On/Off, OpenTherm, and Loria/Thermastage heating and cooling support:
A complete zone control system also known as [Adam HA](https://www.plugwise.com/en_US/zonecontrol), supporting:
- v3.x
- v2.3
- On/Off, OpenTherm heating and cooling support.
- Running firmwares v3.x or v2.3.
- Additional devices:
- Zone thermostats such as Lisa or Anna (see warning below on Anna),
- A temperature sensor, Jip,
- Valve controllers called Floor or Tom,
- An under-floor heating controller Koen (note: a Koen always comes with a Plug, which is the active part),
- Smart switches, either Plug or Aqara Smart Plug.
- Devices supported are Anna, Lisa, Jip, Floor, Tom, Plug, Aqara Smart Plug, and Koen (a Koen always comes with a Plug, the active part)
{% note %}
You can also use the Adam SA (Stand-alone, no Zigbee stick present) to make your regular OpenTherm thermostat smart.
{% endnote %}
Anna (thermostat) with OnOff, OpenTherm heating, and Elga and Loria/Thermastage with heating and cooling support:
### Anna
- v4.x
- v3.x
- v1.x
A [smart thermostat](https://www.plugwise.com/en_US/products/anna), supporting:
On the Elga, the cooling-mode can only be turned on, or off, via a switch present on the device, not via a toggle in the Plugwise App.
Please make sure to reload the Plugwise integration after the cooling-mode-switch is turned off after being on, or the other way around. This will ensure that the Plugwise integration is being adapted to the change in function of the Elga.
- On/Off, OpenTherm heating and cooling support.
- Running firmware v4.x, v3.x or v1.x.
Smile P1 (DSMR):
### P1 (DSMR)
- v4.x
- v3.x
- v2.x
A [P1](https://www.plugwise.com/en_US/products/smile-p1) smart meter monitor for the single- or multi-phase grid power connection to your home including gas usage monitoring. Running firmware v4.x, v3.x or v2.x.
Stretch (power switches):
### Stretch (end-of-sale)
For controlling and monitoring legacy power switches, such as the Circles or Stealths, with v3.x or v2.x Stretch firmware.
### Unsupported devices
#### Anna P1
A smart thermostat [combined](https://www.plugwise.com/en_US/products/anna-p1) with an energy monitor can transform the way you manage energy. If your solar setup generates surplus energy and you're charged for it, this combination ensures that excess solar power is redirected efficiently. Powering your heat pump for instance to make the most of renewable energy. Do you have a setup like this? Wed love to hear your experience!
#### Stick
Plugwise formerly sold power-based products comprised of a USB stick, as the controller, and smart plugs (amongst a few other items). This integration does not support the USB-stick. Reuse of the these products, such as Circles and Stealths using a Stretch or an Adam is supported. Work for USB support is in development by the community, but not ready to become a formal Home Assistant integration just yet.
- v3.x
- v2.x
## Troubleshooting
### Accessing the local device
If you need to configure the gateway directly, without using the Plugwise App, you can find the link to your device by:
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise gateway, select the one to configure.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, choose to open the configuration URL left of the {% icon "mdi:dots-vertical" %} icon.
5. A new window/tab will open, enter 'smile' (or 'stretch') as the username and the ID, from the sticker on the back, as the password.
6. Consult the manual or click the 'search' button on the [Plugwise Support](https://plugwise.com/support/) page for interactive help.
### Adjusting the update interval
Please note that the [default intervals](#data-updates) are considered best practice and according to how Plugwise normally updates their data. Updating too frequently may induce considerable load on your gateway(s) resulting in unexpected results or missing data.
{% include common-tasks/define_custom_polling.md %}
### Diagnostic data
If you need to create an issue to report a bug or want to inspect diagnostic data, use the below method to retrieve diagnostics:
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise gateway, select the gateway that is experiencing issues.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, select the {% icon "mdi:dots-vertical" %}.
- Then, select **Download diagnostics** and a JSON file will be downloaded.
5. You can inspect the downloaded file or, when requested, upload it to your issue report.
### Rebooting your gateway
For each gateway, there will be a reboot button available in your integration.
1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
2. If you have more than one Plugwise Smile, select the gateway that is experiencing issues.
3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name.
4. On the integration entry, look for the 'Reboot' button to press in the **Configuration** section.
## Known limitations
### Schedule configuration and pre-requisites
Creation, modification or deleting of climate schedules is not supported through this integration. We recommend using the Plugwise App or visit the local device to configure schedules. See [accessing the local device](#accessing-the-local-device) above on how to access the local device from Home Assistant.
To display your schedule as a valid `select` option for this integration, ensure that the schedule has a minimal of two schedule points.
### Anna connected to Adam
If you are using your Anna as part of your Adam zone control system, it becomes a zone thermostat, and cannot be configured as a smart thermostat. The integration will not discover your Anna or allow manual configuration.
### Anna with Elga
The cooling mode can only be toggled via a **physical switch** on the device (not through a toggle in the Plugwise App or using Home Assistant).
The change in cooling mode should be detected by Home Assistant. If not, please try to **reload** the Plugwise integration as indicated below and report your findings.
1. Create an issue including your [diagnostic data](#diagnostic-data).
2. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration.
3. On the "**Hubs**" page, use the {% icon "mdi:dots-vertical" %} icon next to your Anna and choose "**Reload**".
### Vacation preset
The `vacation` preset is only available on an Anna. Adam has a vacation-mode (called Action in the Plugwise App) that disables the active schedule and sets the vacation-preset for all zones.
Also, there's a pause-mode that disables the active schedule and sets the away-preset for all zones.
### Idling climate actions
You can only stop climate actions on an Adam, see [turn on / turn off](#turn-on--turn-off). An alternative could be to adjust your [preset mode](#set-preset-mode) to `no_frost` to stop any heating actions.

View File

@ -497,7 +497,7 @@ You can receive rich notifications on your phone when someone rings a Reolink do
- Turn on (outdoor) lights near the camera to improve image clarity at night once the camera detects a person, vehicle, or animal.
- Turn off notifications and recording when you get home (based on, e.g., geofencing) and turn it back on when you leave home.
When someone presses the doorbell, Play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- When someone presses the doorbell, play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- Pause a TV and show a notification badge on the TV when the doorbell is pressed (only when the TV is already on).
- Play the quick replay messages of a Reolink doorbell only when not home (geofencing)
- Wake up and start recording on other battery cameras nearby if one camera/motion sensor detects an event.

View File

@ -88,3 +88,9 @@ Use this credentials in dorita980 lib :)
```
Copy the password (everything between `=>` and `<=`, not including leading and trailing whitespace) into the Home Assistant password dialog.
## Troubleshooting
- **Integration wizard shows "Failed to connect" after submitting the password**: Before attempting a factory reset (which can be a cumbersome process), attempt submitting the password in the integration wizard while the Roomba is actively running (i.e. cleaning). Avoid opening the app to start a manual job to help with this. Instead, push the physical clean button on the device directly to start the manual job. This appears to resolve the issue on some models because they answer queries only while actively running.
If this still does not resolve the issue, factory reset the model.

View File

@ -39,7 +39,7 @@ scrape:
- resource: https://www.home-assistant.io
sensor:
- name: "Current version"
select: ".current-version h1"
select: ".release-date"
```
{% configuration %}
@ -178,8 +178,7 @@ scrape:
- resource: https://www.home-assistant.io
sensor:
- name: Release
select: ".current-version h1"
value_template: '{{ value.split(":")[1] }}'
select: ".release-date"
```
{% endraw %}

View File

@ -172,7 +172,7 @@ In this section you find some real-life examples of how to use this sensor.
### External IP address
You can find your external IP address using the service [JSON Test](https://www.jsontest.com/) at their [http://ip.jsontest.com/](http://ip.jsontest.com/) URL.
You can find your external IP address using the [ipify](https://www.ipify.org) service for both IPv4 and IPv6.
{% raw %}
@ -182,6 +182,11 @@ sensor:
name: "External IP"
resource: "https://api.ipify.org/?format=json"
value_template: "{{ value_json.ip }}"
- platform: rest
name: "External IPv6"
resource: "https://api6.ipify.org/?format=json"
value_template: "{{ value_json.ip }}"
```
{% endraw %}

View File

@ -109,7 +109,7 @@ The following example shows how the shell command response may be used in automa
```yaml
# Create a ToDo notification based on file contents
automation:
- alias: "run_set_ac"
- alias: "run_get_file_contents"
triggers:
- ...
actions:

View File

@ -22,7 +22,7 @@ The **Sky Remote** {% term integration %} lets you control a [Sky](https://www.s
## Supported models
This integration is intended to control all Sky satellite receiver boxes with a LAN port. It will not control Sky stream pucks.
This integration is intended to control Sky+ HD and Sky Q satellite receiver boxes with a LAN port. It will not control Sky stream pucks.
{% include integrations/config_flow.md %}

View File

@ -939,7 +939,7 @@ binary_sensor:
sensors:
sun_up:
friendly_name: "Sun is up"
value_template: {{ state_attr('sun.sun', 'elevation') > 0 }}
value_template: "{{ state_attr('sun.sun', 'elevation') > 0 }}"
```
{% endraw %}

View File

@ -21,19 +21,100 @@ ha_integration_type: integration
The `totalconnect` integration provides connectivity with Resideo Total Connect 2.0-enabled alarm systems.
The integration allows automations based on the state of the alarm system. For example: when the alarm is armed, turn on the outside light.
The integration can also arm or disarm the alarm panel. For example: when I arrive home, disarm the alarm panel
## Supported devices
This integration supports alarm panels with "communicator modules" that are compatible with the Total Connect 2.0 service. An active account is required via a third party alarm monitoring company. Panels may be branded as Resideo, Honeywell, Ademco or other third party alarm companies.
Device models known to work include:
- ProSeries (ProA7, ProA7Plus)
- Lyric (AIO, Gateway)
- Lynx Touch (L5100, L5200, L5210, L7000)
- Lynx Plus (L3000)
- VISTA (15P, 20P, 21iP)
## Unsupported devices
The following devices are not supported:
- Older Lynx models (not Touch or Plus)
- Other panels without a Total Connect compatible communicator module
## Prerequisites
Log in to the [Total Connect website](https://totalconnect2.com) and create a "standard" Total Connect user account specifically for use with Home Assistant. It should not have full administrative privileges.
Give the user access to your Location, along with a user code, usually a 4 digit number.
{% details "Notes for Home Assistant Core Installations" %}
If you have issues running this integration, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command:
```bash
sudo apt install libxml2-dev libxmlsec1-dev
```
{% enddetails %}
{% include integrations/config_flow.md %}
## Configuration Options
**Auto Bypass Low Battery:** if enabled, TotalConnect zones will immediately be bypassed when they report low battery. This option helps because zones tend to report low battery in the middle of the night. The downside of this option is that when the alarm system is armed, the bypassed zone will not be monitored.
**Require Code:** if enabled, you must enter the user code to disarm the alarm.
**Require Code:** if enabled, you must enter the user code to arm or disarm the alarm.
## Alarm control panel
The integration provides an alarm control panel for each Total Connect location. It uses the name of your location from Total Connect. For example, if your location name in Total Connect is "Home", Home Assistant will use `alarm_control_panel.home`.
The `triggered` state also provides a state attribute called `triggered_source` giving more detail on what triggered the alarm:
- `Police/Medical` is when sensors detected a burglar and/or the Police or Medical button was pressed
- `Fire/Smoke` is when fire or smoke is detected, and/or the Fire button was pressed
- `Carbon Monoxide` is when carbon monoxide is detected
## Binary sensor
The integration provides a binary sensor for each Total Connect zone. To see faulted zones in Home Assistant, your Total Connect account must have "Sensor Activities" enabled. Your alarm monitoring company may charge an extra fee to enable this. If available, these can be found in the Total Connect 2 web portal at **Notifications** -> **Sensor Activities**. Alternately, they can be found in the Total Connect mobile app at **More** -> **Settings** -> **Notifications** -> **Sensor Activities**. Enable each zone you want to monitor. Unmonitored zones will display as `Closed` in Home Assistant.
Home Assistant device class `door` is assigned to Total Connect entry/exit, perimeter, and motion zones; along with most alarm panel buttons. The sensor will appear as `True` if the zone is opened (either fault or triggered in Total Connect) and `False` if closed. Device class `smoke` is assigned to Total Connect smoke detectors and alarm panel buttons set to a "Fire No Verification" response type. The sensor will appear as `True` if smoke is detected or the respective button is pressed. Device class `gas` is assigned to Total Connect carbon monoxide detectors. The sensor will appear as `True` if carbon monoxide is detected.
## Buttons
The integration provides a bypass button for each zone that can be bypassed. The **Bypass All** button for the alarm panel will bypass all faulted or troubled zones. The **Clear Bypass** button for the alarm panel will clear all bypassed zones.
## Actions
The alarm control panel supports the following basic actions: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night`, and `alarm_disarm`.
### Action: Arm home instant
The `totalconnect.arm_home_instant` action puts the alarm panel in "arm home" with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted. This is equivalent to "arm stay instant" in most alarm panels.
| Data attribute | Optional | Description |
|------------------------|----------|------------------------------------------------------|
| `entity_id` | No | The ID of the alarm panel to arm. |
### Action: Arm away instant
The `totalconnect.arm_away_instant` action puts the alarm panel in "arm away" with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted. This is equivalent to "arm away instant" in most alarm panels.
| Data attribute | Optional | Description |
|------------------------|----------|------------------------------------------------------|
| `entity_id` | No | The ID of the alarm panel to arm. |
## Diagnostic Sensors
The following diagnostic sensors are available:
- Low Battery for Zones and Alarm Panels will be `On` if the battery is low.
- Tamper for Zones and Alarm Panels will be `On` if in a tampered state.
- Power for Alarm Panels will be `On` if main power is connected or `Off` if running on the backup battery.
## Automation example
@ -42,7 +123,7 @@ automation:
- alias: "Alarm: Disarmed Daytime"
triggers:
- trigger: state
entity_id: alarm_control_panel.total_connect
entity_id: alarm_control_panel.home
to: "disarmed"
conditions:
- condition: sun
@ -55,7 +136,7 @@ automation:
- alias: "Alarm: Armed Away"
triggers:
- trigger: state
entity_id: alarm_control_panel.total_connect
entity_id: alarm_control_panel.home
to: "armed_away"
actions:
- action: scene.turn_on
@ -70,45 +151,37 @@ automation:
actions:
- action: totalconnect.arm_home_instant
target:
entity_id: alarm_control_panel.total_connect
entity_id: alarm_control_panel.home
```
{% details "Notes for Home Assistant Core Installations" %}
## Removing the integration
If you have issues running this integration, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command:
This integration follows standard integration removal. No extra steps are required.
```bash
sudo apt install libxml2-dev libxmlsec1-dev
```
{% include integrations/remove_device_service.md %}
{% enddetails %}
After deleting the integration, go to Total Connect and remove the user account you created for Home Assistant.
## Alarm control panel
## Data Updates
The integration provides an alarm control panel for each Total Connect location. It uses the name of your location from Total Connect. For example, if your location name in Total Connect is "Home", Home Assistant will use `alarm_control_panel.home`.
Your alarm panel contacts the Total Connect 2.0 server to provide status updates. This is a "polling integration" that contacts the Total Connect 2.0 server every 30 seconds to retrieve the status of your alarm panel and sensors. Home Assistant cannot communicate locally with the alarm panel.
The alarm control panel supports the following actions: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night`, and `alarm_disarm`. The integration also provides unique actions for `totalconnect.arm_home_instant` and `totalconnect.arm_away_instant` which arms the system with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted.
## Limitations
The `triggered` state also provides a state attribute called `triggered_source` giving more detail on what triggered the alarm:
The polling window is 30 seconds. If your door opens and then closes again within 30 seconds, it may not be visible in Home Assistant. Automations based on the short term status of doors and windows are not recommended.
- `Police/Medical` is when sensors detected a burglar and/or the Police or Medical button was pressed
- `Fire/Smoke` is when fire or smoke is detected, and/or the Fire button was pressed
- `Carbon Monoxide` is when carbon monoxide is detected
The Total Connect API has limited zone type information. Many zones are simply described as "perimeter" and thus appear as a `door` in Home Assistant. You may have to manually adjust some entities.
## Binary sensor
Some alarm panels integrate Z-Wave, cameras, smart locks or garage door openers, and those add-on devices can be controlled by the Total Connect app. This integration does not yet support awareness of or control of these add-on devices.
The integration provides a binary sensor for each Total Connect zone. To see faulted zones in Home Assistant, your Total Connect account must have "Sensor Activities" enabled. Your alarm monitoring company may charge an extra fee to enable this. If available, these can be found in the Total Connect 2 web portal at **Notifications** -> **Sensor Activities**. Alternately, they can be found in the Total Connect mobile app at **More** -> **Settings** -> **Notifications** -> **Sensor Activities**. Enable each zone you want to monitor. Unmonitored zones will display as `Closed` in Home Assistant.
This integration cannot "trigger" the alarm panel or cause the alarm to sound.
The Total Connect API has limited zone type information. Home Assistant device class `door` is assigned to Total Connect entry/exit, perimeter, and motion zones; along with most alarm panel buttons. The sensor will appear as `True` if the zone is opened (either fault or triggered in Total Connect) and `False` if closed. Device class `smoke` is assigned to Total Connect smoke detectors and alarm panel buttons set to a "Fire No Verification" response type. The sensor will appear as `True` if smoke is detected or the respective button is pressed. Device class `gas` is assigned to Total Connect carbon monoxide detectors. The sensor will appear as `True` if carbon monoxide is detected.
## Troubleshooting
## Buttons
### Error Connecting or Service Unavailable
The integration provides a bypass button for each zone that can be bypassed. The **Bypass All** button for the alarm panel will bypass all faulted or troubled zones. The **Clear Bypass** button for the alarm panel will clear all bypassed zones.
The integration depends on the Total Connect 2.0 servers and your internet connection. Verify your internet is working and check https://status.resideo.com/ for server outages.
## Diagnostic Sensors
### Unknown ResultCode, ArmingState, ZoneType or ZoneStatus
The following diagnostic sensors are available:
- Low Battery for Zones and Alarm Panels will be `On` if the battery is low.
- Tamper for Zones and Alarm Panels will be `On` if in a tampered state.
- Power for Alarm Panels will be `On` if main power is connected or `Off` if running on the backup battery.
The Total Connect API does not fully document all modes of every alarm panel so the integration was developed based on testing with the developers' own hardware. New or different hardware may result in unknown ResultCode, ArmingState, ZoneType, ZoneStatus or similar messages in the Home Assistant logs. If encountered, please [submit an issue](https://github.com/craigjmidwinter/total-connect-client/issues) for `total-connect-client` which enables this integration.

View File

@ -23,7 +23,7 @@ ha_platforms:
ha_integration_type: integration
---
The IKEA TRÅDFRI integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your {% term "`configuration.yaml`" %} file.
The IKEA TRÅDFRI integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it.
{% include integrations/config_flow.md %}

View File

@ -26,23 +26,25 @@ Your Transmission client must first be configured to allow remote access. In you
{% include integrations/config_flow.md %}
## Integration entities
## Supported functionality
The Transmission integration will add the following sensors and switches.
**Sensors**:
- `sensor.transmission_current_status`: The status of your Transmission daemon.
- `sensor.transmission_download_speed`: The current download speed [MB/s].
- `sensor.transmission_upload_speed`: The current upload speed [MB/s].
- `sensor.transmission_active_torrents`: The current number of active torrents.
- `sensor.transmission_paused_torrents`: The current number of paused torrents.
- `sensor.transmission_total_torrents`: The total number of torrents present in the client.
- `sensor.transmission_started_torrents`: The current number of started torrents (downloading).
- `sensor.transmission_completed_torrents`: The current number of completed torrents (seeding).
### Sensors
**Switches**:
- `switch.transmission_switch`: A switch to start/stop all torrents.
- `switch.transmission_turtle_mode`: A switch to enable turtle mode (a.k.a. alternative speed limits).
- The status of your Transmission daemon.
- The current download speed [MB/s].
- The current upload speed [MB/s].
- The current number of active torrents.
- The current number of paused torrents.
- The total number of torrents present in the client.
- The current number of started torrents (downloading).
- The current number of completed torrents (seeding).
### Switches
- A switch to start/stop all torrents.
- A switch to enable turtle mode (a.k.a. alternative speed limits).
## Event automation

View File

@ -46,8 +46,8 @@ The following device classes are supported for valves:
### Valve control actions
All valves respond to `valve.open`, `valve.close`, and `valve.toggle`.
Valves that allow setting a specific position may also be controlled with `valve.set_position` and `valve.stop`.
All valves respond to `valve.open_valve`, `valve.close_valve`, and `valve.toggle`.
Valves that allow setting a specific position may also be controlled with `valve.set_valve_position` and `valve.stop_valve`.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
@ -61,12 +61,12 @@ automation:
- trigger: time
at: "07:15:00"
actions:
- action: valve.close
- action: valve.close_valve
target:
entity_id: valve.demo
```
### Action `valve.set_position`
### Action `valve.set_valve_position`
Set the position of one or multiple valves if they support setting a specific position.
@ -83,7 +83,7 @@ automation:
- trigger: time
at: "07:15:00"
actions:
- action: valve.set_position
- action: valve.set_valve_position
target:
entity_id: valve.demo
data:

View File

@ -190,3 +190,9 @@ Invalid data from Vicare server: {
```
Usually, this resolves itself after a while, but if this state persists, try to power cycle your gateway.
## Removing the integration
This integration follows standard integration removal. Once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant.
{% include integrations/remove_device_service.md %}

View File

@ -26,7 +26,7 @@ This can be used to make daily automations that act differently on workdays than
## Setup
Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available provinces (and other subdivisions, like states and territories) for each country.
Check the [country list](https://github.com/vacanza/holidays#available-countries) for available provinces (and other subdivisions, like states and territories) for each country.
{% include integrations/config_flow.md %}

View File

@ -942,7 +942,7 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
<ul>
<li>3.5 mm (&#x215B;&#x201D;) stereo headphone jack</li>
<li>Digital to analog converter (DAC):<br>
TI AIC3202<br>
TI AIC3204<br>
48 kHz sampling rate</li>
</ul>
</div>
@ -1452,11 +1452,10 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
</a>
</div>
</details>
<!--
<details id="dist_australia">
<summary class="region">Shipping to Australia</summary>
<div>
<a href="#" target="_blank">
<a href="https://www.ozsmartthings.com.au/products/ha-voice-preview-edition" target="_blank">
<div class="distributor">
<div>
<div>🇦🇺</div>
@ -1470,7 +1469,7 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
</a>
</div>
<div>
<a href="#" target="_blank">
<a href="https://smartguys.com.au/product/home-assistant-voice-preview-edition/" target="_blank">
<div class="distributor">
<div>
<div>🇦🇺</div>
@ -1484,7 +1483,6 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
</a>
</div>
</details>
-->
<details id="dist_europe">
<summary class="region">Shipping to Europe</summary>
<div>